lyflowchart 1.0.115 → 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.
- package/dist/ActionsConfig-BuvSvRbv.js +395 -0
- package/dist/ActionsConfig-BuvSvRbv.js.map +1 -0
- package/dist/ApprovalEditorModal-DZfXupU3.js +48 -0
- package/dist/ApprovalEditorModal-DZfXupU3.js.map +1 -0
- package/dist/CancelModal-BUi3ieI8.js +61 -0
- package/dist/CancelModal-BUi3ieI8.js.map +1 -0
- package/dist/Cell_click_approve-CBh0j--6.js +244 -0
- package/dist/Cell_click_approve-CBh0j--6.js.map +1 -0
- package/dist/JsonTags-BbWLqghI.js +66 -0
- package/dist/JsonTags-BbWLqghI.js.map +1 -0
- package/dist/MyProcess-FWGEwQcv.js +26434 -0
- package/dist/MyProcess-FWGEwQcv.js.map +1 -0
- package/dist/MyProcess.vue.d.ts +991 -0
- package/dist/approval-BW2WjPxY.js +167 -0
- package/dist/approval-BW2WjPxY.js.map +1 -0
- package/dist/approval-CuUNtG9u.js +18 -0
- package/dist/approval-CuUNtG9u.js.map +1 -0
- package/dist/approvalHistory-B2gpQbFC.js +868 -0
- package/dist/approvalHistory-B2gpQbFC.js.map +1 -0
- package/dist/approvalHistoryViewModal-DgLpv2ot.js +114 -0
- package/dist/approvalHistoryViewModal-DgLpv2ot.js.map +1 -0
- package/dist/approvalPageConfig-D0zPXOUf.js +2437 -0
- package/dist/approvalPageConfig-D0zPXOUf.js.map +1 -0
- package/dist/approveLeftConfig-BOU_UgHp.js +136 -0
- package/dist/approveLeftConfig-BOU_UgHp.js.map +1 -0
- package/dist/codeHistoryViewModal-BfSjIbEU.js +103 -0
- package/dist/codeHistoryViewModal-BfSjIbEU.js.map +1 -0
- package/dist/columnTables-DLwtgcC7.js +1272 -0
- package/dist/columnTables-DLwtgcC7.js.map +1 -0
- package/dist/components/Cell_click_approve.vue.d.ts +5 -0
- package/dist/components/Cell_click_data_source.vue.d.ts +6 -0
- package/dist/components/Process/common/bpmnUtils.d.ts +8 -0
- package/dist/components/Process/common/global.d.ts +16 -0
- package/dist/components/Process/common/index.d.ts +5 -0
- package/dist/components/Process/component/JsonTags2.vue.d.ts +60 -0
- package/dist/components/Process/component/ValueInput2.vue.d.ts +74 -0
- package/dist/components/Process/component/columnNameField2.vue.d.ts +51 -0
- package/dist/components/Process/component/data.d.ts +157 -0
- package/dist/components/Process/customPanel/CustomContextPad.d.ts +31 -0
- package/dist/components/Process/customPanel/CustomPalette.d.ts +89 -0
- package/dist/components/Process/customPanel/customTranslate.d.ts +1 -0
- package/dist/components/Process/customPanel/index.d.ts +8 -0
- package/dist/components/Process/designer.vue.d.ts +589 -0
- package/dist/components/Process/flowable/init.d.ts +1 -0
- package/dist/components/Process/index.vue.d.ts +812 -0
- package/dist/components/Process/lang/zh.d.ts +249 -0
- package/dist/components/Process/panel/ButtonsPanel.vue.d.ts +24 -0
- package/dist/components/Process/panel/PropertiesPanel.vue.d.ts +24 -0
- package/dist/components/Process/panel/commonPanel.vue.d.ts +40 -0
- package/dist/components/Process/panel/conditionPanel.vue.d.ts +271 -0
- package/dist/components/Process/panel/executionListener.vue.d.ts +66 -0
- package/dist/components/Process/panel/formPanel.vue.d.ts +7 -0
- package/dist/components/Process/panel/multiInstance.vue.d.ts +33 -0
- package/dist/components/Process/panel/otherPanel.vue.d.ts +17 -0
- package/dist/components/Process/panel/taskListener.vue.d.ts +64 -0
- package/dist/components/Process/panel/taskPanel.vue.d.ts +254 -0
- package/dist/components/Process/viewer/index.vue.d.ts +41 -0
- package/dist/components/approval/ApprovalEditorModal.vue.d.ts +26 -0
- package/dist/components/approval/CostCompanySelect.vue.d.ts +29 -0
- package/dist/components/approval/CostDepartmentSelect.vue.d.ts +35 -0
- package/dist/components/approval/CreateByCascader.vue.d.ts +27 -0
- package/dist/components/approval/CreateBySelect.vue.d.ts +35 -0
- package/dist/components/approval/PostionCascader.vue.d.ts +26 -0
- package/dist/components/approval/SystemTime.vue.d.ts +38 -0
- package/dist/components/approval/approvalViewId.d.ts +36 -0
- package/dist/components/approval/components/CancelModal.vue.d.ts +25 -0
- package/dist/components/approval/components/FormCodeInput.vue.d.ts +33 -0
- package/dist/components/approval/components/FormContextInput.vue.d.ts +33 -0
- package/dist/components/approval/components/FormFlowOrgInput.vue.d.ts +40 -0
- package/dist/components/approval/components/actionsBar.vue.d.ts +17 -0
- package/dist/components/approval/components/approvalHistory/approvalHistoryViewModal.vue.d.ts +41 -0
- package/dist/components/approval/components/approvalHistory/dataStoreSettingHistory.vue.d.ts +55 -0
- package/dist/components/approval/components/approvalHistory/dataStoreSettingHistoryViewModal.vue.d.ts +41 -0
- package/dist/components/approval/components/approvalHistory/flowHistoryViewModal.vue.d.ts +41 -0
- package/dist/components/approval/components/approvalHistory/flowSettingHistory.vue.d.ts +55 -0
- package/dist/components/approval/components/approvalHistory/index.vue.d.ts +212 -0
- package/dist/components/approval/components/approvalHistory/pageSettingHistory.vue.d.ts +55 -0
- package/dist/components/approval/components/approvalPageConfig/ActionsConfig.vue.d.ts +112 -0
- package/dist/components/approval/components/approvalPageConfig/BaseConditions.vue.d.ts +205 -0
- package/dist/components/approval/components/approvalPageConfig/CodeEditorWraper.vue.d.ts +51 -0
- package/dist/components/approval/components/approvalPageConfig/ColumnConfig.vue.d.ts +145 -0
- package/dist/components/approval/components/approvalPageConfig/ConditionFieldMulType.vue.d.ts +137 -0
- package/dist/components/approval/components/approvalPageConfig/JsonInput.vue.d.ts +38 -0
- package/dist/components/approval/components/approvalPageConfig/JsonTags.vue.d.ts +26 -0
- package/dist/components/approval/components/approvalPageConfig/JsonText.vue.d.ts +36 -0
- package/dist/components/approval/components/approvalPageConfig/approveLeftConfig.vue.d.ts +6 -0
- package/dist/components/approval/components/approvalPageConfig/baseConfig.vue.d.ts +10 -0
- package/dist/components/approval/components/approvalPageConfig/cellEdit.vue.d.ts +23 -0
- package/dist/components/approval/components/approvalPageConfig/configSync.vue.d.ts +76 -0
- package/dist/components/approval/components/approvalPageConfig/confirmInput.vue.d.ts +26 -0
- package/dist/components/approval/components/approvalPageConfig/defaultOperatorSelect.vue.d.ts +18 -0
- package/dist/components/approval/components/approvalPageConfig/index.vue.d.ts +11 -0
- package/dist/components/approval/components/approvalPageConfig/jsonConfig.vue.d.ts +16 -0
- package/dist/components/approval/components/approvalPageConfig/layoutSetting.vue.d.ts +9 -0
- package/dist/components/approval/components/approvalPageConfig/leftColumn.vue.d.ts +1184 -0
- package/dist/components/approval/components/approvalPageConfig/middleColumn.vue.d.ts +145 -0
- package/dist/components/approval/components/approvalPageConfig/operatorSelect.vue.d.ts +18 -0
- package/dist/components/approval/components/approvalPageConfig/searchConfig.vue.d.ts +166 -0
- package/dist/components/approval/components/approvalPageConfig/tableConfig.vue.d.ts +802 -0
- package/dist/components/approval/components/codeHistory/codeHistory.vue.d.ts +53 -0
- package/dist/components/approval/components/codeHistory/codeHistoryViewModal.vue.d.ts +32 -0
- package/dist/components/approval/components/columnDataList.vue.d.ts +454 -0
- package/dist/components/approval/components/columnForm.vue.d.ts +26 -0
- package/dist/components/approval/components/columnTables.vue.d.ts +502 -0
- package/dist/components/approval/components/columnUnknown.vue.d.ts +2 -0
- package/dist/components/approval/components/dataStoreConfig/ConditionConfig.vue.d.ts +199 -0
- package/dist/components/approval/components/dataStoreConfig/ValueInput.vue.d.ts +37 -0
- package/dist/components/approval/components/dataStoreConfig/dataSourceDetial.vue.d.ts +22 -0
- package/dist/components/approval/components/dataStoreConfig/dataStoreConfig.vue.d.ts +554 -0
- package/dist/components/approval/components/dataStoreConfig/dataStoreConfigItem.vue.d.ts +434 -0
- package/dist/components/approval/components/dataStoreConfig/dataStoreTest.vue.d.ts +39 -0
- package/dist/components/approval/components/dataStoreConfig/dataStoreTestsItem.vue.d.ts +17 -0
- package/dist/components/approval/components/dataStoreConfig/formField.vue.d.ts +28 -0
- package/dist/components/approval/components/dataStoreConfig/formFieldMulType.vue.d.ts +96 -0
- package/dist/components/approval/components/dataStoreConfig/selectExcelColumn.vue.d.ts +26 -0
- package/dist/components/approval/components/dataStoreConfig/selectExcelType.vue.d.ts +28 -0
- package/dist/components/approval/components/debugCode/debugCode.vue.d.ts +214 -0
- package/dist/components/approval/components/drawerDataList.vue.d.ts +504 -0
- package/dist/components/approval/components/drawerTablesList.vue.d.ts +551 -0
- package/dist/components/approval/components/flowConfig/flowConfig.vue.d.ts +1097 -0
- package/dist/components/approval/components/flowConfig/selectCcGroup.vue.d.ts +9 -0
- package/dist/components/approval/components/flowConfig/selectUsers.vue.d.ts +9 -0
- package/dist/components/approval/components/modelTablesList.vue.d.ts +551 -0
- package/dist/components/approval/components/pageConfigHistory.vue.d.ts +2 -0
- package/dist/components/approval/components/search.vue.d.ts +238 -0
- package/dist/components/approval/components/searchSummary.vue.d.ts +100 -0
- package/dist/components/approval/components/table.vue.d.ts +416 -0
- package/dist/components/approval/components/tableModal.vue.d.ts +84 -0
- package/dist/components/approval/configs/approval/default.d.ts +11 -0
- package/dist/components/approval/configs/approval/recordActions.d.ts +22 -0
- package/dist/components/approval/core.vue.d.ts +48 -0
- package/dist/components/approval/example_code/example_code.d.ts +11 -0
- package/dist/components/approval/index.d.ts +18 -0
- package/dist/components/approval/index.vue.d.ts +2 -0
- package/dist/components/approval/migrate/index.d.ts +1 -0
- package/dist/components/approval/migrate/v0001.d.ts +2 -0
- package/dist/components/approval/store/context.d.ts +48 -0
- package/dist/components/approval/store/debugCode.d.ts +7 -0
- package/dist/components/approval/store/settingsState.d.ts +15 -0
- package/dist/components/approval/typing.d.ts +210 -0
- package/dist/components/approval/useApprovalRecordActions.d.ts +83 -0
- package/dist/components/approval/utils.d.ts +164 -0
- package/dist/components/approval_for_details.vue.d.ts +9 -0
- package/dist/components/flow/ElInputTag/index.vue.d.ts +46 -0
- package/dist/components/flow/Expression/index.vue.d.ts +48 -0
- package/dist/components/flow/Role/index.vue.d.ts +68 -0
- package/dist/components/flow/User/index.vue.d.ts +76 -0
- package/dist/config/packed-config.d.ts +26 -0
- package/dist/constants.d.ts +1 -0
- package/dist/core-CctSle2c.js +1629 -0
- package/dist/core-CctSle2c.js.map +1 -0
- package/dist/dataStoreSettingHistoryViewModal-D_so-KLp.js +114 -0
- package/dist/dataStoreSettingHistoryViewModal-D_so-KLp.js.map +1 -0
- package/dist/debugCode-Cm9-WiUG.js +565 -0
- package/dist/debugCode-Cm9-WiUG.js.map +1 -0
- package/dist/debugCode-dD1YnQSD.js +11 -0
- package/dist/debugCode-dD1YnQSD.js.map +1 -0
- package/dist/default-VdDMlY4e.js +560 -0
- package/dist/default-VdDMlY4e.js.map +1 -0
- package/dist/example_code-C_xF8RRG.js +129 -0
- package/dist/example_code-C_xF8RRG.js.map +1 -0
- package/dist/flowHistoryViewModal-D8DJP7Te.js +109 -0
- package/dist/flowHistoryViewModal-D8DJP7Te.js.map +1 -0
- package/dist/index.d.ts +81 -0
- package/dist/index.js +507 -26691
- package/dist/index.js.map +1 -1
- package/dist/init-plugin-fQTSQzui.js +48 -0
- package/dist/init-plugin-fQTSQzui.js.map +1 -0
- package/dist/init-plugin.d.ts +57 -0
- package/dist/leftColumn-CsPjufue.js +209 -0
- package/dist/leftColumn-CsPjufue.js.map +1 -0
- package/dist/lyflowchart.css +1 -1
- package/dist/middleColumn-C7M6-eVo.js +107 -0
- package/dist/middleColumn-C7M6-eVo.js.map +1 -0
- package/dist/recordActions-BgFlNsGU.js +51 -0
- package/dist/recordActions-BgFlNsGU.js.map +1 -0
- package/dist/settingsState-CI81PG-i.js +19 -0
- package/dist/settingsState-CI81PG-i.js.map +1 -0
- package/dist/style.d.ts +3 -0
- package/dist/styles.d.ts +7 -0
- package/dist/tableConfig-uLXue-BS.js +2408 -0
- package/dist/tableConfig-uLXue-BS.js.map +1 -0
- package/dist/tableModal-BcYfVL02.js +124 -0
- package/dist/tableModal-BcYfVL02.js.map +1 -0
- package/dist/useApprovalRecordActions-BQ6MgV2L.js +843 -0
- package/dist/useApprovalRecordActions-BQ6MgV2L.js.map +1 -0
- package/dist/utils/StrUtil.d.ts +52 -0
- package/dist/utils/function.d.ts +8 -0
- package/dist/utils-CLet2gLV.js +420 -0
- package/dist/utils-CLet2gLV.js.map +1 -0
- package/dist/v0001-OaBeBCXI.js +4 -0
- package/dist/v0001-OaBeBCXI.js.map +1 -0
- package/dist/{Cell_click_data_source-C8WEsBGB.js → viewer-Dv3kQsMf.js} +1839 -2724
- package/dist/viewer-Dv3kQsMf.js.map +1 -0
- package/dist/vue-print-next-HRweUmNi.js +683 -0
- package/dist/vue-print-next-HRweUmNi.js.map +1 -0
- package/package.json +39 -8
- package/dist/Cell_click_data_source-C8WEsBGB.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":";;;;;;;AAmGA,IAAA,IAAe,EAAgB;CAC7B,MAAM;CACN,OAAO;EACL,WAAW;GACT,MAAM;GACN,SAAS;GACV;EACD,QAAQ;GACN,MAAM;GACN,SAAS;GACV;EACF;CACD,YAAY,EAAE;CACd,OAAO,CAAC,gBAAgB;CACxB,MAAM,GAAO,EAAE,WAAQ;EACrB,IAAM,IAAoB,GAAsB,EAC1C,EAAE,SAAM,GAAS,EACjB,IAAU,EAAI,GAAM,EAEpB,IADY,GAAc,CACF,YACxB,IAAY,EAAI,GAAM,EACtB,IAAY,EAAI,EAAE,CAAC,EACnB,IAAU,EAAI,EAAE,EAChB,IAAW,EAAI,GAAG,EAClB,IAAQ,EAAI,EAAE,EAEd,IAAY,EAAI,EAAE,CAAC,EACnB,IAAU;GACd;IACE,OAAO;IACP,WAAW;IACX,OAAO;IACR;GACD;IACE,OAAO,EAAE,KAAK;IACd,WAAW;IACX,OAAO;IACR;GACD;IACE,OAAO,EAAE,MAAM;IACf,WAAW;IACX,OAAO;IACR;GACD;IACE,OAAO,EAAE,KAAK;IACd,WAAW;IACX,OAAO;IACR;GACF,EACK,IAAkB,EAAI,EAAE,CAAC,EACzB,UAAuB;AAC3B,OAAI,CAAC,EAAM,UACT;AAEF,KAAQ,QAAQ;GAChB,IAAM,IAAa,CACjB;IACE,YAAY;IACZ,UAAU;IACV,OAAO,CAAC,EAAM,UAAU;IACxB,QAAQ;IACR,YAAY;IACb,CACF;AAmBD,GAlBI,EAAU,OAAO,SAAS,KAC5B,EAAW,KAAK;IACd,YAAY;IACZ,UAAU;IACV,OAAO,CAAC,EAAU,MAAM,IAAI,EAAU,MAAM,GAAG;IAC/C,QAAQ;IACR,YAAY;IACb,CAAC,EAWJ,EAToB;IAClB,QAAQ,GAAa;IACrB,SAAS,EAAQ;IACjB,UAAU,EAAS;IACnB,eAAe;IACf,eAAe;KAAC;KAAM;KAAe;KAAY;KAAU;IAC3D,aAAa,CAAC,MAAM;IACpB,YAAY,CAAC,EAAW;IACzB,EACuB,2CAA2C,CAAC,MAAM,MAAa;AAKrF,IAJA,EAAU,QAAQ,EAAI,MACtB,EAAM,QAAQ,EAAI,OAClB,EAAQ,QAAQ,EAAI,SACpB,EAAS,QAAQ,EAAI,UACrB,EAAQ,QAAQ;KAChB;KAEE,UAAyB;AAC7B,MAAgB;KAEZ,IAAc,QACX,EAAkB,KAAK,MAAc,EAAK,MAAM,CACvD,EACI,IAAe,EACnB,MAAM,YACP,EACK,UAA8B;AAClC,KAAkB,EAAgB,MAAM;KAGpC,KAAoB,GAAa,MAAgB;GACrD,IAAM,IAAO,EAAK,MAAM,MAAc,EAAK,UAAU,EAAI;AACzD,OAAI,EACF,QAAO;AAEP,QAAK,IAAI,IAAI,GAAG,IAAI,EAAK,QAAQ,IAC/B,KAAI,EAAK,GAAG,oBAAoB,OAAO;IACrC,IAAM,IAAS,EAAiB,EAAK,GAAG,UAAU,EAAI;AACtD,QAAI,EACF,QAAO;;AAKf,UAAO;KAGH,KAAoB,GAAc,MAAiB;AACnD,KAAQ,UAAU,KAAQ,EAAS,UAAU,MAGjD,EAAQ,QAAQ,KAAQ,GACxB,EAAS,QAAQ,KAAQ,IACzB,GAAgB;KAEZ,KAAkB,MACf,IAAW,GAEd,KAAqB,MAAuB;AAShD,KARkB,EAAS;IACzB,WAAW;IACX,aAAa;IACb,QAAQ,GAAa;IACrB,QAAQ,EAAM;IACd,KAAK,MAAc;IACnB,cAAc;IACf,CAAC,CACiB;KAEf,KAAsB,MAAe;AACzC,KAAM,QAAQ;IACZ,OAAO,EAAE,cAAc;IACvB,YAAY;AACV,OAAa,EAAG;;IAEnB,CAAC;KAGE,IAA0B,OAC9B,GACA,GACA,MACG;GAiBH,IAAM,IAAM,MAAM,EAPE;IAClB;IACA,eAAe;IACf,eAAe;KAAC;KAAM;KAAe;KAAU;IAC/C,aAAa,CAAC,MAAM;IACpB,YAAY,CAdK,CACjB;KACE,YAAY;KACZ,UAAU;KACV,OAAO,CAAC,EAAW;KACnB,QAAQ;KACR,YAAY;KACb,CACF,CAMyB;IACzB,EACyC,2CAA2C;AACrF,OAAI,EAAI,KAAK,SAAS,GAAG;IACvB,IAAM,IAAO,EAAI,KAAK;AAGtB,WADA,MAAM,EAAW;KAAE;KAAQ,WADT;KACoB,SAAS,EAAK;KAAS,EAAE,4BAA4B,EACpF;SAEP,QAAO;KAGL,IAAe,OAAO,MAAe;AACzC,KAAQ,QAAQ;AAChB,OAAI;AAEF,IADY,MAAM,EAAwB,GAAI,GAAa,IAAI,EAAM,UAAU,IAE7E,EAAK,gBAAgB,EACrB,EAAQ,QAAQ,EAAE,OAAO,CAAC,IAE1B,EAAQ,MAAM,EAAE,OAAO,CAAC;WAEZ;AACd,MAAQ,MAAM,EAAE,OAAO,CAAC;aAChB;AACR,MAAQ,QAAQ;;;AAapB,SAVA,QACQ,EAAM,iBACN;AACJ,MAAgB;IAEnB,EACD,QAAgB;AACd,MAAgB;IAChB,EAEK;GACL;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;;CAEJ,CAAC,QCxUK,OAAM,mBAAiB,QACpB,OAAM,yBAAuB;;;yBADrC,EA6BM,OA7BN,GA6BM;EA5BJ,EAA4D,QAA5D,GAA4D,EAArB,EAAA,GAAE,OAAA,CAAA,GAAW,KAAC,EAAA;EACrD,EAQE,GAAA;GAPQ,OAAO,EAAA;qCAAA,EAAA,YAAS;GACxB,OAAA;IAAA,OAAA;IAAA,gBAAA;IAAwC;GACvC,YAAY;GACZ,aAAW,CAAG,EAAA,GAAE,OAAA,EAAU,EAAA,GAAE,OAAA,CAAA;GAC5B,UAAU,EAAA,QAAA,uBAAiC;GAC3C,gBAAc;GACd,UAAQ,EAAA;;;;;;EAEX,EAiBiB,GAAA,MAAA;oBAVJ,CANX,EAMW,GAAA;IALT,MAAK;IACJ,SAAO,EAAA;IACP,UAAU,EAAA,gBAAgB,WAAM;;qBAEjB,CAAA,EAAA,EAAb,EAAA,GAAE,OAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;mCAEP,EAQW,GAAA;IAPT,MAAK;IACJ,SAAO,EAAA;;IAEG,MAAI,QACK,CAAlB,EAAkB,EAAA,CAAA,CAAA;qBAEpB,CAAA,EADW,MACX,EAAG,EAAA,GAAE,KAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;;;;KAIX,EA2DU,GAAA;EA1DA,iBAAiB,EAAA;8CAAA,EAAA,kBAAe;EACvC,YAAY,EAAA;EACZ,SAAS,EAAA;EACT,SAAS,EAAA;EACT,cAAc,EAAA;EACd,YAAU;YAAmB,EAAA;aAAyB,EAAA;UAAuB,EAAA;aAAuB,EAAA;;;oBAAmG,EAAA;;EASvM,QAAM,EAAA,GAAO,EAAA,SAAM,KAAA;EACpB,QAAO;;EAEI,UAAQ,GAiBN,EAjBU,WAAQ,gBAAM,CACnB,EAAO,cAAS,cAAA,GAAA,EAAhC,EAgBW,GAAA,EAAA,KAAA,GAAA,EAAA,CAdD,EAAO,WAAQ,KAAA,GAAA,EADvB,EAaE,GAAA;;GAXC,SAAS,EAAA,eAAe,EAAO,SAAQ;GACvC,gBAAc;GACf,OAAA,EAAA,OAAA,SAAoB;GACnB,aAAW;GACX,aAA0B,EAAA,eAAe,EAAO,SAAQ,GAAA,KAAA,YAAiD,EAAA,eAAe,EAAO,SAAQ,GAAA,KAAA,YAAA;mDAQ1I,EAAiC,QAAA,GAAA,EAAjB,EAAA,GAAE,IAAA,CAAA,EAAA,EAAA,EAAA,EAAA,GAAA,IAEC,EAAO,cAAS,YAAA,GAAA,EAArC,EAkBW,GAAA,EAAA,KAAA,GAAA,EAAA,CAjBT,EAOW,GAAA;GANT,MAAK;GACL,MAAK;GACJ,UAAU,EAAO,YAAO;GACxB,UAAK,MAAE,EAAA,kBAAiB,CAAE,EAAO,SAAS,EAAO,GAAE,CAAA;;oBAEtC,CAAA,EAAA,EAAX,EAAA,GAAE,KAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;kCAGP,EAOW,GAAA;GANT,MAAK;GACL,MAAK;GACL,QAAA;GACC,UAAK,MAAE,EAAA,mBAAmB,EAAO,GAAE;;oBAEtB,CAAA,EAAA,EAAX,EAAA,GAAE,KAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;oCAGT,EAEW,GAAA,EAAA,KAAA,GAAA,EAAA,CAAA,EAAA,EADN,EAAO,EAAO,WAAS,EAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA;;;;;;;;;;;;iFCWlC,IAAe,EAAgB;CAC7B,MAAM;CACN,OAAO;EACL,WAAW;GACT,MAAM;GACN,SAAS;GACV;EACD,QAAQ;GACN,MAAM;GACN,SAAS;GACV;EACF;CACD,YAAY,EAAE;CACd,OAAO,CAAC,gBAAgB;CACxB,MAAM,GAAO,EAAE,WAAQ;EACrB,IAAM,IAAoB,GAAsB,EAC1C,EAAE,SAAM,GAAS,EACjB,IAAU,EAAI,GAAM,EAEpB,IADY,GAAc,CACF,YACxB,IAAY,EAAI,GAAM,EACtB,IAAY,EAAI,EAAE,CAAC,EACnB,IAAU,EAAI,EAAE,EAChB,IAAW,EAAI,GAAG,EAClB,IAAQ,EAAI,EAAE,EAEd,IAAY,EAAI,EAAE,CAAC,EACnB,IAAU;GACd;IACE,OAAO;IACP,WAAW;IACX,OAAO;IACR;GACD;IACE,OAAO,EAAE,KAAK;IACd,WAAW;IACX,OAAO;IACR;GACD;IACE,OAAO,EAAE,MAAM;IACf,WAAW;IACX,OAAO;IACR;GACD;IACE,OAAO,EAAE,KAAK;IACd,WAAW;IACX,OAAO;IACR;GACF,EACK,IAAkB,EAAI,EAAE,CAAC,EACzB,UAAuB;AAC3B,OAAI,CAAC,EAAM,UACT;AAEF,KAAQ,QAAQ;GAChB,IAAM,IAAa,CACjB;IACE,YAAY;IACZ,UAAU;IACV,OAAO,CAAC,EAAM,UAAU;IACxB,QAAQ;IACR,YAAY;IACb,CACF;AAmBD,GAlBI,EAAU,OAAO,SAAS,KAC5B,EAAW,KAAK;IACd,YAAY;IACZ,UAAU;IACV,OAAO,CAAC,EAAU,MAAM,IAAI,EAAU,MAAM,GAAG;IAC/C,QAAQ;IACR,YAAY;IACb,CAAC,EAWJ,EAToB;IAClB,QAAQ,GAAa;IACrB,SAAS,EAAQ;IACjB,UAAU,EAAS;IACnB,eAAe;IACf,eAAe;KAAC;KAAM;KAAe;KAAY;KAAU;IAC3D,aAAa,CAAC,MAAM;IACpB,YAAY,CAAC,EAAW;IACzB,EACuB,2CAA2C,CAAC,MAAM,MAAa;AAKrF,IAJA,EAAU,QAAQ,EAAI,MACtB,EAAM,QAAQ,EAAI,OAClB,EAAQ,QAAQ,EAAI,SACpB,EAAS,QAAQ,EAAI,UACrB,EAAQ,QAAQ;KAChB;KAEE,UAAyB;AAC7B,MAAgB;KAEZ,IAAc,QACX,EAAkB,KAAK,MAAc,EAAK,MAAM,CACvD,EACI,IAAe,EACnB,MAAM,YACP,EACK,UAA8B;AAClC,KAAkB,EAAgB,MAAM;KAGpC,KAAoB,GAAa,MAAgB;GACrD,IAAM,IAAO,EAAK,MAAM,MAAc,EAAK,UAAU,EAAI;AACzD,OAAI,EACF,QAAO;AAEP,QAAK,IAAI,IAAI,GAAG,IAAI,EAAK,QAAQ,IAC/B,KAAI,EAAK,GAAG,oBAAoB,OAAO;IACrC,IAAM,IAAS,EAAiB,EAAK,GAAG,UAAU,EAAI;AACtD,QAAI,EACF,QAAO;;AAKf,UAAO;KAGH,KAAoB,GAAc,MAAiB;AACnD,KAAQ,UAAU,KAAQ,EAAS,UAAU,MAGjD,EAAQ,QAAQ,KAAQ,GACxB,EAAS,QAAQ,KAAQ,IACzB,GAAgB;KAEZ,KAAkB,MACf,IAAW,GAEd,KAAqB,MAAuB;AAShD,KARkB,EAAS;IACzB,WAAW;IACX,aAAa;IACb,QAAQ,GAAa;IACrB,QAAQ,EAAM;IACd,KAAK,MAAc;IACnB,cAAc;IACf,CAAC,CACiB;KAEf,KAAsB,MAAe;AACzC,KAAM,QAAQ;IACZ,OAAO,EAAE,cAAc;IACvB,YAAY;AACV,OAAa,EAAG;;IAEnB,CAAC;KAGE,IAA0B,OAC9B,GACA,GACA,MACG;GAiBH,IAAM,IAAM,MAAM,EAPE;IAClB;IACA,eAAe;IACf,eAAe;KAAC;KAAM;KAAe;KAAU;IAC/C,aAAa,CAAC,MAAM;IACpB,YAAY,CAdK,CACjB;KACE,YAAY;KACZ,UAAU;KACV,OAAO,CAAC,EAAW;KACnB,QAAQ;KACR,YAAY;KACb,CACF,CAMyB;IACzB,EACyC,2CAA2C;AACrF,OAAI,EAAI,KAAK,SAAS,GAAG;IACvB,IAAM,IAAO,EAAI,KAAK;AAGtB,WADA,MAAM,EAAW;KAAE;KAAQ,WADT;KACoB,SAAS,EAAK;KAAS,EAAE,4BAA4B,EACpF;SAEP,QAAO;KAGL,IAAe,OAAO,MAAe;AACzC,KAAQ,QAAQ;AAChB,OAAI;AAEF,IADY,MAAM,EAAwB,GAAI,GAAa,IAAI,EAAM,UAAU,IAE7E,EAAK,gBAAgB,EACrB,EAAQ,QAAQ,EAAE,OAAO,CAAC,IAE1B,EAAQ,MAAM,EAAE,OAAO,CAAC;WAEZ;AACd,MAAQ,MAAM,EAAE,OAAO,CAAC;aAChB;AACR,MAAQ,QAAQ;;;AAapB,SAVA,QACQ,EAAM,iBACN;AACJ,MAAgB;IAEnB,EACD,QAAgB;AACd,MAAgB;IAChB,EAEK;GACL;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;;CAEJ,CAAC,QCxUK,OAAM,mBAAiB,QACpB,OAAM,yBAAuB;;;yBADrC,EA6BM,OA7BN,GA6BM;EA5BJ,EAA4D,QAA5D,GAA4D,EAArB,EAAA,GAAE,OAAA,CAAA,GAAW,KAAC,EAAA;EACrD,EAQE,GAAA;GAPQ,OAAO,EAAA;qCAAA,EAAA,YAAS;GACxB,OAAA;IAAA,OAAA;IAAA,gBAAA;IAAwC;GACvC,YAAY;GACZ,aAAW,CAAG,EAAA,GAAE,OAAA,EAAU,EAAA,GAAE,OAAA,CAAA;GAC5B,UAAU,EAAA,QAAA,uBAAiC;GAC3C,gBAAc;GACd,UAAQ,EAAA;;;;;;EAEX,EAiBiB,GAAA,MAAA;oBAVJ,CANX,EAMW,GAAA;IALT,MAAK;IACJ,SAAO,EAAA;IACP,UAAU,EAAA,gBAAgB,WAAM;;qBAEjB,CAAA,EAAA,EAAb,EAAA,GAAE,OAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;mCAEP,EAQW,GAAA;IAPT,MAAK;IACJ,SAAO,EAAA;;IAEG,MAAI,QACK,CAAlB,EAAkB,EAAA,CAAA,CAAA;qBAEpB,CAAA,EADW,MACX,EAAG,EAAA,GAAE,KAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;;;;KAIX,EA2DU,GAAA;EA1DA,iBAAiB,EAAA;8CAAA,EAAA,kBAAe;EACvC,YAAY,EAAA;EACZ,SAAS,EAAA;EACT,SAAS,EAAA;EACT,cAAc,EAAA;EACd,YAAU;YAAmB,EAAA;aAAyB,EAAA;UAAuB,EAAA;aAAuB,EAAA;;;oBAAmG,EAAA;;EASvM,QAAM,EAAA,GAAO,EAAA,SAAM,KAAA;EACpB,QAAO;;EAEI,UAAQ,GAiBN,EAjBU,WAAQ,gBAAM,CACnB,EAAO,cAAS,cAAA,GAAA,EAAhC,EAgBW,GAAA,EAAA,KAAA,GAAA,EAAA,CAdD,EAAO,WAAQ,KAAA,GAAA,EADvB,EAaE,GAAA;;GAXC,SAAS,EAAA,eAAe,EAAO,SAAQ;GACvC,gBAAc;GACf,OAAA,EAAA,OAAA,SAAoB;GACnB,aAAW;GACX,aAA0B,EAAA,eAAe,EAAO,SAAQ,GAAA,KAAA,YAAiD,EAAA,eAAe,EAAO,SAAQ,GAAA,KAAA,YAAA;mDAQ1I,EAAiC,QAAA,GAAA,EAAjB,EAAA,GAAE,IAAA,CAAA,EAAA,EAAA,EAAA,EAAA,GAAA,IAEC,EAAO,cAAS,YAAA,GAAA,EAArC,EAkBW,GAAA,EAAA,KAAA,GAAA,EAAA,CAjBT,EAOW,GAAA;GANT,MAAK;GACL,MAAK;GACJ,UAAU,EAAO,YAAO;GACxB,UAAK,MAAE,EAAA,kBAAiB,CAAE,EAAO,SAAS,EAAO,GAAE,CAAA;;oBAEtC,CAAA,EAAA,EAAX,EAAA,GAAE,KAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;kCAGP,EAOW,GAAA;GANT,MAAK;GACL,MAAK;GACL,QAAA;GACC,UAAK,MAAE,EAAA,mBAAmB,EAAO,GAAE;;oBAEtB,CAAA,EAAA,EAAX,EAAA,GAAE,KAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;oCAGT,EAEW,GAAA,EAAA,KAAA,GAAA,EAAA,CAAA,EAAA,EADN,EAAO,EAAO,WAAS,EAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA;;;;;;;;;;;;iFCoBlC,IAAe,EAAgB;CAC7B,MAAM;CACN,OAAO;EACL,WAAW;GACT,MAAM;GACN,SAAS;GACV;EACD,QAAQ;GACN,MAAM;GACN,SAAS;GACV;EACF;CACD,YAAY,EAAE;CACd,OAAO,CAAC,gBAAgB;CACxB,MAAM,GAAO,EAAE,WAAQ;EACrB,IAAM,IAAoB,GAAsB,EAC1C,EAAE,SAAM,GAAS,EACjB,IAAU,EAAI,GAAM,EAEpB,IADY,GAAc,CACF,YACxB,IAAY,EAAI,GAAM,EACtB,IAAY,EAAI,EAAE,CAAC,EACnB,IAAU,EAAI,EAAE,EAChB,IAAW,EAAI,GAAG,EAClB,IAAQ,EAAI,EAAE,EAEd,IAAY,EAAI,EAAE,CAAC,EACnB,IAAU;GACd;IACE,OAAO;IACP,WAAW;IACX,OAAO;IACR;GACD;IACE,OAAO,EAAE,KAAK;IACd,WAAW;IACX,OAAO;IACR;GACD;IACE,OAAO,EAAE,MAAM;IACf,WAAW;IACX,OAAO;IACR;GACD;IACE,OAAO,EAAE,KAAK;IACd,WAAW;IACX,OAAO;IACR;GACF,EACK,IAAkB,EAAI,EAAE,CAAC,EACzB,UAAuB;AAC3B,OAAI,CAAC,EAAM,UACT;AAEF,KAAQ,QAAQ;GAChB,IAAM,IAAa,CACjB;IACE,YAAY;IACZ,UAAU;IACV,OAAO,CAAC,EAAM,UAAU;IACxB,QAAQ;IACR,YAAY;IACb,CACF;AAmBD,GAlBI,EAAU,OAAO,SAAS,KAC5B,EAAW,KAAK;IACd,YAAY;IACZ,UAAU;IACV,OAAO,CAAC,EAAU,MAAM,IAAI,EAAU,MAAM,GAAG;IAC/C,QAAQ;IACR,YAAY;IACb,CAAC,EAWJ,EAToB;IAClB,QAAQ,GAAa;IACrB,SAAS,EAAQ;IACjB,UAAU,EAAS;IACnB,eAAe;IACf,eAAe;KAAC;KAAM;KAAe;KAAY;KAAU;IAC3D,aAAa,CAAC,MAAM;IACpB,YAAY,CAAC,EAAW;IACzB,EACuB,iDAAiD,CAAC,MAAM,MAAa;AAK3F,IAJA,EAAU,QAAQ,EAAI,MACtB,EAAM,QAAQ,EAAI,OAClB,EAAQ,QAAQ,EAAI,SACpB,EAAS,QAAQ,EAAI,UACrB,EAAQ,QAAQ;KAChB;KAEE,UAAyB;AAC7B,MAAgB;KAEZ,IAAc,QACX,EAAkB,KAAK,MAAc,EAAK,MAAM,CACvD,EACI,IAAe,EACnB,MAAM,YACP,EACK,UAA8B;AAClC,KAAkB,EAAgB,MAAM;KAGpC,KAAoB,GAAa,MAAgB;GACrD,IAAM,IAAO,EAAK,MAAM,MAAc,EAAK,UAAU,EAAI;AACzD,OAAI,EACF,QAAO;AAEP,QAAK,IAAI,IAAI,GAAG,IAAI,EAAK,QAAQ,IAC/B,KAAI,EAAK,GAAG,oBAAoB,OAAO;IACrC,IAAM,IAAS,EAAiB,EAAK,GAAG,UAAU,EAAI;AACtD,QAAI,EACF,QAAO;;AAKf,UAAO;KAGH,KAAoB,GAAc,MAAiB;AACnD,KAAQ,UAAU,KAAQ,EAAS,UAAU,MAGjD,EAAQ,QAAQ,KAAQ,GACxB,EAAS,QAAQ,KAAQ,IACzB,GAAgB;KAEZ,KAAkB,MACf,IAAW,GAEd,KAAqB,MAAuB;AAShD,KARkB,EAAS;IACzB,WAAW,QAA2B,OAAO,kDAA0C;IACvF,aAAa;IACb,QAAQ,GAAa;IACrB,QAAQ,EAAM;IACd,KAAK,MAAc;IACnB,cAAc;IACf,CAAC,CACiB;KAEf,KAAsB,MAAe;AACzC,KAAM,QAAQ;IACZ,OAAO,EAAE,cAAc;IACvB,YAAY;AACV,OAAa,EAAG;;IAEnB,CAAC;KAGE,IAA0B,OAC9B,GACA,GACA,MACG;GAiBH,IAAM,IAAM,MAAM,EAPE;IAClB;IACA,eAAe;IACf,eAAe;KAAC;KAAM;KAAe;KAAU;IAC/C,aAAa,CAAC,MAAM;IACpB,YAAY,CAdK,CACjB;KACE,YAAY;KACZ,UAAU;KACV,OAAO,CAAC,EAAW;KACnB,QAAQ;KACR,YAAY;KACb,CACF,CAMyB;IACzB,EACyC,iDAAiD;AAC3F,OAAI,EAAI,KAAK,SAAS,GAAG;IACvB,IAAM,IAAO,EAAI,KAAK;AAOtB,WALA,MAAM,EAEJ;KAAE;KAAQ,WAHM;KAGK,SAAS,EAA0B,EAAK,QAAO;KAAG,EACvE,kCACD,EACM;SAEP,QAAO;KAGL,IAAe,OAAO,MAAe;AACzC,KAAQ,QAAQ;AAChB,OAAI;AAEF,IADY,MAAM,EAAwB,GAAI,GAAa,IAAI,EAAM,UAAU,IAE7E,EAAK,gBAAgB,EACrB,EAAQ,QAAQ,EAAE,OAAO,CAAC,IAE1B,EAAQ,MAAM,EAAE,OAAO,CAAC;WAEZ;AACd,MAAQ,MAAM,EAAE,OAAO,CAAC;aAChB;AACR,MAAQ,QAAQ;;;AAapB,SAVA,QACQ,EAAM,iBACN;AACJ,MAAgB;IAEnB,EACD,QAAgB;AACd,MAAgB;IAChB,EAEK;GACL;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;;CAEJ,CAAC,QCrVK,OAAM,mBAAiB,QACpB,OAAM,yBAAuB;;;yBADrC,EA6BM,OA7BN,GA6BM;EA5BJ,EAA4D,QAA5D,GAA4D,EAArB,EAAA,GAAE,OAAA,CAAA,GAAW,KAAC,EAAA;EACrD,EAQE,GAAA;GAPQ,OAAO,EAAA;qCAAA,EAAA,YAAS;GACxB,OAAA;IAAA,OAAA;IAAA,gBAAA;IAAwC;GACvC,YAAY;GACZ,aAAW,CAAG,EAAA,GAAE,OAAA,EAAU,EAAA,GAAE,OAAA,CAAA;GAC5B,UAAU,EAAA,QAAA,uBAAiC;GAC3C,gBAAc;GACd,UAAQ,EAAA;;;;;;EAEX,EAiBiB,GAAA,MAAA;oBAVJ,CANX,EAMW,GAAA;IALT,MAAK;IACJ,SAAO,EAAA;IACP,UAAU,EAAA,gBAAgB,WAAM;;qBAEjB,CAAA,EAAA,EAAb,EAAA,GAAE,OAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;mCAEP,EAQW,GAAA;IAPT,MAAK;IACJ,SAAO,EAAA;;IAEG,MAAI,QACK,CAAlB,EAAkB,EAAA,CAAA,CAAA;qBAEpB,CAAA,EADW,MACX,EAAG,EAAA,GAAE,KAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;;;;KAIX,EA2DU,GAAA;EA1DA,iBAAiB,EAAA;8CAAA,EAAA,kBAAe;EACvC,YAAY,EAAA;EACZ,SAAS,EAAA;EACT,SAAS,EAAA;EACT,cAAc,EAAA;EACd,YAAU;YAAmB,EAAA;aAAyB,EAAA;UAAuB,EAAA;aAAuB,EAAA;;;oBAAmG,EAAA;;EASvM,QAAM,EAAA,GAAO,EAAA,SAAM,KAAA;EACpB,QAAO;;EAEI,UAAQ,GAiBN,EAjBU,WAAQ,gBAAM,CACnB,EAAO,cAAS,cAAA,GAAA,EAAhC,EAgBW,GAAA,EAAA,KAAA,GAAA,EAAA,CAdD,EAAO,WAAQ,KAAA,GAAA,EADvB,EAaE,GAAA;;GAXC,SAAS,EAAA,eAAe,EAAO,SAAQ;GACvC,gBAAc;GACf,OAAA,EAAA,OAAA,SAAoB;GACnB,aAAW;GACX,aAA0B,EAAA,eAAe,EAAO,SAAQ,GAAA,KAAA,YAAiD,EAAA,eAAe,EAAO,SAAQ,GAAA,KAAA,YAAA;mDAQ1I,EAAiC,QAAA,GAAA,EAAjB,EAAA,GAAE,IAAA,CAAA,EAAA,EAAA,EAAA,EAAA,GAAA,IAEC,EAAO,cAAS,YAAA,GAAA,EAArC,EAkBW,GAAA,EAAA,KAAA,GAAA,EAAA,CAjBT,EAOW,GAAA;GANT,MAAK;GACL,MAAK;GACJ,UAAU,EAAO,YAAO;GACxB,UAAK,MAAE,EAAA,kBAAiB,CAAE,EAAO,SAAS,EAAO,GAAE,CAAA;;oBAEtC,CAAA,EAAA,EAAX,EAAA,GAAE,KAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;kCAGP,EAOW,GAAA;GANT,MAAK;GACL,MAAK;GACL,QAAA;GACC,UAAK,MAAE,EAAA,mBAAmB,EAAO,GAAE;;oBAEtB,CAAA,EAAA,EAAX,EAAA,GAAE,KAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;oCAGT,EAEW,GAAA,EAAA,KAAA,GAAA,EAAA,CAAA,EAAA,EADN,EAAO,EAAO,WAAS,EAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA;;;;;;;;;;;;;;AC5BlC,IAAA,IAAe,EAAgB;CAC7B,MAAM;CACN,OAAO;EACL,cAAc;GACZ,MAAM;GAMN,UAAU;GACX;EACD,QAAQ;GACN,MAAM;GACN,SAAS;GACV;EACF;CACD,YAAY;EACV,oBAAA;EACA,oBAAA;EACA;EACA,mBAAA;EACD;CAED,MAAM,GAAO;EACX,IAAM,IAAoB,GAAsB,EAC1C,IAAY,EAAI,uBAAuB,EACvC,IAAU,EAAI,GAAM,EAEpB,IADY,GAAc,CACP,QACnB,IAAa,QACV,EAAM,SAAS,GACtB,EACI,IAAe,EAAS,KAAK;AAKnC,SAAO;GACL;GACA;GACA;GACA;GACA;GACA;GACA,WAXgB,MAAa;AAC7B,MAAa,QAAQ;;GAWtB;;CAEJ,CAAC;;CC/FQ,OAAM;;;;aAZd,EAiDM,OAAA,MAAA,CAhDJ,EA+CW,GAAA,EA/CA,OAAK,EAAA,EAAA,QAAY,EAAA,aAAU,MAAA,CAAA,EAAA,EAAA;mBAOnB,CANjB,EAMiB,GAAA;GALf,OAAM;GACN,OAAA,EAAA,OAAA,SAAoB;GACnB,OAAO;;oBAEkD,CAA1D,EAA0D,GAAA,EAAtC,UAAQ,EAAA,UAAQ,EAAA,MAAA,GAAA,CAAA,WAAA,CAAA,CAAA,CAAA;;MAEtC,EAsCmB,GAAA,EAtCD,OAAM,qBAAmB,EAAA;oBAMnC,CAJG,EAAA,gBAGkB,GAAA,EAGzB,EA4BS,GAAA;;IA5BO,WAAW,EAAA;0CAAA,EAAA,YAAS;;qBASrB;KARb,EAQa,GAAA;MAPX,KAAI;MACJ,KAAI;;uBAKoB,CAHxB,EAGwB,GAAA;OAFrB,cAAY,EAAA,cAAc;OAC1B,QAAQ,EAAA;;;;KAGb,EAQa,GAAA;MAPX,KAAI;MACJ,KAAI;;uBAKoB,CAHxB,EAGwB,GAAA;OAFrB,cAAY,EAAA,cAAc;OAC1B,QAAQ,EAAA;;;;KAGb,EAQa,GAAA;MAPX,KAAI;MACJ,KAAI;;uBAK0B,CAH9B,EAG8B,GAAA;OAF3B,cAAY,EAAA,cAAc;OAC1B,QAAQ,EAAA;;;;;;4BA/BR,GAAA,EADT,EAKM,OALN,GAKM,CADJ,EAAsC,GAAA,EAA5B,aAAa,EAAA,GAAE,QAAA,EAAA,EAAA,MAAA,GAAA,CAAA,cAAA,CAAA,CAAA,CAAA"}
|
|
@@ -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"}
|