buli
2023-04-20 f0bccccbb88d93ac05010c17d4b2e0cb22a2ce9a
backup0420
40个文件已修改
1个文件已删除
872个文件已添加
41689 ■■■■■ 已修改文件
force-app/main/default/classes/DNUpsertBatch.cls 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/OCMManagementProvinceWebService.cls 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/updateESignBatch.cls 247 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/updateESignBatchAttachment.cls 1305 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/updateESignBatchAttachment.cls-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/afterRenderHook/afterRenderHook.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/afterRenderHook/afterRenderHook.js 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/afterRenderHook/afterRenderHook.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/afterRenderHookWrapper/afterRenderHookWrapper.html 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/afterRenderHookWrapper/afterRenderHookWrapper.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/afterRenderHookWrapper/afterRenderHookWrapper.js-meta.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/apexUtils/apexUtils.js 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/apexUtils/apexUtils.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/batchSelectRepairLWC/batchSelectRepairLWC.css 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/batchSelectRepairLWC/batchSelectRepairLWC.html 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/batchSelectRepairLWC/batchSelectRepairLWC.js 576 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/batchSelectRepairLWC/batchSelectRepairLWC.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/beforeRenderHook/beforeRenderHook.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/beforeRenderHook/beforeRenderHook.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/beforeRenderHook/beforeRenderHook.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/beforeRenderHookWrapper/beforeRenderHookWrapper.html 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/beforeRenderHookWrapper/beforeRenderHookWrapper.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/beforeRenderHookWrapper/beforeRenderHookWrapper.js-meta.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/binding/binding.css 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/binding/binding.html 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/binding/binding.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/binding/binding.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/bindingWrapper/bindingWrapper.html 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/bindingWrapper/bindingWrapper.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/bindingWrapper/bindingWrapper.js-meta.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/boxorpieceType/boxorpieceType.html 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/boxorpieceType/boxorpieceType.js 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/boxorpieceType/boxorpieceType.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/cancelApplyLWC/cancelApplyLWC.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/cancelApplyLWC/cancelApplyLWC.js 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/cancelApplyLWC/cancelApplyLWC.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/childComponentTest/childComponentTest.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/childComponentTest/childComponentTest.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/createMixedRecordsApex/createMixedRecordsApex.html 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/createMixedRecordsApex/createMixedRecordsApex.js 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/createMixedRecordsApex/createMixedRecordsApex.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/createMixedRecordsApexWrapper/createMixedRecordsApexWrapper.html 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/createMixedRecordsApexWrapper/createMixedRecordsApexWrapper.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/createMixedRecordsApexWrapper/createMixedRecordsApexWrapper.js-meta.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/createMixedRecordsWireFunctions/createMixedRecordsWireFunctions.html 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/createMixedRecordsWireFunctions/createMixedRecordsWireFunctions.js 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/createMixedRecordsWireFunctions/createMixedRecordsWireFunctions.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/createMixedRecordsWireFunctionsWrapper/createMixedRecordsWireFunctionsWrapper.html 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/createMixedRecordsWireFunctionsWrapper/createMixedRecordsWireFunctionsWrapper.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/createMixedRecordsWireFunctionsWrapper/createMixedRecordsWireFunctionsWrapper.js-meta.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/createRecordWithPrepopulatedValues/createRecordWithPrepopulatedValues.html 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/createRecordWithPrepopulatedValues/createRecordWithPrepopulatedValues.js 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/createRecordWithPrepopulatedValues/createRecordWithPrepopulatedValues.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/createRecordWithPrepopulatedValuesWrapper/createRecordWithPrepopulatedValuesWrapper.html 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/createRecordWithPrepopulatedValuesWrapper/createRecordWithPrepopulatedValuesWrapper.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/createRecordWithPrepopulatedValuesWrapper/createRecordWithPrepopulatedValuesWrapper.js-meta.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/customDelete/customDelete.html 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/customDelete/customDelete.js 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/customDelete/customDelete.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/customLightningDatatable/customLightningDatatable.html 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/customLightningDatatable/customLightningDatatable.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/customLightningDatatable/customLightningDatatable.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/customLightningDatatable/templates/boxorpieceType.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/customShipmentAmountComp/customShipmentAmountComp.html 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/customShipmentAmountComp/customShipmentAmountComp.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/customShipmentAmountComp/customShipmentAmountComp.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/customShipmentNumberComp/customShipmentNumberComp.html 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/customShipmentNumberComp/customShipmentNumberComp.js 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/customShipmentNumberComp/customShipmentNumberComp.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/customShippingUnitPriceComp/customShippingUnitPriceComp.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/customShippingUnitPriceComp/customShippingUnitPriceComp.js 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/customUnitComp/customUnitComp.html 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/customUnitComp/customUnitComp.js 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/datatableWithCustomTypes/datatableWithCustomTypes.html 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/datatableWithCustomTypes/datatableWithCustomTypes.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/datatableWithCustomTypes/datatableWithCustomTypes.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/datatableWithCustomTypes/navigateToRecordTemplate.html 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/demoLWC/demoLWC.html 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/demoLWC/demoLWC.js 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/demoLWC/demoLWC.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/demoWrapper/demoWrapper.html 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/demoWrapper/demoWrapper.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/demoWrapper/demoWrapper.js-meta.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/editRecord/editRecord.html 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/editRecord/editRecord.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/editRecord/editRecord.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/editRecordWrapper/editRecordWrapper.html 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/editRecordWrapper/editRecordWrapper.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/editRecordWrapper/editRecordWrapper.js-meta.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/editableList/__mocks__/editableList.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/editableList/editableList.css 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/editableList/editableList.html 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/editableList/editableList.js 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/editableList/editableList.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/editableListWrapper/editableListWrapper.html 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/editableListWrapper/editableListWrapper.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/editableListWrapper/editableListWrapper.js-meta.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/errorPanel/errorPanel.js 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/errorPanel/errorPanel.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/errorPanel/templates/inlineMessage.html 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/errorPanel/templates/noDataIllustration.html 257 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/errorPopover/errorPopover.html 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/errorPopover/errorPopover.js 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/errorPopover/errorPopover.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/exampleWrapper/__mocks__/exampleWrapper.js 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/exampleWrapper/__mocks__/exampleWrapperTemplate.html 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/exampleWrapper/exampleWrapper.css 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/exampleWrapper/exampleWrapper.html 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/exampleWrapper/exampleWrapper.js 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/exampleWrapper/exampleWrapper.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/gzwbtest/gzwbtest.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/gzwbtest/gzwbtest.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/gzwbtest/gzwbtest.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/improvedForecastTime/improvedForecastTime.html 262 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/improvedForecastTime/improvedForecastTime.js 487 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/interoperability/interoperability.css 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/interoperability/interoperability.html 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/interoperability/interoperability.js 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/interoperability/interoperability.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/inventoryEditingLWC/inventoryEditingLWC.html 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/inventoryEditingLWC/inventoryEditingLWC.js 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/inventoryEditingLWC/inventoryEditingLWC.js-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/inventoryViewLWC/inventoryViewLWC.html 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/inventoryViewLWC/inventoryViewLWC.js 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/inventoryViewLWC/inventoryViewLWC.js-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/jzlookup/jzlookup.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lWtTEST/lWtTEST.html 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lWtTEST/lWtTEST.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lWtTEST/lWtTEST.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/ldsUtils/__mocks__/ldsUtils.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/ldsUtils/ldsUtils.js 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/ldsUtils/ldsUtils.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexASACEditor/lexASACEditor.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexASACEditor/lexASACEditor.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexASACEditor/lexASACEditor.js 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexASACEditor/lexASACEditor.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexASACEditorRepair/lexASACEditorRepair.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexASACEditorRepair/lexASACEditorRepair.js 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexASACEditorRepair/lexASACEditorRepair.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexASRCEditor/lexASRCEditor.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexASRCEditor/lexASRCEditor.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexASRCEditor/lexASRCEditor.js 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexASRCEditor/lexASRCEditor.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexASRCEditorRepair/lexASRCEditorRepair.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexASRCEditorRepair/lexASRCEditorRepair.js 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexASRCEditorRepair/lexASRCEditorRepair.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAddSubmitApprovalProcess/lexAddSubmitApprovalProcess.css 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAddSubmitApprovalProcess/lexAddSubmitApprovalProcess.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAddSubmitApprovalProcess/lexAddSubmitApprovalProcess.js 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAddSubmitApprovalProcess/lexAddSubmitApprovalProcess.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAddress/lexAddress.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAddress/lexAddress.js 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAddress/lexAddress.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAgencyAuthorize/lexAgencyAuthorize.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAgencyAuthorize/lexAgencyAuthorize.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAgencyAuthorize/lexAgencyAuthorize.js 198 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAgencyAuthorize/lexAgencyAuthorize.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAllReceivedFse/lexAllReceivedFse.css 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAllReceivedFse/lexAllReceivedFse.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAllReceivedFse/lexAllReceivedFse.js 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAllReceivedFse/lexAllReceivedFse.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAppCancelSubmit/lexAppCancelSubmit.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAppCancelSubmit/lexAppCancelSubmit.js 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAppCancelSubmit/lexAppCancelSubmit.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAppSubmitButton/lexAppSubmitButton.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAppSubmitButton/lexAppSubmitButton.js 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAppSubmitButton/lexAppSubmitButton.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexArriveGoodsMain/lexArriveGoodsMain.html 254 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexArriveGoodsMain/lexArriveGoodsMain.js 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexArriveGoodsMain/lexArriveGoodsMain.js-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAssetMaintainDetail/lexAssetMaintainDetail.css 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAssetMaintainDetail/lexAssetMaintainDetail.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAssetMaintainDetail/lexAssetMaintainDetail.js 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAssetMaintainDetail/lexAssetMaintainDetail.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAssetMaintainPage/lexAssetMaintainPage.html 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAssetMaintainPage/lexAssetMaintainPage.js 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAssetMaintainPage/lexAssetMaintainPage.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexBatchSelectRepairLWC/lexBatchSelectRepairLWC.css 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexBatchSelectRepairLWC/lexBatchSelectRepairLWC.html 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexBatchSelectRepairLWC/lexBatchSelectRepairLWC.js 576 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexBatchSelectRepairLWC/lexBatchSelectRepairLWC.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexBeforeOPDPDFBtn/lexBeforeOPDPDFBtn.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexBeforeOPDPDFBtn/lexBeforeOPDPDFBtn.html 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexBeforeOPDPDFBtn/lexBeforeOPDPDFBtn.js 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexBeforeOPDPDFBtn/lexBeforeOPDPDFBtn.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexBeforeOPDPDFBtnSIS/lexBeforeOPDPDFBtnSIS.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexBeforeOPDPDFBtnSIS/lexBeforeOPDPDFBtnSIS.html 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexBeforeOPDPDFBtnSIS/lexBeforeOPDPDFBtnSIS.js 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexBeforeOPDPDFBtnSIS/lexBeforeOPDPDFBtnSIS.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexBidAnnouncementApplyForButton/lexBidAnnouncementApplyForButton.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexBidAnnouncementApplyForButton/lexBidAnnouncementApplyForButton.js 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexBidAnnouncementApplyForButton/lexBidAnnouncementApplyForButton.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexBidAnnouncementConsentButton/lexBidAnnouncementConsentButton.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexBidAnnouncementConsentButton/lexBidAnnouncementConsentButton.js 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexBidAnnouncementConsentButton/lexBidAnnouncementConsentButton.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexBidAnnouncementRejectButton/lexBidAnnouncementRejectButton.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexBidAnnouncementRejectButton/lexBidAnnouncementRejectButton.js 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexBidAnnouncementRejectButton/lexBidAnnouncementRejectButton.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCancel/lexCancel.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCancel/lexCancel.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCancel/lexCancel.js 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCancel/lexCancel.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCancelApply/lexCancelApply.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCancelApply/lexCancelApply.js 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCancelApply/lexCancelApply.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCancelRemoveBox/lexCancelRemoveBox.html 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCancelRemoveBox/lexCancelRemoveBox.js 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCancelRemoveBox/lexCancelRemoveBox.js-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCancelReport/lexCancelReport.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCancelReport/lexCancelReport.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCancelReport/lexCancelReport.js 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCancelReport/lexCancelReport.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCancelSelect/lexCancelSelect.css 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCancelSelect/lexCancelSelect.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCancelSelect/lexCancelSelect.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCancelSelect/lexCancelSelect.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCancelSubmit/lexCancelSubmit.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCancelSubmit/lexCancelSubmit.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCancelSubmit/lexCancelSubmit.js 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCancelSubmit/lexCancelSubmit.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCancelSubmitReport/lexCancelSubmitReport.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCancelSubmitReport/lexCancelSubmitReport.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCancelSubmitReport/lexCancelSubmitReport.js 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCancelSubmitReport/lexCancelSubmitReport.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexClearReturnDeliverySlip/lexClearReturnDeliverySlip.css 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexClearReturnDeliverySlip/lexClearReturnDeliverySlip.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexClearReturnDeliverySlip/lexClearReturnDeliverySlip.js 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexClearReturnDeliverySlip/lexClearReturnDeliverySlip.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexComplete/lexComplete.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexComplete/lexComplete.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexComplete/lexComplete.js 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexComplete/lexComplete.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexConInvoiceView/lexConInvoiceView.css 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexConInvoiceView/lexConInvoiceView.html 462 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexConInvoiceView/lexConInvoiceView.js 970 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexConInvoiceView/lexConInvoiceView.js-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexConsumable/lexConsumable.css 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexConsumable/lexConsumable.html 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexConsumable/lexConsumable.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexContractdetailpdf/lexContractdetailpdf.css 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexContractdetailpdf/lexContractdetailpdf.html 350 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexContractdetailpdf/lexContractdetailpdf.js 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexContractdetailpdf/lexContractdetailpdf.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCopyPIInspectionReport/lexCopyPIInspectionReport.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCopyPIInspectionReport/lexCopyPIInspectionReport.js 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCopyPIInspectionReport/lexCopyPIInspectionReport.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCopyPIOnCall/lexCopyPIOnCall.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCopyPIOnCall/lexCopyPIOnCall.js 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCopyPIOnCall/lexCopyPIOnCall.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCopyRepair/lexCopyRepair.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCopyRepair/lexCopyRepair.js 218 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCopyRepair/lexCopyRepair.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCreateEvent/lexCreateEvent.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCreateEvent/lexCreateEvent.js 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCreateEvent/lexCreateEvent.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCreateNotesEmail/lexCreateNotesEmail.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCreateNotesEmail/lexCreateNotesEmail.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCreateNotesEmail/lexCreateNotesEmail.js 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCreateNotesEmail/lexCreateNotesEmail.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCreateRepair/lexCreateRepair.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCreateRepair/lexCreateRepair.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCreateRepair/lexCreateRepair.js 231 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCreateRepair/lexCreateRepair.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCreateReportMaintenanceContract/lexCreateReportMaintenanceContract.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCreateReportMaintenanceContract/lexCreateReportMaintenanceContract.js 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCreateReportMaintenanceContract/lexCreateReportMaintenanceContract.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomAnewMaintenance/lexCustomAnewMaintenance.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomAnewMaintenance/lexCustomAnewMaintenance.js 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomAnewMaintenance/lexCustomAnewMaintenance.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomAttachmentTypeComp/lexCustomAttachmentTypeComp.html 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomAttachmentTypeComp/lexCustomAttachmentTypeComp.js 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomAttachmentTypeComp/lexCustomAttachmentTypeComp.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomClone/lexCustomClone.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomClone/lexCustomClone.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomClone/lexCustomClone.js 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomClone/lexCustomClone.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomDelete/lexCustomDelete.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomDelete/lexCustomDelete.js 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomDelete/lexCustomDelete.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomDeleteLWC/lexCustomDeleteLWC.html 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomDeleteLWC/lexCustomDeleteLWC.js 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomDeleteLWC/lexCustomDeleteLWC.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomDiffReasonComp/lexCustomDiffReasonComp.html 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomDiffReasonComp/lexCustomDiffReasonComp.js 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomDiffReasonComp/lexCustomDiffReasonComp.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomLightningDatatable/customAttachmentType.html 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomLightningDatatable/customShipmentNumber.html 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomLightningDatatable/customShippingUnitPrice.html 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomLightningDatatable/customTableInput.html 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomLightningDatatable/lexCustomDiffReason.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomLightningDatatable/lexCustomLightningDatatable.js 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomNewCopy2/lexCustomNewCopy2.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomNewCopy2/lexCustomNewCopy2.js 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomNewCopy2/lexCustomNewCopy2.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomNewMCMaintenance/lexCustomNewMCMaintenance.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomNewMCMaintenance/lexCustomNewMCMaintenance.js 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomNewMCMaintenance/lexCustomNewMCMaintenance.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomNewMaintenance/lexCustomNewMaintenance.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomNewMaintenance/lexCustomNewMaintenance.js 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomNewMaintenance/lexCustomNewMaintenance.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomSubmit/lexCustomSubmit.css 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomSubmit/lexCustomSubmit.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomSubmit/lexCustomSubmit.js 158 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomSubmit/lexCustomSubmit.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomTableInput/lexCustomTableInput.html 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomTableInput/lexCustomTableInput.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexCustomTableInput/lexCustomTableInput.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexDeleteQuotePage/lexDeleteQuotePage.html 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexDeleteQuotePage/lexDeleteQuotePage.js 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexDeleteQuotePage/lexDeleteQuotePage.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexDetailBulkUpdate/lexDetailBulkUpdate.css 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexDetailBulkUpdate/lexDetailBulkUpdate.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexDetailBulkUpdate/lexDetailBulkUpdate.js 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexDetailBulkUpdate/lexDetailBulkUpdate.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexDispatchOCSMQARA/lexDispatchOCSMQARA.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexDispatchOCSMQARA/lexDispatchOCSMQARA.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexDispatchOCSMQARA/lexDispatchOCSMQARA.js 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexDispatchOCSMQARA/lexDispatchOCSMQARA.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexESignAcceptanceHospital/lexESignAcceptanceHospital.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexESignAcceptanceHospital/lexESignAcceptanceHospital.js 186 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexESignAcceptanceHospital/lexESignAcceptanceHospital.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexESignFormAttachment/lexESignFormAttachment.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexESignFormAttachment/lexESignFormAttachment.js 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexESignFormAttachment/lexESignFormAttachment.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexEquipmentRentalPicturePDF/lexEquipmentRentalPicturePDF.css 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexEquipmentRentalPicturePDF/lexEquipmentRentalPicturePDF.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexEquipmentRentalPicturePDF/lexEquipmentRentalPicturePDF.js 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexEquipmentRentalPicturePDF/lexEquipmentRentalPicturePDF.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexEquipmentSetRental_Order/lexEquipmentSetRental_Order.css 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexEquipmentSetRental_Order/lexEquipmentSetRental_Order.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexEquipmentSetRental_Order/lexEquipmentSetRental_Order.js 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexEquipmentSetRental_Order/lexEquipmentSetRental_Order.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexFinLibrary/lexFinLibrary.css 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexFinLibrary/lexFinLibrary.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexFinLibrary/lexFinLibrary.js 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexFinLibrary/lexFinLibrary.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexFinLibrary2/lexFinLibrary2.css 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexFinLibrary2/lexFinLibrary2.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexFinLibrary2/lexFinLibrary2.js 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexFinLibrary2/lexFinLibrary2.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexFinLibrary3/lexFinLibrary3.css 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexFinLibrary3/lexFinLibrary3.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexFinLibrary3/lexFinLibrary3.js 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexFinLibrary3/lexFinLibrary3.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexInputSolution/lexInputSolution.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexInputSolution/lexInputSolution.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexInputSolution/lexInputSolution.js 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexInputSolution/lexInputSolution.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexInsPageBtn/lexInsPageBtn.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexInsPageBtn/lexInsPageBtn.js 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexInsPageBtn/lexInsPageBtn.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexInventoryCount/lexInventoryCount.html 72 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexInventoryCount/lexInventoryCount.js 595 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexLoanerArrangedEmail/lexLoanerArrangedEmail.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexLoanerArrangedEmail/lexLoanerArrangedEmail.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexLoanerArrangedEmail/lexLoanerArrangedEmail.js 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexLoanerArrangedEmail/lexLoanerArrangedEmail.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexLookup/LexLookup.css 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexLookup/lexLookup.html 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexLookup/lexLookup.js 475 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexLookup/lexLookup.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexLoseBid/lexLoseBid.css 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexLoseBid/lexLoseBid.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexLoseBid/lexLoseBid.js 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexLoseBid/lexLoseBid.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexLoseReport/lexLoseReport.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexLoseReport/lexLoseReport.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexLoseReport/lexLoseReport.js 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexLoseReport/lexLoseReport.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexLostReturnDeliverySlip/lexLostReturnDeliverySlip.css 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexLostReturnDeliverySlip/lexLostReturnDeliverySlip.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexLostReturnDeliverySlip/lexLostReturnDeliverySlip.js 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexLostReturnDeliverySlip/lexLostReturnDeliverySlip.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexMailMessege/lexMailMessege.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexMailMessege/lexMailMessege.js 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexMailMessege/lexMailMessege.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexMainFixtureSelect/lexMainFixtureSelect.css 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexMainFixtureSelect/lexMainFixtureSelect.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexMainFixtureSelect/lexMainFixtureSelect.js 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexMainFixtureSelect/lexMainFixtureSelect.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexNewRepairLWC/lexNewRepairLWC.css 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexNewRepairLWC/lexNewRepairLWC.html 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexNewRepairLWC/lexNewRepairLWC.js 153 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexNewRepairLWC/lexNewRepairLWC.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexNewTransferApply/lexNewTransferApply.css 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexNewTransferApply/lexNewTransferApply.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexNewTransferApply/lexNewTransferApply.js 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexNewTransferApply/lexNewTransferApply.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCMSubmit/lexOCMSubmit.css 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCMSubmit/lexOCMSubmit.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCMSubmit/lexOCMSubmit.js 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCMSubmit/lexOCMSubmit.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCSMNoToReport/lexOCSMNoToReport.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCSMNoToReport/lexOCSMNoToReport.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCSMNoToReport/lexOCSMNoToReport.js 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCSMNoToReport/lexOCSMNoToReport.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCSMNoToReportForReport/lexOCSMNoToReportForReport.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCSMNoToReportForReport/lexOCSMNoToReportForReport.js 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCSMNoToReportForReport/lexOCSMNoToReportForReport.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCSMNoToReportLighting/lexOCSMNoToReportLighting.css 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCSMNoToReportLighting/lexOCSMNoToReportLighting.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCSMNoToReportLighting/lexOCSMNoToReportLighting.js 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCSMNoToReportLighting/lexOCSMNoToReportLighting.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCSMNoToReportRepair/lexOCSMNoToReportRepair.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCSMNoToReportRepair/lexOCSMNoToReportRepair.js 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCSMNoToReportRepair/lexOCSMNoToReportRepair.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCSMNogoods/lexOCSMNogoods.css 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCSMNogoods/lexOCSMNogoods.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCSMNogoods/lexOCSMNogoods.js 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCSMNogoods/lexOCSMNogoods.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCSMToReport/lexOCSMToReport.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCSMToReport/lexOCSMToReport.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCSMToReport/lexOCSMToReport.js 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCSMToReport/lexOCSMToReport.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCSMToReportLighting/lexOCSMToReportLighting.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCSMToReportLighting/lexOCSMToReportLighting.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCSMToReportLighting/lexOCSMToReportLighting.js 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCSMToReportLighting/lexOCSMToReportLighting.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCSMToReportRepair/lexOCSMToReportRepair.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCSMToReportRepair/lexOCSMToReportRepair.js 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOCSMToReportRepair/lexOCSMToReportRepair.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOLYwinBid/lexOLYwinBid.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOLYwinBid/lexOLYwinBid.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOLYwinBid/lexOLYwinBid.js 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOLYwinBid/lexOLYwinBid.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOPDtoSIS/lexOPDtoSIS.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOPDtoSIS/lexOPDtoSIS.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOPDtoSIS/lexOPDtoSIS.js 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOPDtoSIS/lexOPDtoSIS.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOSHInspect/lexOSHInspect.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOSHInspect/lexOSHInspect.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOSHInspect/lexOSHInspect.js 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOSHInspect/lexOSHInspect.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOSHSubmit/lexOSHSubmit.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOSHSubmit/lexOSHSubmit.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOSHSubmit/lexOSHSubmit.js 140 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOSHSubmit/lexOSHSubmit.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOutboundorderImport/lexOutboundorderImport.css 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOutboundorderImport/lexOutboundorderImport.html 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOutboundorderImport/lexOutboundorderImport.js 233 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOutboundorderImport/lexOutboundorderImport.js-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOverdueStock/lexOverdueStock.html 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOverdueStock/lexOverdueStock.js 265 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexOverdueStock/lexOverdueStock.js-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexPDFMaintenanceCommission/lexPDFMaintenanceCommission.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexPDFMaintenanceCommission/lexPDFMaintenanceCommission.js 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexPDFMaintenanceCommission/lexPDFMaintenanceCommission.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexPDFQISrequest/lexPDFQISrequest.css 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexPDFQISrequest/lexPDFQISrequest.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexPDFQISrequest/lexPDFQISrequest.js 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexPDFQISrequest/lexPDFQISrequest.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexPaymentPlanLoad/lexPaymentPlanLoad.html 276 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexPaymentPlanLoad/lexPaymentPlanLoad.js 404 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexPaymentPlanLoad/lexPaymentPlanLoad.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexPreContractSubmit/lexPreContractSubmit.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexPreContractSubmit/lexPreContractSubmit.js 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexPreContractSubmit/lexPreContractSubmit.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexPredictedDateChange/lexPredictedDateChange.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexPredictedDateChange/lexPredictedDateChange.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexPredictedDateChange/lexPredictedDateChange.js 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexPredictedDateChange/lexPredictedDateChange.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexProductRepairQuoteRepair/lexProductRepairQuoteRepair.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexProductRepairQuoteRepair/lexProductRepairQuoteRepair.js 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexProductRepairQuoteRepair/lexProductRepairQuoteRepair.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexQISAgree/lexQISAgree.css 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexQISAgree/lexQISAgree.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexQISAgree/lexQISAgree.js 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexQISAgree/lexQISAgree.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexQISIntakeuniversalcode/lexQISIntakeuniversalcode.css 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexQISIntakeuniversalcode/lexQISIntakeuniversalcode.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexQISIntakeuniversalcode/lexQISIntakeuniversalcode.js 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexQISIntakeuniversalcode/lexQISIntakeuniversalcode.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexQISSC/lexQISSC.css 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexQISSC/lexQISSC.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexQISSC/lexQISSC.js 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexQISSC/lexQISSC.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexQuarterlyReport/lexQuarterlyReport.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexQuarterlyReport/lexQuarterlyReport.js 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexQuarterlyReport/lexQuarterlyReport.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexQuotationProductNew/lexQuotationProductNew.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexQuotationProductNew/lexQuotationProductNew.js 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexQuotationProductNew/lexQuotationProductNew.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexQuotationRequest/lexQuotationRequest.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexQuotationRequest/lexQuotationRequest.html 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexQuotationRequest/lexQuotationRequest.js 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexQuotationRequest/lexQuotationRequest.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRCCDScomplete/lexRCCDScomplete.css 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRCCDScomplete/lexRCCDScomplete.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRCCDScomplete/lexRCCDScomplete.js 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRCCDScomplete/lexRCCDScomplete.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRCRecieved/lexRCRecieved.css 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRCRecieved/lexRCRecieved.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRCRecieved/lexRCRecieved.js 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRCRecieved/lexRCRecieved.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRCSubmit/lexRCSubmit.css 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRCSubmit/lexRCSubmit.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRCSubmit/lexRCSubmit.js 160 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRCSubmit/lexRCSubmit.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRCinspectioncompletedate/lexRCinspectioncompletedate.css 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRCinspectioncompletedate/lexRCinspectioncompletedate.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRCinspectioncompletedate/lexRCinspectioncompletedate.js 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRCinspectioncompletedate/lexRCinspectioncompletedate.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRemoveBox/lexRemoveBox.html 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRemoveBox/lexRemoveBox.js 221 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRemoveBox/lexRemoveBox.js-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRentalApplyCanleButton/lexRentalApplyCanleButton.css 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRentalApplyCanleButton/lexRentalApplyCanleButton.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRentalApplyCanleButton/lexRentalApplyCanleButton.js 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRentalApplyCanleButton/lexRentalApplyCanleButton.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRentalApplyDiscountApproval/lexRentalApplyDiscountApproval.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRentalApplyDiscountApproval/lexRentalApplyDiscountApproval.js 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRentalApplyDiscountApproval/lexRentalApplyDiscountApproval.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRentalApplyESetRefreshStatus/lexRentalApplyESetRefreshStatus.css 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRentalApplyESetRefreshStatus/lexRentalApplyESetRefreshStatus.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRentalApplyESetRefreshStatus/lexRentalApplyESetRefreshStatus.js 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRentalApplyESetRefreshStatus/lexRentalApplyESetRefreshStatus.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRentalApplyJump/lexRentalApplyJump.css 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRentalApplyJump/lexRentalApplyJump.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRentalApplyJump/lexRentalApplyJump.js 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRentalApplyJump/lexRentalApplyJump.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRentalApplySubmitedApprovalButton/lexRentalApplySubmitedApprovalButton.css 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRentalApplySubmitedApprovalButton/lexRentalApplySubmitedApprovalButton.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRentalApplySubmitedApprovalButton/lexRentalApplySubmitedApprovalButton.js 758 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRentalApplySubmitedApprovalButton/lexRentalApplySubmitedApprovalButton.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRequestDB/lexRequestDB.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRequestDB/lexRequestDB.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRequestDB/lexRequestDB.js 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexRequestDB/lexRequestDB.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexReturnDeliverySlip/lexReturnDeliverySlip.css 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexReturnDeliverySlip/lexReturnDeliverySlip.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexReturnDeliverySlip/lexReturnDeliverySlip.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexReturnDeliverySlip/lexReturnDeliverySlip.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSICopyDemand/lexSICopyDemand.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSICopyDemand/lexSICopyDemand.js 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSICopyDemand/lexSICopyDemand.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSINewQuoteEntry/lexSINewQuoteEntry.css 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSINewQuoteEntry/lexSINewQuoteEntry.html 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSINewQuoteEntry/lexSINewQuoteEntry.js 869 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSINewQuoteEntry/lexSINewQuoteEntry.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSISearchSetProduct/lexSISearchSetProduct.css 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSISearchSetProduct/lexSISearchSetProduct.html 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSISearchSetProduct/lexSISearchSetProduct.js 164 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSISearchSetProduct/lexSISearchSetProduct.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSIStoOPD/lexSIStoOPD.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSIStoOPD/lexSIStoOPD.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSIStoOPD/lexSIStoOPD.js 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSIStoOPD/lexSIStoOPD.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSISubmit/lexSISubmit.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSISubmit/lexSISubmit.js 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSISubmit/lexSISubmit.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSaleAndDelivery/lexSaleAndDelivery.css 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSaleAndDelivery/lexSaleAndDelivery.html 187 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSaleAndDelivery/lexSaleAndDelivery.js 415 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSaleAndDelivery/lexSaleAndDelivery.js-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSaleAndDelivery/templates/boxorpieceType.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSearchProduct/lexSearchProduct.css 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSearchProduct/lexSearchProduct.html 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSearchProduct/lexSearchProduct.js 500 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSearchProduct/lexSearchProduct.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSearchProductCs/lexSearchProductCs.css 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSearchProductCs/lexSearchProductCs.html 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSearchProductCs/lexSearchProductCs.js 279 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSearchProductCs/lexSearchProductCs.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSelectAssetsMaintenance/lexSelectAssetsMaintenance.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSelectAssetsMaintenance/lexSelectAssetsMaintenance.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSelectAssetsMaintenance/lexSelectAssetsMaintenance.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSelectRental/lexSelectRental.css 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSelectRental/lexSelectRental.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSelectRental/lexSelectRental.js 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSelectRental/lexSelectRental.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSelectSubstitute/lexSelectSubstitute.css 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSelectSubstitute/lexSelectSubstitute.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSelectSubstitute/lexSelectSubstitute.js 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSelectSubstitute/lexSelectSubstitute.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSendNFM103/lexSendNFM103.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSendNFM103/lexSendNFM103.js 570 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSendNFM103/lexSendNFM103.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSendQIS/lexSendQIS.css 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSendQIS/lexSendQIS.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSendQIS/lexSendQIS.js 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSendQIS/lexSendQIS.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSendRepairsToEtQ/lexSendRepairsToEtQ.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSendRepairsToEtQ/lexSendRepairsToEtQ.js 192 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSendRepairsToEtQ/lexSendRepairsToEtQ.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexServiceCutPriceApply/lexServiceCutPriceApply.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexServiceCutPriceApply/lexServiceCutPriceApply.js 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexServiceCutPriceApply/lexServiceCutPriceApply.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSplitApply/lexSplitApply.css 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSplitApply/lexSplitApply.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSplitApply/lexSplitApply.js 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSplitApply/lexSplitApply.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexStockApply/lexStockApply.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexStockApply/lexStockApply.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexStockApply/lexStockApply.js 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexStockApply/lexStockApply.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSubmit/lexSubmit.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSubmit/lexSubmit.html 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSubmit/lexSubmit.js 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSubmit/lexSubmit.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSubmitApprovalProcess/lexSubmitApprovalProcess.css 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSubmitApprovalProcess/lexSubmitApprovalProcess.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSubmitApprovalProcess/lexSubmitApprovalProcess.js 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSubmitApprovalProcess/lexSubmitApprovalProcess.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSubmitCompetitorReport/lexSubmitCompetitorReport.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSubmitCompetitorReport/lexSubmitCompetitorReport.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSubmitCompetitorReport/lexSubmitCompetitorReport.js 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSubmitCompetitorReport/lexSubmitCompetitorReport.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSubmitExtensionApprovalProcess/lexSubmitExtensionApprovalProcess.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSubmitExtensionApprovalProcess/lexSubmitExtensionApprovalProcess.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSubmitExtensionApprovalProcess/lexSubmitExtensionApprovalProcess.js 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSubmitExtensionApprovalProcess/lexSubmitExtensionApprovalProcess.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSubmitForApproval/lexSubmitForApproval.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSubmitForApproval/lexSubmitForApproval.js 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSubmitForApproval/lexSubmitForApproval.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSummonsCreat/lexSummonsCreat.html 1020 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexSummonsCreat/lexSummonsCreat.js 2028 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingAntiLogicButton/lexTenderingAntiLogicButton.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingAntiLogicButton/lexTenderingAntiLogicButton.js 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingAntiLogicButton/lexTenderingAntiLogicButton.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingAttachmentButton/lexTenderingAttachmentButton.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingAttachmentButton/lexTenderingAttachmentButton.js 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingAttachmentButton/lexTenderingAttachmentButton.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingCopyButton/lexTenderingCopyButton.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingCopyButton/lexTenderingCopyButton.js 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingCopyButton/lexTenderingCopyButton.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingEnquiryButton/lexTenderingEnquiryButton.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingEnquiryButton/lexTenderingEnquiryButton.js 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingEnquiryButton/lexTenderingEnquiryButton.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingHospitalButton/lexTenderingHospitalButton.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingHospitalButton/lexTenderingHospitalButton.js 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingHospitalButton/lexTenderingHospitalButton.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingIntentionButton/lexTenderingIntentionButton.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingIntentionButton/lexTenderingIntentionButton.js 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingIntentionButton/lexTenderingIntentionButton.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingLogicButton/lexTenderingLogicButton.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingLogicButton/lexTenderingLogicButton.js 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingLogicButton/lexTenderingLogicButton.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingLostButton/lexTenderingLostButton.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingLostButton/lexTenderingLostButton.js 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingLostButton/lexTenderingLostButton.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingNoStandardButton/lexTenderingNoStandardButton.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingNoStandardButton/lexTenderingNoStandardButton.js 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingNoStandardButton/lexTenderingNoStandardButton.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingNotarizeButton/lexTenderingNotarizeButton.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingNotarizeButton/lexTenderingNotarizeButton.js 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingNotarizeButton/lexTenderingNotarizeButton.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingRelevancyButton/lexTenderingRelevancyButton.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingRelevancyButton/lexTenderingRelevancyButton.js 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingRelevancyButton/lexTenderingRelevancyButton.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingUsedAttachmentButton/lexTenderingUsedAttachmentButton.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingUsedAttachmentButton/lexTenderingUsedAttachmentButton.js 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTenderingUsedAttachmentButton/lexTenderingUsedAttachmentButton.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTerminalMaintenance/lexTerminalMaintenance.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTerminalMaintenance/lexTerminalMaintenance.js 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTerminalMaintenance/lexTerminalMaintenance.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTopInQueue/lexTopInQueue.css 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTopInQueue/lexTopInQueue.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTopInQueue/lexTopInQueue.js 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTopInQueue/lexTopInQueue.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTransferApplyPDF/lexTransferApplyPDF.css 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTransferApplyPDF/lexTransferApplyPDF.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTransferApplyPDF/lexTransferApplyPDF.js 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexTransferApplyPDF/lexTransferApplyPDF.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexUploadToRecognitionModel/lexUploadToRecognitionModel.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexUploadToRecognitionModel/lexUploadToRecognitionModel.js 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexUploadToRecognitionModel/lexUploadToRecognitionModel.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexUploadToSap/lexUploadToSap.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexUploadToSap/lexUploadToSap.js 155 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexUploadToSap/lexUploadToSap.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexVOCAnswer/lexVOCAnswer.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexVOCAnswer/lexVOCAnswer.html 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexVOCAnswer/lexVOCAnswer.js 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexVOCAnswer/lexVOCAnswer.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexVOCCheck/lexVOCCheck.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexVOCCheck/lexVOCCheck.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexVOCCheck/lexVOCCheck.js 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexVOCCheck/lexVOCCheck.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexVOCConfirm/lexVOCConfirm.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexVOCConfirm/lexVOCConfirm.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexVOCConfirm/lexVOCConfirm.js 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexVOCConfirm/lexVOCConfirm.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexVOCFinish/lexVOCFinish.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexVOCFinish/lexVOCFinish.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexVOCFinish/lexVOCFinish.js 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexVOCFinish/lexVOCFinish.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexVOCSubmit/lexVOCSubmit.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexVOCSubmit/lexVOCSubmit.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexVOCSubmit/lexVOCSubmit.js 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexVOCSubmit/lexVOCSubmit.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexXinSearchVisitorPlace/lexXinSearchVisitorPlace.css 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexXinSearchVisitorPlace/lexXinSearchVisitorPlace.html 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexXinSearchVisitorPlace/lexXinSearchVisitorPlace.js 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexXinSearchVisitorPlace/lexXinSearchVisitorPlace.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexYanshoudanRequest/lexYanshoudanRequest.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexYanshoudanRequest/lexYanshoudanRequest.js 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexYanshoudanRequest/lexYanshoudanRequest.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexcopyQIS/lexcopyQIS.css 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexcopyQIS/lexcopyQIS.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexcopyQIS/lexcopyQIS.js 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexcopyQIS/lexcopyQIS.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexinventoryViewLWC/lexinventoryViewLWC.html 159 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexinventoryViewLWC/lexinventoryViewLWC.js 724 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/listInfiniteScrolling/listInfiniteScrolling.css 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/listInfiniteScrolling/listInfiniteScrolling.html 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/listInfiniteScrolling/listInfiniteScrolling.js 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/listInfiniteScrolling/listInfiniteScrolling.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/listInfiniteScrollingWrapper/listInfiniteScrollingWrapper.html 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/listInfiniteScrollingWrapper/listInfiniteScrollingWrapper.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/listInfiniteScrollingWrapper/listInfiniteScrollingWrapper.js-meta.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/listRecordLinks/__mocks__/listRecordLinks.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/listRecordLinks/listRecordLinks.css 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/listRecordLinks/listRecordLinks.html 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/listRecordLinks/listRecordLinks.js 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/listRecordLinks/listRecordLinks.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/listRecordLinksWrapper/listRecordLinksWrapper.html 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/listRecordLinksWrapper/listRecordLinksWrapper.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/listRecordLinksWrapper/listRecordLinksWrapper.js-meta.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/listWithParentRecordData/__mocks__/listWithParentRecordData.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/listWithParentRecordData/listWithParentRecordData.css 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/listWithParentRecordData/listWithParentRecordData.html 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/listWithParentRecordData/listWithParentRecordData.js 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/listWithParentRecordData/listWithParentRecordData.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/listWithParentRecordDataWrapper/listWithParentRecordDataWrapper.html 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/listWithParentRecordDataWrapper/listWithParentRecordDataWrapper.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/listWithParentRecordDataWrapper/listWithParentRecordDataWrapper.js-meta.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/ll/ll.html 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/ll/ll.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/ll/ll.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/loanerArrangedEmailLWC/loanerArrangedEmailLWC.css 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/loanerArrangedEmailLWC/loanerArrangedEmailLWC.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/loanerArrangedEmailLWC/loanerArrangedEmailLWC.js 258 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/loanerArrangedEmailLWC/loanerArrangedEmailLWC.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lwcDatatableUtility/lwcDatatableUtility.css 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/maintenanceContract/maintenanceContract.js 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/navigateToRecord/navigateToRecord.html 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/navigateToRecord/navigateToRecord.js 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/navigateToRecord/navigateToRecord.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/newOrderButton/newOrderButton.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/newOrderButton/newOrderButton.js 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/newOrderButton/newOrderButton.js-meta.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/newOrderLWC/newOrderLWC.html 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/newOrderLWC/newOrderLWC.js 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/newOrderLWC/newOrderLWC.js-meta.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/newOrderList/newOrderList.html 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/newOrderList/newOrderList.js 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/newOrderList/newOrderList.js-meta.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/newPaymentPlanLoadLWC/newPaymentPlanLoadLWC.css 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/newPaymentPlanLoadLWC/newPaymentPlanLoadLWC.html 228 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/newPaymentPlanLoadLWC/newPaymentPlanLoadLWC.js 521 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/newPaymentPlanLoadLWC/newPaymentPlanLoadLWC.js-meta.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/newRepairLWC/newRepairLWC.css 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/newRepairLWC/newRepairLWC.html 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/newRepairLWC/newRepairLWC.js 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/newRepairLWC/newRepairLWC.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/opdCancelSubmit/opdCancelSubmit.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/opdCancelSubmit/opdCancelSubmit.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/opdCancelSubmit/opdCancelSubmit.js 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/opdCancelSubmit/opdCancelSubmit.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/opdNewSparePartsLoanApplication/opdNewSparePartsLoanApplication.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/opdNewSparePartsLoanApplication/opdNewSparePartsLoanApplication.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/opdNewSparePartsLoanApplication/opdNewSparePartsLoanApplication.js 346 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/opdNewSparePartsLoanApplication/opdNewSparePartsLoanApplication.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/opdReportSubmit/opdReportSubmit.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/opdReportSubmit/opdReportSubmit.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/opdReportSubmit/opdReportSubmit.js 159 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/opdReportSubmit/opdReportSubmit.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/opdSupplementaryApplication/opdSupplementaryApplication.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/opdSupplementaryApplication/opdSupplementaryApplication.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/opdSupplementaryApplication/opdSupplementaryApplication.js 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/opdSupplementaryApplication/opdSupplementaryApplication.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/opdUpdateDate/opdUpdateDate.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/opdUpdateDate/opdUpdateDate.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/opdUpdateDate/opdUpdateDate.js 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/opdUpdateDate/opdUpdateDate.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/oppLoseButton/oppLoseButton.html 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/oppLoseButton/oppLoseButton.js 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/oppLoseButton/oppLoseButton.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/oshRecieved/oshRecieved.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/oshRecieved/oshRecieved.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/oshRecieved/oshRecieved.js 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/oshRecieved/oshRecieved.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/otherButtonInASACEditor/otherButtonInASACEditor.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/otherButtonInASACEditor/otherButtonInASACEditor.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/otherButtonInASACEditor/otherButtonInASACEditor.js 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/otherButtonInASACEditor/otherButtonInASACEditor.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/otherButtonInCancelSubmit/OtherButtonInCancelSubmit.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/otherButtonInCancelSubmit/otherButtonInCancelSubmit.html 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/otherButtonInCancelSubmit/otherButtonInCancelSubmit.js 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/otherButtonInCancelSubmit/otherButtonInCancelSubmit.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/otherButtonInOpportunity/otherButtonInOpportunity.css 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/otherButtonInOpportunity/otherButtonInOpportunity.html 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/otherButtonInOpportunity/otherButtonInOpportunity.js 218 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/otherButtonInOpportunity/otherButtonInOpportunity.js-meta.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pageBlocks/pageBlocks.html 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pageBlocks/pageBlocks.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pageBlocks/pageBlocks.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pageBlocksWrapper/pageBlocksWrapper.html 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pageBlocksWrapper/pageBlocksWrapper.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pageBlocksWrapper/pageBlocksWrapper.js-meta.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pageMessagesDataRetrieval/__mocks__/pageMessagesDataRetrieval.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pageMessagesDataRetrieval/pageMessagesDataRetrieval.html 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pageMessagesDataRetrieval/pageMessagesDataRetrieval.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pageMessagesDataRetrieval/pageMessagesDataRetrieval.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pageMessagesDataRetrievalWrapper/pageMessagesDataRetrievalWrapper.html 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pageMessagesDataRetrievalWrapper/pageMessagesDataRetrievalWrapper.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pageMessagesDataRetrievalWrapper/pageMessagesDataRetrievalWrapper.js-meta.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pageMessagesForm/pageMessagesForm.html 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pageMessagesForm/pageMessagesForm.js 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pageMessagesForm/pageMessagesForm.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pageMessagesFormWrapper/pageMessagesFormWrapper.html 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pageMessagesFormWrapper/pageMessagesFormWrapper.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pageMessagesFormWrapper/pageMessagesFormWrapper.js-meta.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pageMessagesToast/pageMessagesToast.html 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pageMessagesToast/pageMessagesToast.js 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pageMessagesToast/pageMessagesToast.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pageMessagesToastWrapper/pageMessagesToastWrapper.html 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pageMessagesToastWrapper/pageMessagesToastWrapper.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pageMessagesToastWrapper/pageMessagesToastWrapper.js-meta.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/paginatedList/paginatedList.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/paginatedListWrapper/paginatedListWrapper.html 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/paginatedListWrapper/paginatedListWrapper.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/paginatedListWrapper/paginatedListWrapper.js-meta.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/paginator/paginator.css 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/panelBar/panelBar.html 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/panelBar/panelBar.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/panelBar/panelBar.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/panelBarWrapper/panelBarWrapper.html 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/panelBarWrapper/panelBarWrapper.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/panelBarWrapper/panelBarWrapper.js-meta.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/panelGrid/panelGrid.html 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/panelGrid/panelGrid.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/panelGrid/panelGrid.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/panelGridWrapper/panelGridWrapper.html 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/panelGridWrapper/panelGridWrapper.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/panelGridWrapper/panelGridWrapper.js-meta.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/parentComponentTest/parentComponentTest.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/parentComponentTest/parentComponentTest.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/parentComponentTest/parentComponentTest.js-meta.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pocCustomComp/pocCustomComp.html 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pocCustomComp/pocCustomComp.js 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pocCustomComp/pocCustomComp.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pocFileUpload/pocFileUpload.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pocFileUpload/pocFileUpload.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/pocFileUpload/pocFileUpload.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/qisUniversalFailureCode/qisUniversalFailureCode.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/qisUniversalFailureCode/qisUniversalFailureCode.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/qisUniversalFailureCode/qisUniversalFailureCode.js 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/qisUniversalFailureCode/qisUniversalFailureCode.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/quoteTrial/quoteTrial.html 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/quoteTrial/quoteTrial.js 211 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/quoteTrial/quoteTrialUtil.js 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/recentProjectsLWC/recentProjectsLWC.html 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/recentProjectsLWC/recentProjectsLWC.js 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/recentProjectsLWC/recentProjectsLWC.js-meta.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/rentalApplyEquipmentRentalPDF/rentalApplyEquipmentRentalPDF.css 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/rentalApplyEquipmentRentalPDF/rentalApplyEquipmentRentalPDF.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/rentalApplyEquipmentRentalPDF/rentalApplyEquipmentRentalPDF.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/rentalApplyEquipmentRentalPDF/rentalApplyEquipmentRentalPDF.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/rentalApplyLWT/rentalApplyLWT.css 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/rentalApplyLWT/rentalApplyLWT.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/rentalApplyLWT/rentalApplyLWT.js 854 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/rentalApplyLWT/rentalApplyLWT.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/selectSubstituteLWC/selectSubstituteLWC.css 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/selectSubstituteLWC/selectSubstituteLWC.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/selectSubstituteLWC/selectSubstituteLWC.js 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/selectSubstituteLWC/selectSubstituteLWC.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/singleRecords/singleRecords.html 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/singleRecords/singleRecords.js 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/singleRecords/singleRecords.js-meta.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/splitApplyLWC/splitApplyLWC.css 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/splitApplyLWC/splitApplyLWC.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/splitApplyLWC/splitApplyLWC.js 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/splitApplyLWC/splitApplyLWC.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/tEnquiry/tEnquiry.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/tabs/tabs.html 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/tabs/tabs.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/tabs/tabs.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/tabsWrapper/tabsWrapper.html 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/tabsWrapper/tabsWrapper.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/tabsWrapper/tabsWrapper.js-meta.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/tenderLost/tenderLost.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/test/test.html 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/test/test.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/test/test.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/toolbar/toolbar.css 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/toolbar/toolbar.html 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/toolbar/toolbar.js 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/toolbar/toolbar.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/toolbarWrapper/toolbarWrapper.html 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/toolbarWrapper/toolbarWrapper.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/toolbarWrapper/toolbarWrapper.js-meta.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/topPageLwc/topPageLwc.html 237 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/topPageLwc/topPageLwc.js 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/topPageLwc/topPageLwc.js-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/viewRecord/viewRecord.html 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/viewRecord/viewRecord.js 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/viewRecord/viewRecord.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/viewRecordWithParentRecordData/viewRecordWithParentRecordData.html 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/viewRecordWithParentRecordData/viewRecordWithParentRecordData.js 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/viewRecordWithParentRecordData/viewRecordWithParentRecordData.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/viewRecordWithParentRecordDataWrapper/viewRecordWithParentRecordDataWrapper.html 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/viewRecordWithParentRecordDataWrapper/viewRecordWithParentRecordDataWrapper.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/viewRecordWithParentRecordDataWrapper/viewRecordWithParentRecordDataWrapper.js-meta.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/viewRecordWrapper/viewRecordWrapper.html 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/viewRecordWrapper/viewRecordWrapper.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/viewRecordWrapper/viewRecordWrapper.js-meta.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/viewVfLwcSource/viewVfLwcSource.css 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/viewVfLwcSource/viewVfLwcSource.html 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/viewVfLwcSource/viewVfLwcSource.js 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/viewVfLwcSource/viewVfLwcSource.js-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
manifest/packageForLex copy.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
manifest/packageForLex.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
manifest/packageForSign.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/DNUpsertBatch.cls
@@ -291,11 +291,12 @@
            Map < String, String > provinceGIMap = new Map< String, String > ();
            //检索OCSM管理省对象
            //集中采购询价 增加检索助理 
            List < OCM_Management_Province__c > ompList = [select id, Name, SalesManage__c,GI_assistant__c   from OCM_Management_Province__c ];
            List < OCM_Management_Province__c > ompList = [select id, Name, SalesManage__c,GI_assistant__c,Window1__c   from OCM_Management_Province__c ];
            //存放map<省,担当>
            for (OCM_Management_Province__c omp: ompList) {
                provinceOwnerMap.put(omp.Name, omp.SalesManage__c);
                provinceGIMap.put(omp.Name,omp.GI_assistant__c);
                //provinceGIMap.put(omp.Name,omp.GI_assistant__c); //Commented by Li Jun 20230420
                provinceGIMap.put(omp.Name, omp.Window1__c);// Add By Li Jun 更新 签收单的【营业助理】值,从OCSM管理省对应的【营业窗口】字段获取
            }
            // 电子签收单 end
@@ -603,7 +604,7 @@
            tempeSF.DNName__c = tempDN.Name;
            tempeSF.Statu_Achievements__c = tempDN.Statu_Achievements__c;
            tempeSF.Statu_Achievements_DN__c = tempDN.ID;
            tempeSF.Sales_assistant_name_text__c = tempDN.Sales_assistant_name_text__c;
            tempeSF.Sales_assistant_name_text__c = tempDN.Sales_assistant_name_text__c;//Updated By Li Jun 20230420
            tempeSF.RC_Manager__c = tempDN.RC_Manager__c;
            //生成签收单时,给是否无偿出库赋值  精琢技术 thh 2021-10-15 start
            if(tempDN.Statu_Achievements__r.orderType__c == 'ZM16'){
@@ -730,11 +731,14 @@
                    tempSADN.Is_Corrosion__c=opp.Is_Corrosion__c;
                    // 电子签收单  赋值营业助理和营业管理部担当 start
                    //集中采购的询价 精琢技术 wql 2020/01/11 start 
                    //Add By Li Jun 20230420 Start
                    tempSADN.Sales_assistant_name_text__c =opp.OCM_man_province_cus__c!='' && provinceGIMap.containskey(opp.OCM_man_province_cus__c)?provinceGIMap.get(opp.OCM_man_province_cus__c):'';
                    //Add By Li Jun 20230420 End
                    if(opp.Group_purchase_PCL__c){
                        tempSADN.Sales_assistant_name_text__c = provinceGIMap.get('集采课');
                        //tempSADN.Sales_assistant_name_text__c = provinceGIMap.get('集采课'); //Commented By Li Jun 20230420
                        tempSADN.RC_Manager__c =  provinceOwnerMap.get('集采课');
                    }else{
                        tempSADN.Sales_assistant_name_text__c = opp.Sales_assistant_name_text__c;
                        //tempSADN.Sales_assistant_name_text__c = opp.Sales_assistant_name_text__c; //Commented By Li Jun 20230420
                        tempSADN.RC_Manager__c =  provinceOwnerMap.get(opp.OCM_man_province_cus__c);
                    }
                    //集中采购的询价 精琢技术 wql 2020/01/11 end
force-app/main/default/classes/OCMManagementProvinceWebService.cls
@@ -2,6 +2,7 @@
    WebService static String updateOpportunity() {
        Id execBTId = Database.executeBatch(new OCMManagementProvinceBatch(null), 200);
        Id udpateSign = Database.executeBatch(new OCManagement);
        return '1';
    }
}
force-app/main/default/classes/updateESignBatch.cls
@@ -311,8 +311,14 @@
        //存放所有签收单录入表id
        List < String > luruIsLastSubmitList = new List < String > ();
        // 2023-03-16 ssm 优化逻辑,避免同时多设备做系统更新以及医院和经销商在同一批次(15分钟内)上传数据 start
        //判断是否有未处理的录入表
        Map < Id, eSignFormEntry__c > unprocessedESignEneryMap = new Map < Id, eSignFormEntry__c > ();
        // Map < Id, eSignFormEntry__c > unprocessedESignEneryMap = new Map < Id, eSignFormEntry__c > ();
        Map < Id, List<eSignFormEntry__c> > unprocessedESignEneryMap = new Map < Id, List<eSignFormEntry__c> > ();
        List<eSignFormEntry__c> unprocessedEntries = new List<eSignFormEntry__c>();
        // Map <Id, eSignFormEntry__c> unprocessedEntries = new Map<Id, eSignFormEntry__c>();
        // 2023-03-16 ssm 优化逻辑,避免同时多设备做系统更新以及医院和经销商在同一批次(15分钟内)上传数据 start
        //用于判断删除驳回的附件的筛选条件
        Map < Id, eSignForm__c > rejectESignEneryMap = new Map < Id, eSignForm__c > ();
@@ -418,9 +424,16 @@
                        eSignStringMap.put(eSignFormEntryWhole.Id, eSignFormEntryWhole);
                        //②所有的 用于更新文件(包含已处理未处理的数据 )
                        fileIdList.add(eSignFormEntryWhole.Id);
                        if (eSignFormEntryWhole.IsHandled__c == false) {
                        // 这里是什么鬼?都不判断一下签收单id的?
                        // if (eSignFormEntryWhole.IsHandled__c == false) {
                        if (eSignFormEntryWhole.IsHandled__c == false && eSignFormEntryWhole.eSignForm__r.Id  == eid) {
                            //未处理的
                            unprocessedESignEneryMap.put(eid, eSignFormEntryWhole);
                            // 2023-03-16 ssm 优化逻辑,避免同时多设备做系统更新以及医院和经销商在同一批次(15分钟内)上传数据 start
                            // unprocessedESignEneryMap.put(eid, eSignFormEntryWhole);
                            List<eSignFormEntry__c> entries = unprocessedESignEneryMap.size() > 0 && unprocessedESignEneryMap.keySet().contains(eid) ? unprocessedESignEneryMap.get(eid) : new List<eSignFormEntry__c>();
                            entries.add(eSignFormEntryWhole);
                            unprocessedESignEneryMap.put(eid, entries);
                            // 2023-03-16 ssm 优化逻辑,避免同时多设备做系统更新以及医院和经销商在同一批次(15分钟内)上传数据 end
                        }
                        if (eSignFormEntryWhole.eSignForm__r.Id  == eid) {
                            //存放 签收单id,录入表id 文件用
@@ -595,114 +608,129 @@
                        boolean IsHPSubmit = false;
                        //销售渠道
                        String Sales_Root_Formula;
                        //录入类型
                        String type;
                        //录入类型
                        String type; // 这东西没有用
                        System.debug('lasteSignFormEntryMap:' + lasteSignFormEntryMap);
                        if (lasteSignFormEntryMap.containsKey(eSignFormid)) {
                            eSignForm.id = eSignFormid;
                            // 2023-03-16 ssm 优化逻辑,避免同时多设备做系统更新以及医院和经销商在同一批次(15分钟内)上传数据 start
                            //签收单id
                            eSignFormEntry__c eSignFormEntry = lasteSignFormEntryMap.get(eSignFormid);
                            //如果经销商确认日为空的话 进去判断更新经销商审批状态
                            if (eSignFormEntry.agencyDNSignUpStatus__c != '签收已完成') {
                                if (eSignFormEntry.agencyConfirmDateBack__c == null) {
                                    if (eSignFormEntry.IsSubmit__c == true) {
                                        eSignForm.agencyAutoSignUpStatus__c = '申请中';
                                        eSignForm.agencyReject__c = false;
                                    } else {
                                        if (eSignFormEntry.agencyScanDayBack__c != null && eSignFormEntry.IsAgencyScan__c) {
                                            eSignForm.agencyAutoSignUpStatus__c = '草案中';
                                            eSignForm.agencyReject__c = false;
                            // eSignFormEntry__c eSignFormEntry = lasteSignFormEntryMap.get(eSignFormid);
                            for (eSignFormEntry__c eSignFormEntry : unprocessedESignEneryMap.get(eSignFormid)) {
                                // 根据录入类型去更新对应的部分数据
                                // entryType__c包含经销商
                                if (String.isNotBlank(eSignFormEntry.entryType__c) && eSignFormEntry.entryType__c.contains('经销商')) {
                                    //如果经销商确认日为空的话 进去判断更新经销商审批状态
                                    if (eSignFormEntry.agencyDNSignUpStatus__c != '签收已完成') {
                                        if (eSignFormEntry.agencyConfirmDateBack__c == null) {
                                            if (eSignFormEntry.IsSubmit__c == true) {
                                                eSignForm.agencyAutoSignUpStatus__c = '申请中';
                                                eSignForm.agencyReject__c = false;
                                            } else {
                                                if (eSignFormEntry.agencyScanDayBack__c != null && eSignFormEntry.IsAgencyScan__c) {
                                                    // 调整草案中的赋值逻辑,多端操作的情况下有可能先申请后草案
                                                    // eSignForm.agencyAutoSignUpStatus__c = '草案中';
                                                    eSignForm.agencyAutoSignUpStatus__c = String.isBlank(eSignForm.agencyAutoSignUpStatus__c) ? '草案中' : eSignForm.agencyAutoSignUpStatus__c;
                                                    eSignForm.agencyReject__c = false;
                                                }
                                            }
                                        }
                                        //未更新前的经销商审批状态 用于文件累计汇总
                                        if(eSignFormEntry.agencyAutoSignUpStatus__c!=null &&eSignFormEntry.agencyAutoSignUpStatus__c!=''){
                                            oldESignAgencyStatusMap.put('A' + eSignForm.id, eSignFormEntry.agencyAutoSignUpStatus__c);
                                        }else{
                                            oldESignAgencyStatusMap.put('A' + eSignForm.id, '无');
                                        }
                                    }
                                    //如果没变化则不更新
                                    if (eSignFormEntry.AgencyWorkflowEmailBack__c != eSignFormEntry.AgencyWorkflowEmail__c) {
                                        //经销商邮件
                                        eSignForm.AgencyWorkflowEmail__c = eSignFormEntry.AgencyWorkflowEmailBack__c;
                                    }
                                    // 日期更新
                                    if (eSignFormEntry.agencyDNSignUpStatus__c != '签收已完成') {
                                        //经销商扫描日
                                        if (eSignFormEntry.agencyScanDayBack__c != null) {
                                            eSignForm.agencyScanDay__c = eSignFormEntry.agencyScanDayBack__c;
                                        }
                                        //经销商签收日
                                        if (eSignFormEntry.agencySignUpDateBack__c != null) {
                                            eSignForm.agencySignUpDate__c = eSignFormEntry.agencySignUpDateBack__c;
                                        }
                                        //经销商确认日
                                        if (eSignFormEntry.agencyConfirmDateBack__c != null) {
                                            eSignForm.agencyConfirmDate__c = eSignFormEntry.agencyConfirmDateBack__c;
                                        }
                                    }
                                }
                                //未更新前的经销商审批状态 用于文件累计汇总
                                if(eSignFormEntry.agencyAutoSignUpStatus__c!=null &&eSignFormEntry.agencyAutoSignUpStatus__c!=''){
                                    oldESignAgencyStatusMap.put('A' + eSignForm.id, eSignFormEntry.agencyAutoSignUpStatus__c);
                                }else{
                                    oldESignAgencyStatusMap.put('A' + eSignForm.id, '无');
                                }
                            }
                            if (eSignFormEntry.HPDNSignUpStatus__c != '签收已完成') {
                                //如果医院确认日为空的话 进去判断更新医院审批状态
                                if (eSignFormEntry.salesHPManageConfirmDate__c == null) {
                                    if (eSignFormEntry.IsHPSubmit__c == true) {
                                        eSignForm.HPSignUpStatus__c = '申请中';
                                        eSignForm.HPReject__c = false;
                                    } else {
                                        if (eSignFormEntry.HPScanDayBack__c != null && eSignFormEntry.IsHPScan__c) {
                                            eSignForm.HPSignUpStatus__c = '草案中';
                                            eSignForm.HPReject__c = false;
                                // entryType__c包含医院
                                if (String.isNotBlank(eSignFormEntry.entryType__c) && eSignFormEntry.entryType__c.contains('医院')) {
                                    if (eSignFormEntry.HPDNSignUpStatus__c != '签收已完成') {
                                        //如果医院确认日为空的话 进去判断更新医院审批状态
                                        if (eSignFormEntry.salesHPManageConfirmDate__c == null) {
                                            if (eSignFormEntry.IsHPSubmit__c == true) {
                                                eSignForm.HPSignUpStatus__c = '申请中';
                                                eSignForm.HPReject__c = false;
                                            } else {
                                                if (eSignFormEntry.HPScanDayBack__c != null && eSignFormEntry.IsHPScan__c) {
                                                    // 调整草案中的赋值逻辑,多端操作的情况下有可能先申请后草案
                                                    // eSignForm.HPSignUpStatus__c = '草案中';
                                                    eSignForm.HPSignUpStatus__c = String.isBlank(eSignForm.HPSignUpStatus__c) ? '草案中' : eSignForm.HPSignUpStatus__c;
                                                    eSignForm.HPReject__c = false;
                                                }
                                            }
                                        }
                                        //未更新前的医院审批状态 用于文件累计汇总
                                        if(eSignFormEntry.HPSignUpStatus__c!=null &&eSignFormEntry.HPSignUpStatus__c!=''){
                                            oldESignHPStatusMap.put('H' + eSignForm.id, eSignFormEntry.HPSignUpStatus__c);
                                        }else{
                                            oldESignHPStatusMap.put('H' + eSignForm.id, '无');
                                        }
                                    }
                                    //如果没变化则不更新
                                    if (eSignFormEntry.HPWorkflowEmailBack__c != eSignFormEntry.HPWorkflowEmail__c) {
                                        //医院邮件
                                        eSignForm.HPWorkflowEmail__c = eSignFormEntry.HPWorkflowEmailBack__c;
                                    }
                                    // 日期更新
                                    if (eSignFormEntry.HPDNSignUpStatus__c != '签收已完成') {
                                        //医院扫描日
                                        if (eSignFormEntry.HPScanDayBack__c != null) {
                                            eSignForm.HPScanDay__c = eSignFormEntry.HPScanDayBack__c;
                                        }
                                        //医院签收日
                                        if (eSignFormEntry.HPSignUpDateBack__c != null) {
                                            eSignForm.HPSignUpDate__c = eSignFormEntry.HPSignUpDateBack__c;
                                        }
                                        //医院确认日
                                        if (eSignFormEntry.HPConfirmDateBack__c != null) {
                                            eSignForm.HPConfirmDate__c = eSignFormEntry.HPConfirmDateBack__c;
                                        }
                                    }
                                }
                                //未更新前的医院审批状态 用于文件累计汇总
                                if(eSignFormEntry.HPSignUpStatus__c!=null &&eSignFormEntry.HPSignUpStatus__c!=''){
                                    oldESignHPStatusMap.put('H' + eSignForm.id, eSignFormEntry.HPSignUpStatus__c);
                                }else{
                                    oldESignHPStatusMap.put('H' + eSignForm.id, '无');
                                }
                            }
                                //给营业助理赋值
                                //eSignForm.Sales_assistant_name_text__c = eSignFormEntry.Sales_assistant_ID__c;// Commented By Li Jun 20230420
                                //存一个id
                                idlast = eSignFormEntry.Id;
                                //签收单name用作文件命名
                                name = eSignFormEntry.eSignForm__r.Name;
                                //是否经销商提交
                                IsSubmit = eSignFormEntry.IsSubmit__c;
                                //是否医院提交
                                IsHPSubmit = eSignFormEntry.IsHPSubmit__c;
                                //最后录入表
                                eSignForm.finalUpadteFrom__c = eSignFormEntry.Id;
                                //销售渠道 区分直销还是分销
                                Sales_Root_Formula = eSignFormEntry.Sales_Root_Formula__c;
                                //录入类型
                                type = eSignFormEntry.entryType__c; // 没有用
                            //如果没变化则不更新
                            if (eSignFormEntry.AgencyWorkflowEmailBack__c != eSignFormEntry.AgencyWorkflowEmail__c) {
                                //经销商邮件
                                eSignForm.AgencyWorkflowEmail__c = eSignFormEntry.AgencyWorkflowEmailBack__c;
                                // 所有没有没有处理的entry都要标记为处理
                                eSignFormEntry.IsHandled__c = true;
                                unprocessedEntries.add(eSignFormEntry);
                                // unprocessedEntries.put(eSignFormEntry.Id, eSignFormEntry);
                            }
                            //如果没变化则不更新
                            if (eSignFormEntry.HPWorkflowEmailBack__c != eSignFormEntry.HPWorkflowEmail__c) {
                                //医院邮件
                                eSignForm.HPWorkflowEmail__c = eSignFormEntry.HPWorkflowEmailBack__c;
                            }
                            if (eSignFormEntry.agencyDNSignUpStatus__c != '签收已完成') {
                                //经销商扫描日
                                if (eSignFormEntry.agencyScanDayBack__c != null) {
                                    eSignForm.agencyScanDay__c = eSignFormEntry.agencyScanDayBack__c;
                                }
                                //经销商签收日
                                if (eSignFormEntry.agencySignUpDateBack__c != null) {
                                    eSignForm.agencySignUpDate__c = eSignFormEntry.agencySignUpDateBack__c;
                                }
                                //经销商确认日
                                if (eSignFormEntry.agencyConfirmDateBack__c != null) {
                                    eSignForm.agencyConfirmDate__c = eSignFormEntry.agencyConfirmDateBack__c;
                                }
                            }
                            if (eSignFormEntry.HPDNSignUpStatus__c != '签收已完成') {
                                //医院扫描日
                                if (eSignFormEntry.HPScanDayBack__c != null) {
                                    eSignForm.HPScanDay__c = eSignFormEntry.HPScanDayBack__c;
                                }
                                //医院签收日
                                if (eSignFormEntry.HPSignUpDateBack__c != null) {
                                    eSignForm.HPSignUpDate__c = eSignFormEntry.HPSignUpDateBack__c;
                                }
                                //医院确认日
                                if (eSignFormEntry.HPConfirmDateBack__c != null) {
                                    eSignForm.HPConfirmDate__c = eSignFormEntry.HPConfirmDateBack__c;
                                }
                            }
                            //给营业助理赋值
                            eSignForm.Sales_assistant_name_text__c = eSignFormEntry.Sales_assistant_ID__c;
                            //存一个id
                            idlast = eSignFormEntry.Id;
                            //签收单name用作文件命名
                            name = eSignFormEntry.eSignForm__r.Name;
                            //是否经销商提交
                            IsSubmit = eSignFormEntry.IsSubmit__c;
                            //是否医院提交
                            IsHPSubmit = eSignFormEntry.IsHPSubmit__c;
                            //最后录入表
                            eSignForm.finalUpadteFrom__c = eSignFormEntry.Id;
                            //销售渠道 区分直销还是分销
                            Sales_Root_Formula = eSignFormEntry.Sales_Root_Formula__c;
                            //录入类型
                            type = eSignFormEntry.entryType__c;
                            // 2023-03-16 ssm 优化逻辑,避免同时多设备做系统更新以及医院和经销商在同一批次(15分钟内)上传数据 end
                        }
                        system.debug('签收单对象-----:' + eSignForm);
@@ -1000,6 +1028,21 @@
                //电子签收单 增加本次更新附件数量  2020/01/07 精琢技术 wql end
                //文件 end
            }
            // 更新签收单录入表
            if(unprocessedEntries.size() > 0) {
                Database.SaveResult[] lsr = Database.update(unprocessedEntries, false);
                // Database.SaveResult[] lsr = Database.update(unprocessedEntries.values(), false);
                eb.setError(lsr, MAXERRORCNT, eSignFormEntry__c.sObjectType);
                for (Integer tIdx = 0; tIdx < lsr.size(); tIdx++) {
                    Database.SaveResult sr = lsr[tIdx];
                    System.debug('sr.isSuccess:' + sr.isSuccess());
                    if (!sr.isSuccess()) {
                        Database.Error emsg = sr.getErrors()[0];
                        iflog.ErrorLog__c += 'ERROR ' + unprocessedEntries[tIdx].Id + ' eSignFormEntry__c:' + emsg + '\n';
                        // iflog.ErrorLog__c += 'ERROR ' + unprocessedEntries.values()[tIdx].Id + ' eSignFormEntry__c:' + emsg + '\n';
                    }
                }
            }
            system.debug('更新的签收单:' + eSignFormList);
            //更新签收单明细并添加日志
            if (eSignFormLuRUList.size() > 0) {
@@ -1114,7 +1157,7 @@
            }
            //删除录入表
            System.debug('删除录入表 : ' + eSignFormDeleteList);
            delete eSignFormDeleteList;
            // delete eSignFormDeleteList;  // 2023-03-14 ssm 暂时不自动删除中间表数据,方便短期内做check
        }
    }
    @TestVisible
@@ -1127,14 +1170,14 @@
        List < eSignForm__c > eSignFormLastList = new List < eSignForm__c >();
        //检索OCSM管理省对象
        List < OCM_Management_Province__c > ompList = [select id, Name, SalesManage__c,GI_assistant__c    from OCM_Management_Province__c where Name IN: provinceList];
        List < OCM_Management_Province__c > ompList = [select id, Name, SalesManage__c,GI_assistant__c,Window1__c    from OCM_Management_Province__c where Name IN: provinceList];
        //存放map<省,担当>
        for (OCM_Management_Province__c omp : ompList) {
            //不用map<String,list>的 原因是 想 ocsm管理省 和签收单 营业担当的顺序保持一致
            //String salesManage = omp.SalesManage__c+','+omp.SalesManage2__c+','+omp.SalesManage3__c;
            //provinceOwnerMap.put(omp.Name, salesManage);
            provinceOwnerMap.put(omp.Name, omp.SalesManage__c);
            provinceGIMap.put(omp.Name, omp.GI_assistant__c);
            provinceGIMap.put(omp.Name, omp.Window1__c);//Update By Li Jun 20230420 for  签收单营业助理从GI/SP助理改为签收单OCSM省的营业窗口
        }
        //①为true的时候 是其他没发生变化只有ocsm省上营业担当改变
        //②为false的时候,有中间表正常更新的情况
force-app/main/default/classes/updateESignBatchAttachment.cls
New file
@@ -0,0 +1,1305 @@
global class updateESignBatchAttachment implements Database.Batchable < sObject > , Database.Stateful {
    //电子签收单-签收单录入表更新签收单  精琢技术 wql 2020-09-25 start
    /*
    ①正常执行 Database.executeBatch(new updateESignBatchAttachment(), 20);
    ②处理某一个签收单  Database.executeBatch(new updateESignBatchAttachment(''), 1);
    ③批量处理某些签收单(不是最终状态的) Database.executeBatch(new updateESignBatchAttachment(['','','']), 20);
    ④处理某一个最终状态的签收单 Database.executeBatch(new updateESignBatchAttachment('',true), 1);
    ⑤批量处理某些最终状态的签收单 Database.executeBatch(new updateESignBatchAttachment('['','','']',true), 20);
    ⑥处理某一天的所有签收单 Database.executeBatch(new updateESignBatchAttachment(2020-09-27), 20);
    ⑦处理某一时间段的所有签收单 Database.executeBatch(new updateESignBatchAttachment(2020-09-27,2020-09-28), 20);
    */
    private static final Integer MAXERRORCNT = 20; // 邮件表单位最大错误信息显示数量
    private ScBean scB;
    private ErrorBean eb = new ErrorBean(); // 邮件发送ERRORBEAN
    private String scErrorMessage = ''; // 添加计划错误信息
    //手动执行标识
    // private Boolean ManualExecution_Identification;
    //存放检索的soql语句
    private String query;
    //存放需要更新的日期
    private Date toDate;
    //存放一段时间的开始日期
    private Date startDate;
    //存放一段时间的结束日期
    private Date endDate;
    //存放需要更新的签收单id
    private String id;
    //存放需要更新的一些签收单
    private List < String > ids;
    //存放已经最终状态的flag
    private Boolean flag;
    //用于执行batch同时记录日志信息
    private BatchIF_Log__c iflog;
    global List < String > emailMessages = new List < String > ();
    global Integer totalCount = 0; // 总件数
    global Integer failedCount = 0; //失败件数
    global Boolean ManualExecution_Identification = false;
    //默认跑所有签收单
    global updateESignBatchAttachment() {
        iflog = new BatchIF_Log__c();
        iflog.Type__c = 'ESignBatch';
        iflog.Is_Error__c = 0;
        iflog.Log__c = 'updateESignBatchAttachment start1\n';
        iflog.ErrorLog__c = '';
        // insert iflog;
    }
    //更新某一天的签收单
    global updateESignBatchAttachment(Date toDate) {
        //手动标识置成true
        this.ManualExecution_Identification = true;
        this.toDate = toDate;
        iflog = new BatchIF_Log__c();
        iflog.Type__c = 'ESignBatch';
        iflog.Is_Error__c = 0;
        iflog.Log__c = 'updateESignBatchAttachment start2\n';
        iflog.ErrorLog__c = '';
        // insert iflog;
    }
    //更新某一时间段的 签收单
    global updateESignBatchAttachment(Date startDate, Date endDate) {
        //手动标识置成true
        this.ManualExecution_Identification = true;
        this.startDate = startDate;
        this.endDate = endDate;
        iflog = new BatchIF_Log__c();
        iflog.Type__c = 'ESignBatch';
        iflog.Is_Error__c = 0;
        iflog.Log__c = 'updateESignBatchAttachment start3\n';
        iflog.ErrorLog__c = '';
        // insert iflog;
    }
    //批量更新签收单
    global updateESignBatchAttachment(List < String > ids) {
        //手动标识置成true
        this.ManualExecution_Identification = true;
        this.ids = ids;
        iflog = new BatchIF_Log__c();
        iflog.Type__c = 'ESignBatch';
        iflog.Is_Error__c = 0;
        iflog.Log__c = 'updateESignBatchAttachment start4\n';
        iflog.ErrorLog__c = '';
        // insert iflog;
    }
    //更新某一条的签收单
    global updateESignBatchAttachment(String id) {
        //手动标识置成true
        this.ManualExecution_Identification = true;
        system.debug('手动传参1:' + ManualExecution_Identification);
        this.id = id;
        iflog = new BatchIF_Log__c();
        iflog.Type__c = 'ESignBatch';
        iflog.Is_Error__c = 0;
        iflog.Log__c = 'updateESignBatchAttachment start5\n';
        iflog.ErrorLog__c = '';
        // insert iflog;
    }
    //更新某一条的已处理的签收单
    global updateESignBatchAttachment(String id, boolean flag) {
        //手动标识置成true
        this.ManualExecution_Identification = true;
        this.id = id;
        this.flag = flag;
        iflog = new BatchIF_Log__c();
        iflog.Type__c = 'ESignBatch';
        iflog.Is_Error__c = 0;
        iflog.Log__c = 'updateESignBatchAttachment start6\n';
        iflog.ErrorLog__c = '';
        // insert iflog;
    }
    //批量更新已处理的签收单
    global updateESignBatchAttachment(List < String > ids, boolean flag) {
        //手动标识置成true
        this.ManualExecution_Identification = true;
        this.ids = ids;
        this.flag = flag;
        iflog = new BatchIF_Log__c();
        iflog.Type__c = 'ESignBatch';
        iflog.Is_Error__c = 0;
        iflog.Log__c = 'updateESignBatchAttachment start7\n';
        iflog.ErrorLog__c = '';
        // insert iflog;
    }
    global Database.QueryLocator start(Database.BatchableContext bc) {
        scB = updateESignBatchAttachment.setSc('updateESignFormSchedule', 9, 23, 0, '0 30 2', null);
        if (System.Test.isRunningTest() == false) {
            Boolean haveError = false;
            try {
                system.schedule(scB.scName, scB.scTime, new updateESignFormSchedule());
            } catch (Exception e) {
                haveError = true;
            }
            // 如果哟同名的Batch计划删除已存在的计划重新设置
            if (haveError) {
                haveError = false;
                for (CronTrigger ct : [SELECT Id, CronJobDetailId, CronExpression, CronJobDetail.Name
                                       FROM CronTrigger
                                       WHERE CronJobDetail.Name = :scB.scName]) {
                    System.abortJob(ct.Id);
                }
                try {
                    system.schedule(scB.scName, scB.scTime, new updateESignFormSchedule());
                } catch (Exception e) {
                    scErrorMessage = e.getMessage() + e.getStackTraceString() + '<br/>';
                }
            }
        }
        //签收单 sql
        //检索 id,名字,DN签收状态(经销商),DN签收状态(医院),无前导零DN号,经销商验收结果,医院验收结果
        //销售渠道,营业助理,营业管理部担当,是否处理完毕签收单,ocsm管理省
        query = 'select id,Name,agencyDNSignUpStatus__c,HPDNSignUpStatus__c,DNNameNo0__c,agencyAcceptResult__c,HPAcceptResult__c';
        query += ',Sales_Root_Formula__c,Sales_assistant_name_text__c,RC_Manager__c,agencyConfirmDate__c,salesHPManageConfirmDate__c';
        query += ',isProcessed__c,OCM_man_province_cus__c,agencyReject__c,agencyRejectDate__c,HPReject__c,HPRejectDate__c,Statu_Achievements__r.Opportunity__r.Group_purchase_PCL__c  ';
        query += ' from eSignForm__c ';
        //检索不是最终状态的签收单
        if (flag != true) {
            query += ' where isProcessed__c = false  ';
        } else {
            if (!string.isblank(id)) {
                query += 'where id = :id';
            } else if (ids != null) {
                query += 'where id in: ids';
            }
        }
        //如果传入的是一段时间
        if (startDate != null && endDate != null) {
            query += '  and  createdDate >= : startDate and createdDate <= : endDate';
        }
        //如果传入的是某一天的日期
        else if (toDate != null) {
            query += '  and  createdDate = :toDate ';
        }
        //如果传入的是一批签收单id
        else if (ids != null) {
            query += '  and  id in: ids ';
        }
        //如果传入的是记录类型或者签收单id
        else if (!string.isblank(id)) {
            query += '  and  id = :id ';
        }
        //最后需要排序
        query += ' order by createdDate asc ';
        System.debug('sql语句:' + query);
        return Database.getQueryLocator(query);
    }
    //15分钟batch  bug  23:45 ~ 2:30 之间只运行 头尾各一次
    public static ScBean setSc(String baseName, Integer minhour, Integer maxhour, Integer minMin, String spbefore, String spafter) {
        Datetime dt = Datetime.now();
        Integer year = Integer.valueOf(dt.format('yyyy'));
        Integer month = Integer.valueOf(dt.format('MM'));
        Integer day = Integer.valueOf(dt.format('dd'));
        Integer hour = Integer.valueOf(dt.format('HH'));
        Integer min = Integer.valueOf(dt.format('mm'));
        ScBean b = new ScBean();
        if (hour == maxhour && min >= (minMin + 45)) {
            b.scName = baseName + '001';
            if (spafter != null && String.isNotBlank(spafter)) {
                b.scName = baseName + '005';
                b.scTime = spafter + ' ' + day + ' ' + month + ' ? ' + year;
                // system.schedule(sJobame,spafter + ' ' + day + ' ' + month + ' ? ' + year, new AgencyShareUpdateBatchSchedule());
                return b;
            } else {
                dt = Datetime.now().addDays(1);
                year = Integer.valueOf(dt.format('yyyy'));
                month = Integer.valueOf(dt.format('MM'));
                day = Integer.valueOf(dt.format('dd'));
                hour = Integer.valueOf(dt.format('HH'));
                min = Integer.valueOf(dt.format('mm'));
                if (spbefore != null && String.isNotBlank(spbefore)) {
                    b.scName = baseName + '006';
                    // '0 20 8
                    b.scTime = spbefore + ' ' + day + ' ' + month + ' ? ' + year;
                    // system.schedule(sJobame,spbefore + ' ' + day + ' ' + month + ' ? ' + year, new AgencyShareUpdateBatchSchedule());
                } else {
                    b.scTime = '0 ' + minMin + ' ' + minhour + ' ' + day + ' ' + month + ' ? ' + year;
                    // system.schedule(sJobame,'0 ' + minMin + ' ' + minhour + ' ' + day + ' ' + month + ' ? ' + year, new AgencyShareUpdateBatchSchedule());
                }
            }
        } else if (min < minMin) {
            b.scName = baseName + '001';
            b.scTime = '0 ' + minMin + ' ' + hour + ' ' + day + ' ' + month + ' ? ' + year;
            // system.schedule(sJobame,'0 ' + minMin + ' ' + hour + ' ' + day + ' ' + month + ' ? ' + year, new AgencyShareUpdateBatchSchedule());
        } else if (min < minMin + 15) {
            b.scName = baseName + '002';
            b.scTime = '0 ' + (minMin + 15) + ' ' + hour + ' ' + day + ' ' + month + ' ? ' + year;
            // system.schedule(sJobame,'0 ' + (minMin + 15) + ' ' + hour + ' ' + day + ' ' + month + ' ? ' + year, new AgencyShareUpdateBatchSchedule());
        } else if (min < minMin + 30) {
            b.scName = baseName + '003';
            b.scTime = '0 ' + (minMin + 30) + ' ' + hour + ' ' + day + ' ' + month + ' ? ' + year;
            // system.schedule(sJobame,'0 ' + (minMin + 30) + ' ' + hour + ' ' + day + ' ' + month + ' ? ' + year, new AgencyShareUpdateBatchSchedule());
        } else if (min < minMin + 45) {
            b.scName = baseName + '004';
            b.scTime = '0 ' + (minMin + 45) + ' ' + hour + ' ' + day + ' ' + month + ' ? ' + year;
            // system.schedule(sJobame,'0 ' + (minMin + 45) + ' ' + hour + ' ' + day + ' ' + month + ' ? ' + year, new AgencyShareUpdateBatchSchedule());
        } else {
            b.scName = baseName + '001';
            b.scTime = '0 ' + minMin + ' ' + (hour + 1) + ' ' + day + ' ' + month + ' ? ' + year;
            // system.schedule(sJobame,'0 ' + minMin + ' ' + (hour + 1) +' ' + day + ' ' + month + ' ? ' + year, new AgencyShareUpdateBatchSchedule());
        }
        return b;
    }
    public static void removeOtherSc(String likeName, String needName) {
        String likeStr = likeName + '00%';
        for (CronTrigger ct : [SELECT Id, CronJobDetailId, CronExpression, CronJobDetail.Name
                               FROM CronTrigger
                               WHERE CronJobDetail.Name Like :likeStr
                               AND CronJobDetail.Name != :needName]) {
            System.abortJob(ct.Id);
        }
    }
    global void execute(Database.BatchableContext BC, list < eSignForm__c > eSignList) {
        //用作录入表的检索条件
        List < String > esFormidList = new List < String > ();
        //存放签收单录入表明细
        List < eSignFormLineItemEntry__c > eSignFormLineItemEntryList = new List < eSignFormLineItemEntry__c > ();
        //用作签收单明细的检索条件
        List < String > eSignFormLineIdList = new List < String > ();
        //更新的签收单明细
        List < eSignFormLineItem__c > eSignFormLuRUList = new List < eSignFormLineItem__c > ();
        //存放最后更新的 录入表id
        List < Id > fileIdList = new List < Id > ();
        //存放最新的 签收单id,签收单录入id
        Map < Id, Id > eSignIdMap = new Map < Id, Id > ();
        //存放最新的 签收单id,签收单录入id 用于最后一条签收单录入表不删除
        Map < Id, Id > eSignFormLastIdMap = new Map < Id, Id > ();
        //存放最新的 签收单id,签收单录入id 用于文件更新
        Map < Id, Id > eSignFlieIdMap = new Map < Id, Id > ();
        //存放录入表id,录入表
        Map < String, eSignFormEntry__c > lasteSignFormEntryMap = new Map < String, eSignFormEntry__c > ();
        //存放最新的 签收单明细id,签收单明细录入id
        Map < Id, Id > eSignFormLineItemEntryIdMap = new Map < Id, Id > ();
        //签收单录入表明细id,签收单录入表明细
        Map < String, eSignFormLineItemEntry__c > lasteSignFormLineItemEntryMap = new Map < String, eSignFormLineItemEntry__c > ();
        //存放 签收单id,文件数量
        Map < String, Integer > fileMap = new Map < String, Integer > ();
        //驳回后删除文件 后  排序问题  精琢技术 wql  2020/12/24 start
        List<Attachment> esignAttachAgencyList = new List<Attachment>();
        List<Attachment> esignAttachHPList = new List<Attachment>();
        Map<String, Integer> fileAgencyMap = new Map<String, Integer>();
        Map<String, Integer> fileHPMap = new Map<String, Integer>();
        //驳回后删除文件 后  排序问题  精琢技术 wql  2020/12/24 end
        //存放ocsm管理省
        List < String > provinceList = new List < String > ();
        //存放15位签收单id,ocsm管理省
        Map < Id, String > provinceMap = new Map < Id, String > ();
        //存放用于更新的签收单数组
        List < eSignForm__c > eSignFormList = new List < eSignForm__c > ();
        //存放签收单录入表id,name
        Map < Id, String > eSignNameMap = new Map < Id, String > ();
        //存放签收单录入表id,type
        Map < Id, String > eSignTypeMap = new Map < Id, String > ();
        //删除中间表数据用
        Map < String, eSignFormEntry__c > eSignStringMap = new Map < String, eSignFormEntry__c > ();
        //存放所有签收单录入表id
        List < String > luruIsSubmitList = new List < String > ();
        //存放所有签收单录入表id
        List < String > luruIsLastSubmitList = new List < String > ();
        //判断是否有未处理的录入表
        Map < Id, eSignFormEntry__c > unprocessedESignEneryMap = new Map < Id, eSignFormEntry__c > ();
        //用于判断删除驳回的附件的筛选条件
        Map < Id, eSignForm__c > rejectESignEneryMap = new Map < Id, eSignForm__c > ();
        //驳回后 删除之前上传的文件id
        List<Attachment> deleteLastFileList = new List<Attachment>();
        //存放未更新前的经销商审批状态
        Map < String, String > oldESignAgencyStatusMap = new Map < String, String > ();
        //存放未更新前的医院审批状态
        Map < String, String > oldESignHPStatusMap = new Map < String, String > ();
        try {
            //循环存放签收单id 用作检索签收单录入表的条件
            system.debug('eSignList:' + eSignList);
            if (eSignList.size() > 0) {
                for (eSignForm__c esForm : eSignList) {
                    //存放签收单id,ocsm管理省 如果询价是集采 则取ocsm管理省为集采课的担当
                    if(esForm.Statu_Achievements__r.Opportunity__r.Group_purchase_PCL__c){
                        provinceMap.put(esForm.Id, '集采课');
                        //检索条件
                        provinceList.add('集采课');
                    }else{
                        provinceMap.put(esForm.Id, esForm.OCM_man_province_cus__c);
                        //检索条件
                        provinceList.add(esForm.OCM_man_province_cus__c);
                    }
                    esFormidList.add(esForm.Id);
                    //有经销商驳回或者医院驳回时删除之前附件
                    if (esForm.agencyRejectDate__c != null || esForm.HPRejectDate__c != null) {
                        rejectESignEneryMap.put(esForm.Id, esForm);
                    }
                }
            }
            system.debug('rejectESignEneryMap:' + rejectESignEneryMap);
            //如果map不为空 则作为筛选条件
            if (rejectESignEneryMap.size()>0) {
                List<Attachment> deleteFileList = [SELECT parentId, createdDate, Name,Description
                                                   FROM Attachment
                                                   WHERE parentId IN: rejectESignEneryMap.keySet() order by createdDate];
                system.debug('deleteFileList:' + deleteFileList);
                if (deleteFileList.size() > 0) {
                    for (eSignForm__c esFile : rejectESignEneryMap.values()) {
                        for (Attachment att : deleteFileList) {
                            if (esFile.agencyRejectDate__c != null || esFile.HPRejectDate__c != null) {
                                if (att.parentId == esFile.Id ) {
                                    //①经销商驳回后需要删除的附件
                                    if (esFile.agencyRejectDate__c != null) {
                                        if (att.Name.substring(0, 1) == 'A' && att.createdDate < esFile.agencyRejectDate__c) {
                                            deleteLastFileList.add(att);
                                        }
                                    }
                                    //②医院驳回后需要删除的附件
                                    if (esFile.HPRejectDate__c != null) {
                                        if (att.Name.substring(0, 1) == 'H' && att.createdDate < esFile.HPRejectDate__c) {
                                            deleteLastFileList.add(att);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            system.debug('驳回后删除的文件:' + deleteLastFileList);
            //先删后增
            if (deleteLastFileList.size() > 0) {
                delete deleteLastFileList;
            }
            //检索所有录入表
            List < eSignFormEntry__c > eSignFormEntryList = [select id, Name, entryType__c, eSignForm__c, eSignForm__r.OCM_man_province_cus__c, salesManageConfirmDate__c, salesHPManageConfirmDate__c, agencyScanDayBack__c, agencySignUpDateBack__c, agencyConfirmDateBack__c, HPScanDayBack__c, HPSignUpDateBack__c, HPConfirmDateBack__c,
                                       eSignForm__r.Name, IsSubmit__c, IsHPSubmit__c, IsAgencyConfirmSubmit__c, agencyAutoSignUpStatus__c, HPSignUpStatus__c, Sales_Root_Formula__c, Sales_assistant_ID__c, IsHandled__c, IsHPHandled__c, createdDate, AgencyWorkflowEmailBack__c, HPWorkflowEmailBack__c, AgencyWorkflowEmail__c, HPWorkflowEmail__c, eSignForm__r.Id, agencyDNSignUpStatus__c, HPDNSignUpStatus__c, agencyReject__c, HPReject__c, IsAgencyScan__c, IsHPScan__c
                                       from eSignFormEntry__c
                                       where eSignForm__c IN: esFormidList
                                       order by eSignForm__c, createdDate asc
                                                            ];
            if (eSignFormEntryList.size() > 0) {
                for (Id eid : esFormidList) {
                    //遍历所有签收单
                    for (eSignFormEntry__c eSignFormEntryWhole : eSignFormEntryList) {
                        //删除用
                        eSignStringMap.put(eSignFormEntryWhole.Id, eSignFormEntryWhole);
                        //②所有的 用于更新文件(包含已处理未处理的数据 )
                        fileIdList.add(eSignFormEntryWhole.Id);
                        if (eSignFormEntryWhole.IsHandled__c == false) {
                            //未处理的
                            unprocessedESignEneryMap.put(eid, eSignFormEntryWhole);
                        }
                        if (eSignFormEntryWhole.eSignForm__r.Id  == eid) {
                            //存放 签收单id,录入表id 文件用
                            eSignFlieIdMap.put(eSignFormEntryWhole.Id, eid);
                            //存放签收单录入表,id,name 文件用
                            eSignNameMap.put(eid, eSignFormEntryWhole.eSignForm__r.Name);
                        }
                        //存放录入表id,记录类型 id,type 文件用
                        eSignTypeMap.put(eSignFormEntryWhole.Id, eSignFormEntryWhole.entryType__c);
                    }
                }
                system.debug('eSignFlieIdMap:' + eSignFlieIdMap);
                //外层是签收单
                for (Id esFormid : esFormidList) {
                    //内层是签收单录入表
                    for (eSignFormEntry__c eSignFormEntry : eSignFormEntryList) {
                        //①取最新的 录入表 + 未处理的
                        if (esFormid.equals(eSignFormEntry.eSignForm__c)) {
                            if (!eSignFormEntry.IsHandled__c) {
                                //存放 签收单id,录入表id
                                eSignIdMap.put(esFormid, eSignFormEntry.Id);
                                lasteSignFormEntryMap.put(esFormid, eSignFormEntry);
                                //因为按签收单倒序排,所以第一条就是最新的,直接跳出
                                // break;
                            }
                            eSignFormLastIdMap.put(esFormid, eSignFormEntry.Id);
                        }
                    }
                }
                //最后更新的录入表id
                for (Id eSignId : eSignIdMap.values()) {
                    luruIsSubmitList.add(eSignId);
                }
                //最后更新的录入表id
                for (Id eSignId : eSignFormLastIdMap.values()) {
                    luruIsLastSubmitList.add(eSignId);
                }
                //重新对附件排序  规则变为根据签收单现有附件序号进行排序 精琢技术 wql start
                //暂时存放一下签收单名称
                Map<string, string> tempMap = new Map<string, string>();
                List<Attachment> tempAttList = [SELECT parentId, createdDate, Name,Description
                                                FROM Attachment
                                                WHERE parentId IN: esFormidList order by createdDate];
                if (tempAttList.size() > 0) {
                    //外层循环签收单
                    for (String es : esFormidList) {
                        //内层循环附件
                        for (Attachment att : tempAttList) {
                            //如果id相等
                            if (es.equals(att.parentId)) {
                                //根据名称拆分 存入不同list
                                String name = att.Name;
                                if (name.substring(0, 1).equals('A')) {
                                    esignAttachAgencyList.add(att);
                                } else if (name.substring(0, 1).equals('H')) {
                                    esignAttachHPList.add(att);
                                }
                            }
                        }
                        //分别存入到经销商or医院的附件map 用于后期命名
                        if (esignAttachAgencyList.size() > 0) {
                            fileAgencyMap.put(es, esignAttachAgencyList.size());
                        }
                        if (esignAttachHPList.size() > 0) {
                            fileHPMap.put(es, esignAttachHPList.size());
                        }
                        //清空list 供下一个签收单使用
                        esignAttachAgencyList.clear();
                        esignAttachHPList.clear();
                    }
                }
                system.debug('fileAgencyMap:' + fileAgencyMap);
                system.debug('fileHPMap:' + fileHPMap);
                //重新对附件排序  规则变为根据签收单现有附件序号进行排序 精琢技术 wql end
                //根据所有的签收单录入表id检索所有的签收单明细录入
                List < eSignFormLineItemEntry__c > eSignFormLineItemEntryLists = [select id, eSignFormEntry__r.entryType__c, eSignFormEntry__r.IsHandled__c, eSignFormLineItem__c, eSignFormEntry__c,
                                                   agencyConfirmResult__c, HPConfirmResult__c, HPGoodStatus__c, agencyGoodStatus__c
                                                   from eSignFormLineItemEntry__c where eSignFormEntry__c in : luruIsSubmitList  and eSignFormEntry__r.IsHandled__c = false order by createdDate asc
                                                                                 ];
                if (eSignFormLineItemEntryLists.size() > 0) {
                    for (eSignFormLineItemEntry__c eSignFormLineItemEntry : eSignFormLineItemEntryLists) {
                        eSignFormLineIdList.add(eSignFormLineItemEntry.eSignFormLineItem__c);
                    }
                }
                system.debug('eSignFormLineIdList:' + eSignFormLineIdList);
                if (eSignFormLineIdList.size() > 0) {
                    //根据签收单明细录入表 去检索签收单明细
                    List < eSignFormLineItem__c > eSignFormLineItemList = [select id, agencyGoodStatus__c, HPGoodStatus__c from eSignFormLineItem__c where id IN: eSignFormLineIdList];
                    if (eSignFormLineItemList.size() > 0) {
                        //外层签收单明细
                        for (eSignFormLineItem__c eSignFormLineItem : eSignFormLineItemList) {
                            //内层签收单明细录入
                            for (eSignFormLineItemEntry__c eSignFormLineItemEntry : eSignFormLineItemEntryLists) {
                                //明细id相等存放一个map
                                if (eSignFormLineItem.Id.equals(eSignFormLineItemEntry.eSignFormLineItem__c)) {
                                    eSignFormLineItemEntryIdMap.put(eSignFormLineItem.Id, eSignFormLineItemEntry.Id);
                                    lasteSignFormLineItemEntryMap.put(eSignFormLineItem.Id, eSignFormLineItemEntry);
                                }
                            }
                        }
                    }
                }
                system.debug('lasteSignFormLineItemEntryMap:' + lasteSignFormLineItemEntryMap);
                if (eSignFormLineIdList.size() > 0) {
                    //循环 更新签收单
                    for (Id esefId : eSignFormLineIdList) {
                        if (lasteSignFormLineItemEntryMap.containsKey(esefId)) {
                            eSignFormLineItemEntry__c luru = lasteSignFormLineItemEntryMap.get(esefId);
                            //new 一个签收单明细对象
                            eSignFormLineItem__c eSignLuRu = new eSignFormLineItem__c();
                            //签收单id
                            eSignLuRu.id = esefId;
                            //货物情况(经销商收货)
                            eSignLuRu.agencyGoodStatus__c = luru.agencyGoodStatus__c;
                            // //经销商确认结果
                            // eSignLuRu.agencyConfirmResult__c = luru.agencyConfirmResult__c;
                            //货物情况(医院收货)
                            eSignLuRu.HPGoodStatus__c = luru.HPGoodStatus__c;
                            // //经销商确认结果
                            // eSignLuRu.HPConfirmResult__c = luru.HPConfirmResult__c;
                            //同一个签收单循环遍历签收单录入表 最后一个录入表会add到更新数组中
                            if (eSignLuRu != null) {
                                system.debug('签收单明细象-----:' + eSignLuRu);
                                eSignFormLuRuList.add(eSignLuRu);
                            }
                        }
                    }
                }
                System.debug('更新的签收单明细list:' + eSignFormLuRUList);
                system.debug('esFormidList:' + esFormidList);
                if (unprocessedESignEneryMap.size() > 0) {
                    for (Id eSignFormid : unprocessedESignEneryMap.keySet()) {
                        //new 一个签收单对象
                        eSignForm__c eSignForm = new eSignForm__c();
                        String name = '';
                        String idlast = '';
                        boolean IsSubmit = false;
                        boolean IsHPSubmit = false;
                        //销售渠道
                        String Sales_Root_Formula;
                        //录入类型
                        String type;
                        System.debug('lasteSignFormEntryMap:' + lasteSignFormEntryMap);
                        if (lasteSignFormEntryMap.containsKey(eSignFormid)) {
                            eSignForm.id = eSignFormid;
                            //签收单id
                            eSignFormEntry__c eSignFormEntry = lasteSignFormEntryMap.get(eSignFormid);
                            //如果经销商确认日为空的话 进去判断更新经销商审批状态
                            if (eSignFormEntry.agencyDNSignUpStatus__c != '签收已完成') {
                                if (eSignFormEntry.agencyConfirmDateBack__c == null) {
                                    if (eSignFormEntry.IsSubmit__c == true) {
                                        eSignForm.agencyAutoSignUpStatus__c = '申请中';
                                        eSignForm.agencyReject__c = false;
                                    } else {
                                        if (eSignFormEntry.agencyScanDayBack__c != null && eSignFormEntry.IsAgencyScan__c) {
                                            eSignForm.agencyAutoSignUpStatus__c = '草案中';
                                            eSignForm.agencyReject__c = false;
                                        }
                                    }
                                }
                                //未更新前的经销商审批状态 用于文件累计汇总
                                if(eSignFormEntry.agencyAutoSignUpStatus__c!=null &&eSignFormEntry.agencyAutoSignUpStatus__c!=''){
                                    oldESignAgencyStatusMap.put('A' + eSignForm.id, eSignFormEntry.agencyAutoSignUpStatus__c);
                                }else{
                                    oldESignAgencyStatusMap.put('A' + eSignForm.id, '无');
                                }
                            }
                            if (eSignFormEntry.HPDNSignUpStatus__c != '签收已完成') {
                                //如果医院确认日为空的话 进去判断更新医院审批状态
                                if (eSignFormEntry.salesHPManageConfirmDate__c == null) {
                                    if (eSignFormEntry.IsHPSubmit__c == true) {
                                        eSignForm.HPSignUpStatus__c = '申请中';
                                        eSignForm.HPReject__c = false;
                                    } else {
                                        if (eSignFormEntry.HPScanDayBack__c != null && eSignFormEntry.IsHPScan__c) {
                                            eSignForm.HPSignUpStatus__c = '草案中';
                                            eSignForm.HPReject__c = false;
                                        }
                                    }
                                }
                                //未更新前的医院审批状态 用于文件累计汇总
                                if(eSignFormEntry.HPSignUpStatus__c!=null &&eSignFormEntry.HPSignUpStatus__c!=''){
                                    oldESignHPStatusMap.put('H' + eSignForm.id, eSignFormEntry.HPSignUpStatus__c);
                                }else{
                                    oldESignHPStatusMap.put('H' + eSignForm.id, '无');
                                }
                            }
                            //如果没变化则不更新
                            if (eSignFormEntry.AgencyWorkflowEmailBack__c != eSignFormEntry.AgencyWorkflowEmail__c) {
                                //经销商邮件
                                eSignForm.AgencyWorkflowEmail__c = eSignFormEntry.AgencyWorkflowEmailBack__c;
                            }
                            //如果没变化则不更新
                            if (eSignFormEntry.HPWorkflowEmailBack__c != eSignFormEntry.HPWorkflowEmail__c) {
                                //医院邮件
                                eSignForm.HPWorkflowEmail__c = eSignFormEntry.HPWorkflowEmailBack__c;
                            }
                            if (eSignFormEntry.agencyDNSignUpStatus__c != '签收已完成') {
                                //经销商扫描日
                                if (eSignFormEntry.agencyScanDayBack__c != null) {
                                    eSignForm.agencyScanDay__c = eSignFormEntry.agencyScanDayBack__c;
                                }
                                //经销商签收日
                                if (eSignFormEntry.agencySignUpDateBack__c != null) {
                                    eSignForm.agencySignUpDate__c = eSignFormEntry.agencySignUpDateBack__c;
                                }
                                //经销商确认日
                                if (eSignFormEntry.agencyConfirmDateBack__c != null) {
                                    eSignForm.agencyConfirmDate__c = eSignFormEntry.agencyConfirmDateBack__c;
                                }
                            }
                            if (eSignFormEntry.HPDNSignUpStatus__c != '签收已完成') {
                                //医院扫描日
                                if (eSignFormEntry.HPScanDayBack__c != null) {
                                    eSignForm.HPScanDay__c = eSignFormEntry.HPScanDayBack__c;
                                }
                                //医院签收日
                                if (eSignFormEntry.HPSignUpDateBack__c != null) {
                                    eSignForm.HPSignUpDate__c = eSignFormEntry.HPSignUpDateBack__c;
                                }
                                //医院确认日
                                if (eSignFormEntry.HPConfirmDateBack__c != null) {
                                    eSignForm.HPConfirmDate__c = eSignFormEntry.HPConfirmDateBack__c;
                                }
                            }
                            //给营业助理赋值
                            eSignForm.Sales_assistant_name_text__c = eSignFormEntry.Sales_assistant_ID__c;
                            //存一个id
                            idlast = eSignFormEntry.Id;
                            //签收单name用作文件命名
                            name = eSignFormEntry.eSignForm__r.Name;
                            //是否经销商提交
                            IsSubmit = eSignFormEntry.IsSubmit__c;
                            //是否医院提交
                            IsHPSubmit = eSignFormEntry.IsHPSubmit__c;
                            //最后录入表
                            eSignForm.finalUpadteFrom__c = eSignFormEntry.Id;
                            //销售渠道 区分直销还是分销
                            Sales_Root_Formula = eSignFormEntry.Sales_Root_Formula__c;
                            //录入类型
                            type = eSignFormEntry.entryType__c;
                        }
                        system.debug('签收单对象-----:' + eSignForm);
                        if (eSignForm != null) {
                            system.debug('eSignFormid:' + eSignFormid);
                            if (eSignForm.id != null) {
                                eSignFormList.add(eSignForm);
                            }
                        }
                        system.debug('eSignFormList111:' + eSignFormList);
                        if (eSignFormList.size() > 0) {
                            //更新OCSM管理省 担当
                            eSignFormList = updateOwner(provinceList, provinceMap, eSignFormList, false);
                        }
                    }
                }
            }
            if (eSignFormList.size() <= 0) {
                system.debug('我走到这里了!');
                eSignFormList  = updateOwner(provinceList, provinceMap, eSignList, true);
            }
            List<Id> fileList = new List<Id> ();
            if (fileIdList.size() > 0) {
                for (Id fileId : fileIdList) {
                    if (!fileList.contains(fileId)) {
                        fileList.add(fileId);
                    }
                }
            }
            System.debug('fileIdList:' + fileIdList);
            System.debug('fileList:' + fileList);
            //用于最后insert 附件
            List<Attachment> insertAttactment = new List<Attachment>();
            //附件  start
            List<Attachment> attachMentList = [SELECT id, parentId, Body, Name, ContentType,Description  from Attachment where parentId IN :fileList and Description!='电子签收单:已处理'];
            //修复已处理数据 附件没更新  即没有附件能提交的bug 精琢技术 wql 2021/01/19 start
            List<Attachment> eSignEntryAttachMentList = new List<Attachment>();
            //文件数量 用于文件命名
            Integer agencyCount = 0;
            Integer hpCount = 0;
            String name;
            String type ;
            Integer agencyFileCountNum = 0;
            Integer hpFileCountNum = 0;
            Integer i = 0;
            Integer j = 0;
            //记录该签收单的最新经销商附件数量
            Map<id,Integer> eSignAgencyAttSum = new Map<id,Integer> ();
            //记录该签收单的最新医院附件数量
            Map<id,Integer> eSignHpAttSum = new Map<id,Integer> ();
            //同一条录入表多个附件标识
            Boolean agencyNumFlag = false;
            Boolean hpNumFlag = false;
            //存1条数据内多个附件 一个固定值
            Integer agencySumCount = 0;
            Integer hpSumCount = 0;
            if (fileList.size() > 0) {
                system.debug('attachMentList:' + attachMentList);
                system.debug('eSignFlieIdMap:' + eSignFlieIdMap);
                system.debug('eSignNameMap:' + eSignNameMap);
                for (Id eSignFormEntryId : fileList) {
                    for (Attachment attach : attachMentList) {
                        if (attach.parentId == eSignFormEntryId) {
                            Id eid = eSignFlieIdMap.get(attach.parentId);
                            system.debug('eid:' + eid);
                            name = eSignNameMap.get(eid);
                            system.debug('name:' + name);
                            type = eSignTypeMap.get(attach.parentId);
                            //因为外层循环是中间表 如果2条以上录入表都有经销商附件 则使用最新构建的经销商附件数量来命名
                            //否则取未更新之前有的经销商附件数量 并且 不是1个录入表多个附件 也就是false的时候 取模拟的最新数量
                            if(eSignAgencyAttSum.size()>0&&!agencyNumFlag){
                                agencyCount = eSignAgencyAttSum.get(eid);
                                //记录一个最新的附件数
                                agencySumCount =agencyCount;
                            }else if(agencySumCount>0){
                                //本次循环内 第一次取附件数最新值 后续都在此基础上i++
                                agencyCount =agencySumCount;
                            }
                            else if(fileAgencyMap.size() > 0){
                                //只有一条数据时,使用此附件数即可 后续在此基础上i++
                                agencyCount = fileAgencyMap.get(eid);
                            }
                            //同一个内部循环里置成true
                            agencyNumFlag = true;
                            //经销商附件命名 start
                            // if (fileAgencyMap.size() > 0) {
                            //     agencyCount = fileAgencyMap.get(eid);
                            // }
                            system.debug(name + 'agencyCount:' + agencyCount);
                            if (agencyCount == null || agencyCount == 0) {
                                agencyFileCountNum = 1 + i;
                            } else {
                                agencyFileCountNum = agencyCount + 1 + i;
                            }
                            //经销商附件命名 end
                            //因为外层循环是中间表 如果2条以上录入表都有医院附件 则使用最新构建的医院附件数量来命名
                            //否则取未更新之前有的医院附件数量 并且 不是1个录入表多个附件 也就是false的时候 取模拟的最新数量
                            if(eSignHpAttSum.size()>0&&!hpNumFlag){
                                hpCount = eSignHpAttSum.get(eid);
                                //记录一个最新的附件数
                                hpSumCount = hpCount;
                            }else if(hpSumCount >0 ){
                                //本次循环内 第一次取附件数最新值 后续都在此基础上j++
                                hpCount =hpSumCount;
                            }
                            else if(fileHPMap.size() > 0){
                                //只有一条数据时,使用此附件数即可 后续在此基础上j++
                                hpCount = fileHPMap.get(eid);
                            }
                            //同一个内部循环里置成true
                            hpNumFlag =true;
                            //医院附件命名 start
                            // if (fileHPMap.size() > 0) {
                            //     hpCount = fileHPMap.get(eid);
                            // }
                            system.debug(name + 'hpCount:' + hpCount);
                            if (hpCount == null || hpCount == 0) {
                                hpFileCountNum = 1 + j;
                            } else {
                                hpFileCountNum = hpCount + 1 + j;
                            }
                            //构建最新的签收单经销商附件数量
                            if(agencyFileCountNum>0){
                                eSignAgencyAttSum.put(eid,agencyFileCountNum);
                            }
                            //构建最新的签收单医院附件数量
                            if(hpFileCountNum>0){
                                eSignHpAttSum.put(eid,hpFileCountNum);
                            }
                            //医院附件命名 end
                            //用于拆分经销商/医院 区别文件名
                            String finalName = '';
                            String title = '';
                            //文件命名
                            if (type == '经销商收货' || type == '经销商确认') {
                                finalName = 'A-' + name;
                                //用于判断多次上传文件命名
                                i++;
                                title = finalName + '--' + agencyFileCountNum;
                            } else if (type == '医院收货' || type == '医院确认') {
                                finalName = 'H-' + name;
                                //用于判断多次上传文件命名
                                j++;
                                title = finalName + '--' + hpFileCountNum;
                            } else {
                                finalName = name;
                            }
                            system.debug('文件名:' + title);
                            //判断一下格式,不然下载下来是类型是所有文件
                            // if(attach.ContentType == 'application/pdf'){
                            //     title = title +'.pdf';
                            // }else if(attach.ContentType == 'image/jpeg'){
                            //     title = title +'.jpg';
                            // }
                            //判断一下格式,不然下载下来是类型是所有文件 无法打开
                            if (attach.Name.lastIndexOf('.') > -1) {
                                title = title + attach.Name.substring(attach.Name.lastIndexOf('.'));
                            }
                            Attachment newAttachment = attach.clone();
                            newAttachment.parentId = eid;
                            newAttachment.name = title;
                            // newAttachment.ContentType =attach.ContentType;
                            //要更新的签收单附件
                            insertAttactment.add(newAttachment);
                            //反更新录入表的附件 用来判断附件是否被更新
                            Attachment oldAttachment = new  Attachment();
                            oldAttachment.Id = attach.Id;
                            oldAttachment.Description = '电子签收单:已处理';
                            eSignEntryAttachMentList.add(oldAttachment);
                        }
                    }
                    //整单循环后 清空值
                    i = 0;
                    j = 0;
                    agencyNumFlag= false;
                    hpNumFlag =false;
                    agencySumCount =0;
                    hpSumCount=0;
                }
            }
            //电子签收单 增加本次更新附件数量  2020/01/07 精琢技术 wql start
            //没有附件则根本不会进入
            if (insertAttactment.size() > 0) {
                insert insertAttactment;
                //反向更新录入表附件
                if(eSignEntryAttachMentList.size()>0){
                    update eSignEntryAttachMentList;
                }
                //更新已提交的签收单的附件数
                if (eSignFormList.size() > 0) {
                    //外层所有签收单
                    for (eSignForm__c es : eSignFormList) {
                        //a为经销商附件的数量 h为医院附件的数量
                        Integer a = 0;
                        Integer h = 0;
                        //内层所有需要更新的附件
                        for (Attachment att : insertAttactment) {
                            if (es.Id != null) {
                                if (es.Id.equals(att.parentId)) {
                                    if (es.agencyAutoSignUpStatus__c != null) {
                                        if (es.agencyAutoSignUpStatus__c.equals('申请中') && oldESignAgencyStatusMap.size()>0) {
                                                if(!oldESignAgencyStatusMap.get('A' + es.Id).equals('申请中')){
                                                    if (att.Name.substring(0, 1).equals('A')) {
                                                        a ++;
                                                    }
                                                }
                                        }
                                    }
                                    if (es.HPSignUpStatus__c != null) {
                                        if (es.HPSignUpStatus__c.equals('申请中') && oldESignHPStatusMap.size()>0) {
                                            if(!oldESignHPStatusMap.get('H' + es.Id).equals('申请中')){
                                                if (att.Name.substring(0, 1).equals('H')) {
                                                    h ++;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        //只有真正扫码提交的 并且没有附件才会被更新
                        if (es.agencyAutoSignUpStatus__c != null) {
                            if (es.agencyAutoSignUpStatus__c.equals('申请中') && oldESignAgencyStatusMap.size()>0) {
                                if(!oldESignAgencyStatusMap.get('A' + es.Id).equals('申请中')){
                                    es.agencyAttachNum__c = a;
                                }
                            }
                        }
                        //只有真正扫码提交的 并且没有附件才会被更新
                        if (es.HPSignUpStatus__c != null) {
                            if (es.HPSignUpStatus__c.equals('申请中') &&oldESignHPStatusMap.size()>0 ) {
                                if(!oldESignHPStatusMap.get('H' + es.Id).equals('申请中')){
                                     es.HPAttachNum__c = h;
                                }
                            }
                        }
                        a = 0;
                        h = 0;
                    }
                }
                //电子签收单 增加本次更新附件数量  2020/01/07 精琢技术 wql end
                //文件 end
            }
            system.debug('更新的签收单:' + eSignFormList);
            //更新签收单明细并添加日志
            if (eSignFormLuRUList.size() > 0) {
                Database.SaveResult[] lsr = Database.update(eSignFormLuRUList, false);
                eb.setError(lsr, MAXERRORCNT, eSignFormLineItem__c.sObjectType);
                for (Integer tIdx = 0; tIdx < lsr.size(); tIdx++) {
                    Database.SaveResult sr = lsr[tIdx];
                    System.debug('sr.isSuccess:' + sr.isSuccess());
                    if (!sr.isSuccess()) {
                        Database.Error emsg = sr.getErrors()[0];
                        iflog.ErrorLog__c += 'ERROR ' + eSignFormList[tIdx].Id + ' eSignFormLineItem__c:' + emsg + '\n';
                    }
                }
            }
            //更新签收单并添加日志
            if (eSignFormList.size() > 0) {
                Database.SaveResult[] lsr = Database.update(eSignFormList, false);
                eb.setError(lsr, MAXERRORCNT, eSignForm__c.sObjectType);
                for (Integer tIdx = 0; tIdx < lsr.size(); tIdx++) {
                    Database.SaveResult sr = lsr[tIdx];
                    System.debug('sr.isSuccess:' + sr.isSuccess());
                    if (!sr.isSuccess()) {
                        Database.Error emsg = sr.getErrors()[0];
                        iflog.ErrorLog__c += 'ERROR ' + eSignFormList[tIdx].Id + ' eSignForm__c:' + emsg + '\n';
                    }
                }
            }
        }catch(NullPointerException npe){
                iflog.ErrorLog__c += 'ERROR : eSignForm__c:空指针错误-行号:'+ npe.getLineNumber()+ '\n';
        }
        catch (Exception e) {
            // Database.rollback(sp);
            iflog.ErrorLog__c += 'ERROR : eSignForm__c:'+ e.getMessage() + '\n';
        }
        try{
            System.debug('luruIsLastSubmitList:'+luruIsLastSubmitList);
            if (luruIsLastSubmitList.size() > 0) {
                //删除中间表数据(因为住主详关系,删除录入表即可)
                deleteMiddleData(eSignStringMap, luruIsLastSubmitList);
            }
        }catch(Exception e){
            iflog.ErrorLog__c += 'ERROR : eSignForm__c:'+ e.getMessage() + '\n';
        }
        //文件 end
    }
    //删除中间表数据(因为住主详关系,删除录入表即可)
    private static void deleteMiddleData(Map < String, eSignFormEntry__c > eSignStringMap, List < String > luruIsSubmitList) {
        system.debug('检索的所有录入表:' + eSignStringMap);
        system.debug('最后录入的id :' + luruIsSubmitList + '----数量:' + luruIsSubmitList.size());
        list < eSignFormEntry__c > eSignFormDeleteList = new list < eSignFormEntry__c > ();
        for (String essm : eSignStringMap.keySet()) {
            for (String lisl : luruIsSubmitList) {
                if (essm.equals(lisl)) {
                    eSignStringMap.remove(lisl);
                }
            }
        }
        for (eSignFormEntry__c esfe : eSignStringMap.values()) {
            eSignFormDeleteList.add(esfe);
        }
        system.debug('删除的数据id:' + eSignFormDeleteList + '----数量:' + eSignFormDeleteList.size());
        //删除签收单录入表其他数据
        if (eSignFormDeleteList.size() > 0) {
            //循环遍历id 删除文件
            List<String> fileDeleteIdList = new List<String> ();
            List<Attachment> deleteAttachmentList = new List<Attachment>();
            for (eSignFormEntry__c eSigf : eSignFormDeleteList) {
                fileDeleteIdList.add(eSigf.Id);
            }
            //循环找到文件id
            if (fileDeleteIdList.size() > 0) {
                // 2022-02-28 shashiming Apex heap size too large
                // 去掉Body字段
                List<Attachment> attachMentList = [SELECT id, parentId, Name, ContentType,Description  from Attachment where parentId = :fileDeleteIdList];
                if (attachMentList.size() > 0) {
                    for (Attachment att : attachMentList) {
                        Attachment am = new Attachment();
                        am.Id = att.Id;
                        deleteAttachmentList.add(am);
                    }
                    //删除文件
                    if (deleteAttachmentList.size() > 0) {
                        delete deleteAttachmentList;
                    }
                }
            }
            //删除录入表
            delete eSignFormDeleteList;
        }
    }
    @TestVisible
    //更新营业部担当
    private static List < eSignForm__c > updateOwner(List < String > provinceList, Map < Id, String > provinceMap, List < eSignForm__c > eSignFormList, boolean ocsmFlag) {
        //营业担当 map
        Map < String, String > provinceOwnerMap = new Map < String, String > ();
        //营业助理 map
        Map < String, String > provinceGIMap = new Map < String, String > ();
        List < eSignForm__c > eSignFormLastList = new List < eSignForm__c >();
        //检索OCSM管理省对象
        List < OCM_Management_Province__c > ompList = [select id, Name, SalesManage__c,GI_assistant__c    from OCM_Management_Province__c where Name IN: provinceList];
        //存放map<省,担当>
        for (OCM_Management_Province__c omp : ompList) {
            //不用map<String,list>的 原因是 想 ocsm管理省 和签收单 营业担当的顺序保持一致
            //String salesManage = omp.SalesManage__c+','+omp.SalesManage2__c+','+omp.SalesManage3__c;
            //provinceOwnerMap.put(omp.Name, salesManage);
            provinceOwnerMap.put(omp.Name, omp.SalesManage__c);
            provinceGIMap.put(omp.Name, omp.GI_assistant__c);
        }
        //①为true的时候 是其他没发生变化只有ocsm省上营业担当改变
        //②为false的时候,有中间表正常更新的情况
        //营业担当123 可能以后不用 20201225 start
        // if(ocsmFlag){
        //     //给最后要更新的签收单的审批者(营业部担当)赋值
        //     for (Integer cnt=0;cnt<eSignFormList.size();cnt++) {
        //         //将逗号分隔的字符串转为数组
        //         //因为其中有逗号,所以肯定不为空
        //         String rcManager =  provinceOwnerMap.get(provinceMap.get(eSignFormList[cnt].Id));
        //         String[] result;
        //         if(rcManager !=null && String.isNotBlank(rcManager)){
        //              result= rcManager.split(',');
        //         }
        //         if(result.size()>0&&result!=null){
        //             if(result.contains(eSignFormList[cnt].RC_Manager__c)&&result.contains(eSignFormList[cnt].RC_Manager2__c)&&result.contains(eSignFormList[cnt].RC_Manager3__c)){
        //                 //则不用更新,返回null
        //                 eSignFormList.remove(cnt);
        //                 eSignFormLastList =eSignFormList;
        //             }else{
        //                 eSignForm__c eSignForm = new eSignForm__c();
        //                 eSignForm.Id = eSignFormList[cnt].Id;
        //                 if(result.size()>0){
        //                     if(String.isNotBlank(result[0])&&result[0]!=null&&result[0]!=''&&result[0]!='null'){
        //                         eSignForm.RC_Manager__c = result[0];
        //                     }else{
        //                         eSignForm.RC_Manager__c = null;
        //                     }
        //                     if(String.isNotBlank(result[1])&&result[1]!=null&&result[1]!=''&&result[1]!='null'){
        //                         eSignForm.RC_Manager2__c = result[1];
        //                     }else{
        //                         eSignForm.RC_Manager2__c = null;
        //                     }
        //                     if(String.isNotBlank(result[2])&&result[2]!=null&&result[2]!=''&&result[2]!='null'){
        //                         eSignForm.RC_Manager3__c = result[2];
        //                     }else{
        //                         eSignForm.RC_Manager3__c = null;
        //                     }
        //                 }
        //                 //eSignForm.RC_Manager__c = provinceOwnerMap.get(provinceMap.get(eSignFormList[cnt].Id));
        //                 eSignFormLastList.add(eSignForm);
        //             }
        //         }
        //     }
        //     return eSignFormLastList;
        // }else{
        //     //给最后要更新的签收单的审批者(营业部担当)赋值
        //     for (eSignForm__c esf: eSignFormList) {
        //         //将逗号分隔的字符串转为数组
        //         //因为其中有逗号,所以肯定不为空
        //         String rcManager =  provinceOwnerMap.get(provinceMap.get(esf.Id));
        //         String[] result;
        //         if(rcManager!=null&&String.isNotBlank(rcManager)){
        //             result = rcManager.split(',');
        //         }
        //         if(result.size()>0){
        //             if(String.isNotBlank(result[0])&&result[0]!=null&&result[0]!=''&&result[0]!='null'){
        //                 esf.RC_Manager__c = result[0];
        //             }
        //             if(String.isNotBlank(result[1])&&result[1]!=null&&result[1]!=''&&result[1]!='null'){
        //                 esf.RC_Manager2__c = result[1];
        //             }
        //             if(String.isNotBlank(result[2])&&result[2]!=null&&result[2]!=''&&result[2]!='null'){
        //                 esf.RC_Manager3__c = result[2];
        //             }
        //         }
        //         //esf.RC_Manager__c = provinceOwnerMap.get(provinceMap.get(esf.Id));
        //     }
        //     return eSignFormList;
        // }
        //营业担当123 可能以后不用  20201225 end
        if (ocsmFlag) {
            //给最后要更新的签收单的审批者(营业部担当)赋值
            for (Integer cnt = 0; cnt < eSignFormList.size(); cnt++) {
                if (provinceOwnerMap.get(provinceMap.get(eSignFormList[cnt].Id)) != eSignFormList[cnt].RC_Manager__c ||provinceMap.get(eSignFormList[cnt].Id).equals('集采课')) {
                    eSignForm__c eSignForm = new eSignForm__c();
                    eSignForm.Id = eSignFormList[cnt].Id;
                    eSignForm.RC_Manager__c = provinceOwnerMap.get(provinceMap.get(eSignFormList[cnt].Id));
                    //集采询价 营业助理需要维护成 集采课的SP、GI助理 精琢技术 wql 2021/01/08 start
                    if(provinceMap.get(eSignFormList[cnt].Id).equals('集采课')){
                        eSignForm.Sales_assistant_name_text__c = provinceGIMap.get(provinceMap.get(eSignFormList[cnt].Id));
                    }
                    //集采询价 营业助理需要维护成 集采课的SP、GI助理 精琢技术 wql 2021/01/08 end
                    eSignFormLastList.add(eSignForm);
                }
            }
            return eSignFormLastList;
        } else {
            //给最后要更新的签收单的审批者(营业部担当)赋值
            for (eSignForm__c esf : eSignFormList) {
                if (provinceOwnerMap.get(provinceMap.get(esf.Id)) != null) {
                    esf.RC_Manager__c = provinceOwnerMap.get(provinceMap.get(esf.Id));
                    //集采询价 营业助理需要维护成 集采课的SP、GI助理 精琢技术 wql 2021/01/08 start
                    if(provinceMap.get(esf.Id).equals('集采课')){
                        esf.Sales_assistant_name_text__c = provinceGIMap.get(provinceMap.get(esf.Id));
                    }
                    //集采询价 营业助理需要维护成 集采课的SP、GI助理 精琢技术 wql 2021/01/08 end
                }
            }
            return eSignFormList;
        }
    }
    global void finish(Database.BatchableContext BC) {
        //更新该日志的数据信息
        iflog.Log__c += '\nupdateESignBatchAttachment end';
        String tmp = iflog.ErrorLog__c;
        if (iflog.Log__c.length() > 131072) {
            iflog.Log__c = iflog.Log__c.subString(0, 131065) + ' ...';
        }
        if (iflog.ErrorLog__c.length() > 32768) {
            iflog.ErrorLog__c = iflog.ErrorLog__c.subString(0, 32760) + ' ...';
        }
        if (tmp.length() > 65000) {
            tmp = tmp.substring(0, 65000);
            tmp += ' ...have more lines...';
            iflog.ErrorLog__c = tmp;
        }
        //有错误才添加日志,不然每天每15分钟生成日志太多
        if (tmp.length() > 0) {
            insert iflog;
        }
        system.debug('手动传参:' + ManualExecution_Identification);
        //手动传参执行则不进入创建计划的作业
        if (!ManualExecution_Identification) {
            Boolean haveError = false;
            String body = scErrorMessage;
            for (Id objId : eb.messageMap.keySet()) {
                haveError = true;
                body += eb.messageMap.get(objId) + '<br/>';
            }
            if (eb.overMax) {
                body += ':Over ' + MAXERRORCNT + 'Record<br/>';
            }
            updateESignBatchAttachment.removeOtherSc('updateESignFormSchedule', scB.scName);
            if (haveError == true || String.isNotBlank(scErrorMessage)) {
                // BatchユーザId
                //写死精琢用户 上线后应该会修改成自定义标签
                // String batchUserId = '00510000005sEEM';
                String batchUserId = System.Label.Batch_User_Id;
                List<User> us = [Select Id, NAme, Email From User Where Id = : batchUserId];
                if (!us.isEmpty()) {
                    User use = us[0];
                    if (String.isNotBlank(use.Email)) {
                        List<String> MailCc;
                        if (System.Label.ESign_Error_Send_To_CC != 'null') {
                            MailCc = System.Label.ESign_Error_Send_To_CC.split(',');
                        }
                        FixtureUtil.sendMessage(batchUserId,
                                                MailCc,
                                                'updateESignBatchAttachment Error',
                                                body
                                               );
                    }
                }
            }
        }
    }
    public class ErrorBean {
        // public String objectName;
        // public String objectLabel;
        public Map<Id, String> messageMap;
        public Boolean overMax;
        // public ErrorBean(Schema.sObjectType obj) {
        //     objectName = obj.getDescribe().getName();
        //     objectLabel = obj.getDescribe().getLabel();
        //     messageMap = new Map<Id, String>();
        //     overMax = false;
        // }
        public ErrorBean() {
            messageMap = new Map<Id, String>();
            overMax = false;
        }
        public void setError (Database.SaveResult[] saveRes, Integer maxCut, Schema.sObjectType obj) {
            if (messageMap.keySet().size() <= maxCut && overMax == false) {
                String objectName = obj.getDescribe().getName();
                String objectLabel = obj.getDescribe().getLabel();
                for (Database.SaveResult saveRe : saveRes) {
                    if (!saveRe.isSuccess()) {
                        if (!messageMap.containsKey(saveRe.getId())) {
                            if (messageMap.keySet().size() >= maxCut) {
                                overMax = true;
                                break;
                            }
                            for (Database.Error err : saveRe.getErrors()) {
                                String message = objectName + ':'
                                                 + objectLabel + ':'
                                                 + err.getStatusCode() + ':'
                                                 + err.getFields() + ':'
                                                 + err.getMessage();
                                // 数据里面有复数错误信息的话只获取第一条
                                messageMap.put(saveRe.getId(), message);
                                break;
                            }
                        }
                    }
                }
            }
        }
    }
    //定时跑任务
    public Class ScBean {
        public String scName;
        public String scTime;
    }
}
force-app/main/default/classes/updateESignBatchAttachment.cls-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>56.0</apiVersion>
    <status>Active</status>
</ApexClass>
force-app/main/default/lwc/afterRenderHook/afterRenderHook.html
New file
@@ -0,0 +1,5 @@
<template>
    <template for:each={courses} for:item="course">
        <p key={course}>{course}</p>
    </template>
</template>
force-app/main/default/lwc/afterRenderHook/afterRenderHook.js
New file
@@ -0,0 +1,13 @@
import { LightningElement } from 'lwc';
export default class AfterRenderHook extends LightningElement {
    courses = [];
    rendered = false;
    renderedCallback() {
        if (!this.rendered) {
            this.courses = ['Irrigation Systems', 'Soils', 'Organic Crops'];
            this.rendered = true;
        }
    }
}
force-app/main/default/lwc/afterRenderHook/afterRenderHook.js-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>false</isExposed>
</LightningComponentBundle>
force-app/main/default/lwc/afterRenderHookWrapper/afterRenderHookWrapper.html
New file
@@ -0,0 +1,17 @@
<template>
    <c-example-wrapper
        icon-name="custom:custom7"
        lwc="afterRenderHook"
        title="After Render Hook"
        visualforce="afterRenderHook"
        visualforce-height="90px"
    >
        <c-after-render-hook slot="lwc"></c-after-render-hook>
        <!-- prettier-ignore -->
        <p>
            Use <a target="_blank" href="https://developer.salesforce.com/docs/component-library/documentation/en/lwc/lwc.create_lifecycle_hooks_rendered">
            renderedCallback</a> to execute code after a component is rendered.
        </p>
    </c-example-wrapper>
</template>
force-app/main/default/lwc/afterRenderHookWrapper/afterRenderHookWrapper.js
New file
@@ -0,0 +1,3 @@
import { LightningElement } from 'lwc';
export default class AfterRenderHookWrapper extends LightningElement {}
force-app/main/default/lwc/afterRenderHookWrapper/afterRenderHookWrapper.js-meta.xml
New file
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8" ?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__AppPage</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/apexUtils/apexUtils.js
New file
@@ -0,0 +1,31 @@
/**
 * Formats a list of sObjects returned by an Apex method call
 * @param {SObject[]} sObjects
 * @return {Object[]} formattedObjects, ready to use by lightning-datatable
 */
export function formatApexSObjects(sObjects) {
    try {
        return sObjects.map(formatApexSObject);
    } catch (err) {
        return [];
    }
}
function formatApexSObject(sObject) {
    return flatten(sObject, '');
}
function flatten(source, prefix) {
    const target = {};
    Object.keys(source).forEach((key) => {
        const value = source[key];
        const field = `${prefix}${key}`;
        if (typeof value === 'object') {
            const nested = flatten(value, `${field}.`);
            Object.assign(target, nested);
        } else {
            target[field] = value;
        }
    });
    return target;
}
force-app/main/default/lwc/apexUtils/apexUtils.js-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>false</isExposed>
</LightningComponentBundle>
force-app/main/default/lwc/batchSelectRepairLWC/batchSelectRepairLWC.css
New file
@@ -0,0 +1,9 @@
.Narrow{
    padding: 20px;
}
.searchField,.searchField .input-text{
    /*display: flex;*/
}
.searchField .slds-combobox_container{
    width: 160px !important;
}
force-app/main/default/lwc/batchSelectRepairLWC/batchSelectRepairLWC.html
New file
@@ -0,0 +1,107 @@
<template>
 <!--  <div class="slds-box slds-theme--default">
        Click on the link Below to Export data as csv/xls.
        <p class="slds-m-top--large">
            <a onclick={exportContactData}>Export Contact Data</a>
            <lightning-button variant="brand" label="Export Contact data" title="Export Contact Data" onclick={exportContactData}></lightning-button>
        </p>
    </div> -->
  <lightning-card  variant="Narrow">
    <div style="padding: 0 20px">
      <div>
          <div style="padding: 10px 3px;border-bottom: 1px solid;font: 16px;font-size: blod;">检索列</div>
          <div style="margin-top: 5px">
             <lightning-layout>
              <!-- cancelPaddingLeft -->
                  <lightning-layout-item flexibility="auto" padding="around-small">
                      <lightning-combobox name="progress" label="状态1" value={searchObj.Status1} options={status1Options}
                          onchange={handleStatus1Change} class="searchField"></lightning-combobox>
                  </lightning-layout-item>
                  <lightning-layout-item flexibility="auto" padding="around-small">
                      <lightning-combobox
                      name="progress" label="状态2" value={searchObj.Status2} options={status2Options} onchange={handleStatus2Change}
                      class="searchField"></lightning-combobox>
                  </lightning-layout-item>
                  <lightning-layout-item flexibility="auto" padding="around-small">
                      <lightning-combobox
                      name="progress" label="服务方式" value={searchObj.onSiteRepair} options={siteRepairItems} onchange={handleSiteChange}
                      class="searchField"></lightning-combobox>
                  </lightning-layout-item>
              </lightning-layout>
              <lightning-layout>
                  <lightning-layout-item size="4" padding="horizontal-small">
                    <lightning-input value={searchObj.RepairName} type="text" label="RS修理单号" class="searchField" onchange={handleRepairNameChange}></lightning-input>
                  </lightning-layout-item>
                  <lightning-layout-item size="4" padding="horizontal-small">
                    <lightning-input value={searchObj.SAPRepairNo} type="text" label="SAP修理单号" class="searchField" onchange={handleSAPRepairNoChange}></lightning-input>
                  </lightning-layout-item>
                  <lightning-layout-item size="4" padding="horizontal-small">
                    <lightning-input value={searchObj.workLocationSelect} type="text" label="维修中心" class="searchField" onchange={handleWorkLocationChange}></lightning-input>
                  </lightning-layout-item>
              </lightning-layout>
              <lightning-layout>
                  <lightning-layout-item size="4" padding="horizontal-small">
                    <lightning-input value={searchObj.SerialNumber} type="text" label="机身编码" class="searchField" onchange={handleSerialNumberChange}></lightning-input>
                  </lightning-layout-item>
                  <lightning-layout-item size="4" padding="horizontal-small">
                    <lightning-input value={searchObj.State_Hospital} type="text" label="省份" class="searchField" onchange={handleStateHospitalChange}></lightning-input>
                  </lightning-layout-item>
                  <lightning-layout-item size="4" padding="horizontal-small">
                    <lightning-input value={searchObj.HospitalName} type="text" label="医院名称" class="searchField" onchange={handleHospitalChange}></lightning-input>
                  </lightning-layout-item>
              </lightning-layout>
              <lightning-layout>
                  <lightning-layout-item size="2" padding="horizontal-small">
                    <lightning-input type="date" label="FSE申请日(开始)" value={repair.Aware_date__c} onchange={handleAwareDateDStart}></lightning-input>
                  </lightning-layout-item>
                  <!-- cancelPaddingLeft -->
                  <lightning-layout-item size="2" padding="horizontal-small">
                    <!-- variant="label-hidden" -->
                    <lightning-input type="date" label="FSE申请日(结束)" value={repair.Aware_date2__c} onchange={handleAwareDateDEnd}></lightning-input>
                  </lightning-layout-item>
                  <lightning-layout-item size="4" padding="horizontal-small">
                    <!-- record-id={recordId} 修理委托者  Incharge_Staff__c-->
                    <!-- <lightning-record-edit-form
                        object-api-name={objectApiName}
                        record-id=''
                    >
                        <lightning-input-field field-name={nameField} onclick={handleInchargeStaffChange}> </lightning-input-field>
                    </lightning-record-edit-form> -->
                    <lightning-record-edit-form
                        object-api-name='Repair__c'
                        record-id=''
                    >
                        <lightning-input-field field-name='Incharge_Staff__c' onclick={handleInchargeStaffChange}> </lightning-input-field>
                    </lightning-record-edit-form>
                  </lightning-layout-item>
              </lightning-layout>
              <lightning-layout>
                  <lightning-layout-item flexibility="auto" padding="around-small">
                    <lightning-button label="检索" onclick={searchRepair}></lightning-button>
                  </lightning-layout-item>
              </lightning-layout>
          </div>
      </div>
      <div>
          <div style="padding: 10px 5px;border-bottom: 1px solid">详细信息</div>
          <div style="padding: 10px 0;">
            <lightning-button label="打印PDF" onclick={skipPage}></lightning-button>
            <lightning-button label="导出Excel" onclick={exportContactData}></lightning-button>
            <!-- <lightning-button label="导出Excel" onclick={downloadCSVFile}></lightning-button> -->
          </div>
          <div>
            <lightning-datatable
              key-field="id"
              data={data}
              columns={columns}
              onrowselection={getSelectedRows}
              onrowaction={handleRowAction}>
            </lightning-datatable>
          </div>
      </div>
    </div>
  </lightning-card>
</template>
force-app/main/default/lwc/batchSelectRepairLWC/batchSelectRepairLWC.js
New file
@@ -0,0 +1,576 @@
import { LightningElement,wire,track,api} from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import { NavigationMixin } from 'lightning/navigation';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import NAME_FIELD from '@salesforce/schema/Repair__c.Incharge_Staff__c';
import MY_CUSTOM_OBJECT from '@salesforce/schema/Repair__c';
import search from '@salesforce/apex/BatchSelectRepairLWCController.search';
import showPDF from '@salesforce/apex/BatchSelectRepairLWCController.showPDF';
/*
const actions = [
    { label: 'Show details', name: 'show_details' },
    { label: 'Delete', name: 'delete' },
    ];*/
const columns = [
        { label: '状态1', fieldName: 'Status1__c'},
        { label: '状态2', fieldName: 'Status2__c' },
        { label: 'RS修理单号', fieldName: 'Name' },
        { label: 'SAP修理单号', fieldName: 'SAP_Service_Repair_No__c' },
        // { label: '型号', fieldName: 'deliveredProductName' },
        { label: '型号', fieldName: 'deliveredProductUrl',type:'url',
            typeAttributes:{
                label:{
                    fieldName:'deliveredProductName'
                },
                target:'_balank'
            }
        },
        { label: '机身编号', fieldName: 'SerialNumber__c' },
        { label: '医院名称', fieldName: 'HP_Name__c' },
        { label: '省份', fieldName: 'State_Hospital__c' },
        // { label: '修理委托者', fieldName: 'Incharge_Staff_Name' },
        { label: '修理委托者', fieldName: 'inchargeStaffUrl',type:'url',
            typeAttributes:{
                label:{
                    fieldName:'inchargeStaffName'
                },
                target:'_balank'
            }
        },
        { label: 'FSE申请日期', fieldName: 'FSE_ApplyForRepair_Day__c' },
        { label: '维修中心', fieldName: 'work_location_select__c' },
        { label: '服务方式', fieldName: 'On_site_repair__c' },
        { label: '有无维修合同对象', fieldName: 'Number_of_EffectiveContract__c' },
        { label: '无偿区别标志', fieldName: 'NewProductGuaranteeObject__c' }
   /* {
    type: 'action',
    typeAttributes: { rowActions: actions },
    },*/
    ];
export default class batchSelectRepairLWC extends LightningElement {
    // Expose a field to make it available in the template
    nameField = NAME_FIELD;
    // Flexipage provides recordId and objectApiName
    @api recordId;
    @api objectApiName;
    data = [];
    columns = columns;
    //状态1
    status1Options = [{ label: '--无--', value: '' },
                    { label: '0.申请完毕', value: '0.申请完毕' },
                    { label: '2.维修报价阶段', value: '2.维修报价阶段' },
                    { label: '3.维修阶段', value: '3.维修阶段' },
                    { label: '4.修理品返送阶段', value: '4.修理品返送阶段' },
                    { label: '5.完毕', value: '5.完毕' },
                    { label: '0.删除', value: '0.删除' },
                    { label: '0.取消', value: '0.取消' }];
    //状态2
    status2Options = [{label:'00.申请完毕', value:'00.申请完毕'},
                    {label:'01.分公司受理完毕', value:'01.分公司受理完毕'},
                    {label:'02.RC受理完毕', value:'02.RC受理完毕'},
                    {label:'03.报价检查结束', value:'03.报价检查结束'},
                    {label:'04.报价跟进中', value:'04.报价跟进中'},
                    {label:'05.报价同意完备', value:'05.报价同意完备'},
                    {label:'06.零件齐备', value:'06.零件齐备'},
                    {label:'07.修理開始', value:'07.修理開始'},
                    {label:'08.修理预计完成', value:'08.修理预计完成'},
                    {label:'09.修理完成', value:'09.修理完成'},
                    {label:'10.最终检查完成', value:'10.最终检查完成'},
                    {label:'11.RC修理品已返送', value:'11.RC修理品已返送'},
                    {label:'12.发票已发送', value:'12.发票已发送'},
                    {label:'13.已返送到用户', value:'13.已返送到用户'},
                    {label:'14.收到验收单', value:'14.收到验收单'},
                    {label:'15.验收单签收复核通过', value:'15.验收单签收复核通过'},
                    {label:'16.部分付款', value:'16.部分付款'},
                    {label:'16.完毕', value:'16.完毕'},
                    {label:'17.付款完毕', value:'17.付款完毕'},
                    {label:'00.取消', value:'00.取消'},
                    {label:'00.删除', value:'00.删除'},
                    {label:'00.关闭', value:'00.关闭'}];
    //服务方式
    siteRepairItems = [{label:'--无--',value:''},
        {label:'RC修理',value:'RC修理'},
        {label:'直送SORC修理',value:'直送SORC修理'},
        {label:'直送OGZ修理',value:'直送OGZ修理'},
        {label:'办事处修理',value:'办事处修理'},
        {label:'现场修理',value:'现场修理'}];
    searchObj = {};
    repair = {};
    selectedRepairs;
    /* @wire(CurrentPageReference)
     getStateParameters(currentPageReference) {
             console.log(111);
             console.log(currentPageReference);
         if (currentPageReference) {
           const urlValue = currentPageReference.state.recordId;
           if (urlValue) {
             let str = `${urlValue}`;
             console.log("str");
             console.log(str);
             this.recordId = str;
           }
         }
     }*/
    connectedCallback(){
        // console.log(this.recordId);
    }
    //状态1
    handleStatus1Change(event){
        /*console.log(event);
        console.log(event.detail);*/
        this.searchObj.Status1 = event.detail.value;
        // console.log(JSON.stringify(this.searchObj));
    }
    //状态2
    handleStatus2Change(event){
        this.searchObj.Status2 = event.detail.value;
        // console.log(this.searchObj);
    }
    //服务方式
    handleSiteChange(event){
        this.searchObj.onSiteRepair = event.detail.value;
        // console.log(this.searchObj);
    }
    //RS修理单号 RepairName
    handleRepairNameChange(event){
        this.searchObj.RepairName = event.detail.value;
        // console.log(this.searchObj);
    }
    //SAP修理单号 SAPRepairNo
    handleSAPRepairNoChange(event){
        this.searchObj.SAPRepairNo = event.detail.value;
        // console.log(this.searchObj);
    }
    //维修中心 workLocationSelect
    handleWorkLocationChange(event){
        this.searchObj.workLocationSelect = event.detail.value;
    }
    //机身编码 SerialNumber
    handleSerialNumberChange(event){
        this.searchObj.SerialNumber = event.detail.value;
    }
    // 省份  State_Hospital
    handleStateHospitalChange(event){
        this.searchObj.State_Hospital = event.detail.value;
    }
    //医院名称  HospitalName
    handleHospitalChange(event){
        this.searchObj.HospitalName = event.detail.value;
    }
    //FSE申请日 repair.Aware_date__c
    handleAwareDateDStart(event){
        this.repair.Aware_date__c = event.detail.value;
        console.log(this.repair.Aware_date__c);
    }
    // repair.Aware_date2__c
    handleAwareDateDEnd(event){
        this.repair.Aware_date2__c = event.detail.value;
        // console.log(this.repair.Aware_date2__c);
    }
    // 修理委托者 repair.Incharge_Staff__c
    handleInchargeStaffChange(event){
        this.repair.Incharge_Staff__c = event.detail.value;
        // console.log(this.repair.Aware_date2__c);
    }
   //检索
    searchRepair(event) {
        console.log(this.repair.Aware_date__c);
        if (JSON.stringify(this.repair) != "{}") {
            console.log('this.repair');
            this.searchObj.repair = this.repair;
            // fse 时间条件
            /*if (!(this.repair.Aware_date__c != null && this.repair.Aware_date2__c != null) || this.repair.Aware_date__c > this.repair.Aware_date2__c) {
                const event = new ShowToastEvent({
                             title: 'error',
                             message: 'FSE申请日输入有误',
                             variant:'error',
                            });
                this.dispatchEvent(event);
                return;
            }*/
        }
        let jsonStr = JSON.stringify(this.searchObj);
        if (jsonStr === "{}") {
            const event = new ShowToastEvent({
                             title: 'error',
                             message: '请至少添加一个检索条件!',
                             variant:'error',
                            });
            this.dispatchEvent(event);
        }else{
            console.log(jsonStr);
            search({
                json: jsonStr
            }).then(result => {
                console.log(result.repairData);
                console.log('length:'+result.repairData.length);
                if (result.repairData.length == 0 || result.repairData.length == 200) {
                    const event = new ShowToastEvent({
                             title: 'warning',
                             message: result.status,
                             variant:'warning',
                            });
                    this.dispatchEvent(event);
                }
                let returnArr = [];
                result.repairData.forEach(function(v){
                    let objRepair = v.repair;
                    //添加修理委托者和型号名称
                    objRepair.deliveredProductName = objRepair.Delivered_Product__r.Name;
                    objRepair.deliveredProductUrl = "/"+objRepair.Delivered_Product__c;
                    objRepair.inchargeStaffName = objRepair.Incharge_Staff__r.Name;
                    objRepair.inchargeStaffUrl = "/"+objRepair.Incharge_Staff__c;
                    // console.log(objRepair);
                    returnArr.push(objRepair);
                });
                /*console.log('arr');
                console.log(arr);
                console.log(arr.length);*/
                this.data = returnArr;
                // console.log(this.data);
            }).catch(error => {
                console.log("error");
                console.log(error);
            }).finally(() => {
            });
        }
    }
    //导出为Excel  画table
    exportContactData(){
        // Prepare a html table
        let doc = '<table>';
        // Add styles for the table
        doc += '<style>';
        doc += 'table, th, td {';
        doc += '    border: 1px solid black;';
        doc += '    border-collapse: collapse;';
        doc += '}';
        doc += '</style>';
        // Add all the Table Headers
        doc += '<tr>';
        this.columns.forEach(element => {
            doc += '<th>'+ element.label +'</th>'
        });
        doc += '</tr>';
        // Add the data rows
        let fieldNameArr =[];
        this.columns.forEach(function(v){
            if (v['typeAttributes']) {
                fieldNameArr.push(v['typeAttributes'].label.fieldName);
            }else{
                fieldNameArr.push(v.fieldName);
            }
        });
        console.log(fieldNameArr);
        fieldNameArr.forEach(v=>{
            console.log(v);
            // console.log(this.data[0].v);
        })
        this.data.forEach(record => {
            doc += '<tr>';
            if (record.Status1__c != null) {
                doc += '<th>'+record.Status1__c+'</th>';
            }else{
                doc += '<th></th>'
            }
            if (record.Status2__c != null) {
            doc += '<th>'+record.Status2__c+'</th>';
            }else{
                doc += '<th></th>'
            }
            if (record.Name != null) {
            doc += '<th>'+record.Name+'</th>';
            }else{
                doc += '<th></th>'
            }
            if (record.SAP_Service_Repair_No__c != null) {
            doc += '<th>'+record.SAP_Service_Repair_No__c+'</th>';
            }else{
                doc += '<th></th>'
            }
            if (record.deliveredProductName != null) {
            doc += '<th>'+record.deliveredProductName+'</th>';
            }else{
                doc += '<th></th>'
            }
            if (record.SerialNumber__c != null) {
            doc += '<th>'+record.SerialNumber__c+'</th>';
            }else{
                doc += '<th></th>'
            }
            if (record.HP_Name__c != null) {
            doc += '<th>'+record.HP_Name__c+'</th>';
            }else{
                doc += '<th></th>'
            }
            if (record.State_Hospital__c != null) {
            doc += '<th>'+record.State_Hospital__c+'</th>';
            }else{
                doc += '<th></th>'
            }
            if (record.inchargeStaffName != null) {
            doc += '<th>'+record.inchargeStaffName+'</th>';
            }else{
                doc += '<th></th>'
            }
            if (record.FSE_ApplyForRepair_Day__c != null) {
            doc += '<th>'+record.FSE_ApplyForRepair_Day__c+'</th>';
            }else{
                doc += '<th></th>'
            }
            if (record.work_location_select__c != null) {
            doc += '<th>'+record.work_location_select__c+'</th>';
            }else{
                doc += '<th></th>'
            }
            if (record.On_site_repair__c != null) {
            doc += '<th>'+record.On_site_repair__c+'</th>';
            }else{
                doc += '<th></th>'
            }
            if (record.Number_of_EffectiveContract__c != null) {
            doc += '<th>'+record.Number_of_EffectiveContract__c+'</th>';
            }else{
                doc += '<th></th>'
            }
            if (record.NewProductGuaranteeObject__c != null) {
            doc += '<th>'+record.NewProductGuaranteeObject__c+'</th>';
            }else{
                doc += '<th></th>'
            }
                // fieldNameArr.forEach(fieldName =>{
                //     doc += '<th>'+record.fieldName+'</th>';
                // });
                doc += '</tr>';
        });
        doc += '</table>';
        var element = 'data:application/vnd.ms-excel,' + encodeURIComponent(doc);
        let downloadElement = document.createElement('a');
        downloadElement.href = element;
        downloadElement.target = '_self';
        // use .csv as extension on below line if you want to export data as csv
        downloadElement.download = '修理明细表.xls';
        document.body.appendChild(downloadElement);
        downloadElement.click();
    }
    // this method validates the data and creates the csv file to download  this.data的所有字段
     downloadCSVFile1() {
        console.log("downloadCSVFile1");
        let rowEnd = '\n';
        let csvString = '';
        // this set elminates the duplicates if have any duplicate keys
        let rowData = new Set();
        let columnsData = new Set();
        let columnsLabelData = new Set();
        // getting keys from data
        this.data.forEach(function (record) {
            Object.keys(record).forEach(function (key) {
                rowData.add(key);
            });
        });
        console.log(rowData);
        // Array.from() method returns an Array object from any object with a length property or an iterable object.
        rowData = Array.from(rowData);
        console.log(rowData);
        // splitting using ','
        csvString += rowData.join(',');
        csvString += rowEnd;
        console.log(csvString);
        this.columns.forEach(function(v){
            columnsLabelData.add(v.label);
            if (v['typeAttributes']) {
                columnsData.add(v['typeAttributes'].label.fieldName);
            }else{
                columnsData.add(v.fieldName);
            }
        });
        console.log("columnsData");
        console.log(columnsLabelData);
        console.log(columnsData);
        console.log(rowData[1]);
        console.log(Array.from(columnsData));
        console.log(Array.from(columnsData).hasOwnProperty(rowData[1]));
        console.log(this.data[0].Name);
        console.log(this.data[0][rowData[1]]);
        // main for loop to get the data based on key value
        for(let i=0; i < this.data.length; i++){
            let colValue = 0;
            // validating keys in data
            for(let key in rowData) {
                if(rowData.hasOwnProperty(key)) {
                    // Key value
                    // Ex: Id, Name
                    let rowKey = rowData[key];
                    // add , after every value except the first.
                    if(colValue > 0){
                        csvString += ',';
                    }
                    // If the column is undefined, it as blank in the CSV file.
                    let value = this.data[i][rowKey] === undefined ? '' : this.data[i][rowKey];
                    csvString += '"'+ value +'"';
                    colValue++;
                }
            }
            csvString += rowEnd;
        }
        // Creating anchor element to download
        let downloadElement = document.createElement('a');
        // This  encodeURI encodes special characters, except: , / ? : @ & = + $ # (Use encodeURIComponent() to encode these characters).
        downloadElement.href = 'data:text/csv;charset=utf-8,' + encodeURI(csvString);
        downloadElement.target = '_self';
        // CSV File Name
        downloadElement.download = 'Account Data.csv';
        // below statement is required if you are using firefox browser
        document.body.appendChild(downloadElement);
        // click() Javascript function to download CSV file
        downloadElement.click();
    }
    //导出为Excel
    downloadCSVFile() {
        console.log("downloadCSVFile");
        let rowEnd = '\n';
        let csvString = '';
        // this set elminates the duplicates if have any duplicate keys
        //表格标题
        let columnsData = new Set();
        //表格字段
        let rowData = new Set();
        // getting keys from data
        this.columns.forEach(function(v){
            columnsData.add(v.label);
            if (v['typeAttributes']) {
                rowData.add(v['typeAttributes'].label.fieldName);
            }else{
                rowData.add(v.fieldName);
            }
        });
        console.log(columnsData);
        console.log(rowData);
        // Array.from() method returns an Array object from any object with a length property or an iterable object.
        rowData = Array.from(rowData);
        columnsData = Array.from(columnsData);
        // getting keys from data
       /* console.log("rowData");
        rowData.forEach(function(v){
            console.log(v);
        });
        console.log("columnsData");
        columnsData.forEach(function(v){
            console.log(v);
        }); */
        // splitting using ','
        csvString += columnsData.join(',');
        csvString += rowEnd;
        // console.log(csvString);
        // main for loop to get the data based on key value
        for(let i=0; i < this.data.length; i++){
            let colValue = 0;
            // validating keys in data
            for(let key in rowData) {
                if(rowData.hasOwnProperty(key)) {//del
                    // Key value
                    // Ex: Id, Name
                    let rowKey = rowData[key];
                    // add , after every value except the first.
                    if(colValue > 0){
                        csvString += ',';
                    }
                    // If the column is undefined, it as blank in the CSV file.
                    let value = this.data[i][rowKey] === undefined ? '' : this.data[i][rowKey];
                    csvString += '"'+ value +'"';
                    colValue++;
                }
            }
            csvString += rowEnd;
        }
        // Creating anchor element to download
        let downloadElement = document.createElement('a');
        // This  encodeURI encodes special characters, except: , / ? : @ & = + $ # (Use encodeURIComponent() to encode these characters).
        downloadElement.href = 'data:text/csv;charset=utf-8,' + encodeURI(csvString);
        downloadElement.target = '_self';
        // CSV File Name
        downloadElement.download = '修理明细表.csv';
        // below statement is required if you are using firefox browser
        document.body.appendChild(downloadElement);
        // click() Javascript function to download CSV file
        downloadElement.click();
    }
    //获取选中Repair
    getSelectedRows(event) {
        const selectedRows = event.detail.selectedRows;
        console.log(selectedRows);
        //Repair__c   selectedRepairs
        // Display that fieldName of the selected rows
        let selectedRepairsArr = [];
        for (let i = 0; i < selectedRows.length; i++) {
            selectedRepairsArr.push(selectedRows[i]);
        }
        this.selectedRepairs = selectedRepairsArr;
    }
    //跳转到pdf页面
    skipPage() {
        console.log("selectedRows");
        // console.log(jsonStr);
        if (this.selectedRepairs.length <= 0 ) {
            const event = new ShowToastEvent({
                                     title: 'error',
                                     message: '请至少选择一个修理',
                                     variant:'error',
                                    });
            this.dispatchEvent(event);
            return;
        }
        let jsonStr = JSON.stringify(this.selectedRepairs);
        showPDF({
            json: jsonStr
            }).then(result => {
                console.log(result);
                if (result.indexOf("https://ocsm") != -1) {
                     window.open(result, "维修委托书PDF", "");
                }else{
                    const event = new ShowToastEvent({
                                     title: 'error',
                                     message: result,
                                     variant:'error',
                                    });
                    this.dispatchEvent(event);
                }
            }).catch(error => {
                console.log("error");
                console.log(error);
            }).finally(() => {
            });
    }
}
force-app/main/default/lwc/batchSelectRepairLWC/batchSelectRepairLWC.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/beforeRenderHook/beforeRenderHook.html
New file
@@ -0,0 +1,5 @@
<template>
    <template for:each={courses} for:item="course">
        <p key={course}>{course}</p>
    </template>
</template>
force-app/main/default/lwc/beforeRenderHook/beforeRenderHook.js
New file
@@ -0,0 +1,9 @@
import { LightningElement } from 'lwc';
export default class BeforeRenderHook extends LightningElement {
    courses;
    connectedCallback() {
        this.courses = ['Irrigation Systems', 'Soils', 'Organic Crops'];
    }
}
force-app/main/default/lwc/beforeRenderHook/beforeRenderHook.js-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>false</isExposed>
</LightningComponentBundle>
force-app/main/default/lwc/beforeRenderHookWrapper/beforeRenderHookWrapper.html
New file
@@ -0,0 +1,18 @@
<template>
    <c-example-wrapper
        icon-name="custom:custom7"
        lwc="beforeRenderHook"
        title="Before Render Hook"
        visualforce="beforeRenderHook"
        visualforce-height="90px"
    >
        <c-before-render-hook slot="lwc"></c-before-render-hook>
        <!-- prettier-ignore -->
        <p>
            Use <a target="_blank" href="https://developer.salesforce.com/docs/component-library/documentation/en/lwc/lwc.create_lifecycle_hooks_dom">
            connectedCallback</a> to execute code when the component is inserted into the page
            and before it is rendered.
        </p>
    </c-example-wrapper>
</template>
force-app/main/default/lwc/beforeRenderHookWrapper/beforeRenderHookWrapper.js
New file
@@ -0,0 +1,3 @@
import { LightningElement } from 'lwc';
export default class BeforeRenderHookWrapper extends LightningElement {}
force-app/main/default/lwc/beforeRenderHookWrapper/beforeRenderHookWrapper.js-meta.xml
New file
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8" ?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__AppPage</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/binding/binding.css
New file
@@ -0,0 +1,3 @@
lightning-input {
    margin-bottom: 10px;
}
force-app/main/default/lwc/binding/binding.html
New file
@@ -0,0 +1,8 @@
<template>
    <p>Enter course name:</p>
    <lightning-input
        value={courseName}
        onchange={handleChange}
    ></lightning-input>
    <p class="course-name">Course name is: {courseName}</p>
</template>
force-app/main/default/lwc/binding/binding.js
New file
@@ -0,0 +1,9 @@
import { LightningElement } from 'lwc';
export default class Binding extends LightningElement {
    courseName = 'Default';
    handleChange(event) {
        this.courseName = event.target.value;
    }
}
force-app/main/default/lwc/binding/binding.js-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>false</isExposed>
</LightningComponentBundle>
force-app/main/default/lwc/bindingWrapper/bindingWrapper.html
New file
@@ -0,0 +1,22 @@
<template>
    <c-example-wrapper
        icon-name="custom:custom7"
        title="Binding"
        lwc="binding"
        visualforce="binding"
        visualforce-height="100px"
    >
        <c-binding slot="lwc"></c-binding>
        <!-- prettier-ignore -->
        <p>
            In LWC, property binding is unidirectional. Properties are used to pass information down, but
            not up. To pass information up, use HTML events. For instance, lightning-input passes information
            up firing a change event (information is carried in the payload of the event!).
            To listen to an event that an element fires, define a handler in JavaScript and bind it to the event.
            Another important difference is that Visualforce is rendered on the server side.
            This means that a server roundtrip is required to update the property whereas, in LWC, rendering happens on the client-side.
            Indeed, it happens automatically when a JavaScript property value changes.
        </p>
    </c-example-wrapper>
</template>
force-app/main/default/lwc/bindingWrapper/bindingWrapper.js
New file
@@ -0,0 +1,3 @@
import { LightningElement } from 'lwc';
export default class BindingWrapper extends LightningElement {}
force-app/main/default/lwc/bindingWrapper/bindingWrapper.js-meta.xml
New file
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8" ?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__AppPage</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/boxorpieceType/boxorpieceType.html
New file
@@ -0,0 +1,10 @@
<template>
    <lightning-combobox
            name="progress"
            label="Status"
            value={value}
            placeholder="请选择单位"
            options={options}
            onchange={handleChange} >
        </lightning-combobox>
</template>
force-app/main/default/lwc/boxorpieceType/boxorpieceType.js
New file
@@ -0,0 +1,21 @@
import { LightningElement,api } from 'lwc';
export default class BoxorpieceType extends LightningElement {
    value = '盒';
    @api customValueA;
    get options() {
        return [
            { label: '盒', value: '盒' },
            { label: '个', value: '个' }
        ];
    }
    connectedCallback(){
        console.log('enter BoxorpieceType')
    }
    handleChange(event) {
        this.value = event.detail.value;
    }
}
force-app/main/default/lwc/boxorpieceType/boxorpieceType.js-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>56.0</apiVersion>
    <isExposed>false</isExposed>
</LightningComponentBundle>
force-app/main/default/lwc/cancelApplyLWC/cancelApplyLWC.html
New file
@@ -0,0 +1,4 @@
<template>
</template>
force-app/main/default/lwc/cancelApplyLWC/cancelApplyLWC.js
New file
@@ -0,0 +1,90 @@
import { LightningElement, track, wire, api } from 'lwc';
import LightningConfirm from 'lightning/confirm';
import {CurrentPageReference,NavigationMixin} from 'lightning/navigation';
import { CloseActionScreenEvent } from 'lightning/actions';
import cancelApply from '@salesforce/apex/TransferApplyWebService.cancelApply';
export default class cancelApplyLWC extends LightningElement {
     @api recordId;
     IsLoading=true;
     cancelResult;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference){
        console.log("进入页面");
        console.log(currentPageReference);
        if(currentPageReference){
            const urvalue=currentPageReference.state.recordId;
            if(urvalue){
                let str=`${urvalue}`;
                console.log('str');
                console.log(str);
                this.recordId=str;
            }
        }
    }
    connectedCallback() {
        console.log('this.raeSetId:' + this.recordId);
        LightningConfirm.open({
            message: '确定取消?',
            variant: 'headerless',
            label: 'this is the aria-label value',
        }).then(cancel=>{
            this.IsLoading=false;
            this.dispatchEvent(new CloseActionScreenEvent());
            if(cancel) {
                cancelApply({
                    taId : this.recordId
                }).then(result => {
                    this.cancelResult = result;
                    this.cancelSubmit().then(res=>{
                        this.IsLoading=false;
                        this.dispatchEvent(new CloseActionScreenEvent());
                    });
                }).catch( error =>{
                    console.log(error);
                }).finally(()=>{
                });
            }
        });
    }
    async cancelSubmit(){
        if(this.cancelResult == '1') {
            alert('取消成功');
            window.location.href = window.location;
        } else {
            console.log("result:",this.cancelResult);
            alert(this.cancelResult);
        }
    }
}
//old js
// {!REQUIRESCRIPT('/soap/ajax/51.0/connection.js')}
// {!REQUIRESCRIPT('/soap/ajax/51.0/apex.js')}
// if (confirm("确定取消?")) {
// var rs = sforce.apex.execute("TransferApplyWebService","cancelApply",{taId:'{!TransferApply__c.Id}'});
// if(rs == '1'){
// alert('取消成功');
// window.location.href = window.location;
// }
// else{
// alert(rs);
// }
// }
force-app/main/default/lwc/cancelApplyLWC/cancelApplyLWC.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="cancelApplyLWC">
    <apiVersion>51.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__AppPage</target>
        <target>lightning__RecordPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/childComponentTest/childComponentTest.html
@@ -5,4 +5,4 @@
            value={priorCount}
        ></lightning-formatted-number>
    </p>
</template>
</template>
force-app/main/default/lwc/childComponentTest/childComponentTest.js
@@ -12,7 +12,7 @@
        this._currentCount = value;
    }
    @api
    maximizeCounter() 12
    maximizeCounter() {
      this.counter += 1000000;
    }
}
}
force-app/main/default/lwc/createMixedRecordsApex/createMixedRecordsApex.html
New file
@@ -0,0 +1,27 @@
<template>
    <div class="slds-var-m-around_x-small">
        <lightning-input
            label="Contact First Name"
            class="contactFirstName"
            value={contactFirstName}
            onchange={handleContactFirstNameInputChange}
        ></lightning-input>
        <lightning-input
            label="Contact Last Name"
            class="contactLastName"
            value={contactLastName}
            onchange={handleContactLastNameInputChange}
        ></lightning-input>
        <lightning-input
            label="Opportunity Name"
            class="opportunityName"
            value={opportunityName}
            onchange={handleOpportunityNameInputChange}
        ></lightning-input>
    </div>
    <lightning-button
        onclick={handleButtonClick}
        label="Create Contact and Opportunity"
        class="slds-var-m-left_xx-small"
    ></lightning-button>
</template>
force-app/main/default/lwc/createMixedRecordsApex/createMixedRecordsApex.js
New file
@@ -0,0 +1,48 @@
import { LightningElement } from 'lwc';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import { reduceErrors } from 'c/ldsUtils';
import createContactAndOpportunity from '@salesforce/apex/CreateMixedRecordsApexControllerLwc.createContactAndOpportunity';
export default class CreateMixedRecordsApex extends LightningElement {
    contactFirstName = 'Yan';
    contactLastName = 'Khang';
    opportunityName = 'Possible deal';
    handleContactFirstNameInputChange(event) {
        this.contactFirstName = event.target.value;
    }
    handleContactLastNameInputChange(event) {
        this.contactLastName = event.target.value;
    }
    handleOpportunityNameInputChange(event) {
        this.opportunityName = event.target.value;
    }
    handleButtonClick() {
        createContactAndOpportunity({
            contactFirstName: this.contactFirstName,
            contactLastName: this.contactLastName,
            opportunityName: this.opportunityName
        })
            .then(() => {
                const evt = new ShowToastEvent({
                    title: 'Success',
                    message: 'Contact & Opportunity created correctly',
                    variant: 'success'
                });
                this.dispatchEvent(evt);
            })
            .catch((error) => {
                const evt = new ShowToastEvent({
                    title: 'Error',
                    message:
                        'Error creating records: ' +
                        reduceErrors(error).join(', '),
                    variant: 'error'
                });
                this.dispatchEvent(evt);
            });
    }
}
force-app/main/default/lwc/createMixedRecordsApex/createMixedRecordsApex.js-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>false</isExposed>
</LightningComponentBundle>
force-app/main/default/lwc/createMixedRecordsApexWrapper/createMixedRecordsApexWrapper.html
New file
@@ -0,0 +1,22 @@
<template>
    <c-example-wrapper
        icon-name="custom:custom96"
        lwc="createMixedRecordsApex"
        title="Create Mixed Records via Apex"
        visualforce="createMixedRecords"
        visualforce-height="260px"
    >
        <c-create-mixed-records-apex slot="lwc"></c-create-mixed-records-apex>
        <!-- prettier-ignore -->
        <p>
            <a target="_blank" href="https://developer.salesforce.com/docs/component-library/documentation/lwc/lwc.apex">
            Call Apex imperatively </a> to perform mixed record or complex operations to create,
            update or delete or read data. In this example, the mixed operation is transactional.
        </p>
        <p>
            <b>Note:</b> Consider using base components forms or LDS functions
            first.
        </p>
    </c-example-wrapper>
</template>
force-app/main/default/lwc/createMixedRecordsApexWrapper/createMixedRecordsApexWrapper.js
New file
@@ -0,0 +1,3 @@
import { LightningElement } from 'lwc';
export default class CreateMixedRecordsApexWrapper extends LightningElement {}
force-app/main/default/lwc/createMixedRecordsApexWrapper/createMixedRecordsApexWrapper.js-meta.xml
New file
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8" ?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__AppPage</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/createMixedRecordsWireFunctions/createMixedRecordsWireFunctions.html
New file
@@ -0,0 +1,27 @@
<template>
    <div class="slds-var-m-around_x-small">
        <lightning-input
            label="Contact First Name"
            class="contactFirstName"
            value={contactFirstName}
            onchange={handleContactFirstNameInputChange}
        ></lightning-input>
        <lightning-input
            label="Contact Last Name"
            class="contactLastName"
            value={contactLastName}
            onchange={handleContactLastNameInputChange}
        ></lightning-input>
        <lightning-input
            label="Opportunity Name"
            class="opportunityName"
            value={opportunityName}
            onchange={handleOpportunityNameInputChange}
        ></lightning-input>
    </div>
    <lightning-button
        onclick={handleButtonClick}
        label="Create Contact and Opportunity"
        class="slds-var-m-left_xx-small"
    ></lightning-button>
</template>
force-app/main/default/lwc/createMixedRecordsWireFunctions/createMixedRecordsWireFunctions.js
New file
@@ -0,0 +1,91 @@
import { LightningElement } from 'lwc';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import { createRecord } from 'lightning/uiRecordApi';
import { reduceErrors } from 'c/ldsUtils';
import CONTACT_OBJECT from '@salesforce/schema/Contact';
import CONTACT_FIRST_NAME_FIELD from '@salesforce/schema/Contact.FirstName';
import CONTACT_LAST_NAME_FIELD from '@salesforce/schema/Contact.LastName';
import OPPORTUNITY_OBJECT from '@salesforce/schema/Opportunity';
import OPPORTUNITY_NAME_FIELD from '@salesforce/schema/Opportunity.Name';
import OPPORTUNITY_STAGENAME_FIELD from '@salesforce/schema/Opportunity.StageName';
import OPPORTUNITY_CLOSEDATE_FIELD from '@salesforce/schema/Opportunity.CloseDate';
export default class CreateMixedRecordsWireFunctions extends LightningElement {
    contactFirstName = 'Yan';
    contactLastName = 'Khang';
    opportunityName = 'Possible deal';
    handleContactFirstNameInputChange(event) {
        this.contactFirstName = event.target.value;
    }
    handleContactLastNameInputChange(event) {
        this.contactLastName = event.target.value;
    }
    handleOpportunityNameInputChange(event) {
        this.opportunityName = event.target.value;
    }
    handleButtonClick() {
        this.createContact();
        this.createOpportunity();
    }
    createContact() {
        // Note: In this example we generate the record input structure from scratch for simplicity.
        // Consider to use the generateRecordInputForCreate() function instead.
        // The function will create the record input for you, including only fields that are createable.
        // Check https://developer.salesforce.com/docs/component-library/documentation/en/50.0/lwc/reference_generate_record_input_update
        const recordInput = {
            apiName: CONTACT_OBJECT.objectApiName,
            fields: {
                [CONTACT_FIRST_NAME_FIELD.fieldApiName]: this.contactFirstName,
                [CONTACT_LAST_NAME_FIELD.fieldApiName]: this.contactLastName
            }
        };
        createRecord(recordInput)
            .then((result) => this.handleSuccess(result.id, 'Contact'))
            .catch((error) => this.handleErrors(error));
    }
    createOpportunity() {
        // Note: In this example we generate the record input structure from scratch for simplicity.
        // Consider to use the generateRecordInputForCreate() function instead.
        // The function will create the record input for you, including only fields that are createable.
        // Check https://developer.salesforce.com/docs/component-library/documentation/en/50.0/lwc/reference_generate_record_input_update
        const recordInput = {
            apiName: OPPORTUNITY_OBJECT.objectApiName,
            fields: {
                [OPPORTUNITY_NAME_FIELD.fieldApiName]: this.opportunityName,
                [OPPORTUNITY_STAGENAME_FIELD.fieldApiName]: 'Prospecting',
                [OPPORTUNITY_CLOSEDATE_FIELD.fieldApiName]: new Date(2025, 1, 1)
            }
        };
        createRecord(recordInput)
            .then((result) => this.handleSuccess(result.id, 'Opportunity'))
            .catch((error) => this.handleErrors(error));
    }
    handleSuccess(recordId, object) {
        const evt = new ShowToastEvent({
            title: 'Success',
            message: `${object} created with Id: ${recordId}`,
            variant: 'success'
        });
        this.dispatchEvent(evt);
    }
    handleErrors(error) {
        const evt = new ShowToastEvent({
            title: 'Error',
            message: `Error creating records: ${reduceErrors(error).join(
                ', '
            )}`,
            variant: 'error'
        });
        this.dispatchEvent(evt);
    }
}
force-app/main/default/lwc/createMixedRecordsWireFunctions/createMixedRecordsWireFunctions.js-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>false</isExposed>
</LightningComponentBundle>
force-app/main/default/lwc/createMixedRecordsWireFunctionsWrapper/createMixedRecordsWireFunctionsWrapper.html
New file
@@ -0,0 +1,23 @@
<template>
    <c-example-wrapper
        icon-name="custom:custom96"
        lwc="createMixedRecordsWireFunctions"
        title="Create Mixed Records via LDS Functions"
        visualforce="createMixedRecords"
        visualforce-height="260px"
    >
        <c-create-mixed-records-wire-functions
            slot="lwc"
        ></c-create-mixed-records-wire-functions>
        <!-- prettier-ignore -->
        <p>
            Use <a target="_blank" href="https://developer.salesforce.com/docs/component-library/documentation/lwc/lwc.reference_create_record">
            createRecord</a>, <a target="_blank" href="https://developer.salesforce.com/docs/component-library/documentation/lwc/lwc.reference_update_record">
            updateRecord</a> or <a target="_blank" href="https://developer.salesforce.com/docs/component-library/documentation/lwc/lwc.reference_delete_record">
            deleteRecord</a> LDS functions to combine single record operations, in a non transactional way.
        </p>
        <p><b>Note:</b> Consider using base components forms first.</p>
    </c-example-wrapper>
</template>
force-app/main/default/lwc/createMixedRecordsWireFunctionsWrapper/createMixedRecordsWireFunctionsWrapper.js
New file
@@ -0,0 +1,3 @@
import { LightningElement } from 'lwc';
export default class CreateMixedRecordsWireFunctionsWrapper extends LightningElement {}
force-app/main/default/lwc/createMixedRecordsWireFunctionsWrapper/createMixedRecordsWireFunctionsWrapper.js-meta.xml
New file
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8" ?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__AppPage</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/createRecordWithPrepopulatedValues/createRecordWithPrepopulatedValues.html
New file
@@ -0,0 +1,22 @@
<template>
    <lightning-record-edit-form
        object-api-name={objectApiName}
        onsuccess={handleSuccess}
    >
        <lightning-messages> </lightning-messages>
        <lightning-input-field field-name={nameField}> </lightning-input-field>
        <lightning-input-field field-name={typeField} value="Prospect">
        </lightning-input-field>
        <lightning-input-field field-name={phoneField}> </lightning-input-field>
        <lightning-input-field field-name={employeesField}>
        </lightning-input-field>
        <lightning-button
            class="slds-var-m-top_small slds-align_absolute-center"
            variant="brand"
            type="submit"
            name="create"
            label="Save"
        >
        </lightning-button>
    </lightning-record-edit-form>
</template>
force-app/main/default/lwc/createRecordWithPrepopulatedValues/createRecordWithPrepopulatedValues.js
New file
@@ -0,0 +1,24 @@
import { LightningElement } from 'lwc';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import ACCOUNT_OBJECT from '@salesforce/schema/Account';
import ACCOUNT_NAME_FIELD from '@salesforce/schema/Account.Name';
import ACCOUNT_TYPE_FIELD from '@salesforce/schema/Account.Type';
import ACCOUNT_PHONE_FIELD from '@salesforce/schema/Account.Phone';
import ACCOUNT_EMPLOYEES_FIELD from '@salesforce/schema/Account.NumberOfEmployees';
export default class CreateRecordWithPrepopulatedValues extends LightningElement {
    objectApiName = ACCOUNT_OBJECT;
    nameField = ACCOUNT_NAME_FIELD;
    typeField = ACCOUNT_TYPE_FIELD;
    phoneField = ACCOUNT_PHONE_FIELD;
    employeesField = ACCOUNT_EMPLOYEES_FIELD;
    handleSuccess(event) {
        const toastEvent = new ShowToastEvent({
            title: 'Account created',
            message: 'Record ID: ' + event.detail.id,
            variant: 'success'
        });
        this.dispatchEvent(toastEvent);
    }
}
force-app/main/default/lwc/createRecordWithPrepopulatedValues/createRecordWithPrepopulatedValues.js-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>false</isExposed>
</LightningComponentBundle>
force-app/main/default/lwc/createRecordWithPrepopulatedValuesWrapper/createRecordWithPrepopulatedValuesWrapper.html
New file
@@ -0,0 +1,19 @@
<template>
    <c-example-wrapper
        icon-name="custom:custom96"
        lwc="createRecordWithPrepopulatedValues"
        title="Create Record with Prepopulated Values"
        visualforce="createRecordWithPrepopulatedValues"
        visualforce-height="260px"
    >
        <c-create-record-with-prepopulated-values
            slot="lwc"
        ></c-create-record-with-prepopulated-values>
        <!-- prettier-ignore -->
        <p>
          Use <a target="_blank" href="https://developer.salesforce.com/docs/component-library/bundle/lightning-record-edit-form">
          lightning-record-edit-form</a> to prepopulate fields or use a custom layout.
        </p>
    </c-example-wrapper>
</template>
force-app/main/default/lwc/createRecordWithPrepopulatedValuesWrapper/createRecordWithPrepopulatedValuesWrapper.js
New file
@@ -0,0 +1,3 @@
import { LightningElement } from 'lwc';
export default class CreateRecordWithPrepopulatedValuesWrapper extends LightningElement {}
force-app/main/default/lwc/createRecordWithPrepopulatedValuesWrapper/createRecordWithPrepopulatedValuesWrapper.js-meta.xml
New file
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8" ?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/customDelete/customDelete.html
New file
@@ -0,0 +1,2 @@
<template>
</template>
force-app/main/default/lwc/customDelete/customDelete.js
New file
@@ -0,0 +1,144 @@
import { LightningElement, api, track, wire } from 'lwc';
import init from '@salesforce/apex/CustomDeleteController.initForCustomDelete';
import {CurrentPageReference} from 'lightning/navigation'
import UserInfo_Owner from '@salesforce/apex/TaskFeedbackController.UserInfo_Owner';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import deleteRepair from '@salesforce/apex/ControllerUtil.deleteRepair';
export default class CustomDelete extends LightningElement {
    @api recordId;
    @api message;
    @track Status ;
    @track FSE ;
    @track SAP;
    @track cre ;
    @track Rep ;
    @track acc ;
    @track fSE ;
    @track id;
    @track rtn;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference){
        console.log(111);
        console.log(currentPageReference);
        if(currentPageReference){
            const urlValue=currentPageReference.state.recordId;
            if(urlValue){
                let str='${urlValue}';
                console.log("str");
                console.log(str);
                this.recordId=str;
            }
        }
    }
    connectedCallback(){
        console.log(this.recordId);
        init({
            recordId:this.recordId
        }).then(result=>{
            console.log(result);
            if(result!=null){
                this.FSE=result.FSEApplyForRepairtime;
                this.Rep=result.Rep;
                this.SAP=result.SAP;
                this.Status=result.Status;
                this.acc=result.acc;
                this.id=result.Id;
                this.cre=result.cre;
                this.fSE=result.FSEownerId;
                console.log("end");
                this.handleDeleteAction();
                console.log("end2");
            }
        })
    }
    handleDeleteAction(){
    if (this.Status != null && this.Status.length > 0) {
        if (this.Status != "草案中"&& this.Status != "1.受理完毕(SAP待发送)"&& this.Status != "4.修理品返送阶段") {
            this.message = "不是草案中,不能删除";
            const event = new ShowToastEvent({
                title: 'error',
                variant:'error',
                message:
                    this.message,
            });
            this.dispatchEvent(event);
        }
        else if (this.Status == "0.申请完毕"&& (this.FSE != "")) {
            message = "FSE已经申请,不能删除";
        console.log('***action4');
            const event = new ShowToastEvent({
                title: 'warning',
                message:
                    this.message,
            });
            this.dispatchEvent(event);
        }
        else if (this.Status == "4.修理品返送阶段"&& (this.SAP != "" || this.Rep!= "")){
            message = "已经发送过SAP,不能删除";
            const event = new ShowToastEvent({
                title: 'warning',
                message:
                    this.message,
            });
            this.dispatchEvent(event);
        }
        else if (UserInfo_Owner.Id.substring(0,15) != this.cre.substring(0,15) && UserInfo_Owner.Id.substring(0,15) != this.acc.substring(0,15)&& UserInfo_Owner.Id.substring(0,15) != this.fSE.substring(0,15)) {
            message = "不是所有人、创建人或FSE主负责人,不能删除";
            const event = new ShowToastEvent({
                title: 'warning',
                message:
                    this.message,
            });
            this.dispatchEvent(event);
        }
        else {
            // sforce.connection.sessionId = '{!$Api.Session_ID}';
            // var rtn=sforce.apex.execute("ControllerUtil","deleteRepair",{rid:this.id});
            deleteRepair({
                rid:this.id
            }).then(result=>{
                console.log(result);
                if(result!=null){
                    this.rtn=result;
                }
            })
            if (this.rtn == "OK") {
                 reload();
            } else {
                alert(this.rtn);
            }
        }
     }
    function reload(){
        var str="";
        if(getParam('retURL')!==null){
            str +=getParam('retURL');
        }
        window.open(str,'_self');
    }
    function getParam(paramName) {
        paramValue = "", isFound = !1;
        if (this.location.search.indexOf("?") == 0 && this.location.search.indexOf("=") > 1) {
            arrSource = unescape(this.location.search).substring(1, this.location.search.length).split("&"), i = 0;
            while (i < arrSource.length && !isFound) arrSource[i].indexOf("=") > 0 && arrSource[i].split("=")[0].toLowerCase() == paramName.toLowerCase() && (paramValue = arrSource[i].split("=")[1], isFound = !0), i++
        }
    return paramValue == "" && (paramValue = null), paramValue
}
}
}
force-app/main/default/lwc/customDelete/customDelete.js-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="customDelete">
    <apiVersion>56.0</apiVersion>
    <isExposed>true</isExposed>
</LightningComponentBundle>
force-app/main/default/lwc/customLightningDatatable/customLightningDatatable.html
New file
@@ -0,0 +1,3 @@
<template>
</template>
force-app/main/default/lwc/customLightningDatatable/customLightningDatatable.js
New file
@@ -0,0 +1,11 @@
import { LightningElement } from 'lwc';
import boxorpieceType from './templates/boxorpieceType';
export default class CustomLightningDatatable extends LightningElement {
    static customTypes = {
        boxorpieceType: {
            template: boxorpieceType,
            typeAttributes: ['customValueA']
        }
    }
}
force-app/main/default/lwc/customLightningDatatable/customLightningDatatable.js-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>56.0</apiVersion>
    <isExposed>false</isExposed>
</LightningComponentBundle>
force-app/main/default/lwc/customLightningDatatable/templates/boxorpieceType.html
New file
@@ -0,0 +1,4 @@
<template>
    <c-boxorpiece-type
    custom-value-a={typeAttributes.customValueA}></c-boxorpiece-type>
</template>
force-app/main/default/lwc/customShipmentAmountComp/customShipmentAmountComp.html
New file
@@ -0,0 +1,10 @@
<template>
    <lightning-input
    name="shipmentAmount"
    label="shipmentAmount"
    variant="label-hidden"
    value={shipmentAmount}
    read-only>
    </lightning-input>
</template>
force-app/main/default/lwc/customShipmentAmountComp/customShipmentAmountComp.js
New file
@@ -0,0 +1,9 @@
import { LightningElement,api } from 'lwc';
export default class CustomShipmentAmountComp extends LightningElement {
    @api shipmentAmount;
    connectedCallback(){
        console.log('进入 CustomShipmentAmountComp shipmentAmount = ' + this.shipmentAmount);
    }
}
force-app/main/default/lwc/customShipmentAmountComp/customShipmentAmountComp.js-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>56.0</apiVersion>
    <isExposed>false</isExposed>
</LightningComponentBundle>
force-app/main/default/lwc/customShipmentNumberComp/customShipmentNumberComp.html
New file
@@ -0,0 +1,14 @@
<template>
    <lightning-input
        step="0"
        type="number"
        name="shipmentNumber"
        label="deliveryOrderNo"
        variant="label-hidden"
        onchange={dataChange}
        data-field="shipmentNumber"
        value={shipmentNumber}
        onblur={shipmentNumberBlur}
        min="0"
    ></lightning-input>
</template>
force-app/main/default/lwc/customShipmentNumberComp/customShipmentNumberComp.js
New file
@@ -0,0 +1,24 @@
import { LightningElement,api,track } from 'lwc';
export default class CustomShipmentNumberComp extends LightningElement {
    @api recordId;
    @api shipmentNumber;
    connectedCallback(){
        console.log('shipmentNumber = ' + this.shipmentNumber);
    }
    shipmentNumberBlur(event){
        console.log('shipmentNumberBlur')
        this.shipmentNumber = event.target.value;
        this.dispatchEvent(new CustomEvent('shipmentnumber', {
            composed: true,
            bubbles: true,
            cancelable: true,
            detail: {
                data: { shipmentnumber: this.shipmentNumber, recordId: this.recordId }
            }
        }));
    }
}
force-app/main/default/lwc/customShipmentNumberComp/customShipmentNumberComp.js-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>56.0</apiVersion>
    <isExposed>false</isExposed>
</LightningComponentBundle>
force-app/main/default/lwc/customShippingUnitPriceComp/customShippingUnitPriceComp.html
@@ -6,7 +6,7 @@
        label="deliveryOrderNo"
        variant="label-hidden"
        data-field="shipmentUnitPrice"
        value={shipmentUnitPrice}
        value={shippingUnitPrice}
        onblur={shipmentUnitPriceBlur}
    ></lightning-input>
</template>
force-app/main/default/lwc/customShippingUnitPriceComp/customShippingUnitPriceComp.js
@@ -2,22 +2,22 @@
export default class CustomShippingUnitPriceComp extends LightningElement {
    @api recordId;
    @track shipmentUnitPrice = 0.00;
    @api shippingUnitPrice;
    connectedCallback(){
        console.log('CustomShippingUnitPriceComp recordId = ' + this.recordId);
        console.log('shippingUnitPrice = ' + this.shippingUnitPrice);
    }
    shipmentUnitPriceBlur(event){
        console.log('shipmentUnitPriceBlur')
        this.shipmentUnitPrice = event.target.value;
        this.shippingUnitPrice = event.target.value;
        this.dispatchEvent(new CustomEvent('shipmentunitprice', {
            composed: true,
            bubbles: true,
            cancelable: true,
            detail: {
                data: { shipmentunitprice: this.shipmentUnitPrice, recordId: this.recordId }
                data: { shipmentunitprice: this.shippingUnitPrice, recordId: this.recordId }
            }
        }));
    }
force-app/main/default/lwc/customUnitComp/customUnitComp.html
@@ -7,7 +7,15 @@
        </template>
    </select> -->
    <div class="picklist-container">
        <lightning-combobox name="selectUnit" label="unit" value={unitValue} variant="label-hidden"
            onchange={handleDataChange} data-field="selectUnit" options={unitOptions}></lightning-combobox>
        <lightning-combobox
            name="selectUnit"
            label="unit"
            value={unitValue}
            variant="label-hidden"
            onchange={handleDataChange}
            data-field="selectUnit"
            options={unitOptions}
        ></lightning-combobox>
    </div>
</template>
force-app/main/default/lwc/customUnitComp/customUnitComp.js
@@ -6,14 +6,11 @@
    @api recordId;
    connectedCallback(){
        console.log('unitValue = ' + this.unitValue);
        console.log('unitOptions = ' + JSON.stringify(this.unitOptions));
        console.log('recordId = ' + this.recordId);
    }
    handleDataChange(event){
        console.log('dataChange' + event.target.value);
        console.log('unitValue = ' + event.target.value);
        this.unitValue = event.target.value;
        this.dispatchEvent(new CustomEvent('unitchange', {
            composed: true,
            bubbles: true,
force-app/main/default/lwc/datatableWithCustomTypes/datatableWithCustomTypes.html
New file
@@ -0,0 +1 @@
<template> </template>
force-app/main/default/lwc/datatableWithCustomTypes/datatableWithCustomTypes.js
New file
@@ -0,0 +1,11 @@
import LightningDatatable from 'lightning/datatable';
import navigateToRecordTemplate from './navigateToRecordTemplate.html';
export default class DatatableWithCustomTypes extends LightningDatatable {
    static customTypes = {
        navigateToRecord: {
            template: navigateToRecordTemplate,
            typeAttributes: ['label']
        }
    };
}
force-app/main/default/lwc/datatableWithCustomTypes/datatableWithCustomTypes.js-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>false</isExposed>
</LightningComponentBundle>
force-app/main/default/lwc/datatableWithCustomTypes/navigateToRecordTemplate.html
New file
@@ -0,0 +1,8 @@
<template>
    <c-navigate-to-record
        data-navigation="enable"
        record-id={value}
        label={typeAttributes.label}
    >
    </c-navigate-to-record>
</template>
force-app/main/default/lwc/demoLWC/demoLWC.html
New file
@@ -0,0 +1,42 @@
<template>
    <button class="slds-button slds-button_brand" onclick={addAccount} title="AddGroup">新增客户</button>
    <lightning-datatable
        key-field="id"
        data={accList}
        columns={columns}
    >
    </lightning-datatable>
    <template if:true={isShowPop}>
        <section role="dialog" tabindex="-1" aria-labelledby="modal-heading-01" aria-modal="true" aria-describedby="modal-content-id-1" class="slds-modal slds-fade-in-open slds-modal_medium">
            <div class="slds-modal__container">
                <header class="slds-modal__header" style="background-color: #F3F3F3;">
                    <button class="slds-button slds-button_icon slds-modal__close slds-button_icon-inverse" title="Close" onclick={close}>
                        <lightning-icon icon-name="utility:close"
                            alternative-text="close"
                            variant="inverse"
                            size="small" ></lightning-icon>
                        <span class="slds-assistive-text">Close</span>
                    </button>
                    <h2 id="modal-heading-02" class="slds-text-heading_medium slds-hyphenate">新增客户</h2>
                </header>
                <div class="slds-modal__content slds-p-around_medium" id="modal-content-id-2" style="border: 1px solid #F3F3F3;">
                    <lightning-record-edit-form object-api-name="Account" density="compact" layout-type="Compact">
                        <div class="slds-grid slds-wrap" style="padding-top: 20px;padding-bottom: 5px;padding-left:25px;padding-right:25px;">
                            <div class="slds-col slds-size_12-of-12 slds-small-size_12-of-12 slds-large-size_6-of-12">
                                <lightning-input-field field-name="Name" value={accName} onchange={accNameChange} required="true"></lightning-input-field>
                                <lightning-input-field field-name="Phone" value={accPhone} onchange={accPhoneChange}></lightning-input-field>
                                <lightning-input-field field-name="Type" value={accType} onchange={accTypeChange}></lightning-input-field>
                                <lightning-input-field field-name="Fax" value={accFax} onchange={accFaxChange}></lightning-input-field>
                                <lightning-input-field field-name="TestMutiPicklist__c" value={accTest} onchange={accFaxChange}></lightning-input-field>
                            </div>
                        </div>
                    </lightning-record-edit-form>
                </div>
                <footer class="slds-modal__footer">
                    <button class="slds-button slds-button_neutral" onclick={close} title="Cancel">取消</button>
                    <button class="slds-button slds-button_brand" onclick={confirm} title="Confirm">新建</button>
                </footer>
            </div>
        </section>
    </template>
</template>
force-app/main/default/lwc/demoLWC/demoLWC.js
New file
@@ -0,0 +1,70 @@
import { LightningElement,track } from 'lwc';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import getAccountForLWC from '@salesforce/apex/DemoController.getAccountForLWC';
import addAccountForLWC from '@salesforce/apex/DemoController.addAccountForLWC';
export default class DemoLWC extends LightningElement {
    @track accList = [];
    @track isShowPop = false;
    @track accName;
    @track accPhone;
    @track accType;
    @track accFax;
    @track accTest;
    @track columns = [
        {label: 'Account Name',fieldName: 'Name'},
        {label: 'Account Phone',fieldName: 'Phone'},
        {label: 'Account Type',fieldName: 'Type'},
        {label: 'Account Fax',fieldName: 'Fax'}
    ];
    connectedCallback(){
        getAccountForLWC()
            .then(result=>{
                this.accList = result;
            })
    }
    accNameChange(event){
        this.accName = event.detail.value;
    }
    accPhoneChange(event){
        this.accPhone = event.detail.value;
    }
    accTypeChange(event){
        this.accType = event.detail.value;
    }
    accFaxChange(event){
        this.accFax = event.detail.value;
    }
    addAccount(event){
        this.isShowPop = true;
        this.accName = '';
        this.accPhone = '';
        this.accType = '';
        this.accFax = '';
    }
    confirm(event){
        addAccountForLWC({name:this.accName,phone:this.accPhone,type:this.accType,fax:this.accFax})
            .then(result=>{
                if(result == 'Success'){
                    this.isShowPop = false;
                    const evt = new ShowToastEvent({
                        title : '新建成功',
                        variant: 'success'
                    });
                    this.dispatchEvent(evt);
                }
            })
    }
    close(event){
        this.isShowPop = false;
    }
}
force-app/main/default/lwc/demoLWC/demoLWC.js-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>56.0</apiVersion>
    <isExposed>false</isExposed>
</LightningComponentBundle>
force-app/main/default/lwc/demoWrapper/demoWrapper.html
New file
@@ -0,0 +1,16 @@
<template>
    <c-example-wrapper
        icon-name="custom:custom7"
        lwc="demoLWC"
        title="Demo"
        visualforce="DemoPage"
        visualforce-height="500px"
    >
        <c-demo-l-w-c slot="lwc"></c-demo-l-w-c>
        <!-- prettier-ignore -->
        <p>
            Demo
        </p>
    </c-example-wrapper>
</template>
force-app/main/default/lwc/demoWrapper/demoWrapper.js
New file
@@ -0,0 +1,3 @@
import { LightningElement } from 'lwc';
export default class DemoWrapper extends LightningElement {}
force-app/main/default/lwc/demoWrapper/demoWrapper.js-meta.xml
New file
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>56.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__AppPage</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/editRecord/editRecord.html
New file
@@ -0,0 +1,12 @@
<template>
    <lightning-record-form
        record-id={recordId}
        object-api-name={objectApiName}
        columns="2"
        mode="edit"
        fields={fields}
        onsuccess={handleSuccess}
        onerror={handleError}
    >
    </lightning-record-form>
</template>
force-app/main/default/lwc/editRecord/editRecord.js
New file
@@ -0,0 +1,44 @@
import { LightningElement, api } from 'lwc';
import ACCOUNT_OBJECT from '@salesforce/schema/Account';
import ACCOUNT_NAME_FIELD from '@salesforce/schema/Account.Name';
import ACCOUNT_TYPE_FIELD from '@salesforce/schema/Account.Type';
import ACCOUNT_PHONE_FIELD from '@salesforce/schema/Account.Phone';
import ACCOUNT_EMPLOYEES_FIELD from '@salesforce/schema/Account.NumberOfEmployees';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
export default class EditRecord extends LightningElement {
    @api recordId;
    objectApiName = ACCOUNT_OBJECT;
    fields = [
        ACCOUNT_NAME_FIELD,
        ACCOUNT_TYPE_FIELD,
        ACCOUNT_PHONE_FIELD,
        ACCOUNT_EMPLOYEES_FIELD
    ];
    // Only use if custom behavior needed
    handleSuccess() {
        this.dispatchEvent(
            new ShowToastEvent({
                title: 'Success',
                message: this.recordId ? 'Account updated' : 'Account created',
                variant: 'success'
            })
        );
    }
    // Only use if custom behavior needed
    handleError() {
        this.dispatchEvent(
            new ShowToastEvent({
                title: 'Error',
                message: this.recordId
                    ? 'Error updating Account'
                    : 'Error creating Account',
                variant: 'error'
            })
        );
    }
}
force-app/main/default/lwc/editRecord/editRecord.js-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>false</isExposed>
</LightningComponentBundle>
force-app/main/default/lwc/editRecordWrapper/editRecordWrapper.html
New file
@@ -0,0 +1,26 @@
<template>
    <c-example-wrapper
        icon-name="standard:account"
        lwc="editRecord"
        title="Edit Record"
        visualforce="editRecord"
        record-id={recordId}
        visualforce-height="230px"
    >
        <c-edit-record record-id={recordId} slot="lwc"></c-edit-record>
        <!-- prettier-ignore -->
        <p>
            Use <a target="_blank" href="https://developer.salesforce.com/docs/component-library/bundle/lightning-record-form">
            lightning-record-form</a> in edit mode to create or edit records as first option.
            Use <a target="_blank" href="https://developer.salesforce.com/docs/component-library/bundle/lightning-record-edit-form">
            lightning-record-edit-form</a> if you want to prepopulate fields or use a custom layout.
        </p>
        <!-- prettier-ignore -->
        <p>
            <b>Note: </b>
            You can use the <a target="_blank" href="https://developer.salesforce.com/docs/component-library/documentation/lwc/lwc.use_navigate">
            Navigation Service </a> to redirect to record page after save.
        </p>
    </c-example-wrapper>
</template>
force-app/main/default/lwc/editRecordWrapper/editRecordWrapper.js
New file
@@ -0,0 +1,5 @@
import { LightningElement, api } from 'lwc';
export default class EditRecordWrapper extends LightningElement {
    @api recordId;
}
force-app/main/default/lwc/editRecordWrapper/editRecordWrapper.js-meta.xml
New file
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8" ?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/editableList/__mocks__/editableList.js
New file
@@ -0,0 +1,3 @@
import { LightningElement } from 'lwc';
export default class EditableList extends LightningElement {}
force-app/main/default/lwc/editableList/editableList.css
New file
@@ -0,0 +1,3 @@
.table-container {
    height: var(--lwc-sizeMedium, 320px);
}
force-app/main/default/lwc/editableList/editableList.html
New file
@@ -0,0 +1,15 @@
<template>
    <template if:true={accounts.data}>
        <div class="table-container">
            <lightning-datatable
                key-field="id"
                data={accounts.data}
                columns={columns}
            >
            </lightning-datatable>
        </div>
    </template>
    <template if:true={accounts.error}>
        <c-error-panel errors={accounts.error}></c-error-panel>
    </template>
</template>
force-app/main/default/lwc/editableList/editableList.js
New file
@@ -0,0 +1,40 @@
import { LightningElement, wire } from 'lwc';
import getAccounts from '@salesforce/apex/ListControllerLwc.getAccounts';
import ACCOUNT_NAME_FIELD from '@salesforce/schema/Account.Name';
import ACCOUNT_TYPE_FIELD from '@salesforce/schema/Account.Type';
import ACCOUNT_PHONE_FIELD from '@salesforce/schema/Account.Phone';
import ACCOUNT_EMPLOYEES_FIELD from '@salesforce/schema/Account.NumberOfEmployees';
const COLUMNS = [
    {
        label: 'Account Name',
        fieldName: ACCOUNT_NAME_FIELD.fieldApiName,
        type: 'text',
        editable: 'true'
    },
    {
        label: 'Type',
        fieldName: ACCOUNT_TYPE_FIELD.fieldApiName,
        type: 'text',
        editable: 'true'
    },
    {
        label: 'Phone',
        fieldName: ACCOUNT_PHONE_FIELD.fieldApiName,
        type: 'phone',
        editable: 'true'
    },
    {
        label: 'Employees',
        fieldName: ACCOUNT_EMPLOYEES_FIELD.fieldApiName,
        type: 'number',
        editable: 'true'
    }
];
export default class List extends LightningElement {
    columns = COLUMNS;
    @wire(getAccounts)
    accounts;
}
force-app/main/default/lwc/editableList/editableList.js-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>false</isExposed>
</LightningComponentBundle>
force-app/main/default/lwc/editableListWrapper/editableListWrapper.html
New file
@@ -0,0 +1,18 @@
<template>
    <c-example-wrapper
        icon-name="custom:custom62"
        title="Editable List"
        lwc="editableList"
        visualforce="editableList"
        visualforce-height="420px"
    >
        <c-editable-list slot="lwc"></c-editable-list>
        <!-- prettier-ignore -->
        <p>
            Use <a target="_blank" href="https://developer.salesforce.com/docs/component-library/bundle/lightning-datatable">
            lightning-datatable</a> with inline editing enabled on its columns to create an editable table.
            <b> Note:</b> Check in the documentation which field types are supported.
        </p>
    </c-example-wrapper>
</template>
force-app/main/default/lwc/editableListWrapper/editableListWrapper.js
New file
@@ -0,0 +1,3 @@
import { LightningElement } from 'lwc';
export default class EditableListWrapper extends LightningElement {}
force-app/main/default/lwc/editableListWrapper/editableListWrapper.js-meta.xml
New file
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8" ?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__AppPage</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/errorPanel/errorPanel.js
New file
@@ -0,0 +1,28 @@
import { LightningElement, api } from 'lwc';
import { reduceErrors } from 'c/ldsUtils';
import noDataIllustration from './templates/noDataIllustration.html';
import inlineMessage from './templates/inlineMessage.html';
export default class ErrorPanel extends LightningElement {
    /** Single or array of LDS errors */
    @api errors;
    /** Generic / user-friendly message */
    @api friendlyMessage = 'Error retrieving data';
    /** Type of error message **/
    @api type;
    viewDetails = false;
    get errorMessages() {
        return reduceErrors(this.errors);
    }
    handleShowDetailsClick() {
        this.viewDetails = !this.viewDetails;
    }
    render() {
        if (this.type === 'inlineMessage') return inlineMessage;
        return noDataIllustration;
    }
}
force-app/main/default/lwc/errorPanel/errorPanel.js-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>false</isExposed>
</LightningComponentBundle>
force-app/main/default/lwc/errorPanel/templates/inlineMessage.html
New file
@@ -0,0 +1,19 @@
<template>
    <div class="slds-var-m-vertical_small">
        <span class="slds-text-color_destructive">
            {friendlyMessage}.
            <template if:true={errorMessages.length}>
                <a onclick={handleShowDetailsClick}> Show details.</a>
            </template>
        </span>
        <template if:true={errorMessages.length}>
            <template if:true={viewDetails}>
                <template for:each={errorMessages} for:item="message">
                    <p class="slds-text-body_regular" key={message}>
                        {message}
                    </p>
                </template>
            </template>
        </template>
    </div>
</template>
force-app/main/default/lwc/errorPanel/templates/noDataIllustration.html
New file
@@ -0,0 +1,257 @@
<template>
    <div
        class="slds-illustration slds-illustration_small slds-var-m-vertical_small"
    >
        <svg
            class="slds-illustration__svg"
            viewBox="0 0 454 272"
            aria-hidden="true"
            xmlns="http://www.w3.org/2000/svg"
            xlink="http://www.w3.org/1999/xlink"
        >
            <g fill="none" fill-rule="evenodd" transform="translate(-65 -74)">
                <g transform="translate(77 180)">
                    <polyline
                        vector-effect="non-scaling-stroke"
                        class="slds-illustration__stroke-secondary"
                        stroke-linecap="round"
                        stroke-linejoin="round"
                        stroke-width="3"
                        points="21 74 111.5 0 177.5 54"
                    ></polyline>
                    <polyline
                        vector-effect="non-scaling-stroke"
                        class="slds-illustration__stroke-secondary"
                        stroke-linecap="round"
                        stroke-linejoin="round"
                        stroke-width="3"
                        points="160 37 181.5 19 249 74"
                    ></polyline>
                    <path
                        vector-effect="non-scaling-stroke"
                        class="slds-illustration__fill-secondary"
                        d="M5.83623454,54.8238008 C6.47896445,52.7119739 7.52041887,52.7099477 8.16376546,54.8238008 L14,74 L0,74 L5.83623454,54.8238008 Z"
                    ></path>
                    <path
                        vector-effect="non-scaling-stroke"
                        class="slds-illustration__fill-secondary"
                        d="M14.9699006 61.8628727C15.5388088 59.729467 16.4627585 59.7353443 17.0300994 61.8628727L20 73 12 73 14.9699006 61.8628727zM239.734375 56.5589921C240.43336 54.4620359 241.506942 54.4857215 242.128332 56.5984458L246 69.7621171 237 64.7621171 239.734375 56.5589921z"
                    ></path>
                    <path
                        vector-effect="non-scaling-stroke"
                        class="slds-illustration__fill-secondary"
                        d="M247.921591,53.8514618 C248.51718,51.7243582 249.484912,51.7318303 250.077772,53.8491859 L254.357732,69.1347569 L242,75 L247.921591,53.8514618 Z"
                        transform="matrix(-1 0 0 1 496.358 0)"
                    ></path>
                </g>
                <g transform="matrix(-1 0 0 1 496 216)">
                    <path
                        vector-effect="non-scaling-stroke"
                        class="slds-illustration__fill-secondary"
                        d="M5.9215907,18.8514618 C6.51717971,16.7243582 7.48113835,16.7183512 8.0784093,18.8514618 L14,40 L0,40 L5.9215907,18.8514618 Z"
                        transform="matrix(-1 0 0 1 14 0)"
                    ></path>
                    <path
                        vector-effect="non-scaling-stroke"
                        class="slds-illustration__fill-secondary"
                        d="M123.136984,25.2363093 C123.613615,23.448945 124.38595,23.4473111 124.863437,25.237887 L126.693756,32.1015868 L120,37 L123.136984,25.2363093 Z"
                        transform="matrix(-1 0 0 1 246.694 0)"
                    ></path>
                    <polyline
                        vector-effect="non-scaling-stroke"
                        class="slds-illustration__stroke-secondary"
                        stroke-linecap="round"
                        stroke-linejoin="round"
                        stroke-width="3"
                        points="13 37 59.5 0 92.5 27"
                    ></polyline>
                    <polyline
                        vector-effect="non-scaling-stroke"
                        class="slds-illustration__stroke-secondary"
                        stroke-linecap="round"
                        stroke-linejoin="round"
                        stroke-width="3"
                        points="83 17 92.5 9 127 38"
                    ></polyline>
                </g>
                <g
                    class="slds-illustration__stroke-primary"
                    stroke-linecap="round"
                    stroke-width="3"
                    transform="translate(67 253)"
                >
                    <path
                        vector-effect="non-scaling-stroke"
                        d="M0 1.5L450 1.5M284 2L419 61M282 2L65 91M443 1.5L449 1.5"
                    ></path>
                </g>
                <g transform="translate(73 163)">
                    <polygon
                        vector-effect="non-scaling-stroke"
                        fill="#FFF"
                        points="20.906 .73 24.63 2.34 27.093 9.155 11.046 19.877 .131 19.877"
                        transform="translate(80 22)"
                    ></polygon>
                    <g
                        class="slds-illustration__stroke-secondary"
                        stroke-linecap="round"
                        stroke-width="3"
                    >
                        <path
                            vector-effect="non-scaling-stroke"
                            d="M44,17.5 L63,17.5 C62.2789714,12.0723971 64.081543,7.53186978 68.4077148,3.87841797 C73.3754883,-0.195556641 79.2734375,0.717773438 82.440918,2.12353516 C85.6083984,3.52929687 87.9606934,5.46069336 89.5913086,9.10524041 C90.2822266,10.6397351 90.7517904,11.9379883 91,13"
                        ></path>
                        <path
                            vector-effect="non-scaling-stroke"
                            d="M83 20.5C84.0558268 16.8461914 86.2227376 14.4572754 89.5007324 13.333252 94.4177246 11.6472168 99.0800781 13.8925781 100.942383 16.1518555 102.804687 18.4111328 103.39502 20.2260742 103.746582 22.1201172 103.980957 23.3828125 104.06543 24.8427734 104 26.5 108.141764 26.3313802 110.918945 27.1647135 112.331543 29 114.040039 31.1936035 114.215332 33.817627 113.593018 35.75 112.970703 37.682373 110.894531 40.5 107 40.5L28 40.5M18 27.5L83.0004985 27.5M0 27.5L8 27.5"
                        ></path>
                    </g>
                </g>
                <g
                    class="slds-illustration__stroke-secondary"
                    stroke-linecap="round"
                    stroke-width="3"
                    transform="translate(292 139)"
                >
                    <path
                        vector-effect="non-scaling-stroke"
                        d="M44,17.5 L63,17.5 C62.2789714,12.0723971 64.081543,7.53186978 68.4077148,3.87841797 C73.3754883,-0.195556641 79.2734375,0.717773438 82.440918,2.12353516 C85.6083984,3.52929687 87.9606934,5.46069336 89.5913086,9.10524041 C90.2822266,10.6397351 90.7517904,11.9379883 91,13"
                    ></path>
                    <path
                        vector-effect="non-scaling-stroke"
                        d="M83 20.5C84.0558268 16.8461914 86.2227376 14.4572754 89.5007324 13.333252 94.4177246 11.6472168 99.0800781 13.8925781 100.942383 16.1518555 102.804687 18.4111328 103.39502 20.2260742 103.746582 22.1201172 103.980957 23.3828125 104.06543 24.8427734 104 26.5 108.141764 26.3313802 110.918945 27.1647135 112.331543 29 114.040039 31.1936035 114.215332 33.817627 113.593018 35.75 112.970703 37.682373 110.894531 40.5 107 40.5L28 40.5M18 27.5L83.0004985 27.5M0 27.5L8 27.5"
                    ></path>
                </g>
                <g transform="translate(204.5 228.5)">
                    <path
                        vector-effect="non-scaling-stroke"
                        class="slds-illustration__fill-secondary"
                        d="M18.9209988,1.95433401 L33.259296,51.443436 C33.5666778,52.5043744 32.9557995,53.613617 31.8948612,53.9209988 C31.7139843,53.9734036 31.5266126,54 31.3382972,54 L2.6617028,54 C1.5571333,54 0.661702805,53.1045695 0.661702805,52 C0.661702805,51.8116846 0.688299176,51.6243129 0.74070397,51.443436 L15.0790012,1.95433401 C15.386383,0.893395645 16.4956256,0.282517358 17.556564,0.589899164 C18.2152102,0.780726338 18.7301717,1.29568777 18.9209988,1.95433401 Z"
                    ></path>
                    <g
                        class="slds-illustration__stroke-primary"
                        stroke-linecap="round"
                        stroke-linejoin="round"
                        stroke-width="3"
                    >
                        <polygon points="17 .324 34 54 0 54"></polygon>
                        <path
                            vector-effect="non-scaling-stroke"
                            d="M17,6.32394366 C17,42.1378022 17,60.4711356 17,61.3239437 C17,60.4711356 17,42.1378022 17,6.32394366 Z"
                        ></path>
                        <path
                            vector-effect="non-scaling-stroke"
                            d="M17,29.3239437 C22.3333333,35.7851611 25,39.1184944 25,39.3239437 C25,39.1184944 22.3333333,35.7851611 17,29.3239437 Z"
                            transform="matrix(-1 0 0 1 42 0)"
                        ></path>
                    </g>
                </g>
                <g transform="translate(439.5 227.5)">
                    <path
                        vector-effect="non-scaling-stroke"
                        class="slds-illustration__fill-secondary"
                        d="M18.9209988,1.95433401 L33.259296,51.443436 C33.5666778,52.5043744 32.9557995,53.613617 31.8948612,53.9209988 C31.7139843,53.9734036 31.5266126,54 31.3382972,54 L2.6617028,54 C1.5571333,54 0.661702805,53.1045695 0.661702805,52 C0.661702805,51.8116846 0.688299176,51.6243129 0.74070397,51.443436 L15.0790012,1.95433401 C15.386383,0.893395645 16.4956256,0.282517358 17.556564,0.589899164 C18.2152102,0.780726338 18.7301717,1.29568777 18.9209988,1.95433401 Z"
                    ></path>
                    <g
                        class="slds-illustration__stroke-primary"
                        stroke-linecap="round"
                        stroke-linejoin="round"
                        stroke-width="3"
                    >
                        <polygon
                            vector-effect="non-scaling-stroke"
                            points="17 -4.676 34 54 0 54"
                        ></polygon>
                        <path
                            vector-effect="non-scaling-stroke"
                            d="M17,1.32394366 C17,40.3936076 17,60.3936076 17,61.3239437 C17,60.3936076 17,40.3936076 17,1.32394366 Z"
                        ></path>
                        <path
                            vector-effect="non-scaling-stroke"
                            d="M17,29.3239437 C22.3333333,35.7851611 25,39.1184944 25,39.3239437 C25,39.1184944 22.3333333,35.7851611 17,29.3239437 Z"
                            transform="matrix(-1 0 0 1 42 0)"
                        ></path>
                    </g>
                </g>
                <g transform="translate(141.852 213.5)">
                    <path
                        vector-effect="non-scaling-stroke"
                        class="slds-illustration__fill-secondary"
                        d="M25.6478873,0 L50.8997802,86.4391718 C51.2095171,87.4994249 50.6011034,88.6100213 49.5408502,88.9197582 C49.3586621,88.9729817 49.1698252,89 48.980022,89 L2.31575269,89 C1.21118319,89 0.315752686,88.1045695 0.315752686,87 C0.315752686,86.8101968 0.342770948,86.6213599 0.395994453,86.4391718 L25.6478873,0 Z"
                        transform="translate(1)"
                    ></path>
                    <g
                        class="slds-illustration__stroke-primary"
                        stroke-linecap="round"
                        stroke-linejoin="round"
                        stroke-width="3"
                        transform="translate(0 2)"
                    >
                        <polygon
                            vector-effect="non-scaling-stroke"
                            points="26.648 0 52.648 87 .648 87"
                        ></polygon>
                        <path
                            vector-effect="non-scaling-stroke"
                            d="M26.6478873 6C26.6478873 64.4972948 26.6478873 94.4972948 26.6478873 96 26.6478873 94.4972948 26.6478873 64.4972948 26.6478873 6zM15.6478873 42C22.9812207 50.078692 26.6478873 52.7453587 26.6478873 53 26.6478873 52.7453587 22.9812207 50.078692 15.6478873 42zM27.6478873 68C36.9812207 57.078692 41.6478873 51.7453587 41.6478873 52 41.6478873 51.7453587 36.9812207 57.078692 27.6478873 68z"
                        ></path>
                    </g>
                </g>
                <g transform="translate(168 57)">
                    <circle
                        vector-effect="non-scaling-stroke"
                        cx="64"
                        cy="64"
                        r="23"
                        class="slds-illustration__fill-secondary"
                    ></circle>
                    <path
                        vector-effect="non-scaling-stroke"
                        class="slds-illustration__stroke-secondary"
                        stroke-dasharray="135 1 1 18"
                        stroke-linecap="round"
                        stroke-linejoin="round"
                        stroke-width="3"
                        d="M64,109 C88.8528137,109 109,88.8528137 109,64 C109,39.1471863 88.8528137,19 64,19 C39.1471863,19 19,39.1471863 19,64 C19,88.8528137 39.1471863,109 64,109 Z"
                        transform="rotate(-130 64 64)"
                    ></path>
                    <path
                        vector-effect="non-scaling-stroke"
                        class="slds-illustration__stroke-secondary"
                        stroke-dasharray="107 10"
                        stroke-linecap="round"
                        stroke-linejoin="round"
                        stroke-width="3"
                        d="M64,97 C82.2253967,97 97,82.2253967 97,64 C97,45.7746033 82.2253967,31 64,31 C45.7746033,31 31,45.7746033 31,64 C31,82.2253967 45.7746033,97 64,97 Z"
                        transform="rotate(150 64 64)"
                    ></path>
                    <g
                        class="slds-illustration__stroke-primary"
                        stroke-width="3"
                        transform="translate(41 41)"
                    >
                        <circle
                            vector-effect="non-scaling-stroke"
                            cx="23"
                            cy="23"
                            r="23"
                        ></circle>
                    </g>
                </g>
            </g>
        </svg>
        <div class="slds-text-longform">
            <h3 class="slds-text-heading_medium">{friendlyMessage}</h3>
            <template if:true={errorMessages.length}>
                <a onclick={handleShowDetailsClick}>Show details</a>
                <template if:true={viewDetails}>
                    <template for:each={errorMessages} for:item="message">
                        <p class="slds-text-body_regular" key={message}>
                            {message}
                        </p>
                    </template>
                </template>
            </template>
        </div>
    </div>
</template>
force-app/main/default/lwc/errorPopover/errorPopover.html
New file
@@ -0,0 +1,43 @@
<template>
    <template if:true={showPopover}>
        <section
            style="position: absolute; left: -50%; bottom: 150%"
            aria-describedby="dialog-body-id-5"
            aria-labelledby="dialog-heading-id-2"
            class="slds-popover slds-popover_error slds-nubbin_bottom-left"
            role="dialog"
        >
            <div class="slds-float_right slds-popover__close">
                <lightning-button-icon
                    variant="bare"
                    icon-class="slds-button_icon-inverse"
                    size="small"
                    icon-name="utility:close"
                    alternative-text="Close dialog"
                    onclick={handleCloseButtonIconClick}
                ></lightning-button-icon>
            </div>
            <header class="slds-popover__header">
                <div
                    class="slds-media slds-media_center slds-has-flexi-truncate"
                >
                    <lightning-icon
                        variant="inverse"
                        class="slds-var-m-right_x-small"
                        size="x-small"
                        icon-name="utility:error"
                        alternative-text="Error"
                    ></lightning-icon>
                    <h2
                        class="slds-truncate slds-text-heading_medium"
                        id="dialog-heading-id-2"
                        title="Resolve error"
                    >
                        Resolve error
                    </h2>
                </div>
            </header>
            <div class="slds-popover__body" id="dialog-body-id-5">{errors}</div>
        </section>
    </template>
</template>
force-app/main/default/lwc/errorPopover/errorPopover.js
New file
@@ -0,0 +1,15 @@
import { LightningElement, api } from 'lwc';
export default class ErrorPopover extends LightningElement {
    @api errors;
    showPopover = true;
    handleCloseButtonIconClick() {
        this.showPopover = false;
    }
    @api
    toggle() {
        this.showPopover = !this.showPopover;
    }
}
force-app/main/default/lwc/errorPopover/errorPopover.js-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>false</isExposed>
</LightningComponentBundle>
force-app/main/default/lwc/exampleWrapper/__mocks__/exampleWrapper.js
New file
@@ -0,0 +1,15 @@
import { LightningElement, api } from 'lwc';
import exampleWrapper from './exampleWrapperTemplate.html';
export default class ExampleWrapper extends LightningElement {
    @api iconName;
    @api lwc;
    @api recordId;
    @api title;
    @api visualforce;
    @api visualforceHeight;
    render() {
        return exampleWrapper;
    }
}
force-app/main/default/lwc/exampleWrapper/__mocks__/exampleWrapperTemplate.html
New file
@@ -0,0 +1,3 @@
<template>
    <slot name="lwc"></slot>
</template>
force-app/main/default/lwc/exampleWrapper/exampleWrapper.css
New file
@@ -0,0 +1,3 @@
iframe {
    border: none;
}
force-app/main/default/lwc/exampleWrapper/exampleWrapper.html
New file
@@ -0,0 +1,36 @@
<template>
    <lightning-card title={title} icon-name={iconName}>
        <lightning-layout multiple-rows="true" vertical-align="center">
            <lightning-layout-item
                padding="horizontal-medium"
                size="6"
                small-device-size="12"
                medium-device-size="12"
                large-device-size="6"
            >
                <iframe
                    title={visualforceIframeTitle}
                    src={visualforceUrl}
                    width="100%"
                    height={visualforceHeight}
                ></iframe>
            </lightning-layout-item>
            <lightning-layout-item
                padding="horizontal-medium"
                size="6"
                small-device-size="12"
                medium-device-size="12"
                large-device-size="6"
            >
                <slot name="lwc"></slot>
            </lightning-layout-item>
        </lightning-layout>
        <c-view-vf-lwc-source
            visualforce-source={visualforceSource}
            lwc-source={lwcSource}
            slot="footer"
        >
            <slot></slot>
        </c-view-vf-lwc-source>
    </lightning-card>
</template>
force-app/main/default/lwc/exampleWrapper/exampleWrapper.js
New file
@@ -0,0 +1,28 @@
import { LightningElement, api } from 'lwc';
export default class ExampleWrapper extends LightningElement {
    @api iconName;
    @api lwc;
    @api recordId;
    @api title;
    @api visualforce;
    @api visualforceHeight;
    get lwcSource() {
        return `lwc/${this.lwc}`;
    }
    get visualforceSource() {
        return `pages/${this.visualforce}.page`;
    }
    get visualforceUrl() {
        if (this.recordId)
            return `/apex/${this.visualforce}?id=${this.recordId}`;
        return `/apex/${this.visualforce}`;
    }
    get visualforceIframeTitle() {
        return `Wrapper for ${this.visualforce} page`;
    }
}
force-app/main/default/lwc/exampleWrapper/exampleWrapper.js-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>false</isExposed>
</LightningComponentBundle>
force-app/main/default/lwc/gzwbtest/gzwbtest.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="slds-is-relative">
        <lightning-spinner variant="brand" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/gzwbtest/gzwbtest.js
New file
@@ -0,0 +1,3 @@
import { LightningElement } from 'lwc';
export default class Gzwbtest extends LightningElement {}
force-app/main/default/lwc/gzwbtest/gzwbtest.js-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>55.0</apiVersion>
    <isExposed>false</isExposed>
</LightningComponentBundle>
force-app/main/default/lwc/improvedForecastTime/improvedForecastTime.html
@@ -1,164 +1,108 @@
<template>
    <div class="exampleHolder" if:true={IsLoading}>
        <lightning-spinner
            alternative-text="Loading"
            size="large"
        ></lightning-spinner>
    </div>
    <div style="padding: 30px">
        <div style="float: right">
            <div
                class="demo-only demo-only_viewport"
                style="height: 4.5rem"
                if:true={Tongzhishow}
            >
                <div class="slds-notification-container" style={IsLeftStyle}>
                    <div
                        aria-live="assertive"
                        aria-atomic="true"
                        class="slds-assistive-text"
                    >
                        提示
                    </div>
                    <section
                        class="slds-notification"
                        role="dialog"
                        aria-labelledby="noti77"
                        aria-describedby="dialog-body-id-43"
                    >
                        <div
                            class="slds-notification__body"
                            id="dialog-body-id-43"
                        >
                            <a
                                class="slds-notification__target slds-media"
                                href="#"
                                style={BgColorStyle}
                            >
                                <span
                                    class="slds-icon_container slds-icon-standard-task slds-media__figure"
                                    title="task"
                                >
                                    <lightning-icon
                                        icon-name={TongzhiIcon}
                                        alternative-text="Account"
                                        title="Account"
                                    ></lightning-icon>
                                </span>
                                <div class="slds-media__body">
                                    <h2
                                        class="slds-text-heading_small slds-m-bottom_xx-small"
                                        id="noti77"
                                    >
                                        <span class="slds-assistive-text"
                                            >task notification:</span
                                        >提示
                                    </h2>
                                    <p>{SaveShowText}</p>
                                </div>
                            </a>
                            <button
                                class="slds-button slds-button_icon slds-button_icon-container slds-notification__close"
                                title="close"
                            >
                                <lightning-icon
                                    icon-name="utility:close"
                                    alternative-text="close"
                                    title="close"
                                    size="x-small"
                                    onclick={CloseAlert}
                                ></lightning-icon>
                            </button>
                        </div>
                    </section>
  <div class="exampleHolder" if:true={IsLoading} >
    <lightning-spinner alternative-text="Loading" size="large"></lightning-spinner>
  </div>
  <div style="padding:30px">
    <div style="float:right" >
      <div class="demo-only demo-only_viewport" style="height:4.5rem;" if:true = {Tongzhishow}>
        <div class="slds-notification-container" style={IsLeftStyle}>
          <div aria-live="assertive" aria-atomic="true" class="slds-assistive-text">提示</div>
          <section class="slds-notification" role="dialog" aria-labelledby="noti77" aria-describedby="dialog-body-id-43" >
            <div class="slds-notification__body" id="dialog-body-id-43" >
              <a class="slds-notification__target slds-media" href="#" style={BgColorStyle}>
                <span class="slds-icon_container slds-icon-standard-task slds-media__figure" title="task">
                    <lightning-icon icon-name={TongzhiIcon} alternative-text="Account" title="Account"></lightning-icon>
                </span>
                <div class="slds-media__body">
                  <h2 class="slds-text-heading_small slds-m-bottom_xx-small" id="noti77">
                    <span class="slds-assistive-text">task notification:</span>提示</h2>
                  <p>{SaveShowText}</p>
                </div>
              </a>
              <button class="slds-button slds-button_icon slds-button_icon-container slds-notification__close" title="close">
                  <lightning-icon icon-name="utility:close" alternative-text="close" title="close"  size="x-small" onclick={CloseAlert}></lightning-icon>
              </button>
            </div>
          </section>
        </div>
        <p>
            <lightning-formatted-text
                value="当前预测OCSM签约日 : "
            ></lightning-formatted-text
            >{opp.Close_Forecasted_Check}
        </p>
        <div class={xgxLy} style="width: 495px; padding: 1px">
            <lightning-combobox
                name="progress"
                label="日期提前/日期延后"
                value={opp.Date_InAdvance_Delay}
                options={RelateOption}
                onchange={handleRelationFn}
            >
            </lightning-combobox>
        </div>
        <!-- 提前 -->
        <div class={bxgLy} if:true={isAdvance}>
            <lightning-combobox
                name="progress"
                label="预测日期提前理由"
                value={opp.Predicted_date_ChangeReason}
                placeholder="请选择提前理由"
                options={AdvanceReasons}
                style="width: 495px; padding: 1px"
                onchange={handleRelationFn1}
            >
            </lightning-combobox>
            <div style="font-size: 10px; color: red" if:true={bxgLyFlag}>
                请选择提前理由
            </div>
        </div>
        <!-- 延后 -->
        <!-- onchange={handleIrrelevantFn} -->
        <div class={bxgLy} if:true={isDelay}>
            <lightning-combobox
                name="progress"
                label="预测日期延后理由"
                value={opp.Predicted_date_ChangeReason}
                placeholder="请选择延后理由"
                options={DelayReasons}
                style="width: 495px; padding: 1px"
                onchange={handleRelationFn1}
            >
            </lightning-combobox>
            <div style="font-size: 10px; color: red" if:true={bxgLyFlag}>
                请选择延后理由
            </div>
        </div>
        <!-- 改变日期 -->
        <div>
            <lightning-input
                type="date"
                label="请选择要改变的日期"
                name="aaa"
                style="width: 495px; padding: 1px"
                value={opp.Close_Forecasted_Date}
                onchange={handleRelationFn2}
            >
            </lightning-input>
        </div>
        <div if:true={flg}>
            <lightning-input
                type="date"
                label="预测发货日"
                name="aa"
                style="width: 495px; padding: 1px"
                value={opp.CloseDate}
                onchange={handleRelationFn3}
            >
            </lightning-input>
        </div>
        <button
            class="slds-button slds-button_brand"
            onclick={saveFn}
            style="margin-top: 10px"
        >
            保存
        </button>
      </div>
    </div>
</template>
    <p><lightning-formatted-text value="当前预测OCSM签约日 : " ></lightning-formatted-text>{opp.Close_Forecasted_Check}</p>
    <div class={xgxLy} style="width: 495px;padding:1px">
        <lightning-combobox
          name="progress"
          label="日期提前/日期延后"
          value={opp.Date_InAdvance_Delay}
          options={RelateOption}
          onchange={handleRelationFn} >
        </lightning-combobox>
    </div>
    <!-- 提前 -->
    <div class={bxgLy} if:true={isAdvance}>
        <lightning-combobox
          name="progress"
          label="预测日期提前理由"
          value={opp.Predicted_date_ChangeReason}
          placeholder="请选择提前理由"
          options={AdvanceReasons}
          style="width: 495px;padding:1px"
          onchange={handleRelationFn1}
          >
        </lightning-combobox>
        <div style="font-size:10px;color:red" if:true={bxgLyFlag}>请选择提前理由</div>
    </div>
    <!-- 延后 -->
    <!-- onchange={handleIrrelevantFn} -->
    <div class={bxgLy} if:true={isDelay}>
        <lightning-combobox
          name="progress"
          label="预测日期延后理由"
          value={opp.Predicted_date_ChangeReason}
          placeholder="请选择延后理由"
          options={DelayReasons}
          style="width: 495px;padding:1px"
          onchange={handleRelationFn1}
        >
        </lightning-combobox>
        <div style="font-size:10px;color:red" if:true={bxgLyFlag}>请选择延后理由</div>
    </div>
    <!-- 改变日期 -->
    <div>
      <lightning-input
        type="date"
        label="请选择要改变的日期"
        name="aaa"
        style="width: 495px;padding:1px"
        value={opp.Close_Forecasted_Date}
        onchange={handleRelationFn2}
      >
    </lightning-input>
    </div>
    <div if:true={flg}>
      <lightning-input
        type="date"
        label="预测发货日"
        name="aa"
        style="width: 495px;padding:1px"
        value={opp.CloseDate}
        onchange={handleRelationFn3}
      >
    </lightning-input>
    </div>
    <button
      class="slds-button slds-button_brand"
      onclick={saveFn}
      style="margin-top: 10px"
    >
    保存
    </button>
  </div>
</template>
force-app/main/default/lwc/improvedForecastTime/improvedForecastTime.js
@@ -1,251 +1,250 @@
import { LightningElement, track } from "lwc";
import GetOppinformationcData from "@salesforce/apex/ImprovedForecastTimeController.GetOppinformationcData";
import getReason from "@salesforce/apex/ImprovedForecastTimeController.getReason";
import SaveData from "@salesforce/apex/ImprovedForecastTimeController.SaveData";
import SystemModstamp from "@salesforce/schema/Account.SystemModstamp";
import { LightningElement, track  } from 'lwc';
import GetOppinformationcData from '@salesforce/apex/ImprovedForecastTimeController.GetOppinformationcData';
import getReason from '@salesforce/apex/ImprovedForecastTimeController.getReason';
import SaveData from '@salesforce/apex/ImprovedForecastTimeController.SaveData';
import SystemModstamp from '@salesforce/schema/Account.SystemModstamp';
export default class ImprovedForecastTime extends LightningElement {
  //显示与隐藏
  isAdvance = false; //选着 提前 的标识
  isDelay = false; //选着 延后 的标识
  RelateOption = [
    { label: "提前", value: "提前" },
    { label: "延后", value: "延后" }
  ];
    //显示与隐藏
    isAdvance = false;  //选着 提前 的标识
    isDelay = false; //选着 延后 的标识
  handleRelationFn(event) {
    var value = event.target.value;
    this.opp.Date_InAdvance_Delay = value;
    debugger;
    // this.opp.Predicted_date_ChangeReason__c = '';
    //SWAG-CJR4PC【委托】调查-修改预测日提前理由错误 fy start
    this.opp.Predicted_date_ChangeReason = "";
    this.opp.Close_Forecasted_Date = "";
    this.opp.CloseDate = "";
    //SWAG-CJR4PC【委托】调查-修改预测日提前理由错误 fy end
    if (value == "提前") {
      this.isAdvance = true;
      this.isDelay = false;
    }
    if (value == "延后") {
      this.isAdvance = false;
      this.isDelay = true;
    }
  }
    RelateOption=[
        {label:"提前",value:"提前"},
        {label:"延后",value:"延后"},
    ]
    handleRelationFn(event){
  handleRelationFn1(event) {
    var value = event.target.value;
    this.opp.Predicted_date_ChangeReason = value;
  }
  flg = true;
  handleRelationFn2(event) {
    var value = event.target.value;
    this.opp.Close_Forecasted_Date = value;
    this.flg = false;
    debugger;
    this.CloseDateAssignment(value);
  }
  //给预测发货日赋值
  CloseDateAssignment(value) {
    debugger;
    var value = this.addDay(30, value);
    this.opp.CloseDate = value;
    this.flg = true;
  }
  //加天数
  addDay(dayNumber, value1) {
    var date = new Date(value1);
    var ms = dayNumber * (1000 * 60 * 60 * 24);
    var newDate = new Date(date.getTime() + ms);
    var value = newDate.toLocaleDateString();
    var value2 = value.split("/");
    if (value2[1].length == 1) {
      value2[1] = "0" + value2[1];
    }
    if (value2[2].length == 1) {
      value2[2] = "0" + value2[2];
    }
    value = value2[0] + "-" + value2[1] + "-" + value2[2];
    return value;
  }
  handleRelationFn3(event) {
    var value = event.target.value;
    this.opp.CloseDate = value;
  }
  //从url上取得ID
  getQueryVariable(variable) {
    var query = window.location.search.substring(1);
    var vars = query.split("&");
    for (var i = 0; i < vars.length; i++) {
      var pair = vars[i].split("=");
      if (pair[0] == variable) {
        return pair[1];
      }
    }
    return false;
  }
  oppId = "";
  opp = {};
  Date_InAdvance_Delay = "";
  AdvanceReasons = [];
  DelayReasons = [];
  //初始化
  connectedCallback() {
    this.oppId = this.getQueryVariable("id");
    GetOppinformationcData({ ParamIdStr: this.oppId }).then((response) => {
      this.opp = JSON.parse(response);
      if (this.opp.Date_InAdvance_Delay == "提前") {
        this.isAdvance = true;
        this.isDelay = false;
      }
      if (this.opp.Date_InAdvance_Delay == "延后") {
        this.isAdvance = false;
        this.isDelay = true;
      }
    });
    getReason().then((response) => {
      var options = JSON.parse(response);
      this.AdvanceReasons = options["提前"];
      this.DelayReasons = options["延后"];
    });
  }
  //提示
  SaveShowText = "保存成功"; //提示框的文本
  Tongzhishow = false; //提示显示的标识
  TongzhiIcon = "standard:account"; //提示框的图标
  IsLeftStyle = ""; //提示框的样式
  BgColorStyle = "";
  //弹框提示 content 内容 error 是否是错误提示框  left 是否居左
  Alert(content, error = false, left = false) {
    this.SaveShowText = content;
    this.Tongzhishow = true;
    if (error) {
      this.TongzhiIcon = "standard:first_non_empty";
      this.BgColorStyle = "background-color:#f88568";
    } else {
      this.TongzhiIcon = "standard:account";
      this.BgColorStyle = "background-color:#69e669";
    }
    if (left) {
      this.IsLeftStyle = "left: 0.25rem";
    } else {
      this.IsLeftStyle = "";
    }
  }
  //关闭提示框
  CloseAlert() {
    this.closeOffRefresh();
  }
  closeOffRefresh() {
    if (this.Tongzhishow == true) {
      this.Tongzhishow = false;
    }
    if (this.SaveShowText != "") {
      this.SaveShowText = "";
    }
  }
  //加载
  IsLoading = false;
  OnLoading(flag) {
    this.IsLoading = flag;
  }
  //保存数据逻辑
  saveFn() {
    debugger;
    var myDate = new Date(); //今天日期
    var myDate1 = new Date(this.opp.Close_Forecasted_Check); //当前预测日期
    var myDate2 = new Date(this.opp.Close_Forecasted_Date); //改变的预测日期
    var myDate3 = new Date(myDate.toLocaleDateString()); //今天日期          格式化
    var myDate4 = new Date(myDate1.toLocaleDateString()); //当前预测日期      格式化
    var myDate5 = new Date(myDate2.toLocaleDateString()); //改变的预测日期    格式化
    var myDate6 = new Date(this.opp.CloseDate);
    var myDate7 = new Date(myDate6.toLocaleDateString()); //发货日期
    //20221226 lt DB202212359066增加限制-修改预测日最大日期 start
    var date1 = new Date();
    var year = date1.getFullYear();
    var month = date1.getMonth() + 1;
    if (month > 3) {
      year = year + 1;
    }
    var strDate = "-03-31";
    var Odate = year + 3;
    var Sdate = year + 4;
    var Odate1 = Odate + strDate;
    var Sdate1 = Sdate + strDate;
    var Odate2 = new Date(Odate1);
    var Sdate2 = new Date(Sdate1);
    // //订货预测日
    var OrderDate = new Date(Odate2.toLocaleDateString());
    // //发货预测日
    var ShipmentsDate = new Date(Sdate2.toLocaleDateString());
    //20221226 lt DB202212359066增加限制-修改预测日最大日期 end
    console.warn("myDatevalue:=" + myDate);
    console.warn("今天日期" + myDate3);
    console.warn("当前预测日期" + myDate4);
    console.warn("1111111111" + myDate2);
    console.warn("改变的预测日期" + myDate5);
    //SWAG-CJR4PC【委托】调查-修改预测日提前理由错误 fy start
    // if(this.opp.Date_InAdvance_Delay == undefined || this.opp.Predicted_date_ChangeReason == undefined || myDate5 == undefined){
    // if(this.opp.Date_InAdvance_Delay == '' ||this.opp.Date_InAdvance_Delay == undefined || this.opp.Predicted_date_ChangeReason == '' ||this.opp.Predicted_date_ChangeReason == undefined|| myDate5 == '' || myDate5 == undefined){
    if (
      !this.opp.Date_InAdvance_Delay ||
      !this.opp.Predicted_date_ChangeReason ||
      !this.opp.Close_Forecasted_Date
    ) {
      //SWAG-CJR4PC【委托】调查-修改预测日提前理由错误 fy end
      this.Alert("请选择日期/理由。", false, true);
    } else if (
      this.opp.Date_InAdvance_Delay == "提前" &&
      (myDate5 >= myDate4 || myDate5 < myDate3)
    ) {
      this.Alert(
        "请选择 “提前” 于当前预测OCSM签约日的日期 且 不早于今天。",
        false,
        true
      );
    } else if (this.opp.Date_InAdvance_Delay == "延后" && myDate5 <= myDate4) {
      this.Alert("请选择 “延后” 于当前预测OCSM签约日的日期。", false, true);
    } else if (myDate7 < myDate5) {
      this.Alert("预测发货日不能小于预测签约日。", false, true);
    }
    //20221226 lt DB202212359066增加限制-修改预测日最大日期 start
    else if (myDate5 > OrderDate) {
      this.Alert("订货预测日请在未来三财年内。", false, true);
    } else if (myDate7 > ShipmentsDate) {
      this.Alert("发货预测日请在未来四财年内。", false, true);
    }
    //20221226 lt DB202212359066增加限制-修改预测日最大日期 end
    else {
      this.OnLoading(true);
      SaveData({ JsonData: JSON.stringify(this.opp) }).then((response) => {
        if (response == "成功") {
          this.OnLoading(false);
          this.Alert("保存成功", false, true);
          window.location.hash = "Refresh" + "==" + this.oppId;
        } else {
          this.Alert(response, true);
        var value = event.target.value;
        this.opp.Date_InAdvance_Delay = value;
debugger
        // this.opp.Predicted_date_ChangeReason__c = '';
        //SWAG-CJR4PC【委托】调查-修改预测日提前理由错误 fy start
        this.opp.Predicted_date_ChangeReason = ''
        this.opp.Close_Forecasted_Date= '';
        this.opp.CloseDate= '';
        //SWAG-CJR4PC【委托】调查-修改预测日提前理由错误 fy end
        if (value == "提前") {
            this.isAdvance = true;
            this.isDelay = false;
        }
      });
        if (value == "延后") {
            this.isAdvance = false;
            this.isDelay = true;
        }
    }
  }
}
    handleRelationFn1(event){
        var value = event.target.value;
        this.opp.Predicted_date_ChangeReason = value;
    }
    flg=true;
    handleRelationFn2(event){
        var value = event.target.value;
        this.opp.Close_Forecasted_Date = value;
        this.flg=false;
        debugger
        this.CloseDateAssignment(value);
    }
    //给预测发货日赋值
    CloseDateAssignment(value){
        debugger
        var value=this.addDay(30,value);
        this.opp.CloseDate = value;
        this.flg=true;
    }
    //加天数
    addDay(dayNumber, value1) {
        var date = new Date(value1);
        var ms = dayNumber * (1000 * 60 * 60 * 24)
        var newDate = new Date(date.getTime() + ms);
        var value=newDate.toLocaleDateString();
        var value2=value.split('/');
        if(value2[1].length == 1){
            value2[1]='0'+value2[1];
        }
        if(value2[2].length == 1){
            value2[2]='0'+value2[2];
        }
        value=value2[0]+'-'+value2[1]+'-'+value2[2];
        return value;
    }
    handleRelationFn3(event){
        var value = event.target.value;
        this.opp.CloseDate = value;
    }
    //从url上取得ID
    getQueryVariable(variable)
    {
        var query = window.location.search.substring(1);
        var vars = query.split("&");
        for (var i=0;i<vars.length;i++) {
                var pair = vars[i].split("=");
                if(pair[0] == variable){return pair[1];}
        }
        return(false);
    }
    oppId = '';
    opp = {};
    Date_InAdvance_Delay = '';
    AdvanceReasons = [];
    DelayReasons = [];
    //初始化
    connectedCallback(){
        this.oppId = this.getQueryVariable('id');
        GetOppinformationcData({ParamIdStr:this.oppId}).then(response=>{
            this.opp=JSON.parse(response);
            if(this.opp.Date_InAdvance_Delay == '提前'){
                this.isAdvance = true;
                this.isDelay = false;
            }
            if(this.opp.Date_InAdvance_Delay == '延后'){
                this.isAdvance = false;
                this.isDelay = true;
            }
        });
        getReason().then(response=>{
            var options = JSON.parse(response);
            this.AdvanceReasons = options['提前'];
            this.DelayReasons = options['延后'];
        });
    }
    //提示
    SaveShowText="保存成功";//提示框的文本
    Tongzhishow=false;  //提示显示的标识
    TongzhiIcon = 'standard:account' //提示框的图标
    IsLeftStyle = "" //提示框的样式
    BgColorStyle = ""
    //弹框提示 content 内容 error 是否是错误提示框  left 是否居左
    Alert(content,error = false,left = false){
        this.SaveShowText = content;
        this.Tongzhishow = true;
        if (error) {
            this.TongzhiIcon = "standard:first_non_empty";
            this.BgColorStyle = "background-color:#f88568";
        }else{
            this.TongzhiIcon = "standard:account";
            this.BgColorStyle = "background-color:#69e669";
        }
        if (left) {
            this.IsLeftStyle = "left: 0.25rem"
        }else{
            this.IsLeftStyle = ""
        }
    }
    //关闭提示框
    CloseAlert(){
        this.closeOffRefresh();
    }
    closeOffRefresh(){
        if (this.Tongzhishow == true) {
            this.Tongzhishow = false;
        }
        if (this.SaveShowText != "") {
            this.SaveShowText = "";
        }
    }
    //加载
    IsLoading = false;
    OnLoading(flag) {
        this.IsLoading = flag;
    }
    //保存数据逻辑
    saveFn(){
        debugger
        var myDate = new Date();                                        //今天日期
        var myDate1 = new Date(this.opp.Close_Forecasted_Check);        //当前预测日期
        var myDate2 = new Date(this.opp.Close_Forecasted_Date);  //改变的预测日期
        var myDate3 = new Date(myDate.toLocaleDateString());            //今天日期          格式化
        var myDate4 = new Date(myDate1.toLocaleDateString());           //当前预测日期      格式化
        var myDate5 = new Date(myDate2.toLocaleDateString());           //改变的预测日期    格式化
        var myDate6 = new Date(this.opp.CloseDate);
        var myDate7 = new Date(myDate6.toLocaleDateString());    //发货日期
        //20221226 lt DB202212359066增加限制-修改预测日最大日期 start
        var date1 = new Date();
        var year = date1.getFullYear();
        var month = date1.getMonth() + 1;
        if(month > 3){
            year = year + 1;
        }
        var strDate = "-03-31";
        var Odate = year + 3;
        var Sdate = year + 4;
        var Odate1 = Odate + strDate;
        var Sdate1 = Sdate + strDate;
        var Odate2 = new Date(Odate1);
        var Sdate2 = new Date(Sdate1);
        // //订货预测日
        var OrderDate = new Date(Odate2.toLocaleDateString());
        // //发货预测日
        var ShipmentsDate = new Date(Sdate2.toLocaleDateString());
        //20221226 lt DB202212359066增加限制-修改预测日最大日期 end
        console.warn('myDatevalue:='+myDate);
        console.warn('今天日期'+myDate3);
        console.warn('当前预测日期'+myDate4);
        console.warn('1111111111'+myDate2);
        console.warn('改变的预测日期'+myDate5);
        //SWAG-CJR4PC【委托】调查-修改预测日提前理由错误 fy start
        // if(this.opp.Date_InAdvance_Delay == undefined || this.opp.Predicted_date_ChangeReason == undefined || myDate5 == undefined){
        // if(this.opp.Date_InAdvance_Delay == '' ||this.opp.Date_InAdvance_Delay == undefined || this.opp.Predicted_date_ChangeReason == '' ||this.opp.Predicted_date_ChangeReason == undefined|| myDate5 == '' || myDate5 == undefined){
        if(!this.opp.Date_InAdvance_Delay || !this.opp.Predicted_date_ChangeReason ||  !this.opp.Close_Forecasted_Date){
        //SWAG-CJR4PC【委托】调查-修改预测日提前理由错误 fy end
            this.Alert("请选择日期/理由。",false,true);
        }
        else if(this.opp.Date_InAdvance_Delay == '提前' && (myDate5 >= myDate4 || myDate5 < myDate3)){
            this.Alert("请选择 “提前” 于当前预测OCSM签约日的日期 且 不早于今天。",false,true);
        }
        else if(this.opp.Date_InAdvance_Delay == '延后' && myDate5 <= myDate4){
            this.Alert("请选择 “延后” 于当前预测OCSM签约日的日期。",false,true);
        }
        else if(myDate7 < myDate5){
            this.Alert("预测发货日不能小于预测签约日。",false,true);
        }
        //20221226 lt DB202212359066增加限制-修改预测日最大日期 start
        else if(myDate5 > OrderDate){
            this.Alert("订货预测日请在未来三财年内。",false,true);
        }
        else if(myDate7 > ShipmentsDate){
            this.Alert("发货预测日请在未来四财年内。",false,true);
        }
        //20221226 lt DB202212359066增加限制-修改预测日最大日期 end
        else{
            this.OnLoading(true);
            SaveData({JsonData:JSON.stringify(this.opp)}).then((response)=>{
                if (response == '成功') {
                    this.OnLoading(false);
                    this.Alert("保存成功",false,true);
                    window.location.hash = "Refresh"+"=="+this.oppId;
                }else{
                    this.Alert(response,true);
                }
            });
        }
    }
}
force-app/main/default/lwc/interoperability/interoperability.css
New file
@@ -0,0 +1,12 @@
div {
    border: 1px solid black;
    padding: 10px;
}
h1 {
    font-weight: bold;
}
lightning-button {
    margin-top: 10px;
    margin-bottom: 10px;
    display: block;
}
force-app/main/default/lwc/interoperability/interoperability.html
New file
@@ -0,0 +1,11 @@
<template>
    <div>
        <h1>LWC</h1>
        <lightning-button
            label="Press me and send an event up!"
            onclick={handleClick}
        ></lightning-button>
        <p class="label">{label}</p>
        <p class="message">{message}</p>
    </div>
</template>
force-app/main/default/lwc/interoperability/interoperability.js
New file
@@ -0,0 +1,21 @@
import { LightningElement, api } from 'lwc';
export default class Interoperability extends LightningElement {
    @api label = 'This label property has its initial value';
    timesInvoked = 0;
    handleClick() {
        this.dispatchEvent(
            new CustomEvent('buttonclicked', { bubbles: true, composed: true })
        );
    }
    @api
    doWhatever() {
        this.timesInvoked++;
    }
    get message() {
        return `LWC Method invoked ${this.timesInvoked} times`;
    }
}
force-app/main/default/lwc/interoperability/interoperability.js-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>false</isExposed>
</LightningComponentBundle>
force-app/main/default/lwc/inventoryEditingLWC/inventoryEditingLWC.html
New file
@@ -0,0 +1,67 @@
<template>
    <div style="border: 1px solid #D4D4D4;border-radius:5px;margin-bottom:7px;">
        <div style="border-top: 3px solid #51606E;border-bottom: 1px solid #D4D4D4;padding:3px;">
            <p style="font-size: 16px;"><strong>经销商库存上下限编辑</strong></p>
            <table class="slds-table slds-table_cell-buffer slds-table_bordered">
                <thead>
                    <tr class="">
                        <!-- <th class="slds-size_3-of-10" scope="col">
                            <div class="slds-truncate" title="Name">S.No</div>
                        </th> -->
                        <th class="slds-size_3-of-10" scope="col" align="center">
                            <div class="slds-truncate" title="Name">产品型号</div>
                        </th>
                        <th class="slds-size_3-of-10" scope="col">
                            <div class="slds-truncate" title="First Name">
                                库存下限
                            </div>
                        </th>
                        <th class="slds-size_3-of-10" scope="col">
                            <div class="slds-truncate" title="Last Name">库存上限</div>
                        </th>
                        <th class="slds-size_3-of-10" scope="col">
                            <div class="slds-truncate" title="Last Name">操作</div>
                        </th>
                    </tr>
                </thead>
                <tbody>
                    <template for:each = {invRecords} for:item = "inv" for:index="indexVar">
                        <tr key={inv.key} class="slds-hint-parent">
                            <td class="slds-size_3-of-10" data-label="Prospecting">
                                <div  title="Prospecting">
                                    <lightning-input key={inv.key} data-id={inv.key} name="input1" label="productNumber" value="" variant="label-hidden" onchange={handleProductChange}></lightning-input>
                                </div>
                            </td>
                            <td class="slds-size_3-of-10" data-label="Prospecting">
                                <div  title="Prospecting">
                                    <lightning-input key={inv.key} data-id={inv.key} name="input1" label="inventory1" value={inv.inventory2} variant="label-hidden" onchange={handleinv1Change}></lightning-input>
                                </div>
                            </td>
                            <td class="slds-size_3-of-10" data-label="Prospecting">
                                <div  title="Prospecting">
                                    <lightning-input key={inv.key} data-id={inv.key} name="input1" label="inventory2" value={inv.inventory2} variant="label-hidden" onchange={handleinv2Change}></lightning-input>
                                </div>
                            </td>
                            <td class="slds-size_1-of-10" data-label="Prospecting">
                                <a name={indexVar} data-id={inv.key} onclick={removeRow}>
                                        <lightning-icon icon-name="utility:delete" alternative-text="delete"  size="small"></lightning-icon>
                                </a>
                            </td>
                        </tr>
                    </template>
                    <tr>
                        <td></td>
                        <td>
                            <lightning-button label="行增加"  onclick={addRow} class="slds-m-left_x-small"></lightning-button>
                        </td>
                        <td>
                            <lightning-button label="保存"  onclick={handleClick} class="slds-m-left_x-small"></lightning-button>
                        </td>
                    </tr>
                </tbody>
                </table>
        </div>
        </div>
</template>
force-app/main/default/lwc/inventoryEditingLWC/inventoryEditingLWC.js
New file
@@ -0,0 +1,76 @@
import { LightningElement, track,api } from 'lwc';
import Product_Number_FIELD from '@salesforce/schema/Dealer_Stock__c.Product_Code__c';
import ONE_FIELD from '@salesforce/schema/Dealer_Stock__c.Product_Code__c';
import TWO_FIELD from '@salesforce/schema/Dealer_Stock__c.Product_Code__c';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
export default class InventoryEditingLWC extends LightningElement {
    // @track invRecord = {ProductNumber : Product_Number_FIELD,Inventory1: ONE_FIELD,Inventory2 : TWO_FIELD,key : Math.random().toString(36).substring(2, 15)};
    @track invRecord = {ProductNumber : Product_Number_FIELD,Inventory1: ONE_FIELD,Inventory2 : TWO_FIELD,key : Math.random().toString(36).substring(2, 15)};
    @track invRecords = [];
    toSaveLabel = 'Save';
    connectedCallback(){
        console.log('  === connectedCallback === ');
        this.inventoryTempRecords();
    }
    inventoryTempRecords(){
        console.log('===>初始化');
        this.invRecord = [];
        // for(var i=0; i < 1 ; i++){
        //     this.invRecords.push({ProductNumber : Product_Number_FIELD,Inventory1: ONE_FIELD,Inventory2 : TWO_FIELD,key : Math.random().toString(36).substring(2, 15)});
        // }
    }
    addRow(){
        console.log('=====>进入行项目');
        const len = this.invRecords.length;
        this.invRecords.push({ProductNumber : Product_Number_FIELD,Inventory1: ONE_FIELD,Inventory2 : TWO_FIELD,key : Math.random().toString(36).substring(2, 15)});
    }
    removeRow(event){
        const indexPos = event.currentTarget.name;
        let remList = [];
        remList = this.invRecords;
        remList.splice(indexPos,1);
        this.invRecords = remList;
    }
    handleClick(){
        console.log('保存');
        this.toSaveLabel = 'Saving...'
        let toSaveList = this.invRecords.slice(0);;
        toSaveList.forEach((element, index) => {
            console.log( index + ' ==> ' + JSON.stringify(element.Name));
            let eleType = typeof element.Name;
            console.log( 'typeof ==> ' + eleType);
            if(element.Name === '' || eleType=='object'){
                toSaveList.splice(index);
            }
        });
        // refreshApex(this.invRecord);
        this.inventoryTempRecords();
        console.log( 'Save ==> ' + JSON.stringify(toSaveList));
    }
    handleProductChange(event){
        let foundelement = this.invRecords.find(ele => ele.key == event.target.dataset.id);
        console.log('=====>foundelement'+foundelement);
        foundelement.productNumber = event.target.value;
        this.accRecords = [this.accRecords];
        console.log(' ==>第一行' +  JSON.stringify(this.invRecords));
    }
    handleinv1Change(event){
        let foundelement = this.invRecords.find(ele => ele.key == event.target.dataset.id);
        foundelement.inventory1 = event.target.value;
        this.accRecords = [this.accRecords];
        console.log(' ==> 第二' +  JSON.stringify(this.invRecords));
    }
    handleinv2Change(event){
        let foundelement = this.invRecords.find(ele => ele.key == event.target.dataset.id);
        foundelement.inventory2 = event.target.value;
        this.accRecords = [this.accRecords];
        console.log(' ==>第三' +  JSON.stringify(this.invRecords));
    }
}
force-app/main/default/lwc/inventoryEditingLWC/inventoryEditingLWC.js-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>56.0</apiVersion>
     <isExposed>true</isExposed>
    <targets>
        <target>lightningCommunity__Page</target>
        <target>lightningCommunity__Default</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/inventoryViewLWC/inventoryViewLWC.html
New file
@@ -0,0 +1,117 @@
<template>
    <div style="border: 1px solid #D4D4D4;border-radius:5px;">
        <div style="border-top: 3px solid #51606E;;border-bottom: 1px solid #D4D4D4;padding:3px;">
            <p style="font-size: 19px;"><strong>库存管理</strong></p>
        </div>
        <div style="border-top: 3px solid #51606E;border-bottom: 1px solid #D4D4D4;padding:3px;text-align:center;">
            <lightning-button label="库存盘点" title="Non-primary action" onclick={handleClick} class="slds-m-left_x-small"></lightning-button>
            <lightning-button label="过期库存销存" title="Non-primary action" onclick={handleClick} class="slds-m-left_x-small"></lightning-button>
            <lightning-button label="拆盒" title="Non-primary action" onclick={handleClick} class="slds-m-left_x-small"></lightning-button>
            <lightning-button label="取消拆盒" title="Non-primary action" onclick={handleClick} class="slds-m-left_x-small"></lightning-button>
        </div>
        <div class = 'searchBlock' style="border-top: 3px solid #51606E;border-bottom: 1px solid #D4D4D4;padding:3px;text-align:center;height:80%px;">
            <table>
                <tr>
                    <td style="width:90px">消耗品名称</td>
                    <td style="width:90px"><lightning-input type="text" label="" style="width:70px"></lightning-input></td>
                    <td style="width:90px">第3分类</td>
                    <td style="width:90px">
                        <lightning-combobox
                        name="progress"
                        value={value}
                        options={options}
                        onchange={handleChange} style="width:90px;"></lightning-combobox></td>
                    <td style="width:90px">第4分类</td>
                    <td style="width:90px">
                        <lightning-combobox
                        name="progress"
                        value={value}
                        options={options}
                        onchange={handleChange} style="width:80px;"></lightning-combobox>
                    </td>
                    <td style="width:90px">第5分类</td>
                    <td style="width:90px">
                        <lightning-combobox
                        name="progress"
                        value={value}
                        options={options}
                        onchange={handleChange} style="width:80px;"></lightning-combobox>
                    </td>
                </tr>
            </table>
            </div>
        <div style="border: 1px solid #D4D4D4;border-radius:5px;margin-bottom:7px;">
            <div style="border-top: 3px solid #51606E;border-bottom: 1px solid #D4D4D4;padding:3px;">
                <p style="font-size: 16px;"><strong>库存详情</strong></p>
            </div>
            <div style="padding:10px;">
                <table class="list" border="0" cellpadding="0" cellspacing="0" id="example">
                    <thead>
                        <tr class="headerRow">
                            <th>消耗品名称</th>
                            <th>第3分类</th>
                            <th>第4分类</th>
                            <th>第5分类</th>
                            <th>规格</th>
                            <th>单位</th>
                            <th>注册证编码号</th>
                            <th>注册证效期</th>
                            <th>CFDA状态</th>
                            <th>使用期限</th>
                            <th>有效期内库存</th>
                            <th>过期库存</th>
                        </tr>
                    </thead>
                        <tbody>
                            <template for:each={inventoryRcords} for:item="re">
                                <tr key={re.Prod.Name__c}>
                                    <td>{re.Prod.Name__c}</td>
                                    <td>{re.Prod.Category3__c}</td>
                                    <td>{re.Prod.Category4__c}</td>
                                    <td>{re.Prod.Category5__c}</td>
                                    <td>{re.packing_list}</td>
                                    <td>{re.BoxPiece}</td>
                                    <td>{re.approbation_No}</td>
                                    <td>{re.expiration_Date}</td>
                                    <td>{re.guaranteeperiod}</td>
                                    <td>{re.limitCount}</td>
                                    <td>{re.overlimitCount}</td>
                                </tr>
                            </template>
                    </tbody>
                </table>
                <table style="width: 100%">
                    <tbody>
                       <tr>
                           <td width="20%">
                              <!-- 1-0 共 0  -->
                           </td>
                           <td></td>
                           <td align="center" width="60%">
                               <lightning-button-icon style="margin: 3px;" icon-name="utility:jump_to_left"></lightning-button-icon>
                               <lightning-button-icon style="margin: 3px;" icon-name="utility:chevronleft"></lightning-button-icon>
                               <lightning-button-icon style="margin: 3px;" icon-name="utility:chevronright"></lightning-button-icon>
                               <lightning-button-icon style="margin: 3px;" icon-name="utility:jump_to_right"></lightning-button-icon>
                           </td>
                      </tr>
                   </tbody>
               </table>
            </div>
        </div>
        </div>
</template>
force-app/main/default/lwc/inventoryViewLWC/inventoryViewLWC.js
New file
@@ -0,0 +1,51 @@
import { LightningElement,track } from 'lwc';
import oninit from '@salesforce/apex/LexInventoryViewController.oninit';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import { NavigationMixin } from 'lightning/navigation';
export default class InventoryViewLWC extends LightningElement {
    @track inventoryRcords= [];
    value = '无';
    connectedCallback() {
        oninit().then(result=>{
            if(result.result == 'Success'){
                this.inventoryRcords = result.inventoryRcords;
            }else{
                console.log("Error:"+result.errorMsg);
                const evt = new ShowToastEvent({
                    title : '初始化失败',
                    message: result.errorMsg,
                    variant: 'error'
                });
                this.dispatchEvent(evt);
            }
        });
    }
    get options() {
        return [
            { label: 'CDS', value: 'CDS' },
            { label: 'ERCP', value: 'ERCP' },
            { label: 'ESD', value: 'ESD' },
            { label: 'EUS', value: 'EUS' },
            { label: '外科ET', value: '外科ET' },
            { label: '外套导管', value: '外套导管' },
            { label: '基干', value: '基干' },
            { label: '呼吸科ET', value: '呼吸科ET' },
            { label: '呼吸科耗材', value: '呼吸科耗材' },
            { label: '光源', value: '光源' },
            { label: '口垫', value: '口垫' },
            { label: '止血', value: '止血' },
            { label: '其他', value: '其他' },
            { label: '其他ET', value: 'EUS' },
            { label: '灯泡', value: '灯泡' },
            { label: '模型', value: '模型' },
        ];
    }
    handleChange(event) {
        this.value = event.detail.value;
    }
}
force-app/main/default/lwc/inventoryViewLWC/inventoryViewLWC.js-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>56.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightningCommunity__Page</target>
        <target>lightningCommunity__Default</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/jzlookup/jzlookup.js
@@ -41,7 +41,7 @@
            if (!this.isClick) {
                this.InputValue = '';
            }
            },3000)
            },300)
       
    }
@@ -62,7 +62,7 @@
        
        setTimeout(()=>{
            this.OnLoading(false);
        },3000);
        },1000);
    }
force-app/main/default/lwc/lWtTEST/lWtTEST.html
New file
@@ -0,0 +1,3 @@
<template>
</template>
force-app/main/default/lwc/lWtTEST/lWtTEST.js
New file
@@ -0,0 +1,5 @@
import { LightningElement, track, wire } from 'lwc';
export default class lWtTEST extends LightningElement {
}
force-app/main/default/lwc/lWtTEST/lWtTEST.js-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lWtTEST">
    <apiVersion>51.0</apiVersion>
    <isExposed>true</isExposed>
</LightningComponentBundle>
force-app/main/default/lwc/ldsUtils/__mocks__/ldsUtils.js
New file
@@ -0,0 +1,3 @@
export function reduceErrors() {
    return '';
}
force-app/main/default/lwc/ldsUtils/ldsUtils.js
New file
@@ -0,0 +1,35 @@
/**
 * Reduces one or more LDS errors into a string[] of error messages.
 * @param {FetchResponse|FetchResponse[]} errors
 * @return {String[]} Error messages
 */
export function reduceErrors(errors) {
    return (
        // ensure errors is an array
        []
            .concat(errors)
            // Remove null/undefined items
            .filter((error) => !!error)
            // Extract an error message
            .map((error) => {
                // UI API read errors
                if (Array.isArray(error.body)) {
                    return error.body.map((e) => e.message);
                }
                // UI API DML, Apex and network errors
                else if (error.body && typeof error.body.message === 'string') {
                    return error.body.message;
                }
                // JS errors
                else if (typeof error.message === 'string') {
                    return error.message;
                }
                // Unknown error shape so try HTTP status text
                return error.statusText;
            })
            // Flatten
            .reduce((prev, curr) => prev.concat(curr), [])
            // Remove empty strings
            .filter((message) => !!message)
    );
}
force-app/main/default/lwc/ldsUtils/ldsUtils.js-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>false</isExposed>
</LightningComponentBundle>
force-app/main/default/lwc/lexASACEditor/lexASACEditor.css
New file
@@ -0,0 +1,10 @@
.inASACEditorHolder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display: none !important;
}
force-app/main/default/lwc/lexASACEditor/lexASACEditor.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="inASACEditorHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexASACEditor/lexASACEditor.js
New file
@@ -0,0 +1,73 @@
import { LightningElement,wire,track,api} from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import init  from '@salesforce/apex/ReportController.initForASACEditorButton';
export default class LexASACEditor extends LightningElement {
    @api recordId;
    LastModifiedDate
    Id
    Name
    LastModifiedById
    DeveloperName
    IsLoading = true;
    url;
    @wire(CurrentPageReference)
     getStateParameters(currentPageReference) {
             console.log(111);
             console.log(currentPageReference);
         if (currentPageReference) {
           const urlValue = currentPageReference.state.recordId;
           if (urlValue) {
             let str = `${urlValue}`;
             console.log("str");
             console.log(str);
             this.recordId = str;
           }
         }
     }
    connectedCallback () {
        console.log(this.recordId);
        init({
            recordId: this.recordId
        }).then(result => {
            console.log(result);
            if (result != undefined) {
                console.log("if");
                this.LastModifiedById = result.LastModifiedById;
                this.LastModifiedDate = result.LastModifiedDate;
                this.Id = result.Id;
                this.Name = result.Name;
                this.DeveloperName = result.DeveloperName;
                console.log(this.Id);
                this.editor();
                this.dispatchEvent(new CloseActionScreenEvent());
                //window.location.replace("https://ocsm--partial.sandbox.lightning.force.com/lightning/r/Report__c/" + this.recordId + "/view");
            }else{
                console.log("else");
                this.IsLoading = false;
                this.editor();
                this.dispatchEvent(new CloseActionScreenEvent());
            }
        }).catch(error => {
            console.log("error");
            console.log(error);
        }).finally(() => {
        });
        //this.updateRecordView(this.recordId);
    }
    editor(){
        if (this.Id != undefined){
            this.url = "/apex/RepPAEDecisionRecord?Id="+this.Id+"&ReportId="+this.recordId+"&RecordTypeIds="+"ASACDecision";
            console.log(this.url);
            } else {
            this.url = "/apex/RepPAEDecisionRecord?ReportId="+this.recordId+"&RecordTypeIds="+"ASACDecision";
            console.log(this.url);
            }
        window.open(this.url,"_self");
    }
}
force-app/main/default/lwc/lexASACEditor/lexASACEditor.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
   <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexASACEditorRepair/lexASACEditorRepair.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="exampleHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexASACEditorRepair/lexASACEditorRepair.js
New file
@@ -0,0 +1,74 @@
import {
    LightningElement,
    wire,
    api
} from 'lwc';
import {
    CurrentPageReference
} from "lightning/navigation";
import {
    CloseActionScreenEvent
} from 'lightning/actions';
import init from '@salesforce/apex/otherButtonRepairController.init';
import selectPAEDecisionRecord from '@salesforce/apex/otherButtonRepairController.selectPAEDecisionRecord';
export default class LexASACEditorRepair extends LightningElement {
    @api recordId;
    str;
    IsLoading = true;
    Id;;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
        if (currentPageReference) {
            const urlValue = currentPageReference.state.recordId;
            if (urlValue) {
                let str = `${urlValue}`;
                this.recordId = str;
            }
        }
    }
    connectedCallback() {
        console.log(this.recordId);
        init({
            recordId: this.recordId
        }).then(result => {
            console.log(result);
            if (result != null) {
                this.IsLoading = false;
                this.Id = result.Id;
                this.ASACEditor();
                this.dispatchEvent(new CloseActionScreenEvent());
            }
        }).catch(error => {
            console.log(error);
        }).finally(() => {
        });
    }
    //Final universal code编辑
    ASACEditor() {
        var RepairId = this.Id;
        var RecordTypeId = "ASACDecision";
        var url = '';
        selectPAEDecisionRecord({
            recordId: RepairId,
            recordTypeId: RecordTypeId
        }).then(result => {
            if (result != null) {
                if (result.length > 0) {
                    url = "/apex/PAEDecisionRecord?Id=" + result[0].Id + "&RepairId=" + RepairId + "&RecordTypeIds=" + RecordTypeId;
                } else {
                    url = "/apex/PAEDecisionRecord?RepairId=" + RepairId + "&RecordTypeIds=" + RecordTypeId;
                }
                window.open(url, '_self');
            }
        }).catch(error => {
            console.log(error);
        })
    }
}
force-app/main/default/lwc/lexASACEditorRepair/lexASACEditorRepair.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexASRCEditor/lexASRCEditor.css
New file
@@ -0,0 +1,10 @@
.inASRCEditorHolder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display: none !important;
}
force-app/main/default/lwc/lexASRCEditor/lexASRCEditor.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="inASRCEditorHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexASRCEditor/lexASRCEditor.js
New file
@@ -0,0 +1,74 @@
import { LightningElement,wire,track,api} from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import init  from '@salesforce/apex/ReportController.initForASRCEditorButton';
export default class LexASRCEditor extends LightningElement {
    @api recordId;
    LastModifiedDate
    Id
    Name
    LastModifiedById
    DeveloperName
    IsLoading = true;
    url;
    @wire(CurrentPageReference)
     getStateParameters(currentPageReference) {
             console.log(111);
             console.log(currentPageReference);
         if (currentPageReference) {
           const urlValue = currentPageReference.state.recordId;
           if (urlValue) {
             let str = `${urlValue}`;
             console.log("str");
             console.log(str);
             this.recordId = str;
           }
         }
     }
    connectedCallback () {
        console.log(this.recordId);
        init({
            recordId: this.recordId
        }).then(result => {
            console.log(result);
            if (result != undefined) {
                console.log("if");
                this.LastModifiedById = result.LastModifiedById;
                this.LastModifiedDate = result.LastModifiedDate;
                this.Id = result.Id;
                this.Name = result.Name;
                this.DeveloperName = result.DeveloperName;
                console.log(this.Id);
                this.editor();
                this.dispatchEvent(new CloseActionScreenEvent());
                //window.location.replace("https://ocsm--partial.sandbox.lightning.force.com/lightning/r/Report__c/" + this.recordId + "/view");
            }else{
                console.log("else");
                this.IsLoading = false;
                this.editor();
                this.dispatchEvent(new CloseActionScreenEvent());
            }
        }).catch(error => {
            console.log("error");
            console.log(error);
        }).finally(() => {
        });
        //this.updateRecordView(this.recordId);
    }
    editor(){
        if (this.Id != undefined){
            this.url = "/apex/RepPAEDecisionRecord?Id="+this.Id+"&ReportId="+this.recordId+"&RecordTypeIds="+"ASRCDecision";
            console.log(this.url);
            } else {
            this.url = "/apex/RepPAEDecisionRecord?ReportId="+this.recordId+"&RecordTypeIds="+"ASRCDecision";
            console.log(this.url);
            }
        window.open(this.url,"_self");
    }
}
force-app/main/default/lwc/lexASRCEditor/lexASRCEditor.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
   <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexASRCEditorRepair/lexASRCEditorRepair.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="exampleHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexASRCEditorRepair/lexASRCEditorRepair.js
New file
@@ -0,0 +1,75 @@
import {
    LightningElement,
    wire,
    api
} from 'lwc';
import {
    CurrentPageReference
} from "lightning/navigation";
import {
    CloseActionScreenEvent
} from 'lightning/actions';
import init from '@salesforce/apex/otherButtonRepairController.init';
import selectPAEDecisionRecord from '@salesforce/apex/otherButtonRepairController.selectPAEDecisionRecord';
export default class LexASRCEditorRepair extends LightningElement {
    @api recordId;
    str;
    IsLoading = true;
    Id;
    RecordTypeId;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
        if (currentPageReference) {
            const urlValue = currentPageReference.state.recordId;
            if (urlValue) {
                let str = `${urlValue}`;
                this.recordId = str;
            }
        }
    }
    connectedCallback() {
        init({
            recordId: this.recordId
        }).then(result => {
            console.log(result);
            if (result != null) {
                this.IsLoading = false;
                this.Id = result.Id;
                this.RecordTypeId = result.RecordTypeId;
                this.ASRCEditor();
                this.dispatchEvent(new CloseActionScreenEvent());
            }
        }).catch(error => {
            console.log(error);
        }).finally(() => {
        });
    }
    // Intake universal code编辑
    ASRCEditor() {
        var RecordTypeId = "ASRCDecision";
        var RepairId = this.Id;
        var url = '';
        selectPAEDecisionRecord({
            recordId: RepairId,
            recordTypeId: RecordTypeId
        }).then(result => {
            if (result != null) {
                if (result.length > 0) {
                    url = "/apex/PAEDecisionRecord?Id=" + result[0].Id + "&RepairId=" + RepairId + "&RecordTypeIds=" + RecordTypeId;
                } else {
                    url = "/apex/PAEDecisionRecord?RepairId=" + RepairId + "&RecordTypeIds=" + RecordTypeId;
                }
                window.open(url, '_self');
            }
        }).catch(error => {
            console.log(error);
        })
    }
}
force-app/main/default/lwc/lexASRCEditorRepair/lexASRCEditorRepair.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexAddSubmitApprovalProcess/lexAddSubmitApprovalProcess.css
New file
@@ -0,0 +1,22 @@
.outerBorderCss{
    border: 1px solid #D4D4D4;
    border-radius : 5px;
    border-top : 3px solid #565959;
}
.borderCss{
    border: 1px solid #D4D4D4;
    border-radius : 5px;
    margin-bottom : 7px;
    border-top : 3px solid #565959;
}
.headerDorderCss{
    border-top: 1px solid #565959;
    border-bottom: 1px solid #D4D4D4;
    padding:3px;
}
.centerCss{
    text-align: center;
}
.centerCss .left{
    margin-left: 100px;
}/* sample css file */
force-app/main/default/lwc/lexAddSubmitApprovalProcess/lexAddSubmitApprovalProcess.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="sisToOPDHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexAddSubmitApprovalProcess/lexAddSubmitApprovalProcess.js
New file
@@ -0,0 +1,68 @@
import { LightningElement, track, wire, api } from 'lwc';
import { CloseActionScreenEvent } from 'lightning/actions';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import { CurrentPageReference,NavigationMixin } from 'lightning/navigation';
import init from '@salesforce/apex/AddSubmitApprovalProcessController.init';
export default class lexAddSubmitApprovalProcess extends LightningElement {
    @api recordId;
    IsLoading = true;
    RecordTypeId;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference){
        if(currentPageReference) {
            const urlValue = currentPageReference.state.recordId;
            if(urlValue) {
                let str = `${urlValue}`;
                this.recordId = str;
            }
        }
    }
    connectedCallback(){
        init({
            recordId: this.recordId
        }).then(result=>{
            if(result.addApprovalStatus != '草案中' || result.detailSize == 0){
                this.ToastShow('没有需要审批的追加附属品');
                return;
            }
            if (!confirm("一旦提交此记录以待批准,根据您的设置您可能不再能够编辑此记录或将他从批准过程中调回。是否继续?")) {
                this.dispatchEvent(new CloseActionScreenEvent());
                return;
            }
            // 希望到货日不能早于申请提交日-0418追加
            //if ('{!Rental_Apply__c.Request_shipping_day__c}' < '{!TODAY()}') {
            // alert('希望到货日不能早于申请提交日');
            // return;
            // }
            if(result.repairId != null){
                if(result.demoPurpose1 == '维修代用' && result.demoPurpose2 == '一般用户'){
                    if(result.repairEstimatedDateFormula == null){
                        this.ToastShow('一般维修无报价日,不可借用备品');
                        return;
                    }else if(result.repairEstimatedDateFormula <'2019-07-01' && result.agreedDate == null){
                        this.ToastShow('报价日在2019/7/1之前且户同意日为空,不可借用备品');
                        return;
                    }
                }
                if(result.recordTypeId !='01210000000RHIn' && result.newProductGuaranteeObject=='2: 服务多年保修' && (result.assetModelNo=='CV-V1' ||result.assetModelNo=='CV-V1(A)'||result.assetModelNo=='CV-V1(B)'||result.assetModelNo=='GIF-LV1'||result.assetModelNo=='CF-LV1L'||result.assetModelNo=='CF-LV1I'||result.assetModelNo=='MAJ-1910') &&(result.demoPurpose2=='一般用户'||result.demoPurpose2=='再修理')){
                    this.ToastShow('奥辉设备,保修期内不提供备品.');
                    return;
                }
            }
        })
    }
    ToastShow(msg){
        const evt = new ShowToastEvent({
            title : msg,
            message: '',
            variant: 'warning'
        });
        this.dispatchEvent(evt);
        this.dispatchEvent(new CloseActionScreenEvent());
    }
}
force-app/main/default/lwc/lexAddSubmitApprovalProcess/lexAddSubmitApprovalProcess.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexOCMSubmit">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexAddress/lexAddress.html
New file
@@ -0,0 +1,6 @@
<template>
    <div class="exampleHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
        <lightning-button label="Show Toast" onclick={ShowToastEvent}></lightning-button>
    </div>
</template>
force-app/main/default/lwc/lexAddress/lexAddress.js
New file
@@ -0,0 +1,80 @@
import {
    LightningElement,
    wire,
    api
} from 'lwc';
import {
    CurrentPageReference
} from "lightning/navigation";
import {
    CloseActionScreenEvent
} from 'lightning/actions';
import init from '@salesforce/apex/otherButtonRepairController.init';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
export default class LexAddress extends LightningElement {
    @api recordId;
    str;
    IsLoading = true;
    Id;
    RecordTypeId;
    partArrangementCompleteC;
    RepairShippedDateC;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
        if (currentPageReference) {
            const urlValue = currentPageReference.state.recordId;
            if (urlValue) {
                let str = `${urlValue}`;
                this.recordId = str;
            }
        }
    }
    connectedCallback() {
        init({
            recordId: this.recordId
        }).then(result => {
            console.log(result);
            if (result != null) {
                this.IsLoading = false;
                this.Id = result.Id;
                this.RecordTypeId = result.RecordTypeId;
                this.RepairShippedDateC = result.RepairShippedDateC;
                this.partArrangementCompleteC = result.partArrangementCompleteC;
                this.Address();
                this.dispatchEvent(new CloseActionScreenEvent());
            }
        }).catch(error => {
            console.log(error);
        }).finally(() => {
        });
    }
    //直返收货地址
    Address() {
        if (this.partArrangementCompleteC != undefined) {
            this.ShowToastEvent('零件已齐备完毕,直返收货地址不能修改!',"error")
            // alert('零件已齐备完毕,直返收货地址不能修改!');
        } else if (this.RepairShippedDateC  != undefined) {
            this.ShowToastEvent('RC修理品已返送,直返收货地址不能修改!',"error")
            // alert('RC修理品已返送,直返收货地址不能修改!');
        } else {
            window.open("/apex/StraightBackAddress?id=" + this.Id, '_self');
        }
    }
    //弹框
    ShowToastEvent(msg,type) {
        const event = new ShowToastEvent({
            title: '',
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
    }
}
force-app/main/default/lwc/lexAddress/lexAddress.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexAgencyAuthorize/lexAgencyAuthorize.css
New file
@@ -0,0 +1,10 @@
.inASACEditorHolder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display: none !important;
}
force-app/main/default/lwc/lexAgencyAuthorize/lexAgencyAuthorize.html
New file
@@ -0,0 +1,6 @@
<template>
    <div class="inASACEditorHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
        <lightning-button label="Show Toast" onclick={showSuccess}></lightning-button>
    </div>
</template>
force-app/main/default/lwc/lexAgencyAuthorize/lexAgencyAuthorize.js
New file
@@ -0,0 +1,198 @@
/*
 * @Description:
 * @version:
 * @Author: chen jing wu
 * @Date: 2023-04-12 14:51:44
 * @LastEditors: chen jing wu
 * @LastEditTime: 2023-04-19 09:11:02
 */
import { api, wire,LightningElement } from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import init  from '@salesforce/apex/OpportunityLightingButtonController.initForAgencyAuthorizeButton';
import updateForAgencyAuthorizeButton  from '@salesforce/apex/OpportunityLightingButtonController.updateForAgencyAuthorizeButton';
import { updateRecord } from 'lightning/uiRecordApi';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import checkDangerItem from '@salesforce/apex/OpportunityWebService.checkDangerItem';
import oppCheck from '@salesforce/apex/OpportunityWebService.oppCheck';
import updReg from '@salesforce/apex/OpportunityWebService.updReg';
export default class LexAgencyAuthorize extends LightningElement {
    @api recordId;
    agency1Id;
    stageName;
    sapSendOK;
    oppOrderType;
    ifHave170;
    ifHaveAH;
    cntLostCancelDraft;
    cntLostCancelReport;
    estimationId;
    detailNum;
    estimationDecision;
    salesRoot;
    acecideCntCheck;
    ifSubmit;
    trade;
    isCorrosion;
    profileId;
    ifAuthorizingLock;
    IsLoading = true;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
            console.log(111);
            console.log(currentPageReference);
        if (currentPageReference) {
          const urlValue = currentPageReference.state.recordId;
          if (urlValue) {
            let str = `${urlValue}`;
            console.log("str");
            console.log(str);
            this.recordId = str;
          }
        }
    }
    connectedCallback(){
        init({
            recordId: this.recordId
        }).then(result=>{
            console.log(result);
            this.agency1Id = result.agency1Id;
            this.stageName = result.stageName;
            this.sapSendOK = result.sapSendOK;
            this.oppOrderType = result.oppOrderType;
            this.ifHave170 = result.ifHave170;
            this.ifHaveAH = result.ifHaveAH;
            this.cntLostCancelDraft = result.cntLostCancelDraft;
            this.cntLostCancelReport = result.cntLostCancelReport;
            this.estimationId = result.estimationId;
            this.detailNum = result.detailNum;
            this.estimationDecision = result.estimationDecision;
            this.salesRoot = result.salesRoot;
            this.acecideCntCheck = result.acecideCntCheck;
            this.ifSubmit = result.ifSubmit;
            this.trade = result.trade;
            this.isCorrosion = result.isCorrosion;
            this.profileId = result.profileId;
            this.ifAuthorizingLock = result.ifAuthorizingLock;
            this.AgencyAuthorize();
        })
    }
    AgencyAuthorize(){
        var btns = document.getElementsByName("agency_authorize");
        for (var i=0; i<btns.length; i++) {
        btns[i].disabled = true;
        btns[i].className = 'btnDisabled';
        }
        //2021-10-21 gwy 版本更改为51.0
        var oppid = this.recordId;
        var angency = this.agency1Id;
        var profileId = this.profileId;
        if (profileId != '00e10000000Y3o5' && profileId != '00e10000000Nab7' && profileId != '00e10000000xnpR' && profileId != '00e10000000xyK6' && profileId != '00e10000000NbCE'
        && profileId != '00e10000000xyK6' && profileId != '00e10000000Nb7i') {
            this.showToast("您没有授权申请的权限。请联系系统管理员。","error");
            return;
        }
        if (this.stageName != '引合' && this.stageName != '询价' ) {
            this.showToast("状态1:" + this.stageName + "、不能做授权申请!","error");
            return;
        } else if (this.sapSendOK == '1') {
            this.showToast("已经上传SAP、不能做授权申请了!","error");
            return;
        } else if (this.oppOrderType != undefined && this.ifHave170 == true) {
            this.showToast("耗材不可与170产品同时存在!","error");
            return;
        } else if (this.oppOrderType != undefined && this.ifHaveAH == true) {
            this.showToast("耗材不可与奥辉产品同时存在!","error");
            return;
        } else if (this.cntLostCancelDraft > 0) {
        if(!confirm('询价有草案中的取消/失单报告,是否继续?')){
            return ;
        }
        } else if (this.cntLostCancelReport - this.cntLostCancelDraft > 0) {
            this.showToast('询价有已提交的取消/失单报告。',"error");
            return;
        } else if (this.estimationId == undefined || this.detailNum == 0) {
            this.showToast('报价未完成,请先报价。',"error");
            return;
        } else if (this.estimationDecision == '1') {
            this.showToast('报价已决定,不能进行授权申请。',"error");
            return;
        } else if (this.salesRoot != '販売店') {
            this.showToast('医院直销不需要授权申请。',"error");
            return;
        }
        // else if ('{!Opportunity.AcecideCntCheck__c}' != '1') {
        // alert('阿西赛多询价只能包含危化品,或者,普通询价不能包含危化品。');
        // return;
        // }
        else if (this.ifSubmit == '1') {
            this.showToast('上传失败,请联系系统管理员!',"error");
            return;
        }
        if (this.ifAuthorizingLock == 'true') {
            this.showToast('询价正在授权中,请不要重复提交。',"error");
            return;
        }
        if (this.trade == '内貿') {
            if(this.isCorrosion == '1'){
                checkDangerItem({
                    agency1: angency
                }).then(result=>{
                    var rtn1 = result;
                    if (rtn1 != 'OK') {
                        this.showToast(rtn1,"error");
                        return;
                    }
                    this.update();
            });
            }else{
                oppCheck({
                    oppid: oppid,
                    saveFlg: '1'
                }).then(result=>{
                    var rtn = result;
                    if (rtn != 'OK') {
                        this.showToast(rtn,"error");
                        return;
                    }
                    this.update();
                })
            }
        } else {
            updReg({
                oppid: oppid
            }).then(()=>{
                this.update();
            });
        }
    }
    showToast(msg,type) {
        const event = new ShowToastEvent({
            title: '',
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
        this.dispatchEvent(new CloseActionScreenEvent());
    }
    updateRecordView(recordId) {
        updateRecord({fields: { Id: recordId }});
    }
    update(){
        updateForAgencyAuthorizeButton({
            recordId: this.recordId
        }).then(result=>{
            if(result){
                this.showToast(result,"error");
            }else{
                this.updateRecordView(this.recordId);
                window.open("https://olympus.sharepoint.cn/sites/GSPWF/SitePages/HomePage.aspx");
                this.showToast('提交成功。请在SPO系统中完成授权申请。',"success");
            }
            this.IsLoading = false;
        })
    }
}
force-app/main/default/lwc/lexAgencyAuthorize/lexAgencyAuthorize.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexAllReceivedFse/lexAllReceivedFse.css
New file
@@ -0,0 +1,22 @@
.outerBorderCss{
    border: 1px solid #D4D4D4;
    border-radius : 5px;
    border-top : 3px solid #565959;
}
.borderCss{
    border: 1px solid #D4D4D4;
    border-radius : 5px;
    margin-bottom : 7px;
    border-top : 3px solid #565959;
}
.headerDorderCss{
    border-top: 1px solid #565959;
    border-bottom: 1px solid #D4D4D4;
    padding:3px;
}
.centerCss{
    text-align: center;
}
.centerCss .left{
    margin-left: 100px;
}/* sample css file */
force-app/main/default/lwc/lexAllReceivedFse/lexAllReceivedFse.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="sisToOPDHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexAllReceivedFse/lexAllReceivedFse.js
New file
@@ -0,0 +1,65 @@
import { LightningElement, track, wire, api } from 'lwc';
import { CurrentPageReference,NavigationMixin } from 'lightning/navigation';
import { CloseActionScreenEvent } from 'lightning/actions';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import init from '@salesforce/apex/AllReceivedFseController.init';
import getRaeSet from '@salesforce/apex/AllReceivedFseController.getRaeSet';
export default class lexAllReceivedFse extends LightningElement {
    @api recordId;
    IsLoading = true;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference){
        if(currentPageReference) {
            const urlValue = currentPageReference.state.recordId;
            if(urlValue) {
                let str = `${urlValue}`;
                this.recordId = str;
            }
        }
    }
    connectedCallback(){
        init({
            recordId: this.recordId
        }).then(res=>{
            if(res.LoanerReceivedNgNum == 0){
                const evt = new ShowToastEvent({
                        title : '现场已经全部收到实物了',
                        message: '',
                        variant: 'success'
                    });
                this.dispatchEvent(evt);
            }else{
                getRaeSet({
                    recordId: this.recordId
                }).then(res=>{
                    if(res == 'SUCCESS'){
                        const evt = new ShowToastEvent({
                            title : '现场已全部收货',
                            message: '',
                            variant: 'success'
                        });
                        this.dispatchEvent(new CloseActionScreenEvent());
                        this.dispatchEvent(evt);
                    }else{
                        const errToast = new ShowToastEvent({
                            title : res,
                            message: '',
                            variant: 'error'
                        });
                        this.dispatchEvent(new CloseActionScreenEvent());
                        this.dispatchEvent(errToast);
                        console.log(res);
                    }
                })
            }
        }).catch(err=>{
            console.log(err);
        })
    }
}
force-app/main/default/lwc/lexAllReceivedFse/lexAllReceivedFse.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexOCMSubmit">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexAppCancelSubmit/lexAppCancelSubmit.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="ApplicationCancelSubmit" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexAppCancelSubmit/lexAppCancelSubmit.js
New file
@@ -0,0 +1,85 @@
import { LightningElement,wire,track,api} from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import { NavigationMixin } from 'lightning/navigation';
import  init  from '@salesforce/apex/OppSubmitController.initSubmitButton';
import { updateRecord } from 'lightning/uiRecordApi';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import submitCancel from '@salesforce/apex/OppSubmitController.submitCancel';
import UserInfo_Owner from '@salesforce/apex/OppSubmitController.UserInfo_Owner';
export default class CancelSubmit extends LightningElement {
    @api recordId;//OwnerId
    ownerId;
    monthlyReportId;
    IsLoading = true;
    @wire(CurrentPageReference)
     getStateParameters(currentPageReference) {
        console.log(currentPageReference,'666666666666');
         if (currentPageReference) {
           const urlValue = currentPageReference.state.recordId;
           if (urlValue) {
             let str = `${urlValue}`;
             console.log("str:"+str);
             this.recordId = str;
           }
         }
     }
    connectedCallback(){
        init({
            recordId: this.recordId
        }).then(result => {
            if (result != null) {
                this.IsLoading = false;
                this.ownerId = result.OwnerId;
                this.monthlyReportId = result.Id;
                this.cancelSubmit();
            }
        }).catch(error => {
            console.log("error"+error);
        }).finally(() => {
        });
    }
    cancelSubmit(){
        UserInfo_Owner({}).then(result=>{
            console.log(result,'获取当前登陆人id')
            if(this.ownerId == result.id){
                submitCancel({
                    recordId: this.recordId
                }).then(requst=>{
                    if(requst == '1'){
                        this.showToast("取消提交授权信息成功","success");
                    }
                    if(requst != "1"){
                        var messageage = "";
                        messageage = requst.split(',')[1];
                        this.showToast(messageage,"error");
                    }
                })
            }else{
                this.showToast("只授权申请书所有人可以取消提交","error");
            }
        })
    }
    updateRecordView() {
        updateRecord({fields: { Id: this.recordId }});
    }
    showToast(msg,type) {
        const event = new ShowToastEvent({
            message: msg,
            variant: type
        });
        if(type == 'success'){
            this.updateRecordView();
        }
        this.dispatchEvent(event);
        this.dispatchEvent(new CloseActionScreenEvent());
    }
}
force-app/main/default/lwc/lexAppCancelSubmit/lexAppCancelSubmit.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexAppSubmitButton/lexAppSubmitButton.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="ApplicationSubmit" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexAppSubmitButton/lexAppSubmitButton.js
New file
@@ -0,0 +1,108 @@
import { LightningElement,wire,track,api} from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import { NavigationMixin } from 'lightning/navigation';
import  init  from '@salesforce/apex/OppSubmitController.initSubmitButton';
import UserInfo_Owner from '@salesforce/apex/OppSubmitController.UserInfo_Owner';
import submit  from '@salesforce/apex/OppSubmitController.submit';
import { updateRecord } from 'lightning/uiRecordApi';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
export default class Submit extends LightningElement {
    @api recordId;//OwnerId
    ownerId;//所有人id
    id;//返回值的id
    IsLoading = true;
    arrMessage = [];
    @wire(CurrentPageReference)
     getStateParameters(currentPageReference) {
        console.log(currentPageReference,'666666666666');
         if (currentPageReference) {
           const urlValue = currentPageReference.state.recordId;
           if (urlValue) {
             let str = `${urlValue}`;
             console.log("str:"+str);
             this.recordId = str;
           }
         }
     }
    connectedCallback(){
        init({
            recordId: this.recordId
        }).then(result => {
            console.log(result,"请求成功了吗")
            if (result != null) {
                this.IsLoading = false;
                this.ownerId = result.OwnerId;
                this.id = result.Id;
                this.Submit();
            }
        }).catch(error => {
            console.log("error"+error);
        }).finally(() => {
        });
    }
    Submit(){
        //获取获取当前登陆人
        this.arrMessage = [];
        UserInfo_Owner({}).then(result=>{
            console.log(result,'获取当前登陆人id')
            if(this.ownerId == result.id){
                submit({
                    recordId: this.recordId
                }).then(requst=>{
                    if(requst == '1'){
                        this.showToast("提交授权信息成功","success");
                    }
                    if(requst != "1"){
                        var messageage = "";
                        console.log('是不是这里报错11111');
                        this.arrMessage = requst.split(',');
                        for(let i=0;i<this.arrMessage.length;i++){
                            console.log('是不是这里报错');
                            if(this.arrMessage.length-1 == i){
                                break;
                            }
                            messageage += this.arrMessage[i+1];
                        }
                        // requst.split(',').map((item,index)=>{
                        //     messageage += item[index+1];
                        // })
                        // if(requst.split(',')[1].slice(-1) == '式'){
                        //     messageage = requst.split(',')[1] + "," + requst.split(',')[2] + "," +  requst.split(',')[3] + "," +  requst.split(',')[4] + "," +  requst.split(',')[5] + "," + requst.split(',')[6];
                        // }else{
                        //     messageage = requst.split(',')[1];
                        // }
                        this.showToast(messageage,"error");
                    }
                })
            }else{
                this.showToast("只授权申请书所有人可以提交","error");
            }
        })
    }
    updateRecordView() {
        updateRecord({fields: { Id: this.recordId }});
    }
    showToast(msg,type) {
        console.log(msg,type);
        const event = new ShowToastEvent({
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
        console.log('走到这里了吗');
        if(type == 'success'){
            this.updateRecordView();
        }
        this.dispatchEvent(new CloseActionScreenEvent());
    }
}
force-app/main/default/lwc/lexAppSubmitButton/lexAppSubmitButton.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexArriveGoodsMain/lexArriveGoodsMain.html
New file
@@ -0,0 +1,254 @@
<template>
    <template if:true={showSpinner}>
        <lightning-spinner size="medium" variant="brand"></lightning-spinner>
    </template>
    <template if:true={showPage}>
        <div style="border: 1px solid #D4D4D4;border-top: 3px solid #51606E;border-radius:5px;">
            <div style="padding:10px;">
                <!-- 按钮 -->
                <lightning-button style="margin: 5px;" label="入库" onclick={orderArrive}></lightning-button>
                <lightning-button style="margin: 5px;" label="返品" onclick={orderReturn}></lightning-button>
                <p style="height: 10px;"></p>
                <!-- 检索条件 -->
                <div style="border: 1px solid #D4D4D4;border-top: 3px solid #51606E;border-radius:5px;margin-bottom:7px;">
                    <div style="border-bottom: 1px solid #D4D4D4;padding:3px;">
                        <p style="font-size: 16px;"><strong>检索条件</strong></p>
                    </div>
                    <div style="padding:10px;">
                        <table>
                            <tbody>
                                <tr>
                                    <td style="width: 10px;"></td>
                                    <td style="width: 94px;">
                                        <div style="color:#696969;font-size:12px;text-align: left;">消耗品订单名称</div>
                                    </td>
                                    <td>
                                        <lightning-input type="text" variant="label-hidden" label="消耗品订单名称" value={category1} onchange={category1Change}></lightning-input>
                                    </td>
                                    <td style="width: 30px;"></td>
                                    <td  style="width: 82px;">
                                        <div style="color:#696969;font-size:12px;text-align: left;">最新发货日期</div>
                                    </td>
                                    <td>
                                        <lightning-input type="date" variant="label-hidden" label="最新发货日期" value={cate2} onchange={cate2Change}></lightning-input>
                                    </td>
                                    <td>
                                        <lightning-button style="margin-left: 10px;margin-right: 5px;" label="搜索" onclick={search}></lightning-button>
                                        <lightning-button style="margin-left: 5px;margin-right: 5px;" label="清空" onclick={clear}></lightning-button>
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                </div>
                <!-- 订单明细 -->
                <div style="border: 1px solid #D4D4D4;border-top: 3px solid #51606E;border-radius:5px;margin-bottom:7px;">
                    <div style="border-bottom: 1px solid #D4D4D4;padding:3px;">
                        <p style="font-size: 16px;"><strong>订单明细</strong></p>
                    </div>
                    <div style="padding:10px;">
                        <table aria-multiselectable="true" class="slds-table slds-table_bordered slds-table_fixed-layout slds-table_resizable-cols" role="grid" aria-label="Example advanced table of Opportunities in actionable mode">
                            <thead>
                                <tr class="slds-line-height_reset">
                                    <th aria-label="Name" aria-sort="none" class="slds-is-resizable slds-is-sortable slds-cell_action-mode" scope="col">
                                        <a class="slds-th__action slds-text-link_reset" role="button" tabindex="0">
                                            <span class="slds-assistive-text">Sort by: </span>
                                            <div class="slds-grid slds-grid_vertical-align-center slds-has-flexi-truncate">
                                                <span class="slds-truncate" title="Name">消耗品订单名称</span>
                                                <span class="slds-icon_container slds-icon-utility-arrowdown">
                                                <svg class="slds-icon slds-icon-text-default slds-is-sortable__icon " aria-hidden="true">
                                                    <use xlink:href="/assets/icons/utility-sprite/svg/symbols.svg#arrowdown"></use>
                                                </svg>
                                                </span>
                                            </div>
                                        </a>
                                        <div class="slds-resizable">
                                            <span class="slds-resizable__handle">
                                                <span class="slds-resizable__divider"></span>
                                            </span>
                                        </div>
                                    </th>
                                    <th aria-label="Name" aria-sort="none" class="slds-is-resizable slds-is-sortable slds-cell_action-mode" scope="col">
                                        <a class="slds-th__action slds-text-link_reset" role="button" tabindex="0">
                                            <span class="slds-assistive-text">Sort by: </span>
                                            <div class="slds-grid slds-grid_vertical-align-center slds-has-flexi-truncate">
                                                <span class="slds-truncate" title="Name">SAP合同号</span>
                                                <span class="slds-icon_container slds-icon-utility-arrowdown">
                                                <svg class="slds-icon slds-icon-text-default slds-is-sortable__icon " aria-hidden="true">
                                                    <use xlink:href="/assets/icons/utility-sprite/svg/symbols.svg#arrowdown"></use>
                                                </svg>
                                                </span>
                                            </div>
                                        </a>
                                        <div class="slds-resizable">
                                            <span class="slds-resizable__handle">
                                                <span class="slds-resizable__divider"></span>
                                            </span>
                                        </div>
                                    </th>
                                    <th aria-label="Name" aria-sort="none" class="slds-is-resizable slds-is-sortable slds-cell_action-mode" scope="col">
                                        <a class="slds-th__action slds-text-link_reset" role="button" tabindex="0">
                                            <span class="slds-assistive-text">Sort by: </span>
                                            <div class="slds-grid slds-grid_vertical-align-center slds-has-flexi-truncate">
                                                <span class="slds-truncate" title="Name">订单总数</span>
                                                <span class="slds-icon_container slds-icon-utility-arrowdown">
                                                <svg class="slds-icon slds-icon-text-default slds-is-sortable__icon " aria-hidden="true">
                                                    <use xlink:href="/assets/icons/utility-sprite/svg/symbols.svg#arrowdown"></use>
                                                </svg>
                                                </span>
                                            </div>
                                        </a>
                                        <div class="slds-resizable">
                                            <span class="slds-resizable__handle">
                                                <span class="slds-resizable__divider"></span>
                                            </span>
                                        </div>
                                    </th>
                                    <th aria-label="Name" aria-sort="none" class="slds-is-resizable slds-is-sortable slds-cell_action-mode" scope="col">
                                        <a class="slds-th__action slds-text-link_reset" role="button" tabindex="0">
                                            <span class="slds-assistive-text">Sort by: </span>
                                            <div class="slds-grid slds-grid_vertical-align-center slds-has-flexi-truncate">
                                                <span class="slds-truncate" title="Name">已到货数量</span>
                                                <span class="slds-icon_container slds-icon-utility-arrowdown">
                                                <svg class="slds-icon slds-icon-text-default slds-is-sortable__icon " aria-hidden="true">
                                                    <use xlink:href="/assets/icons/utility-sprite/svg/symbols.svg#arrowdown"></use>
                                                </svg>
                                                </span>
                                            </div>
                                        </a>
                                        <div class="slds-resizable">
                                            <span class="slds-resizable__handle">
                                                <span class="slds-resizable__divider"></span>
                                            </span>
                                        </div>
                                    </th>
                                    <th aria-label="Name" aria-sort="none" class="slds-is-resizable slds-is-sortable slds-cell_action-mode" scope="col">
                                        <a class="slds-th__action slds-text-link_reset" role="button" tabindex="0">
                                            <span class="slds-assistive-text">Sort by: </span>
                                            <div class="slds-grid slds-grid_vertical-align-center slds-has-flexi-truncate">
                                                <span class="slds-truncate" title="Name">待系统操作入库数量</span>
                                                <span class="slds-icon_container slds-icon-utility-arrowdown">
                                                <svg class="slds-icon slds-icon-text-default slds-is-sortable__icon " aria-hidden="true">
                                                    <use xlink:href="/assets/icons/utility-sprite/svg/symbols.svg#arrowdown"></use>
                                                </svg>
                                                </span>
                                            </div>
                                        </a>
                                        <div class="slds-resizable">
                                            <span class="slds-resizable__handle">
                                                <span class="slds-resizable__divider"></span>
                                            </span>
                                        </div>
                                    </th>
                                    <th aria-label="Name" aria-sort="none" class="slds-is-resizable slds-is-sortable slds-cell_action-mode" scope="col">
                                        <a class="slds-th__action slds-text-link_reset" role="button" tabindex="0">
                                            <span class="slds-assistive-text">Sort by: </span>
                                            <div class="slds-grid slds-grid_vertical-align-center slds-has-flexi-truncate">
                                                <span class="slds-truncate" title="Name">还没发货数量</span>
                                                <span class="slds-icon_container slds-icon-utility-arrowdown">
                                                <svg class="slds-icon slds-icon-text-default slds-is-sortable__icon " aria-hidden="true">
                                                    <use xlink:href="/assets/icons/utility-sprite/svg/symbols.svg#arrowdown"></use>
                                                </svg>
                                                </span>
                                            </div>
                                        </a>
                                        <div class="slds-resizable">
                                            <span class="slds-resizable__handle">
                                                <span class="slds-resizable__divider"></span>
                                            </span>
                                        </div>
                                    </th>
                                    <th aria-label="Name" aria-sort="none" class="slds-is-resizable slds-is-sortable slds-cell_action-mode" scope="col">
                                        <a class="slds-th__action slds-text-link_reset" role="button" tabindex="0">
                                            <span class="slds-assistive-text">Sort by: </span>
                                            <div class="slds-grid slds-grid_vertical-align-center slds-has-flexi-truncate">
                                                <span class="slds-truncate" title="Name">发货七天还未到货数</span>
                                                <span class="slds-icon_container slds-icon-utility-arrowdown">
                                                <svg class="slds-icon slds-icon-text-default slds-is-sortable__icon " aria-hidden="true">
                                                    <use xlink:href="/assets/icons/utility-sprite/svg/symbols.svg#arrowdown"></use>
                                                </svg>
                                                </span>
                                            </div>
                                        </a>
                                        <div class="slds-resizable">
                                            <span class="slds-resizable__handle">
                                                <span class="slds-resizable__divider"></span>
                                            </span>
                                        </div>
                                    </th>
                                    <th aria-label="Name" aria-sort="none" class="slds-is-resizable slds-is-sortable slds-cell_action-mode" scope="col">
                                        <a class="slds-th__action slds-text-link_reset" role="button" tabindex="0">
                                            <span class="slds-assistive-text">Sort by: </span>
                                            <div class="slds-grid slds-grid_vertical-align-center slds-has-flexi-truncate">
                                                <span class="slds-truncate" title="Name">最新发货日期</span>
                                                <span class="slds-icon_container slds-icon-utility-arrowdown">
                                                <svg class="slds-icon slds-icon-text-default slds-is-sortable__icon " aria-hidden="true">
                                                    <use xlink:href="/assets/icons/utility-sprite/svg/symbols.svg#arrowdown"></use>
                                                </svg>
                                                </span>
                                            </div>
                                        </a>
                                        <div class="slds-resizable">
                                            <span class="slds-resizable__handle">
                                                <span class="slds-resizable__divider"></span>
                                            </span>
                                        </div>
                                    </th>
                                    <th aria-label="Name" aria-sort="none" class="slds-is-resizable slds-is-sortable slds-cell_action-mode" scope="col">
                                        <a class="slds-th__action slds-text-link_reset" role="button" tabindex="0">
                                            <span class="slds-assistive-text">Sort by: </span>
                                            <div class="slds-grid slds-grid_vertical-align-center slds-has-flexi-truncate">
                                                <span class="slds-truncate" title="Name">首次发货日期</span>
                                                <span class="slds-icon_container slds-icon-utility-arrowdown">
                                                <svg class="slds-icon slds-icon-text-default slds-is-sortable__icon " aria-hidden="true">
                                                    <use xlink:href="/assets/icons/utility-sprite/svg/symbols.svg#arrowdown"></use>
                                                </svg>
                                                </span>
                                            </div>
                                        </a>
                                        <div class="slds-resizable">
                                            <span class="slds-resizable__handle">
                                                <span class="slds-resizable__divider"></span>
                                            </span>
                                        </div>
                                    </th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr aria-selected="false" class="slds-hint-parent">
                                    <td class="slds-cell_action-mode" role="gridcell">
                                        <div class="slds-truncate" title="Acme">订单明细汇总</div>
                                    </td>
                                    <td class="slds-cell_action-mode" role="gridcell">
                                        <div class="slds-truncate" title="Acme"></div>
                                    </td>
                                    <td class="slds-cell_action-mode" role="gridcell">
                                        <div class="slds-truncate" title="Acme">{totalNum}</div>
                                    </td>
                                    <td class="slds-cell_action-mode" role="gridcell">
                                        <div class="slds-truncate" title="Acme">{orderNumberArrived}</div>
                                    </td>
                                    <td class="slds-cell_action-mode" role="gridcell">
                                        <div class="slds-truncate" title="Acme">{deliveryDetailCount}</div>
                                    </td>
                                    <td class="slds-cell_action-mode" role="gridcell">
                                        <div class="slds-truncate" title="Acme">{orderNumberNotarrive}</div>
                                    </td>
                                    <td class="slds-cell_action-mode" role="gridcell">
                                        <div class="slds-truncate" title="Acme">{moreThanSevenDays}</div>
                                    </td>
                                    <td class="slds-cell_action-mode" role="gridcell">
                                        <div class="slds-truncate" title="Acme"></div>
                                    </td>
                                    <td class="slds-cell_action-mode" role="gridcell">
                                        <div class="slds-truncate" title="Acme"></div>
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                </div>
            </div>
        </div>
    </template>
</template>
force-app/main/default/lwc/lexArriveGoodsMain/lexArriveGoodsMain.js
New file
@@ -0,0 +1,98 @@
import { LightningElement,wire,api,track } from 'lwc';
import { CurrentPageReference } from 'lightning/navigation';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import { NavigationMixin } from 'lightning/navigation';
import init from '@salesforce/apex/LexArriveGoodsMainController.init';
import searchConsumableorderdetails from '@salesforce/apex/LexArriveGoodsMainController.searchConsumableorderdetails';
export default class LexArriveGoodsMain extends NavigationMixin(LightningElement) {
    //页面基础变量
    @track agencyProType;
    @track category1;
    @track cate2;
    // @track eSetId;
    @track accountId;
    @track title = [];
    @track raesList = [];
    @track userWorkLocation;
    @track totalNum;
    @track orderNumberArrived;
    @track deliveryDetailCount;
    @track orderNumberNotarrive;
    @track moreThanSevenDays;
    @track showSpinner = true;
    @track showPage = true;
    //获取参数
    // @wire(CurrentPageReference)
    // getStateParameters(currentPageReference) {
    //     console.log('CurrentPageReference');
    //     if (currentPageReference) {
    //         this.eSetId = currentPageReference.state?.ESetid;
    //     }
    // }
    //初始化
    connectedCallback(){
        init()
            .then(result=>{
                if(result.result == 'Success'){
                    this.agencyProType = result.agencyProType;
                    this.accountId = result.accountId;
                    this.title = result.title;
                    this.raesList = result.raesList;
                    this.userWorkLocation = result.userWorkLocation;
                    this.totalNum = result.totalNum;
                    this.orderNumberArrived = result.orderNumberArrived;
                    this.deliveryDetailCount = result.deliveryDetailCount;
                    this.orderNumberNotarrive = result.orderNumberNotarrive;
                    this.moreThanSevenDays = result.moreThanSevenDays;
                    this.showSpinner = false;
                    this.showPage = true;
                }else{
                    this.showSpinner = false;
                    console.log("Error:"+result.errorMsg);
                    this.showMyToast('初始化页面失败',result.errorMsg,'error');
                }
            })
    }
    //消耗品订单名称变更
    category1Change(event){
        this.category1 = event.detail.value;
    }
    //最新发货日期变更
    cate2Change(event){
        this.cate2 = event.detail.value;
    }
    //检索
    search(){
    }
    //清空搜索框
    clear(){
    }
    //入库
    orderArrive(){
    }
    //返品
    orderReturn(){
    }
    showMyToast(title,message,variant){
        const evt = new ShowToastEvent({
           title : title,
           message: message,
           variant: variant
        });
        this.dispatchEvent(evt);
    }
}
force-app/main/default/lwc/lexArriveGoodsMain/lexArriveGoodsMain.js-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>56.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightningCommunity__Page</target>
        <target>lightningCommunity__Default</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexAssetMaintainDetail/lexAssetMaintainDetail.css
New file
@@ -0,0 +1,11 @@
.Holder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display : none !important;
}
force-app/main/default/lwc/lexAssetMaintainDetail/lexAssetMaintainDetail.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="Holder" if:true={IsLoading}>
          <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
      </div>
</template>
force-app/main/default/lwc/lexAssetMaintainDetail/lexAssetMaintainDetail.js
New file
@@ -0,0 +1,38 @@
import { LightningElement, track, wire, api } from 'lwc';
import {CurrentPageReference} from 'lightning/navigation';
import { CloseActionScreenEvent } from 'lightning/actions';
export default class lexAssetMaintainDetail extends LightningElement {
    @api recordId;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference){
        console.log("进入页面");
        console.log(currentPageReference);
        if(currentPageReference){
            const urvalue=currentPageReference.state.recordId;
            if(urvalue){
                let str=`${urvalue}`;
                console.log('str');
                console.log(str);
                this.recordId=str;
            }
        }
    }
    connectedCallback(){
        this.cancelSubmit().then(res=>{
            this.IsLoading=false;
            this.dispatchEvent(new CloseActionScreenEvent());
        });
    }
    async cancelSubmit(){
        window.open('/apex/AssetMaintainDetail?id='+this.recordId,'AssetMaintainDetail', 'width=600,height=200');
    }
}
// old js
// window.open('/apex/AssetMaintainDetail?id={! AssetMaintainHeader__c.Id }');
force-app/main/default/lwc/lexAssetMaintainDetail/lexAssetMaintainDetail.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexAssetMaintainDetail">
    <apiVersion>51.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__AppPage</target>
        <target>lightning__RecordPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexAssetMaintainPage/lexAssetMaintainPage.html
New file
@@ -0,0 +1,3 @@
<template>
</template>
force-app/main/default/lwc/lexAssetMaintainPage/lexAssetMaintainPage.js
New file
@@ -0,0 +1,35 @@
import { LightningElement, track, wire, api } from 'lwc';
import {CurrentPageReference} from 'lightning/navigation';
import { CloseActionScreenEvent } from 'lightning/actions';
export default class lexAssetMaintainPage extends LightningElement {
    @api recordId;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference){
        console.log("进入页面");
        console.log(currentPageReference);
        if(currentPageReference){
            const urvalue=currentPageReference.state.recordId;
            if(urvalue){
                let str=`${urvalue}`;
                console.log('str');
                console.log(str);
                this.recordId=str;
            }
        }
    }
    connectedCallback(){
        this.cancelSubmit().then(res=>{
            this.IsLoading=false;
            this.dispatchEvent(new CloseActionScreenEvent());
        });
    }
    async cancelSubmit(){
        window.open('/apex/AssetMaintain?id='+this.recordId,'lexAssetMaintainPage', 'width=600,height=200');
    }
}
force-app/main/default/lwc/lexAssetMaintainPage/lexAssetMaintainPage.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexAssetMaintainPage">
    <apiVersion>51.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__AppPage</target>
        <target>lightning__RecordPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexBatchSelectRepairLWC/lexBatchSelectRepairLWC.css
New file
@@ -0,0 +1,9 @@
.Narrow{
    padding: 20px;
}
.searchField,.searchField .input-text{
    /*display: flex;*/
}
.searchField .slds-combobox_container{
    width: 160px !important;
}
force-app/main/default/lwc/lexBatchSelectRepairLWC/lexBatchSelectRepairLWC.html
New file
@@ -0,0 +1,107 @@
<template>
 <!--  <div class="slds-box slds-theme--default">
        Click on the link Below to Export data as csv/xls.
        <p class="slds-m-top--large">
            <a onclick={exportContactData}>Export Contact Data</a>
            <lightning-button variant="brand" label="Export Contact data" title="Export Contact Data" onclick={exportContactData}></lightning-button>
        </p>
    </div> -->
  <lightning-card  variant="Narrow">
    <div style="padding: 0 20px">
      <div>
          <div style="padding: 10px 3px;border-bottom: 1px solid;font: 16px;font-size: blod;">检索列</div>
          <div style="margin-top: 5px">
             <lightning-layout>
              <!-- cancelPaddingLeft -->
                  <lightning-layout-item flexibility="auto" padding="around-small">
                      <lightning-combobox name="progress" label="状态1" value={searchObj.Status1} options={status1Options}
                          onchange={handleStatus1Change} class="searchField"></lightning-combobox>
                  </lightning-layout-item>
                  <lightning-layout-item flexibility="auto" padding="around-small">
                      <lightning-combobox
                      name="progress" label="状态2" value={searchObj.Status2} options={status2Options} onchange={handleStatus2Change}
                      class="searchField"></lightning-combobox>
                  </lightning-layout-item>
                  <lightning-layout-item flexibility="auto" padding="around-small">
                      <lightning-combobox
                      name="progress" label="服务方式" value={searchObj.onSiteRepair} options={siteRepairItems} onchange={handleSiteChange}
                      class="searchField"></lightning-combobox>
                  </lightning-layout-item>
              </lightning-layout>
              <lightning-layout>
                  <lightning-layout-item size="4" padding="horizontal-small">
                    <lightning-input value={searchObj.RepairName} type="text" label="RS修理单号" class="searchField" onchange={handleRepairNameChange}></lightning-input>
                  </lightning-layout-item>
                  <lightning-layout-item size="4" padding="horizontal-small">
                    <lightning-input value={searchObj.SAPRepairNo} type="text" label="SAP修理单号" class="searchField" onchange={handleSAPRepairNoChange}></lightning-input>
                  </lightning-layout-item>
                  <lightning-layout-item size="4" padding="horizontal-small">
                    <lightning-input value={searchObj.workLocationSelect} type="text" label="维修中心" class="searchField" onchange={handleWorkLocationChange}></lightning-input>
                  </lightning-layout-item>
              </lightning-layout>
              <lightning-layout>
                  <lightning-layout-item size="4" padding="horizontal-small">
                    <lightning-input value={searchObj.SerialNumber} type="text" label="机身编码" class="searchField" onchange={handleSerialNumberChange}></lightning-input>
                  </lightning-layout-item>
                  <lightning-layout-item size="4" padding="horizontal-small">
                    <lightning-input value={searchObj.State_Hospital} type="text" label="省份" class="searchField" onchange={handleStateHospitalChange}></lightning-input>
                  </lightning-layout-item>
                  <lightning-layout-item size="4" padding="horizontal-small">
                    <lightning-input value={searchObj.HospitalName} type="text" label="医院名称" class="searchField" onchange={handleHospitalChange}></lightning-input>
                  </lightning-layout-item>
              </lightning-layout>
              <lightning-layout>
                  <lightning-layout-item size="2" padding="horizontal-small">
                    <lightning-input type="date" label="FSE申请日(开始)" value={repair.Aware_date__c} onchange={handleAwareDateDStart}></lightning-input>
                  </lightning-layout-item>
                  <!-- cancelPaddingLeft -->
                  <lightning-layout-item size="2" padding="horizontal-small">
                    <!-- variant="label-hidden" -->
                    <lightning-input type="date" label="FSE申请日(结束)" value={repair.Aware_date2__c} onchange={handleAwareDateDEnd}></lightning-input>
                  </lightning-layout-item>
                  <lightning-layout-item size="4" padding="horizontal-small">
                    <!-- record-id={recordId} 修理委托者  Incharge_Staff__c-->
                    <!-- <lightning-record-edit-form
                        object-api-name={objectApiName}
                        record-id=''
                    >
                        <lightning-input-field field-name={nameField} onclick={handleInchargeStaffChange}> </lightning-input-field>
                    </lightning-record-edit-form> -->
                    <lightning-record-edit-form
                        object-api-name='Repair__c'
                        record-id=''
                    >
                        <lightning-input-field field-name='Incharge_Staff__c' onclick={handleInchargeStaffChange}> </lightning-input-field>
                    </lightning-record-edit-form>
                  </lightning-layout-item>
              </lightning-layout>
              <lightning-layout>
                  <lightning-layout-item flexibility="auto" padding="around-small">
                    <lightning-button label="检索" onclick={searchRepair}></lightning-button>
                  </lightning-layout-item>
              </lightning-layout>
          </div>
      </div>
      <div>
          <div style="padding: 10px 5px;border-bottom: 1px solid">详细信息</div>
          <div style="padding: 10px 0;">
            <lightning-button label="打印PDF" onclick={skipPage}></lightning-button>
            <lightning-button label="导出Excel" onclick={exportContactData}></lightning-button>
            <!-- <lightning-button label="导出Excel" onclick={downloadCSVFile}></lightning-button> -->
          </div>
          <div>
            <lightning-datatable
              key-field="id"
              data={data}
              columns={columns}
              onrowselection={getSelectedRows}
              onrowaction={handleRowAction}>
            </lightning-datatable>
          </div>
      </div>
    </div>
  </lightning-card>
</template>
force-app/main/default/lwc/lexBatchSelectRepairLWC/lexBatchSelectRepairLWC.js
New file
@@ -0,0 +1,576 @@
import { LightningElement,wire,track,api} from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import { NavigationMixin } from 'lightning/navigation';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import NAME_FIELD from '@salesforce/schema/Repair__c.Incharge_Staff__c';
import MY_CUSTOM_OBJECT from '@salesforce/schema/Repair__c';
import search from '@salesforce/apex/lexBatchSelectRepairLWCController.search';
import showPDF from '@salesforce/apex/lexBatchSelectRepairLWCController.showPDF';
/*
const actions = [
    { label: 'Show details', name: 'show_details' },
    { label: 'Delete', name: 'delete' },
    ];*/
const columns = [
        { label: '状态1', fieldName: 'Status1__c'},
        { label: '状态2', fieldName: 'Status2__c' },
        { label: 'RS修理单号', fieldName: 'Name' },
        { label: 'SAP修理单号', fieldName: 'SAP_Service_Repair_No__c' },
        // { label: '型号', fieldName: 'deliveredProductName' },
        { label: '型号', fieldName: 'deliveredProductUrl',type:'url',
            typeAttributes:{
                label:{
                    fieldName:'deliveredProductName'
                },
                target:'_balank'
            }
        },
        { label: '机身编号', fieldName: 'SerialNumber__c' },
        { label: '医院名称', fieldName: 'HP_Name__c' },
        { label: '省份', fieldName: 'State_Hospital__c' },
        // { label: '修理委托者', fieldName: 'Incharge_Staff_Name' },
        { label: '修理委托者', fieldName: 'inchargeStaffUrl',type:'url',
            typeAttributes:{
                label:{
                    fieldName:'inchargeStaffName'
                },
                target:'_balank'
            }
        },
        { label: 'FSE申请日期', fieldName: 'FSE_ApplyForRepair_Day__c' },
        { label: '维修中心', fieldName: 'work_location_select__c' },
        { label: '服务方式', fieldName: 'On_site_repair__c' },
        { label: '有无维修合同对象', fieldName: 'Number_of_EffectiveContract__c' },
        { label: '无偿区别标志', fieldName: 'NewProductGuaranteeObject__c' }
   /* {
    type: 'action',
    typeAttributes: { rowActions: actions },
    },*/
    ];
export default class lexBatchSelectRepairLWC extends LightningElement {
    // Expose a field to make it available in the template
    nameField = NAME_FIELD;
    // Flexipage provides recordId and objectApiName
    @api recordId;
    @api objectApiName;
    data = [];
    columns = columns;
    //状态1
    status1Options = [{ label: '--无--', value: '' },
                    { label: '0.申请完毕', value: '0.申请完毕' },
                    { label: '2.维修报价阶段', value: '2.维修报价阶段' },
                    { label: '3.维修阶段', value: '3.维修阶段' },
                    { label: '4.修理品返送阶段', value: '4.修理品返送阶段' },
                    { label: '5.完毕', value: '5.完毕' },
                    { label: '0.删除', value: '0.删除' },
                    { label: '0.取消', value: '0.取消' }];
    //状态2
    status2Options = [{label:'00.申请完毕', value:'00.申请完毕'},
                    {label:'01.分公司受理完毕', value:'01.分公司受理完毕'},
                    {label:'02.RC受理完毕', value:'02.RC受理完毕'},
                    {label:'03.报价检查结束', value:'03.报价检查结束'},
                    {label:'04.报价跟进中', value:'04.报价跟进中'},
                    {label:'05.报价同意完备', value:'05.报价同意完备'},
                    {label:'06.零件齐备', value:'06.零件齐备'},
                    {label:'07.修理開始', value:'07.修理開始'},
                    {label:'08.修理预计完成', value:'08.修理预计完成'},
                    {label:'09.修理完成', value:'09.修理完成'},
                    {label:'10.最终检查完成', value:'10.最终检查完成'},
                    {label:'11.RC修理品已返送', value:'11.RC修理品已返送'},
                    {label:'12.发票已发送', value:'12.发票已发送'},
                    {label:'13.已返送到用户', value:'13.已返送到用户'},
                    {label:'14.收到验收单', value:'14.收到验收单'},
                    {label:'15.验收单签收复核通过', value:'15.验收单签收复核通过'},
                    {label:'16.部分付款', value:'16.部分付款'},
                    {label:'16.完毕', value:'16.完毕'},
                    {label:'17.付款完毕', value:'17.付款完毕'},
                    {label:'00.取消', value:'00.取消'},
                    {label:'00.删除', value:'00.删除'},
                    {label:'00.关闭', value:'00.关闭'}];
    //服务方式
    siteRepairItems = [{label:'--无--',value:''},
        {label:'RC修理',value:'RC修理'},
        {label:'直送SORC修理',value:'直送SORC修理'},
        {label:'直送OGZ修理',value:'直送OGZ修理'},
        {label:'办事处修理',value:'办事处修理'},
        {label:'现场修理',value:'现场修理'}];
    searchObj = {};
    repair = {};
    selectedRepairs;
    /* @wire(CurrentPageReference)
     getStateParameters(currentPageReference) {
             console.log(111);
             console.log(currentPageReference);
         if (currentPageReference) {
           const urlValue = currentPageReference.state.recordId;
           if (urlValue) {
             let str = `${urlValue}`;
             console.log("str");
             console.log(str);
             this.recordId = str;
           }
         }
     }*/
    connectedCallback(){
        // console.log(this.recordId);
    }
    //状态1
    handleStatus1Change(event){
        /*console.log(event);
        console.log(event.detail);*/
        this.searchObj.Status1 = event.detail.value;
        // console.log(JSON.stringify(this.searchObj));
    }
    //状态2
    handleStatus2Change(event){
        this.searchObj.Status2 = event.detail.value;
        // console.log(this.searchObj);
    }
    //服务方式
    handleSiteChange(event){
        this.searchObj.onSiteRepair = event.detail.value;
        // console.log(this.searchObj);
    }
    //RS修理单号 RepairName
    handleRepairNameChange(event){
        this.searchObj.RepairName = event.detail.value;
        // console.log(this.searchObj);
    }
    //SAP修理单号 SAPRepairNo
    handleSAPRepairNoChange(event){
        this.searchObj.SAPRepairNo = event.detail.value;
        // console.log(this.searchObj);
    }
    //维修中心 workLocationSelect
    handleWorkLocationChange(event){
        this.searchObj.workLocationSelect = event.detail.value;
    }
    //机身编码 SerialNumber
    handleSerialNumberChange(event){
        this.searchObj.SerialNumber = event.detail.value;
    }
    // 省份  State_Hospital
    handleStateHospitalChange(event){
        this.searchObj.State_Hospital = event.detail.value;
    }
    //医院名称  HospitalName
    handleHospitalChange(event){
        this.searchObj.HospitalName = event.detail.value;
    }
    //FSE申请日 repair.Aware_date__c
    handleAwareDateDStart(event){
        this.repair.Aware_date__c = event.detail.value;
        console.log(this.repair.Aware_date__c);
    }
    // repair.Aware_date2__c
    handleAwareDateDEnd(event){
        this.repair.Aware_date2__c = event.detail.value;
        // console.log(this.repair.Aware_date2__c);
    }
    // 修理委托者 repair.Incharge_Staff__c
    handleInchargeStaffChange(event){
        this.repair.Incharge_Staff__c = event.detail.value;
        // console.log(this.repair.Aware_date2__c);
    }
   //检索
    searchRepair(event) {
        console.log(this.repair.Aware_date__c);
        if (JSON.stringify(this.repair) != "{}") {
            console.log('this.repair');
            this.searchObj.repair = this.repair;
            // fse 时间条件
            /*if (!(this.repair.Aware_date__c != null && this.repair.Aware_date2__c != null) || this.repair.Aware_date__c > this.repair.Aware_date2__c) {
                const event = new ShowToastEvent({
                             title: 'error',
                             message: 'FSE申请日输入有误',
                             variant:'error',
                            });
                this.dispatchEvent(event);
                return;
            }*/
        }
        let jsonStr = JSON.stringify(this.searchObj);
        if (jsonStr === "{}") {
            const event = new ShowToastEvent({
                             title: 'error',
                             message: '请至少添加一个检索条件!',
                             variant:'error',
                            });
            this.dispatchEvent(event);
        }else{
            console.log(jsonStr);
            search({
                json: jsonStr
            }).then(result => {
                console.log(result.repairData);
                console.log('length:'+result.repairData.length);
                if (result.repairData.length == 0 || result.repairData.length == 200) {
                    const event = new ShowToastEvent({
                             title: 'warning',
                             message: result.status,
                             variant:'warning',
                            });
                    this.dispatchEvent(event);
                }
                let returnArr = [];
                result.repairData.forEach(function(v){
                    let objRepair = v.repair;
                    //添加修理委托者和型号名称
                    objRepair.deliveredProductName = objRepair.Delivered_Product__r.Name;
                    objRepair.deliveredProductUrl = "/"+objRepair.Delivered_Product__c;
                    objRepair.inchargeStaffName = objRepair.Incharge_Staff__r.Name;
                    objRepair.inchargeStaffUrl = "/"+objRepair.Incharge_Staff__c;
                    // console.log(objRepair);
                    returnArr.push(objRepair);
                });
                /*console.log('arr');
                console.log(arr);
                console.log(arr.length);*/
                this.data = returnArr;
                // console.log(this.data);
            }).catch(error => {
                console.log("error");
                console.log(error);
            }).finally(() => {
            });
        }
    }
    //导出为Excel  画table
    exportContactData(){
        // Prepare a html table
        let doc = '<table>';
        // Add styles for the table
        doc += '<style>';
        doc += 'table, th, td {';
        doc += '    border: 1px solid black;';
        doc += '    border-collapse: collapse;';
        doc += '}';
        doc += '</style>';
        // Add all the Table Headers
        doc += '<tr>';
        this.columns.forEach(element => {
            doc += '<th>'+ element.label +'</th>'
        });
        doc += '</tr>';
        // Add the data rows
        let fieldNameArr =[];
        this.columns.forEach(function(v){
            if (v['typeAttributes']) {
                fieldNameArr.push(v['typeAttributes'].label.fieldName);
            }else{
                fieldNameArr.push(v.fieldName);
            }
        });
        console.log(fieldNameArr);
        fieldNameArr.forEach(v=>{
            console.log(v);
            // console.log(this.data[0].v);
        })
        this.data.forEach(record => {
            doc += '<tr>';
            if (record.Status1__c != null) {
                doc += '<th>'+record.Status1__c+'</th>';
            }else{
                doc += '<th></th>'
            }
            if (record.Status2__c != null) {
            doc += '<th>'+record.Status2__c+'</th>';
            }else{
                doc += '<th></th>'
            }
            if (record.Name != null) {
            doc += '<th>'+record.Name+'</th>';
            }else{
                doc += '<th></th>'
            }
            if (record.SAP_Service_Repair_No__c != null) {
            doc += '<th>'+record.SAP_Service_Repair_No__c+'</th>';
            }else{
                doc += '<th></th>'
            }
            if (record.deliveredProductName != null) {
            doc += '<th>'+record.deliveredProductName+'</th>';
            }else{
                doc += '<th></th>'
            }
            if (record.SerialNumber__c != null) {
            doc += '<th>'+record.SerialNumber__c+'</th>';
            }else{
                doc += '<th></th>'
            }
            if (record.HP_Name__c != null) {
            doc += '<th>'+record.HP_Name__c+'</th>';
            }else{
                doc += '<th></th>'
            }
            if (record.State_Hospital__c != null) {
            doc += '<th>'+record.State_Hospital__c+'</th>';
            }else{
                doc += '<th></th>'
            }
            if (record.inchargeStaffName != null) {
            doc += '<th>'+record.inchargeStaffName+'</th>';
            }else{
                doc += '<th></th>'
            }
            if (record.FSE_ApplyForRepair_Day__c != null) {
            doc += '<th>'+record.FSE_ApplyForRepair_Day__c+'</th>';
            }else{
                doc += '<th></th>'
            }
            if (record.work_location_select__c != null) {
            doc += '<th>'+record.work_location_select__c+'</th>';
            }else{
                doc += '<th></th>'
            }
            if (record.On_site_repair__c != null) {
            doc += '<th>'+record.On_site_repair__c+'</th>';
            }else{
                doc += '<th></th>'
            }
            if (record.Number_of_EffectiveContract__c != null) {
            doc += '<th>'+record.Number_of_EffectiveContract__c+'</th>';
            }else{
                doc += '<th></th>'
            }
            if (record.NewProductGuaranteeObject__c != null) {
            doc += '<th>'+record.NewProductGuaranteeObject__c+'</th>';
            }else{
                doc += '<th></th>'
            }
                // fieldNameArr.forEach(fieldName =>{
                //     doc += '<th>'+record.fieldName+'</th>';
                // });
                doc += '</tr>';
        });
        doc += '</table>';
        var element = 'data:application/vnd.ms-excel,' + encodeURIComponent(doc);
        let downloadElement = document.createElement('a');
        downloadElement.href = element;
        downloadElement.target = '_self';
        // use .csv as extension on below line if you want to export data as csv
        downloadElement.download = '修理明细表.xls';
        document.body.appendChild(downloadElement);
        downloadElement.click();
    }
    // this method validates the data and creates the csv file to download  this.data的所有字段
     downloadCSVFile1() {
        console.log("downloadCSVFile1");
        let rowEnd = '\n';
        let csvString = '';
        // this set elminates the duplicates if have any duplicate keys
        let rowData = new Set();
        let columnsData = new Set();
        let columnsLabelData = new Set();
        // getting keys from data
        this.data.forEach(function (record) {
            Object.keys(record).forEach(function (key) {
                rowData.add(key);
            });
        });
        console.log(rowData);
        // Array.from() method returns an Array object from any object with a length property or an iterable object.
        rowData = Array.from(rowData);
        console.log(rowData);
        // splitting using ','
        csvString += rowData.join(',');
        csvString += rowEnd;
        console.log(csvString);
        this.columns.forEach(function(v){
            columnsLabelData.add(v.label);
            if (v['typeAttributes']) {
                columnsData.add(v['typeAttributes'].label.fieldName);
            }else{
                columnsData.add(v.fieldName);
            }
        });
        console.log("columnsData");
        console.log(columnsLabelData);
        console.log(columnsData);
        console.log(rowData[1]);
        console.log(Array.from(columnsData));
        console.log(Array.from(columnsData).hasOwnProperty(rowData[1]));
        console.log(this.data[0].Name);
        console.log(this.data[0][rowData[1]]);
        // main for loop to get the data based on key value
        for(let i=0; i < this.data.length; i++){
            let colValue = 0;
            // validating keys in data
            for(let key in rowData) {
                if(rowData.hasOwnProperty(key)) {
                    // Key value
                    // Ex: Id, Name
                    let rowKey = rowData[key];
                    // add , after every value except the first.
                    if(colValue > 0){
                        csvString += ',';
                    }
                    // If the column is undefined, it as blank in the CSV file.
                    let value = this.data[i][rowKey] === undefined ? '' : this.data[i][rowKey];
                    csvString += '"'+ value +'"';
                    colValue++;
                }
            }
            csvString += rowEnd;
        }
        // Creating anchor element to download
        let downloadElement = document.createElement('a');
        // This  encodeURI encodes special characters, except: , / ? : @ & = + $ # (Use encodeURIComponent() to encode these characters).
        downloadElement.href = 'data:text/csv;charset=utf-8,' + encodeURI(csvString);
        downloadElement.target = '_self';
        // CSV File Name
        downloadElement.download = 'Account Data.csv';
        // below statement is required if you are using firefox browser
        document.body.appendChild(downloadElement);
        // click() Javascript function to download CSV file
        downloadElement.click();
    }
    //导出为Excel
    downloadCSVFile() {
        console.log("downloadCSVFile");
        let rowEnd = '\n';
        let csvString = '';
        // this set elminates the duplicates if have any duplicate keys
        //表格标题
        let columnsData = new Set();
        //表格字段
        let rowData = new Set();
        // getting keys from data
        this.columns.forEach(function(v){
            columnsData.add(v.label);
            if (v['typeAttributes']) {
                rowData.add(v['typeAttributes'].label.fieldName);
            }else{
                rowData.add(v.fieldName);
            }
        });
        console.log(columnsData);
        console.log(rowData);
        // Array.from() method returns an Array object from any object with a length property or an iterable object.
        rowData = Array.from(rowData);
        columnsData = Array.from(columnsData);
        // getting keys from data
       /* console.log("rowData");
        rowData.forEach(function(v){
            console.log(v);
        });
        console.log("columnsData");
        columnsData.forEach(function(v){
            console.log(v);
        }); */
        // splitting using ','
        csvString += columnsData.join(',');
        csvString += rowEnd;
        // console.log(csvString);
        // main for loop to get the data based on key value
        for(let i=0; i < this.data.length; i++){
            let colValue = 0;
            // validating keys in data
            for(let key in rowData) {
                if(rowData.hasOwnProperty(key)) {//del
                    // Key value
                    // Ex: Id, Name
                    let rowKey = rowData[key];
                    // add , after every value except the first.
                    if(colValue > 0){
                        csvString += ',';
                    }
                    // If the column is undefined, it as blank in the CSV file.
                    let value = this.data[i][rowKey] === undefined ? '' : this.data[i][rowKey];
                    csvString += '"'+ value +'"';
                    colValue++;
                }
            }
            csvString += rowEnd;
        }
        // Creating anchor element to download
        let downloadElement = document.createElement('a');
        // This  encodeURI encodes special characters, except: , / ? : @ & = + $ # (Use encodeURIComponent() to encode these characters).
        downloadElement.href = 'data:text/csv;charset=utf-8,' + encodeURI(csvString);
        downloadElement.target = '_self';
        // CSV File Name
        downloadElement.download = '修理明细表.csv';
        // below statement is required if you are using firefox browser
        document.body.appendChild(downloadElement);
        // click() Javascript function to download CSV file
        downloadElement.click();
    }
    //获取选中Repair
    getSelectedRows(event) {
        const selectedRows = event.detail.selectedRows;
        console.log(selectedRows);
        //Repair__c   selectedRepairs
        // Display that fieldName of the selected rows
        let selectedRepairsArr = [];
        for (let i = 0; i < selectedRows.length; i++) {
            selectedRepairsArr.push(selectedRows[i]);
        }
        this.selectedRepairs = selectedRepairsArr;
    }
    //跳转到pdf页面
    skipPage() {
        console.log("selectedRows");
        // console.log(jsonStr);
        if (this.selectedRepairs.length <= 0 ) {
            const event = new ShowToastEvent({
                                     title: 'error',
                                     message: '请至少选择一个修理',
                                     variant:'error',
                                    });
            this.dispatchEvent(event);
            return;
        }
        let jsonStr = JSON.stringify(this.selectedRepairs);
        showPDF({
            json: jsonStr
            }).then(result => {
                console.log(result);
                if (result.indexOf("https://ocsm") != -1) {
                     window.open(result, "维修委托书PDF", "");
                }else{
                    const event = new ShowToastEvent({
                                     title: 'error',
                                     message: result,
                                     variant:'error',
                                    });
                    this.dispatchEvent(event);
                }
            }).catch(error => {
                console.log("error");
                console.log(error);
            }).finally(() => {
            });
    }
}
force-app/main/default/lwc/lexBatchSelectRepairLWC/lexBatchSelectRepairLWC.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexBeforeOPDPDFBtn/lexBeforeOPDPDFBtn.css
New file
@@ -0,0 +1,10 @@
.lexBeforeOPDPDFBtnHolder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display: none !important;
}
force-app/main/default/lwc/lexBeforeOPDPDFBtn/lexBeforeOPDPDFBtn.html
New file
@@ -0,0 +1,15 @@
<!--
 * @Description:
 * @version:
 * @Author: chen jing wu
 * @Date: 2023-04-13 15:08:43
 * @LastEditors: chen jing wu
 * @LastEditTime: 2023-04-14 14:13:25
-->
<template>
    <div class="lexBeforeOPDPDFBtnHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
        <lightning-button label="Show Toast" onclick={showToast}></lightning-button>
        <lightning-button onclick={handleConfirmClick} label="Open Confirm Modal"></lightning-button>
    </div>
</template>
force-app/main/default/lwc/lexBeforeOPDPDFBtn/lexBeforeOPDPDFBtn.js
New file
@@ -0,0 +1,108 @@
/*
 * @Description:
 * @version:
 * @Author: chen jing wu
 * @Date: 2023-04-13 15:08:43
 * @LastEditors: chen jing wu
 * @LastEditTime: 2023-04-14 15:37:35
 */
import { api, wire,LightningElement } from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import init  from '@salesforce/apex/OpportunityLightingButtonController.initFoBeforeOPDPDFBtnButton';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import selectCommonSequence from '@salesforce/apex/ControllerUtil.selectCommonSequence';
import addReportOPWithEvaluationPDF from '@salesforce/apex/Add_Report.addReportOPWithEvaluationPDF';
import LightningConfirm from 'lightning/confirm';
export default class LexBeforeOPDPDFBtn extends LightningElement {
    @api recordId;
    accountId;
    userId;
    IsLoading = true;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
            console.log(111);
            console.log(currentPageReference);
        if (currentPageReference) {
          const urlValue = currentPageReference.state.recordId;
          if (urlValue) {
            let str = `${urlValue}`;
            console.log("str");
            console.log(str);
            this.recordId = str;
          }
        }
    }
    connectedCallback(){
        init({
            recordId: this.recordId
        }).then(result=>{
            this.accountId = result.accountId;
            this.userId = result.userId;
            this.beforeOPDPDFBtn();
        })
    }
    beforeOPDPDFBtn(){
        this.handleConfirmClick('是否新建OPD报告书?\n[确定] => 新建OPD\n[取消] => 只生成 [产品试用评价]');
    }
    showToast(msg,type) {
        const event = new ShowToastEvent({
            title: '',
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
    }
    async handleConfirmClick(msg) {
        const result = await LightningConfirm.open({
            message: msg,
            variant: 'headerless',
            label: 'this is the aria-label value',
        });
        console.log(result);
        if(result){
            try {
                selectCommonSequence({
                    valueField: 'EvaluationPDF_NextValue__c',
                    formatField: 'EvaluationPDF_Format__c'
                }).then(result=>{
                    var pdfno = result;
                    addReportOPWithEvaluationPDF({
                        "repOwnerId": this.userId,
                        "reportId": "",
                        "dailyReportId": "",
                        "eventId": "",
                        "recordType": "OPD",
                        "aId": this.accountId,
                        "visitor1": "",
                        "visitor2": "",
                        "visitor3": "",
                        "visitor4": "",
                        "visitor5": "",
                        "opp1": this.recordId,
                        "opp2": "",
                        "opp3": "",
                        "opp4": "",
                        "opp5": "",
                        "reportDate": "",
                        "evaluationPDFNumber": pdfno
                    }).then(()=>{
                        // 20220913 ljh WLIG-CHMATN update end
                        this.IsLoading = false;
                        window.open('/apex/BeforeOPDPDF?oid=' + this.recordId + '&pdfNo=' + pdfno, 'BeforeOPDPDF');
                        this.dispatchEvent(new CloseActionScreenEvent());
                    })
                });
                } catch(e) {
                    this.showToast(e,"error");
                    this.dispatchEvent(new CloseActionScreenEvent());
                }
        }else{
            window.open('/apex/BeforeOPDPDF?oid=' + this.recordId, 'BeforeOPDPDF');
            this.dispatchEvent(new CloseActionScreenEvent());
        }
    }
}
force-app/main/default/lwc/lexBeforeOPDPDFBtn/lexBeforeOPDPDFBtn.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexBeforeOPDPDFBtnSIS/lexBeforeOPDPDFBtnSIS.css
New file
@@ -0,0 +1,10 @@
.lexBeforeOPDPDFBtnSISHolder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display: none !important;
}
force-app/main/default/lwc/lexBeforeOPDPDFBtnSIS/lexBeforeOPDPDFBtnSIS.html
New file
@@ -0,0 +1,14 @@
<!--
 * @Description:
 * @version:
 * @Author: chen jing wu
 * @Date: 2023-04-13 15:55:45
 * @LastEditors: chen jing wu
 * @LastEditTime: 2023-04-13 15:56:58
-->
<template>
    <div class="lexBeforeOPDPDFBtnSISHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
        <lightning-button label="Show Toast" onclick={showSuccess}></lightning-button>
    </div>
</template>
force-app/main/default/lwc/lexBeforeOPDPDFBtnSIS/lexBeforeOPDPDFBtnSIS.js
New file
@@ -0,0 +1,97 @@
/*
 * @Description:
 * @version:
 * @Author: chen jing wu
 * @Date: 2023-04-13 15:55:45
 * @LastEditors: chen jing wu
 * @LastEditTime: 2023-04-13 16:04:14
 */
import { api, wire,LightningElement } from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import init  from '@salesforce/apex/OpportunityLightingButtonController.initFoBeforeOPDPDFBtnSISButton';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import selectCommonSequence from '@salesforce/apex/ControllerUtil.selectCommonSequence';
import addReportOPWithEvaluationPDF from '@salesforce/apex/Add_Report.addReportOPWithEvaluationPDF';
export default class LexBeforeOPDPDFBtnSIS extends LightningElement {
    @api recordId;
    accountId;
    userId;
    IsLoading = true;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
            console.log(111);
            console.log(currentPageReference);
        if (currentPageReference) {
          const urlValue = currentPageReference.state.recordId;
          if (urlValue) {
            let str = `${urlValue}`;
            console.log("str");
            console.log(str);
            this.recordId = str;
          }
        }
    }
    connectedCallback(){
        init({
            recordId: this.recordId
        }).then(result=>{
            this.accountId = result.accountId;
            this.userId = result.userId;
            this.beforeOPDPDFBtn();
        })
    }
    beforeOPDPDFBtn(){
        if (window.confirm('是否新建SIS报告书?')) {
            try {
            selectCommonSequence({
                valueField: 'EvaluationPDF_NextValue__c',
                formatField: 'EvaluationPDF_Format__c'
            }).then(result=>{
                var pdfno = result;
                addReportOPWithEvaluationPDF({
                    "repOwnerId": this.userId,
                    "reportId": "",
                    "dailyReportId": "",
                    "eventId": "",
                    "recordType": "SIS",
                    "aId": this.accountId,
                    "visitor1": "",
                    "visitor2": "",
                    "visitor3": "",
                    "visitor4": "",
                    "visitor5": "",
                    "opp1": this.recordId,
                    "opp2": "",
                    "opp3": "",
                    "opp4": "",
                    "opp5": "",
                    "reportDate": "",
                    "evaluationPDFNumber": pdfno
                }).then(()=>{
                    // 20220913 ljh WLIG-CHMATN update end
                    this.IsLoading = false;
                    window.open('/apex/BeforeOPDPDF?oid=' + this.recordId + '&pdfNo=' + pdfno, 'BeforeOPDPDF');
                    this.dispatchEvent(new CloseActionScreenEvent());
                })
            });
            } catch(e) {
                this.showToast(e,"error");
                this.dispatchEvent(new CloseActionScreenEvent());
            }
        } else {
            window.open('/apex/BeforeOPDPDF?oid=' + this.recordId, 'BeforeOPDPDF');
            this.dispatchEvent(new CloseActionScreenEvent());
        }
    }
    showToast(msg,type) {
        const event = new ShowToastEvent({
            title: '',
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
    }
}
force-app/main/default/lwc/lexBeforeOPDPDFBtnSIS/lexBeforeOPDPDFBtnSIS.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexBidAnnouncementApplyForButton/lexBidAnnouncementApplyForButton.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="ApplyFor" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexBidAnnouncementApplyForButton/lexBidAnnouncementApplyForButton.js
New file
@@ -0,0 +1,74 @@
import { LightningElement,wire,track,api} from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import  init  from '@salesforce/apex/BidAnnouncementController.BidAnnouncementController';
import  ApplyFor  from '@salesforce/apex/BidAnnouncementController.ApplyFor';
import { updateRecord } from 'lightning/uiRecordApi';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
export default class lexBidAnnouncementApplyForButton extends LightningElement {
    @api recordId;//OwnerId
    ownerId;//所有人id
    id;//返回值的id
    IsLoading = true;
    arrMessage = [];
    @wire(CurrentPageReference)
     getStateParameters(currentPageReference) {
         if (currentPageReference) {
           const urlValue = currentPageReference.state.recordId;
           if (urlValue) {
             let str = `${urlValue}`;
             this.recordId = str;
           }
         }
     }
    connectedCallback(){
        this.IsLoading = false;
        this.ApplyFor();
    }
    ApplyFor(){
        ApplyFor({recordId:this.recordId}).then(res=>{
            console.log(res);
            if(res == '1'){
                this.showToast('请求申请成功,申请中。。。','success');
                this.updateRecordView();
            }else{
                var messageage = "";
                messageage = res.split(',')[1];
                this.showToast(messageage,'error');
            }
        })
    }
    updateRecordView() {
        updateRecord({fields: { Id: this.recordId }});
    }
    showToast(msg,type) {
        const event = new ShowToastEvent({
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
        this.dispatchEvent(new CloseActionScreenEvent());
    }
}
// var Bid_Announcement = new sforce.SObject("Bid_Announcement__c");
// Bid_Announcement.Id = "{!Bid_Announcement__c.Id}";
// Bid_Announcement.Status__c = "申请中";
// Bid_Announcement.Request_flag__c = "true";
// Bid_Announcement.Request_user__c = "{!$User.Id}";
// var serverTimestamp = sforce.connection.getServerTimestamp();
// Bid_Announcement.Request_date__c = serverTimestamp.timestamp;
// var result = sforce.connection.update([Bid_Announcement]);
// var messages = getConnectDMLErrorMessages(result);
// if (messages.length > 0) {
// alert(messages.join("\n"));
// }
// location.reload();
force-app/main/default/lwc/lexBidAnnouncementApplyForButton/lexBidAnnouncementApplyForButton.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexBidAnnouncementConsentButton/lexBidAnnouncementConsentButton.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="Consent" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexBidAnnouncementConsentButton/lexBidAnnouncementConsentButton.js
New file
@@ -0,0 +1,83 @@
import { LightningElement,wire,track,api} from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import  ConSent  from '@salesforce/apex/BidAnnouncementController.ConSent';
import { updateRecord } from 'lightning/uiRecordApi';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
export default class lexBidAnnouncementRejectButton extends LightningElement {
    @api recordId;//OwnerId
    ownerId;//所有人id
    id;//返回值的id
    IsLoading = true;
    arrMessage = [];
    BidCancel = null;
    @wire(CurrentPageReference)
     getStateParameters(currentPageReference) {
         if (currentPageReference) {
           const urlValue = currentPageReference.state.recordId;
           if (urlValue) {
             let str = `${urlValue}`;
             this.recordId = str;
           }
         }
     }
    connectedCallback(){
        this.IsLoading = false;
        this.Consent();
    }
    Consent(){
        ConSent({recordId:this.recordId}).then(res=>{
            console.log(res);
            if(res == '1'){
                this.showToast("同意请求成功","success");
            }
            if(res != "1"){
                var messageage = "";
                messageage = res.split(',')[1];
                this.showToast(messageage,"error");
            }
        })
    }
    updateRecordView() {
        updateRecord({fields: { Id: this.recordId }});
    }
    showToast(msg,type) {
        const event = new ShowToastEvent({
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
        if(type == 'success'){
            this.updateRecordView();
        }
        this.dispatchEvent(new CloseActionScreenEvent());
    }
}
// var Bid_Announcement = new sforce.SObject("Bid_Announcement__c");
// Bid_Announcement.Id = "{!Bid_Announcement__c.Id}";
// Bid_Announcement.Status__c = "处理完毕";
// Bid_Announcement.Complete__c = "true";
// Bid_Announcement.Agree_user__c = "{!$User.Id}";
// var serverTimestamp = sforce.connection.getServerTimestamp();
// Bid_Announcement.Complete_date__c = serverTimestamp.timestamp;
// var result = sforce.connection.update([Bid_Announcement]);
// var messages = getConnectDMLErrorMessages(result);
// if (messages.length > 0) {
// alert(messages.join("\n"));
// }
// location.reload();
force-app/main/default/lwc/lexBidAnnouncementConsentButton/lexBidAnnouncementConsentButton.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexBidAnnouncementRejectButton/lexBidAnnouncementRejectButton.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="reject" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexBidAnnouncementRejectButton/lexBidAnnouncementRejectButton.js
New file
@@ -0,0 +1,93 @@
import { LightningElement,wire,track,api} from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import  UserInfo_Owner  from '@salesforce/apex/BidAnnouncementController.UserInfo_Owner';
import  Reject  from '@salesforce/apex/BidAnnouncementController.Reject';
import { updateRecord } from 'lightning/uiRecordApi';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
export default class lexBidAnnouncementRejectButton extends LightningElement {
    @api recordId;//OwnerId
    ownerId;//所有人id
    id;//返回值的id
    IsLoading = true;
    arrMessage = [];
    BidCancel = null;
    @wire(CurrentPageReference)
     getStateParameters(currentPageReference) {
         if (currentPageReference) {
           const urlValue = currentPageReference.state.recordId;
           if (urlValue) {
             let str = `${urlValue}`;
             this.recordId = str;
           }
         }
     }
    connectedCallback(){
        this.IsLoading = false;
        this.Reject();
    }
    Reject(){
        UserInfo_Owner().then(res=>{
            console.log(res);
            this.BidCancel = res.BidCancel;
            if(this.BidCancel == false){
                this.showToast('没有驳回的权限',"error");
            }else{
                Reject({
                    recordId: this.recordId
                }).then(requst=>{
                    if(requst == '1'){
                        this.showToast("驳回请求成功","success");
                    }
                    if(requst != "1"){
                        var messageage = "";
                        messageage = requst.split(',')[1];
                        this.showToast(messageage,"error");
                    }
                })
            }
        })
    }
    updateRecordView() {
        updateRecord({fields: { Id: this.recordId }});
    }
    showToast(msg,type) {
        const event = new ShowToastEvent({
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
        if(type == 'success'){
            this.updateRecordView();
        }
        this.dispatchEvent(new CloseActionScreenEvent());
    }
}
// if ('{!$User.BidCancel__c}' == 'false') {
//     alert("没有驳回的权限");
//     } else {
//     var Bid_Announcement = new sforce.SObject("Bid_Announcement__c");
//     Bid_Announcement.Id = "{!Bid_Announcement__c.Id}";
//     Bid_Announcement.Status__c = "草案中";
//     Bid_Announcement.Complete__c = "false";
//     Bid_Announcement.Agree_user__c = null;
//     Bid_Announcement.Complete_date__c = null;
//     Bid_Announcement.Request_flag__c = "false";
//     Bid_Announcement.Request_user__c = null;
//     Bid_Announcement.Request_date__c = null;
//     var result = sforce.connection.update([Bid_Announcement]);
//     var messages = getConnectDMLErrorMessages(result);
//     if (messages.length > 0) {
//     alert(messages.join("\n"));
//     }
//     location.reload();
//     }
force-app/main/default/lwc/lexBidAnnouncementRejectButton/lexBidAnnouncementRejectButton.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexCancel/lexCancel.css
New file
@@ -0,0 +1,10 @@
.cancelHolder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display: none !important;
}
force-app/main/default/lwc/lexCancel/lexCancel.html
New file
@@ -0,0 +1,6 @@
<template>
    <div class="cancelHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
        <lightning-button label="Show Toast" onclick={ShowToastEvent}></lightning-button>
    </div>
</template>
force-app/main/default/lwc/lexCancel/lexCancel.js
New file
@@ -0,0 +1,104 @@
/*
 * @Description:
 * @version:
 * @Author: chen jing wu
 * @Date: 2023-03-27 13:47:21
 * @LastEditors: chen jing wu
 * @LastEditTime: 2023-04-11 16:44:49
 */
import { api, wire,LightningElement } from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import init  from '@salesforce/apex/ReportController.initForCancelButton';
import updateForCancelButton  from '@salesforce/apex/ReportController.updateForCancelButton';
import { updateRecord } from 'lightning/uiRecordApi';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
export default class LexCancel extends LightningElement {
    @api recordId;
    status;
    IsLoading = true;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
            console.log(111);
            console.log(currentPageReference);
        if (currentPageReference) {
          const urlValue = currentPageReference.state.recordId;
          if (urlValue) {
            let str = `${urlValue}`;
            console.log("str");
            console.log(str);
            this.recordId = str;
          }
        }
    }
    connectedCallback(){
        console.log(this.recordId);
        init({
            recordId: this.recordId
        }).then(result => {
            console.log(result);
            if (result != null) {
                this.status = result.status;
                console.log(this.status);
                this.cancel();
            }
        }).catch(error => {
            console.log("error");
            console.log(error);
        });
    }
    showToast(msg,type) {
        const event = new ShowToastEvent({
            title: '',
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
    }
    updateRecordView(recordId) {
        updateRecord({fields: { Id: recordId }});
    }
    cancel () {
        if (this.status == "取消") {
            this.showToast("已经取消!","error");
            this.dispatchEvent(new CloseActionScreenEvent());
            return;
            }
        if (this.status == "批准") {
            this.showToast("已经批准,不能删除!","error");
            this.dispatchEvent(new CloseActionScreenEvent());
            return;
        }
        if (this.status == "完毕") {
            this.showToast("已经完毕,不能删除!","error");
            this.dispatchEvent(new CloseActionScreenEvent());
            return;
        }
        if (this.status == "提交") {
            this.showToast("已经提交,不能删除!","error");
            this.dispatchEvent(new CloseActionScreenEvent());
            return;
        }
        updateForCancelButton({
            recordId: this.recordId
        }).then(result =>{
            if(result){
                this.showToast(result,"error");
            }else{
                this.showToast("取消成功!","success");
                this.updateRecordView(this.recordId);
            }
            this.IsLoading = false;
            this.dispatchEvent(new CloseActionScreenEvent());
        });
    }
}
force-app/main/default/lwc/lexCancel/lexCancel.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexCancelApply/lexCancelApply.html
New file
@@ -0,0 +1,4 @@
<template>
</template>
force-app/main/default/lwc/lexCancelApply/lexCancelApply.js
New file
@@ -0,0 +1,100 @@
import { LightningElement, track, wire, api } from 'lwc';
import LightningConfirm from 'lightning/confirm';
import {CurrentPageReference,NavigationMixin} from 'lightning/navigation';
import { CloseActionScreenEvent } from 'lightning/actions';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import cancelApply from '@salesforce/apex/TransferApplyWebService.cancelApply';
export default class lexCancelApply extends LightningElement {
     @api recordId;
     IsLoading=true;
     cancelResult;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference){
        console.log("进入页面");
        console.log(currentPageReference);
        if(currentPageReference){
            const urvalue=currentPageReference.state.recordId;
            if(urvalue){
                let str=`${urvalue}`;
                console.log('str');
                console.log(str);
                this.recordId=str;
            }
        }
    }
    connectedCallback() {
        console.log('this.raeSetId:' + this.recordId);
        LightningConfirm.open({
            message: '确定取消?',
            variant: 'headerless',
            label: 'this is the aria-label value',
        }).then(cancel=>{
      //       this.IsLoading=false;
            // this.dispatchEvent(new CloseActionScreenEvent());
            if(cancel) {
                cancelApply({
                    taId : this.recordId
                }).then(result => {
                    this.cancelResult = result;
                    this.cancelSubmit().then(res=>{
                        this.IsLoading=false;
                        this.dispatchEvent(new CloseActionScreenEvent());
                    });
                }).catch( error =>{
                    console.log(error);
                }).finally(()=>{
                });
            }
        });
    }
    async cancelSubmit(){
        if(this.cancelResult == '1') {
            await this.showToast("",'取消成功',"success");
            window.location.href = window.location;
        } else {
            console.log("result:",this.cancelResult);
            await this.showToast("",this.cancelResult,"warning");
        }
    }
    showToast(_title,_message,_variant) {
        const event = new ShowToastEvent({
            title: _title,
            message:_message,
            variant: _variant,
        });
        this.dispatchEvent(event);
    }
}
//old js
// {!REQUIRESCRIPT('/soap/ajax/51.0/connection.js')}
// {!REQUIRESCRIPT('/soap/ajax/51.0/apex.js')}
// if (confirm("确定取消?")) {
// var rs = sforce.apex.execute("TransferApplyWebService","cancelApply",{taId:'{!TransferApply__c.Id}'});
// if(rs == '1'){
// alert('取消成功');
// window.location.href = window.location;
// }
// else{
// alert(rs);
// }
// }
force-app/main/default/lwc/lexCancelApply/lexCancelApply.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexCancelApply">
    <apiVersion>51.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__AppPage</target>
        <target>lightning__RecordPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexCancelRemoveBox/lexCancelRemoveBox.html
New file
@@ -0,0 +1,107 @@
<template>
    <!-- <template if:true={showSpinner}>
        <lightning-spinner size="medium" variant="brand"></lightning-spinner>
    </template> -->
    <div style="border: 1px solid #D4D4D4;border-radius:5px;">
        <div style="border-top: 3px solid #51606E;;border-bottom: 1px solid #D4D4D4;padding:3px;">
            <div>
                <p style="font-size: 19px;"><strong>取消拆盒</strong></p>
            </div>
        </div>
        <div style="padding:10px;">
            <div style="border: 1px solid #D4D4D4;border-radius:5px;margin-bottom:7px;">
            <div style="border-top: 3px solid #51606E;border-bottom: 1px solid #D4D4D4;padding:3px;">
                <lightning-button label="取消拆盒确认" title="取消拆盒确认" onclick={saveConfirm}></lightning-button></td>
            </div>
            </div>
            <div style="border: 1px solid #D4D4D4;border-radius:5px;margin-bottom:7px;margin-top:5px;">
                <div style="border-top: 3px solid #51606E;border-bottom: 1px solid #D4D4D4;padding:3px;">
                    <p style="font-size: 19px;"><strong>BarCode录入</strong></p>
                </div>
                <!-- <div style="border-top: 3px solid #51606E;border-bottom: 1px solid #D4D4D4;padding:3px;"> -->
                    <table>
                        <colgroup>
                            <col width="160px" />
                            <col width="100px" />
                            <col width="10px" />
                            <col width="70px" />
                            <col width="100px" />
                            <col width="10px" />
                            <col width="90px" />
                            <col width="100px" />
                            <col width="10px" />
                            <col width="85px" />
                            <col width="100px" />
                            <col width="10px" />
                            <col width="70px" />
                            <col width="100px" />
                        </colgroup>
                        <tbody>
                            <tr>
                                <td></td>
                                <td align="right">Barcode</td>
                                <td style="width:600px"><lightning-textarea name="Barcode" label=""
                                        onchange={handleChange}></lightning-textarea></td>
                                <td align="right"></td>
                                <td></td>
                                <td  style="width: 200px;"><lightning-button label="获取明细" title="获取明细" onclick={getDetails}
                                       ></lightning-button>
                                </td>
                            </tr>
                        </tbody>
                    </table>
                <!-- </div> -->
            </div>
            <div style="border: 1px solid #D4D4D4;border-radius:5px;margin-bottom:7px;">
                <div style="border-top: 3px solid #51606E;border-bottom: 1px solid #D4D4D4;padding:3px;">
                    <p style="font-size: 16px;"><strong>取消拆盒明细</strong></p>
                </div>
                <div style="padding:10px;">
                    <div style="height: 300px;">
                        <template if:true={showTable}>
                            <c-lex-custom-lightning-datatable key-field="prodid" data={data} columns={columns}
                            onrowselection={getSelectedRows} hide-checkbox-column="true"
                            selected-rows={selectedRows}>
                                </c-lex-custom-lightning-datatable>
                        </template>
                    </div>
                </div>
            </div>
            <div style="border: 1px solid #D4D4D4;border-radius:5px;margin-bottom:7px;margin-top:20px">
                <div style="border-top: 3px solid #51606E;border-bottom: 1px solid #D4D4D4;padding:3px;">
                    <table>
                        <tr>
                            <td>
                                <p style="font-size: 16px;"><strong>错误明细</strong></p>
                            </td>
                        </tr>
                    </table>
                </div>
            <div style="padding:10px;">
                <template if:true={showTables}>
                    <!-- <c-lwc-datatable-utility records={overduePageRecords} total-records={overduePageRecords.length}
                        columns={column} key-field="Id" show-search-box="true" max-row-selection={overduePageRecords.length}
                        onpaginatorchange={handlePaginatorChange}>
                    </c-lwc-datatable-utility> -->
                    <c-lex-custom-lightning-datatable key-field="id" data={errorDetail} columns={column}
                    onrowselection={getSelectedRows}   hide-checkbox-column="true"
                   selected-rows={selectedRows}>
               </c-lex-custom-lightning-datatable>
                </template>
            </div>
        </div>
        </div>
    </div>
</template>
force-app/main/default/lwc/lexCancelRemoveBox/lexCancelRemoveBox.js
New file
@@ -0,0 +1,83 @@
import { LightningElement, wire, api, track } from 'lwc';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
const columns = [
    {
      label: '消耗品名称',
      fieldName: 'Name__c',
      initialWidth: 350,
    },
    {
      label: '规格',
      fieldName: 'ProductPacking_list_manual__c',
      hideDefaultActions: true,
      initialWidth: 250,
    },
    {
      label: 'CFDA状态',
      fieldName: 'CFDA_Status__c',
      hideDefaultActions: true,
      initialWidth: 250,
    },
    {
      label: '注册证编码号',
      fieldName: 'Report_Product_Approbation__c',
      hideDefaultActions: true,
      initialWidth: 250,
    },
    {
      label: '注册证效期',
      fieldName: 'Report_Product_Expiration__c',
      hideDefaultActions: true,
      initialWidth: 250,
    },
    {
      label: 'BarCode',
      fieldName: 'Bar_Code__c',
      hideDefaultActions: true,
      initialWidth: 250,
    }
  ];
  const column = [
    {
      label: '消耗品名称',
      fieldName: 'Name__c',
    },
    {
      label: 'BarCode',
      fieldName: 'Bar_Code__c',
      hideDefaultActions: true,
    }
    ,
    {
      label: '错误原因',
      fieldName: 'ErrorReason',
      hideDefaultActions: true,
    }
  ];
export default class LexCancelRemoveBox extends LightningElement {
    columns = columns;
    column = column;
    @track selectedRows = [];
    @track data = [];
    @track errorDetail = [];
    // 显示
    @track showTable = false
    @track accountName
    @track userWorkLocation
    @track agencyProType
    @track barcode = ''
}
force-app/main/default/lwc/lexCancelRemoveBox/lexCancelRemoveBox.js-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>56.0</apiVersion>
  <isExposed>true</isExposed>
    <targets>
        <target>lightningCommunity__Page</target>
        <target>lightningCommunity__Default</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexCancelReport/lexCancelReport.css
New file
@@ -0,0 +1,10 @@
.cancelReportHolder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display: none !important;
}
force-app/main/default/lwc/lexCancelReport/lexCancelReport.html
New file
@@ -0,0 +1,6 @@
<template>
    <div class="cancelReportHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
        <lightning-button label="Show Toast" onclick={ShowToastEvent}></lightning-button>
    </div>
</template>
force-app/main/default/lwc/lexCancelReport/lexCancelReport.js
New file
@@ -0,0 +1,116 @@
import { api, wire,LightningElement } from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import init  from '@salesforce/apex/OpportunityLightingButtonController.initForCancelReportButton';
import queryForCancelReportButton  from '@salesforce/apex/OpportunityLightingButtonController.queryForCancelReportButton';
import { updateRecord } from 'lightning/uiRecordApi';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
export default class LexCancelReport extends LightningElement {
    @api recordId;
    stageName;
    sapSendOK;
    cntLostCancelReport;
    cntLostCancelDraft;
    jobCategory;
    biddingProjectNameBid;
    name;
    salesAssistantName;
    salesAssistantID;
    managerName;
    salesManagerDepartmentID;
    salesOwnerBuchang;
    salesOwnerBuchangID;
    IsLoading = true;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
            console.log(111);
            console.log(currentPageReference);
        if (currentPageReference) {
          const urlValue = currentPageReference.state.recordId;
          if (urlValue) {
            let str = `${urlValue}`;
            console.log("str");
            console.log(str);
            this.recordId = str;
          }
        }
    }
    connectedCallback(){
        init({
            recordId: this.recordId
        }).then(result=>{
            this.stageName = result.stageName;
            this.sapSendOK = result.sapSendOK;
            this.cntLostCancelDraft = result.cntLostCancelDraft;
            this.cntLostCancelReport = result.cntLostCancelReport;
            this.jobCategory = result.jobCategory;
            this.biddingProjectNameBid = result.biddingProjectNameBid;
            this.name = result.name;
            this.salesAssistantID = result.salesAssistantID;
            this.salesAssistantName = result.salesAssistantName;
            this.managerName = result.managerName;
            this.salesManagerDepartmentID = result.salesManagerDepartmentID;
            this.salesOwnerBuchang = result.salesOwnerBuchang;
            this.salesOwnerBuchangID = result.salesOwnerBuchangID;
            this.cancelReport();
        })
    }
    showToast(msg,type) {
        const event = new ShowToastEvent({
            title: '',
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
    }
    updateRecordView(recordId) {
        updateRecord({fields: { Id: recordId }});
    }
    cancelReport(){
        //XLIU-CG98L5 【委托】【评估】新需求-招标项目/询价对应流标、废标改善 start
        queryForCancelReportButton({
            recordId: this.recordId
        }).then(result=>{
            var sqlResult = result;
            // alert('测试+:'+sqlResult.size);
            //XLIU-CG98L5 【委托】【评估】新需求-招标项目/询价对应流标、废标改善 end
            // jsの場合、翻訳された値がでるので、要注意
            if (this.stageName != '引合'
            && this.stageName != '询价'
            ) {
                this.showToast("状态1:" + this.stageName + "、不能做 取消 了!","error");
            }
            else if (this.sapSendOK == '1') {
                this.showToast("已经上传SAP、不能做 取消 了!","");
            }
            else if (this.cntLostCancelReport - this.cntLostCancelDraft > 0) {
                this.showToast("询价已经有 取消/失单报告 了!","error");
            }
            else if (this.jobCategory == '支援') {
                this.showToast("询价所有人是助理的,先请修改到销售担当!","");
            }
            //XLIU-CG98L5 【委托】【评估】新需求-招标项目/询价对应流标、废标改善 start
            //else if({!NOT(ISBLANK(Opportunity.Bidding_Project_Name_Bid__c))}&& '{!Opportunity.subInfoType__c}' != '3-1:废标公告' &&'{!Opportunity.subInfoType__c}' != '3-2:流标公告'){
            else if(this.biddingProjectNameBid != undefined && sqlResult.size == 0){
                this.showToast("有招投标项目时只能做失单或部分失单报告!","error");
            }
            //XLIU-CG98L5 【委托】【评估】新需求-招标项目/询价对应流标、废标改善 end
            else {
            location.href = '/a1U/e?retURL=%2F'+ this.recordId +
            '&RecordType=01210000000R4hH' +
            '&CF00N10000004lbGT=' + this.name +
            '&CF00N10000004lbGT_lkid=' + this.recordId +
            '&CF00N10000006QShg=' + this.salesAssistantName +
            '&CF00N10000006QShg_lkid=' + this.salesAssistantID +
            '&CF00N10000006QShq='+ this.managerName +
            '&CF00N10000006QShq_lkid=' + this.salesManagerDepartmentID +
            '&CF00N10000006QShb=' + this.salesOwnerBuchang +
            '&CF00N10000006QShb_lkid=' + this.salesOwnerBuchangID +
            '';
        }
        this.dispatchEvent(new CloseActionScreenEvent());
        });
    }
}
force-app/main/default/lwc/lexCancelReport/lexCancelReport.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexCancelSelect/lexCancelSelect.css
New file
@@ -0,0 +1,11 @@
.Holder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display : none !important;
}
force-app/main/default/lwc/lexCancelSelect/lexCancelSelect.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="Holder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexCancelSelect/lexCancelSelect.js
New file
@@ -0,0 +1,53 @@
import { LightningElement,api, track, wire } from 'lwc';
import {CurrentPageReference} from 'lightning/navigation';
import { CloseActionScreenEvent } from 'lightning/actions';
import init from '@salesforce/apex/SelectSubstituteControllerLWT.initFromSelectSubstituteButton';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
export default class lexCancelSelect extends LightningElement {
    @api recordId;
    IsLoading=true;
    id;
    RentalApplyId;
    Status;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference){
        console.log("进入页面");
        console.log(currentPageReference);
        if(currentPageReference){
            const urvalue=currentPageReference.state.recordId;
            if(urvalue){
                let str=`${urvalue}`;
                console.log('str');
                console.log(str);
                this.recordId=str;
            }
        }
    }
    connectedCallback(){
        console.log(this.recordId);
        init({recordId:this.recordId}).then(result=>{
            console.log(result);
            if(result!=null){
                this.id=result.id;
                this.RentalApplyId=result.RentalApplyId;
                this.Status=result.Status;
                this.cancelSubmit().then(res=>{
                    this.IsLoading=false;
                    this.dispatchEvent(new CloseActionScreenEvent());
                });
            }
        }).catch(err=>{
            console.log("error:");
            console.log(err);
        }).finally(()=>{
        });
    }
    async cancelSubmit(){
        window.open("/apex/EquipmentRentalCancel?raid="+this.RentalApplyId,'cancelSelect','width=500,height=250');
    }
}
force-app/main/default/lwc/lexCancelSelect/lexCancelSelect.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexCancelSelect">
    <apiVersion>51.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__AppPage</target>
        <target>lightning__RecordPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexCancelSubmit/lexCancelSubmit.css
New file
@@ -0,0 +1,10 @@
.cancelSubmitHolder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display: none !important;
}
force-app/main/default/lwc/lexCancelSubmit/lexCancelSubmit.html
New file
@@ -0,0 +1,6 @@
<template>
    <div class="cancelSubmitHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
        <lightning-button label="Show Toast" onclick={showSuccess}></lightning-button>
    </div>
</template>
force-app/main/default/lwc/lexCancelSubmit/lexCancelSubmit.js
New file
@@ -0,0 +1,92 @@
/*
 * @Description:
 * @version:
 * @Author: chen jing wu
 * @Date: 2023-04-07 09:02:03
 * @LastEditors: chen jing wu
 * @LastEditTime: 2023-04-11 11:17:24
 */
import { LightningElement,wire,track,api} from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import { NavigationMixin } from 'lightning/navigation';
import init  from '@salesforce/apex/MonthlyReportController.initForCancelSubmitButton';
import cancel  from '@salesforce/apex/MonthlyReportController.cancel';
import UserInfo_Owner from '@salesforce/apex/TaskFeedbackController.UserInfo_Owner';
import { updateRecord } from 'lightning/uiRecordApi';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
export default class LexCancelSubmit extends LightningElement {
    @api recordId;//OwnerId
    ownerId;
    monthlyReportId;
    IsLoading = true;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
            console.log(111);
            console.log(currentPageReference);
        if (currentPageReference) {
          const urlValue = currentPageReference.state.recordId;
          if (urlValue) {
            let str = `${urlValue}`;
            console.log("str");
            console.log(str);
            this.recordId = str;
          }
        }
    }
    connectedCallback () {
        console.log(this.recordId);
        init({
            recordId: this.recordId
        }).then(result => {
            console.log(result);
            if (result != null) {
                this.ownerId = result.ownerId;
                this.monthlyReportId = result.Id;
                this.cancelSubmit();
                console.log("end");
                //window.location.replace("https://ocsm--partial.sandbox.lightning.force.com/lightning/r/Monthly_Report__c/" + this.monthlyReportId + "/view");
            }
        }).catch(error => {
            console.log("error");
            console.log(error);
        });
    }
    showToast(msg,type) {
        const event = new ShowToastEvent({
            title: '',
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
    }
    updateRecordView(recordId) {
        updateRecord({fields: { Id: recordId }});
    }
    cancelSubmit () {
        //需要完善
        if(this.ownerId == UserInfo_Owner.Id) {
            cancel({
                recordId: this.recordId
            }).then(result=>{
                if(result){
                    this.showToast(result,"error");
                }else{
                    this.showToast("成功","success");
                    this.updateRecordView(this.recordId);
                }
                this.IsLoading = false;
                this.dispatchEvent(new CloseActionScreenEvent());
            });
            console.log("321");
            } else {
            this.showToast("只有周报的所有人可以取消","error");
            this.dispatchEvent(new CloseActionScreenEvent());
            }
    }
}
force-app/main/default/lwc/lexCancelSubmit/lexCancelSubmit.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
     <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexCancelSubmitReport/lexCancelSubmitReport.css
New file
@@ -0,0 +1,10 @@
.cancelSubmitReportHolder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display: none !important;
}
force-app/main/default/lwc/lexCancelSubmitReport/lexCancelSubmitReport.html
New file
@@ -0,0 +1,6 @@
<template>
    <div class="cancelSubmitReportHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
        <lightning-button label="Show Toast" onclick={ShowToastEvent}></lightning-button>
    </div>
</template>
force-app/main/default/lwc/lexCancelSubmitReport/lexCancelSubmitReport.js
New file
@@ -0,0 +1,68 @@
/*
 * @Description:
 * @version:
 * @Author: chen jing wu
 * @Date: 2023-04-07 09:02:03
 * @LastEditors: chen jing wu
 * @LastEditTime: 2023-04-11 11:18:36
 */
import { LightningElement,wire,track,api} from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import cancel  from '@salesforce/apex/ReportController.updateForCancelSubmitReportButton';
import { updateRecord } from 'lightning/uiRecordApi';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
export default class LexCancelSubmitReport extends LightningElement {
    @api recordId;
    IsLoading = true;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
            console.log(111);
            console.log(currentPageReference);
        if (currentPageReference) {
          const urlValue = currentPageReference.state.recordId;
          if (urlValue) {
            let str = `${urlValue}`;
            console.log("str");
            console.log(str);
            this.recordId = str;
          }
        }
    }
    connectedCallback(){
        console.log(this.recordId);
        this.cancelSubmit();
    }
    cancelSubmit(){
        cancel({
            recordId: this.recordId
        }).then(result =>{
            if(result){
                this.showToast(result,"error");
            }else{
                this.showToast("取消提交成功!","success");
                this.updateRecordView(this.recordId);
            }
            this.IsLoading = false;
            this.dispatchEvent(new CloseActionScreenEvent());
        });
    }
    updateRecordView(recordId) {
        updateRecord({fields: { Id: recordId }});
    }
    showToast(msg,type) {
        const event = new ShowToastEvent({
            title: '',
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
    }
}
force-app/main/default/lwc/lexCancelSubmitReport/lexCancelSubmitReport.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexClearReturnDeliverySlip/lexClearReturnDeliverySlip.css
New file
@@ -0,0 +1,11 @@
.Holder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display : none !important;
}
force-app/main/default/lwc/lexClearReturnDeliverySlip/lexClearReturnDeliverySlip.html
New file
@@ -0,0 +1,5 @@
<template>
  <div class="Holder" if:true={IsLoading}>
              <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
  </div>
</template>
force-app/main/default/lwc/lexClearReturnDeliverySlip/lexClearReturnDeliverySlip.js
New file
@@ -0,0 +1,107 @@
import { LightningElement,api, track, wire } from 'lwc';
import {CurrentPageReference} from 'lightning/navigation';
import { CloseActionScreenEvent } from 'lightning/actions';
import getUserId from '@salesforce/apex/RentalApplyControllerLWT.getUserId';
import init from '@salesforce/apex/SelectSubstituteControllerLWT.initClearReturnDeliverySlipButton';
import updateRaescList from '@salesforce/apex/SelectSubstituteControllerLWT.updateRaescList';
import selectRacById from '@salesforce/apex/SelectSubstituteControllerLWT.selectRacById';
import selectRaesdcId from '@salesforce/apex/SelectSubstituteControllerLWT.selectRaesdcId';
import { loadScript } from 'lightning/platformResourceLoader';
import { submitForApproval } from 'lightning/uiRecordApi';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
export default class lexClearReturnDeliverySlip extends LightningElement {
    @api recordId;
    id;
    RentalApplyId;
    Status;
    IsLoading=true;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference){
        console.log("进入页面");
        console.log(currentPageReference);
        if(currentPageReference){
            const urvalue=currentPageReference.state.recordId;
            if(urvalue){
                let str=`${urvalue}`;
                console.log('str');
                console.log(str);
                this.recordId=str;
            }
        }
    }
    connectedCallback(){
        console.log(this.recordId);
        init({recordId:this.recordId}).then(result=>{
            console.log(result);
            if(result!=null){
                this.Rental_Apply_Equipment_Set__c=result;
                this.cancelSubmit().then(res=>{
                    this.IsLoading=false;
                    this.dispatchEvent(new CloseActionScreenEvent());
                });
            }
        }).catch(err=>{
            console.log("error:");
            console.log(err);
        }).finally(()=>{
        });
    }
    async cancelSubmit(){
        console.log("hhh1");
        var raesId = this.recordId;
        console.log("hhh2");
        var result = await selectRaesdcId({recordId:this.recordId});
        console.log("hhh3");
        var objs = result;
        if (objs.length< 1) {
            // alert('没有需要清空的一览明细');
            const event = new ShowToastEvent({
                title: '提示信息',
                message:'没有需要清空的一览明细'
            });
            this.dispatchEvent(event);
        } else {
            console.log("hhh4");
            var result;
            console.log("hhh5");
            await updateRaescList({updateList:objs})
            .then(res=>{
                console.log(res);
                result=res;
            });
            console.log("hhh6");
            if (result.success==true) {
                console.log("hhh7");
                // success
                // alert("回寄运输单信息已清空");
                const event = new ShowToastEvent({
                    title: '提示信息',
                    message:"回寄运输单信息已清空"
                });
                this.dispatchEvent(event);
                setTimeout(function() {
                    location.href = "/"+this.recordId;
                }, 100);
            } else {
                console.log("hhh8");
                // alert("failed to update:" + result.errors.fields + " " + result[0].errors.message);
                const event = new ShowToastEvent({
                    title: '提示信息',
                    message:"failed to update:" + result.errors.fields + " " + result[0].errors.message
                });
                this.dispatchEvent(event);
            }
        }
    }
}
force-app/main/default/lwc/lexClearReturnDeliverySlip/lexClearReturnDeliverySlip.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexClearReturnDeliverySlip">
    <apiVersion>51.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__AppPage</target>
        <target>lightning__RecordPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexComplete/lexComplete.css
New file
@@ -0,0 +1,10 @@
.completeHolder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display: none !important;
}
force-app/main/default/lwc/lexComplete/lexComplete.html
New file
@@ -0,0 +1,6 @@
<template>
    <div class="completeHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
        <lightning-button label="Show Toast" onclick={ShowToastEvent}></lightning-button>
    </div>
</template>
force-app/main/default/lwc/lexComplete/lexComplete.js
New file
@@ -0,0 +1,96 @@
/*
 * @Description:
 * @version:
 * @Author: chen jing wu
 * @Date: 2023-04-07 09:02:03
 * @LastEditors: chen jing wu
 * @LastEditTime: 2023-04-11 11:21:30
 */
import { LightningElement,wire,track,api} from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import init  from '@salesforce/apex/ReportController.initForCompleteButton';
import updateForCompleteButton  from '@salesforce/apex/ReportController.updateForCompleteButton';
import UserInfo_Owner from '@salesforce/apex/TaskFeedbackController.UserInfo_Owner';
import { updateRecord } from 'lightning/uiRecordApi';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
export default class LexComplete extends LightningElement {
    @api recordId;
    profileId;
    status;
    IsLoading = true;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
            console.log(111);
            console.log(currentPageReference);
        if (currentPageReference) {
          const urlValue = currentPageReference.state.recordId;
          if (urlValue) {
            let str = `${urlValue}`;
            console.log("str");
            console.log(str);
            this.recordId = str;
          }
        }
    }
    connectedCallback () {
        console.log(this.recordId);
        init({
            recordId: this.recordId
        }).then(result => {
            console.log(result);
            if (result != null) {
                this.status = result.status;
                this.profileId = result.profileId;
                this.complete();
                //window.location.replace("https://ocsm--partial.sandbox.lightning.force.com/lightning/r/Report__c/" + this.recordId + "/view");
            }
        }).catch(error => {
            console.log("error");
            console.log(error);
        });
        //this.updateRecordView(this.recordId);
    }
    showToast(msg,type) {
        const event = new ShowToastEvent({
            title: '',
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
    }
    updateRecordView(recordId) {
        updateRecord({fields: { Id: recordId }});
    }
    complete () {
        // 陆胜,胡迪安,系统管理员以外没有权限
        if (UserInfo_Owner.Id != "00510000004reg2" && UserInfo_Owner.Id != "00510000000gWAE" && this.profileId != "00e10000000Y3o5") {
            this.showToast("你没有权限","error");
            return;
        }
        if (this.status == "完毕") {
            this.showToast("已经完毕!","error");
            return;
        }
        updateForCompleteButton({
            recordId: this.recordId
        }).then(result =>{
            if(result){
                this.showToast(result,"error");
            }else{
                this.updateRecordView(this.recordId);
                this.showToast("完毕成功!","success");
            }
            this.IsLoading = false;
            this.dispatchEvent(new CloseActionScreenEvent());
        });
    }
}
force-app/main/default/lwc/lexComplete/lexComplete.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexConInvoiceView/lexConInvoiceView.css
New file
@@ -0,0 +1,29 @@
.outerBorderCss{
    border: 1px solid #D4D4D4;
    border-radius : 5px;
    border-top : 3px solid #565959;
}
.borderCss{
    border: 1px solid #D4D4D4;
    border-radius : 5px;
    margin-bottom : 7px;
    border-top : 3px solid #565959;
}
.headerDorderCss{
    border-top: 1px solid #565959;
    border-bottom: 1px solid #D4D4D4;
    padding:3px;
}
.centerCss{
    text-align: center;
}
.centerCss .left{
    margin-left: 100px;
}
.datatable {
    max-height: 400px !important;
}
.tableColumn {
    margin-top: 5px !important;
    overflow-x: auto;
}
force-app/main/default/lwc/lexConInvoiceView/lexConInvoiceView.html
New file
@@ -0,0 +1,462 @@
<!-- sldsValidatorIgnore -->
<!-- sldsValidatorIgnore -->
<template>
    <template if:true={isShowSpinner}>
        <lightning-spinner alternative-text="Loading" size="large"></lightning-spinner>
    </template>
    <template if:false={isConInvoiceList}>
        <!-- 搜索客户名 -->
        <template if:true={isModalOpen}>
            <!-- Modal/Popup Box LWC starts here -->
            <section role="dialog" tabindex="-1" aria-labelledby="modal-heading-01" aria-modal="true"
                aria-describedby="modal-content-id-1" class="slds-modal slds-fade-in-open">
                <div class="slds-modal__container">
                    <!-- Modal/Popup Box LWC header here -->
                    <header class="slds-modal__header">
                        <button class="slds-button slds-button_icon slds-modal__close slds-button_icon-inverse"
                            title="Close" onclick={closeModal}>
                            <lightning-icon icon-name="utility:close" alternative-text="close" variant="inverse"
                                size="small"></lightning-icon>
                            <span class="slds-assistive-text">Close</span>
                        </button>
                        <h2 id="modal-heading-01" class="slds-text-heading_medium slds-hyphenate">
                            经销商医院检索
                        </h2>
                    </header>
                    <!-- Modal/Popup Box LWC body starts here -->
                    <div class="slds-modal__content slds-p-around_medium" id="modal-content-id-1">
                        <lightning-layout>
                            <lightning-layout-item flexibility="auto" padding="around-small">
                                <lightning-input type="text" label="医院名称" onchange={dataChange}
                                    data-field="searchHospitalName" value={searchHospitalName}
                                    variant="label-inline"></lightning-input>
                            </lightning-layout-item>
                            <lightning-layout-item flexibility="auto" padding="around-small">
                                <lightning-button label="检索" onclick={searchHospital}></lightning-button>
                            </lightning-layout-item>
                        </lightning-layout>
                        <div class="tableColumn">
                            <lightning-layout class="datatable">
                                <lightning-datatable class="datatabel slds-border_top" key-field="id"
                                    data={hospitalList} columns={hospitalColumns} hide-checkbox-column="true"
                                    onrowaction={searchHandleRowAction}>
                                </lightning-datatable>
                            </lightning-layout>
                        </div>
                    </div>
                    <!-- Modal/Popup Box LWC footer starts here -->
                    <footer class="slds-modal__footer">
                        <button class="slds-button slds-button_neutral" onclick={closeModal} title="Cancel">
                            关闭
                        </button>
                    </footer>
                </div>
            </section>
            <div class="slds-backdrop slds-backdrop_open"></div>
        </template>
        <div class="outerBorderCss">
            <div style="padding:5px;">
                <div class="borderCss">
                    <div style="padding:10px;">
                        <div lwc:dom="manual" class="resultDiv"></div>
                        <div draggable="false">
                            <lightning-layout>
                                <template if:true={EditAble}>
                                    <lightning-layout-item flexibility="auto" padding="around-small">
                                        <lightning-button label="确定" onclick={SaveJs}></lightning-button>
                                    </lightning-layout-item>
                                </template>
                                <template if:false={EditAble}>
                                    <lightning-layout-item flexibility="auto" padding="around-small">
                                        <lightning-button label="编辑" onclick={SetEditAbleJs}
                                            disabled={isDisabledEdit}></lightning-button>
                                    </lightning-layout-item>
                                    <lightning-layout-item flexibility="auto" padding="around-small">
                                        <lightning-button label="提交" onclick={approvalJs}
                                            disabled={isDisabledEdit}></lightning-button>
                                    </lightning-layout-item>
                                    <lightning-layout-item flexibility="auto" padding="around-small">
                                        <lightning-button label="显示明细" onclick={openReportJs}></lightning-button>
                                    </lightning-layout-item>
                                    <lightning-layout-item flexibility="auto" padding="around-small">
                                        <lightning-button label="作废重开" onclick={reopenJs}
                                            disabled={isDisabledReopen}></lightning-button>
                                    </lightning-layout-item>
                                    <lightning-layout-item flexibility="auto" padding="around-small">
                                        <lightning-button label="删除" onclick={deleteButtonJs}
                                            disabled={isDisabledDelete}></lightning-button>
                                    </lightning-layout-item>
                                </template>
                            </lightning-layout>
                        </div>
                    </div>
                </div>
                <div class="borderCss">
                    <div class="headerDorderCss">
                        <p style="font-size: 16px;"><strong>发票信息</strong></p>
                    </div>
                    <div style="padding:10px;">
                        <div lwc:dom="manual" class="resultDiv"></div>
                        <div draggable="false">
                            <!--发票信息 显示用 -->
                            <template if:false={isEditInvoice}>
                                <lightning-record-edit-form object-api-name="Consumable_order__c" record-id={cocId}>
                                    <!-- 发票号 状态 -->
                                    <lightning-layout multiple-rows="true">
                                        <lightning-layout-item class="hehe-layoutItem" size="4">
                                            <lightning-output-field field-name="Name"></lightning-output-field>
                                        </lightning-layout-item>
                                        <lightning-layout-item class="hehe-layoutItem" size="4">
                                            <lightning-output-field
                                                field-name="Invoice_status__c"></lightning-output-field>
                                        </lightning-layout-item>
                                    </lightning-layout>
                                    <!-- 发票日期 -->
                                    <lightning-layout multiple-rows="true">
                                        <lightning-layout-item class="hehe-layoutItem" size="4">
                                            <lightning-output-field
                                                field-name="Invoice_Date__c"></lightning-output-field>
                                        </lightning-layout-item>
                                    </lightning-layout>
                                    <!-- 二级经销商 -->
                                    <template if:true={isShowSecondaryDistributor}>
                                        <lightning-layout multiple-rows="true">
                                            <lightning-layout-item class="hehe-layoutItem" size="4">
                                                <lightning-output-field
                                                    field-name="Order_Dealer_Info__c"></lightning-output-field>
                                            </lightning-layout-item>
                                        </lightning-layout>
                                    </template>
                                    <!-- 客户名 -->
                                    <lightning-layout multiple-rows="true">
                                        <lightning-layout-item class="hehe-layoutItem" size="4">
                                            <lightning-output-field
                                                field-name="ShipmentAccount__c"></lightning-output-field>
                                        </lightning-layout-item>
                                    </lightning-layout>
                                    <!-- 科室 发票票面金额 -->
                                    <lightning-layout multiple-rows="true">
                                        <lightning-layout-item class="hehe-layoutItem" size="4">
                                            <lightning-output-field
                                                field-name="Order_ForCustomerText__c"></lightning-output-field>
                                        </lightning-layout-item>
                                        <lightning-layout-item class="hehe-layoutItem" size="4">
                                            <lightning-input label="发票票面金额(元)" value={sumPrice} read-only
                                                variant="label-inline"></lightning-input>
                                        </lightning-layout-item>
                                    </lightning-layout>
                                    <!-- 备注 -->
                                    <lightning-layout multiple-rows="true">
                                        <lightning-layout-item class="hehe-layoutItem" size="4">
                                            <lightning-output-field
                                                field-name="Invoice_Note__c"></lightning-output-field>
                                        </lightning-layout-item>
                                    </lightning-layout>
                                    <!-- 发票附件 明细附件 -->
                                    <lightning-layout multiple-rows="true">
                                        <lightning-layout-item class="hehe-layoutItem" size="4">
                                            <lightning-output-field
                                                field-name="Invoice_attachment__c"></lightning-output-field>
                                        </lightning-layout-item>
                                        <lightning-layout-item class="hehe-layoutItem" size="4">
                                            <lightning-output-field
                                                field-name="Invoicedet_attachment__c"></lightning-output-field>
                                        </lightning-layout-item>
                                    </lightning-layout>
                                </lightning-record-edit-form>
                            </template>
                            <!--发票信息 编辑用 -->
                            <template if:true={isEditInvoice}>
                                <lightning-record-edit-form object-api-name="Consumable_order__c" record-id={cocId}>
                                    <!-- 发票号 状态 -->
                                    <lightning-layout multiple-rows="true">
                                        <lightning-layout-item class="hehe-layoutItem" size="4">
                                            <lightning-input label="发票号" value={OrderCode} data-field="OrderCode"
                                                onchange={dataChange} variant="label-inline" required></lightning-input>
                                        </lightning-layout-item>
                                        <lightning-layout-item class="hehe-layoutItem" size="4">
                                            <lightning-output-field
                                                field-name="Invoice_status__c"></lightning-output-field>
                                        </lightning-layout-item>
                                    </lightning-layout>
                                    <!-- 发票日期 -->
                                    <lightning-layout multiple-rows="true">
                                        <lightning-layout-item class="hehe-layoutItem" size="4">
                                            <lightning-input type="date" label="发票日期" variant="label-inline"
                                                value={InvoiceDate} onchange={invoiceDateChange}
                                                required></lightning-input>
                                        </lightning-layout-item>
                                    </lightning-layout>
                                    <!-- 客户名 二级经销商 -->
                                    <lightning-layout multiple-rows="true">
                                        <lightning-layout-item class="hehe-layoutItem" size="4">
                                            <div
                                                class="slds-form-element__control slds-input-has-icon slds-input-has-icon_right">
                                                <lightning-icon size="x-small"
                                                    class="iconMargin slds-icon slds-input__icon slds-input__icon_right slds-icon-text-default"
                                                    icon-name="utility:search"></lightning-icon>
                                                <lightning-input type="text" name="HospitalName" label="客户名"
                                                    value={HospitalName} variant="label-inline"
                                                    onclick={searchHospitalNameModal} data-field="HospitalName"
                                                    onchange={clearAgencyI}></lightning-input>
                                            </div>
                                        </lightning-layout-item>
                                        <lightning-layout-item class="hehe-layoutItem" size="4">
                                            <lightning-combobox data-field="secondaryDistributor"
                                                name="secondaryDistributor" label="二级经销商" value={secondaryDistributor}
                                                placeholder="请选择..." options={provinceOptsMap} variant="label-inline"
                                                onchange={dataChange}></lightning-combobox>
                                        </lightning-layout-item>
                                    </lightning-layout>
                                    <!-- 科室 经销商(录入) -->
                                    <lightning-layout multiple-rows="true">
                                        <lightning-layout-item class="hehe-layoutItem" size="4">
                                            <lightning-input-field onchange={dataChange} data-field="ForCustomerText"
                                                value={ForCustomerText}
                                                field-name="Order_ForCustomerText__c"></lightning-input-field>
                                        </lightning-layout-item>
                                        <lightning-layout-item class="hehe-layoutItem" size="4">
                                            <lightning-output-field
                                                field-name="Order_ForDealerText__c"></lightning-output-field>
                                        </lightning-layout-item>
                                    </lightning-layout>
                                    <!-- 备注 -->
                                    <lightning-layout multiple-rows="true">
                                        <lightning-layout-item class="hehe-layoutItem" size="4">
                                            <lightning-input-field onchange={dataChange} data-field="InvoiceNote"
                                                value={InvoiceNote}
                                                field-name="Invoice_Note__c"></lightning-input-field>
                                        </lightning-layout-item>
                                    </lightning-layout>
                                </lightning-record-edit-form>
                            </template>
                            <!-- 出库单一览 -->
                            <div class="borderCss">
                                <div class="headerDorderCss">
                                    <p style="font-size: 16px">
                                        <strong>出库单一览</strong>
                                    </p>
                                </div>
                                <template if:false={hideCheckbox}>
                                    <div style="padding: 10px">
                                        <div lwc:dom="manual" class="resultDiv"></div>
                                        <div draggable="false">
                                            <lightning-button label="检索"
                                                onclick={InvoiceorderSearchJs}></lightning-button>
                                        </div>
                                    </div>
                                </template>
                                <div style="padding: 10px">
                                    <div lwc:dom="manual" class="resultDiv"></div>
                                    <div draggable="false">
                                        <lightning-datatable key-field="id" data={outboundData}
                                            columns={outboundColumns} hide-checkbox-column={hideCheckbox}
                                            onrowselection={getSelectedRows}>
                                        </lightning-datatable>
                                        <lightning-datatable key-field="id" data={outboundDataSumPrice}
                                            columns={outboundColumns} hide-checkbox-column hide-table-header>
                                        </lightning-datatable>
                                    </div>
                                </div>
                            </div>
                            <!-- 发票明细 -->
                            <template if:true={done}>
                                <div class="borderCss">
                                    <div class="headerDorderCss">
                                        <p style="font-size: 16px">
                                            <strong>发票明细</strong>
                                        </p>
                                    </div>
                                    <div style="padding: 10px">
                                        <div lwc:dom="manual" class="resultDiv"></div>
                                        <div draggable="false">
                                            <lightning-datatable key-field="id" data={invoiceOrderdetail1Recoeds}
                                                columns={invoiceDetailsColumns} hide-checkbox-column>
                                            </lightning-datatable>
                                        </div>
                                    </div>
                                </div>
                            </template>
                            <!-- 上传附件 -->
                            <template if:false={EditAble}>
                                <div class="borderCss">
                                    <div class="headerDorderCss">
                                        <p style="font-size: 16px">
                                            <strong>附件</strong>
                                        </p>
                                    </div>
                                    <div style="padding: 10px">
                                        <div lwc:dom="manual" class="resultDiv"></div>
                                        <div draggable="false">
                                            <lightning-card title="">
                                                <lightning-layout multiple-rows="true" style="margin-top: -20px">
                                                    <lightning-layout-item size="3">
                                                        <lightning-input label="" name="上传附件"
                                                            onchange={handleFilesChange} type="file"
                                                            accept={acceptedType}
                                                            disabled={isDisabledReopen}></lightning-input>
                                                        <!-- <lightning-input label="" name="上传附件"
                                                            onchange={handleFilesChange} type="file"
                                                            accept={acceptedType}></lightning-input> -->
                                                    </lightning-layout-item>
                                                    <lightning-layout-item size="3">
                                                        <span class="slds-form-element__label" data-form-label></span>
                                                        </br>
                                                        <lightning-button label="保存附件" style="margin-top: 20px"
                                                            onclick={saveAttachmentJs}
                                                            disabled={isDisabledReopen}></lightning-button>
                                                        <!-- <lightning-button label="保存附件" style="margin-top: 20px"
                                                            onclick={saveAttachmentJs}></lightning-button> -->
                                                    </lightning-layout-item>
                                                </lightning-layout>
                                                <template if:true={showLoadingSpinner}>
                                                    <lightning-spinner
                                                        alternative-text="Uploading now"></lightning-spinner>
                                                </template>
                                                <footer style="margin-top: 20px">
                                                    <!-- <lightning-datatable key-field="id" data={fileData}
                                                        columns={fileColumns} hide-checkbox-column>
                                                    </lightning-datatable> -->
                                                    <c-lex-custom-lightning-datatable key-field="Id" data={fileData}
                                                        columns={fileColumns} ontypechange={handleTypeChange}
                                                        hide-checkbox-column>
                                                    </c-lex-custom-lightning-datatable>
                                                </footer>
                                            </lightning-card>
                                        </div>
                                    </div>
                                </div>
                            </template>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </template>
    <template if:true={isConInvoiceList}>
        <div class="outerBorderCss">
            <div style="padding:5px;">
                <!-- 新建发票 -->
                <div class="borderCss">
                    <div style="padding:10px;">
                        <div lwc:dom="manual" class="resultDiv"></div>
                        <div draggable="false">
                            <lightning-button label="新建发票" onclick={newInvoiceJs}></lightning-button>
                        </div>
                    </div>
                </div>
                <!-- 检索条件 -->
                <div class="borderCss" style="margin-top: 5px;">
                    <div class="headerDorderCss">
                        <p style="font-size: 16px">
                            <strong>检索条件</strong>
                        </p>
                    </div>
                    <div style="padding: 10px">
                        <div lwc:dom="manual" class="resultDiv"></div>
                        <div draggable="false">
                            <lightning-layout multiple-rows>
                                <lightning-layout-item flexibility="auto">
                                    <div class="slds-text-align_center">
                                        <div class="slds-grid slds-grid_vertical-align-center">
                                            <div class="slds-form-element__label">出库日&#12288;从</div>
                                            <lightning-input type="date" variant="label-hidden" label="出库日 从"
                                                onchange={dataChange} data-field="deliveryFromDate"
                                                value={deliveryFromDate}></lightning-input>
                                        </div>
                                        </br>
                                        <div class="slds-grid slds-grid_vertical-align-center">
                                            <div class="slds-form-element__label">&#12288;&#12288;&#12288;&#12288;到
                                            </div>
                                            <lightning-input type="date" variant="label-hidden" label="到"
                                                onchange={dataChange} data-field="deliveryToDate"
                                                value={deliveryToDate}></lightning-input>
                                        </div>
                                    </div>
                                </lightning-layout-item>
                                <lightning-layout-item flexibility="auto">
                                    <div class="slds-grid slds-grid_vertical-align-center">
                                        <div class="slds-form-element__label">发票号</div>
                                        <lightning-input variant="label-hidden" label="发票号" onchange={dataChange}
                                            data-field="category1" value={category1}></lightning-input>
                                    </div>
                                </lightning-layout-item>
                                <lightning-layout-item flexibility="auto">
                                    <div class="slds-grid slds-grid_vertical-align-center">
                                        <div class="slds-form-element__label">客户名</div>
                                        <lightning-input variant="label-hidden" label="客户名" onchange={dataChange}
                                            data-field="category2" value={category2}></lightning-input>
                                    </div>
                                </lightning-layout-item>
                                <lightning-layout-item flexibility="auto">
                                    <div class="slds-grid slds-grid_vertical-align-center">
                                        <div class="slds-form-element__label">状态</div>
                                        <lightning-combobox data-field="invoiceStatus" name="invoiceStatus" label="状态"
                                            value={invoiceStatusValue} placeholder="请选择..." options={Options}
                                            variant="label-hidden" onchange={dataChange}></lightning-combobox>
                                    </div>
                                </lightning-layout-item>
                                <lightning-layout-item flexibility="auto">
                                    <div class="slds-grid slds-grid_vertical-align-center">
                                        <lightning-button label="检索" onclick={invoiceCodeSearchJs}></lightning-button>
                                    </div>
                                </lightning-layout-item>
                                <lightning-layout-item flexibility="auto">
                                    <div class="slds-grid slds-grid_vertical-align-center">
                                        <lightning-button label="清空" onclick={ClearJs}></lightning-button>
                                    </div>
                                </lightning-layout-item>
                            </lightning-layout>
                        </div>
                    </div>
                </div>
                <!-- 发票一览 -->
                <div class="borderCss" style="margin-top: 5px;">
                    <div class="headerDorderCss">
                        <p style="font-size: 16px">
                            <strong>发票一览</strong>
                        </p>
                    </div>
                    <div style="padding: 10px">
                        <div lwc:dom="manual" class="resultDiv"></div>
                        <div draggable="false">
                            <lightning-datatable key-field="id" data={invoiceData} columns={invoiceColumns}
                                hide-checkbox-column="true">
                            </lightning-datatable>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </template>
</template>
force-app/main/default/lwc/lexConInvoiceView/lexConInvoiceView.js
New file
@@ -0,0 +1,970 @@
import { LightningElement, api, track, wire } from 'lwc';
import { ShowToastEvent } from "lightning/platformShowToastEvent";
import init from "@salesforce/apex/LexConInvoiceViewController.init";
import save from "@salesforce/apex/LexConInvoiceViewController.save";
import saveFile from "@salesforce/apex/LexConInvoiceViewController.saveFile";
import saveAttachment from "@salesforce/apex/LexConInvoiceViewController.saveAttachment";
import InvoiceorderSearch from "@salesforce/apex/LexConInvoiceViewController.InvoiceorderSearch";
import conInvoiceListInit from "@salesforce/apex/LexConInvoiceList.init";
import invoiceCodeSearch from "@salesforce/apex/LexConInvoiceList.invoiceCodeSearch";
import hospitalInit from "@salesforce/apex/lexSearchAgencyHospitalController.init";
import serContact from "@salesforce/apex/lexSearchAgencyHospitalController.serContact";
import { NavigationMixin } from "lightning/navigation";
const hospitalColumns = [
    {
        label: "医院名称",
        fieldName: "Name",
        initialWidth: 400,
        hideDefaultActions: true,
    },
    {
        label: "省份",
        fieldName: "stateMasterName",
        hideDefaultActions: true,
    },
    {
        label: "选择",
        fieldName: "Id1",
        type: "button",
        hideDefaultActions: true,
        typeAttributes: {
            label: "选择",
            name: "Id2",
            size: 1,
        },
    },
];
const invoiceDetailsColumns = [
    {
        label: "出库日期",
        fieldName: "esdetProductOutDate",
        hideDefaultActions: true,
    },
    {
        label: "出库单编码",
        fieldName: "esdetInvoicedet1ODlinkName",
        wrapText: true,
        hideDefaultActions: true,
    },
    {
        label: "产品型号",
        fieldName: "esdetAssetModelNo",
        hideDefaultActions: true,
    },
    {
        label: "单位",
        fieldName: "esdetInvoiceUnit",
        hideDefaultActions: true,
    },
    {
        label: "发票单价",
        fieldName: "esdetInvoiceUnitprice",
        hideDefaultActions: true,
    },
    {
        label: "发票数量",
        fieldName: "esdetInvoicedCount",
        hideDefaultActions: true,
    },
    {
        label: "发票票面金额(元)",
        fieldName: "esdetInvoicedProCostRMB",
        hideDefaultActions: true,
    },
];
const invoiceColumns = [
    {
        label: "发票日期",
        fieldName: "Invoice_Date__c",
        hideDefaultActions: true,
    },
    {
        label: "发票号",
        type: 'url',
        fieldName: "NameUrl",
        typeAttributes: {
            label: { fieldName: "Name" },
        },
        hideDefaultActions: true,
    },
    {
        label: "客户名",
        fieldName: "ShipmentAccount__c",
        hideDefaultActions: true,
        wrapText: true,
    },
    {
        label: "发票状态",
        fieldName: "Invoice_status__c",
        hideDefaultActions: true,
    },
    {
        label: "发票账面金额(元)",
        fieldName: "Invoice_total_amount__c",
        hideDefaultActions: true,
    },
    {
        label: "发票附件",
        fieldName: "Invoice_attachment__c",
        type : 'boolean',
        hideDefaultActions: true,
    },
    {
        label: "发票明细附件",
        fieldName: "Invoicedet_attachment__c",
        type : 'boolean',
        hideDefaultActions: true,
    },
]
export default class LexConInvoiceView extends NavigationMixin(LightningElement) {
    @track outboundColumns = [
        {
            label: "出库日期",
            fieldName: "esdOutboundDate",
            hideDefaultActions: true,
            wrapText: true,
        },
        {
            label: "出库单编码",
            fieldName: "esdNameUrl",
            type: 'url',
            typeAttributes: {
                label: { fieldName: "esdName" },
                target: "_blank",
            },
            hideDefaultActions: true,
            wrapText: true,
        }
    ]
    @track outboundData = [];
    @track outboundDataSumPrice = [];
    invoiceColumns = invoiceColumns;
    @track invoiceData = [];
    @track invoiceId = '';
    @track userWorkLocation = '';
    @track deliveryId = '';
    @track cocId = '';
    @track statusEdit = '';
    @track coc = {};
    @track EditAble = false;
    @track isChange = false;
    @track sumPrice = 0;
    @track OrderCode = '';
    @track ExistOutbound = false;
    @track reopen = '';
    @track invoiceOrderRecoedschange = [];
    @track isNew = '';
    //状态
    @track invoiceStatusValue = '';
    @track invoiceStatusOptions = [];
    get Options(){
        return this.invoiceStatusOptions;
    }
    //出库从
    @track deliveryFromDate = '';
    //出库到
    @track deliveryToDate = '';
    //发票号
    @track category1 = '';
    //客户名
    @track category2 = '';
    @track ConInvoiceListAccountId = '';
    @track ConInvoiceListUserWorkLocation = '';
    @track ConInvoiceListAgencyProType = '';
    //二级经销商
    @track provinceOptsMap = [];
    @track secondaryDistributor = '';
    //客户名
    @track isModalOpen = false;
    @track HospitalName = "";
    @track HospitalInfo = "";
    @track searchHospitalName = "";
    @track isDisabledHospitalName = false;
    @track agencyProType = '';
    @track accountid = '';
    @track hospitalList = [];
    hospitalColumns = hospitalColumns;
    //发票日期
    @track InvoiceDate = '';
    //科室
    @track ForCustomerText = '';
    //备注
    @track InvoiceNote = '';
    //发票明细
    @track invoiceOrderdetail1Recoeds = [];
    invoiceDetailsColumns = invoiceDetailsColumns;
    //显示
    @track isShowSecondaryDistributor = false;
    @track isEditInvoice = false;
    @track isShowSpinner = true;
    @track hideCheckbox = true;
    @track done = false;
    @track isConInvoiceList = true;
    //disable
    @track isDisabledEdit = false;
    @track isDisabledReopen = false;
    @track isDisabledDelete = false;
    @track isDisabledAttachment = false;
    //文件上传
    @track showLoadingSpinner = false;
    @track UploadFile = "Upload File";
    @track fileName = "";
    @track fileData = [];
    @track fileColumns = [
        {
            label: "标题",
            fieldName: "url",
            type: "url",
            typeAttributes: { label: { fieldName: "Title" }, target: "_blank" },
            hideDefaultActions: true,
        },
        {
            label: "创建人",
            type: "url",
            fieldName: "CreatedByNameUrl",
            typeAttributes: { label: { fieldName: "CreatedByName" }, target: "_blank" },
            hideDefaultActions: true,
        },
        {
            label: "上传日期",
            type: 'date',
            typeAttributes: {
                year: "numeric",
                month: "long",
                day: "2-digit",
                hour: "2-digit",
                minute: "2-digit"
            },
            fieldName: "CreatedDate",
            hideDefaultActions: true,
        },
        {
            label: "附件类型",
            type: "customAttachmentType",
            typeAttributes: {
                typeValue: { fieldName: "typeValue" },
                typeOptions: { fieldName: "typeOptions" },
                recordId: { fieldName: "recordId" },
                isDisabledAttachment: { fieldName: "isDisabledAttachment" },
            },
            hideDefaultActions: true,
        },
    ];
    filesUploaded = [];
    fileContents;
    fileReader;
    content;
    MAX_FILE_SIZE = 1500000;
    //获取链接参数
    getQueryString(name) {
        console.log("getQueryString name " + name);
        let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
        let r = window.location.search.substr(1).match(reg);
        if (r != null) {
            return decodeURIComponent(r[2]);
        }
        return null;
    }
    connectedCallback() {
        this.init();
    }
    init() {
        this.deliveryId = this.getQueryString("deliveryId");
        this.deliveryId = this.deliveryId == null ? "" : this.deliveryId;
        this.invoiceId = this.getQueryString("invoiceId");
        this.invoiceId = this.invoiceId == null ? "" : this.invoiceId;
        this.statusEdit = this.getQueryString("KeyWords");
        this.statusEdit = this.statusEdit == null ? "" : this.statusEdit;
        this.reopen = this.getQueryString("reopen");
        this.reopen = this.reopen == null ? "" : this.reopen;
        this.isNew = this.getQueryString("isNew");
        this.isNew = this.isNew == null ? "" : this.isNew;
        console.log('this.deliveryId = ' + this.deliveryId + ' this.invoiceId = ' + this.invoiceId + ' this.statusEdit = ' + this.statusEdit);
        if (this.deliveryId == '' && this.invoiceId == '' && this.isNew == '') {
            console.log('conInvoiceListInit');
            conInvoiceListInit().then((r) => {
                r = JSON.parse(JSON.stringify(r));
                console.log("conInvoiceListInit r = " + JSON.stringify(r));
                if (r.status == "Success") {
                    this.ConInvoiceListAccountId = r.entity.accountid;
                    this.ConInvoiceListUserWorkLocation = r.entity.userWorkLocation;
                    this.ConInvoiceListAgencyProType = r.entity.agencyProType;
                    this.invoiceData = r.entity.raesList;
                    for (var i in this.invoiceData) {
                        this.invoiceData[i]['NameUrl'] = '/lexconinvoiceview?invoiceId=' + this.invoiceData[i].Id;
                    }
                    console.log("this.invoiceData = " + JSON.stringify(this.invoiceData));
                    for (var key in r.entity.statusMap) {
                        let object = {};
                        object["label"] = key;
                        object["value"] = r.entity.statusMap[key];
                        this.invoiceStatusOptions.push(object);
                    }
                    this.invoiceStatusOptions = [...this.invoiceStatusOptions];
                    console.log("this.invoiceStatusOptions = " + JSON.stringify(this.invoiceStatusOptions));
                    this.isShowSpinner = false;
                } else {
                    this.showToast("Error", r.msg);
                }
            }).catch((error) => {
                console.log("error = " + JSON.stringify(error));
            });
        } else {
            console.log('init');
            this.isConInvoiceList = false;
            init({
                invoiceId: this.invoiceId,
                statusEdit: this.statusEdit,
                deliveryId: this.deliveryId
            }).then((r) => {
                r = JSON.parse(JSON.stringify(r));
                console.log("r = " + JSON.stringify(r));
                if (r.status == "Success") {
                    this.coc = r.entity.coc;
                    this.cocId = this.coc.Id;
                    this.EditAble = r.entity.EditAble;
                    this.isChange = r.entity.isChange;
                    this.ExistOutbound = r.entity.ExistOutbound;
                    this.outboundData = r.entity.invoiceOrderRecoeds;
                    this.done = r.entity.done;
                    this.accountid = r.entity.accountid;
                    this.userWorkLocation = r.entity.userWorkLocation;
                    console.log('this.userWorkLocation = ' + this.userWorkLocation);
                    this.invoiceOrderRecoedschange = r.entity.invoiceOrderRecoedschange;
                    this.isDisabledEdit = (this.coc.Invoice_status__c == '提交' || this.coc.Invoice_status__c == '已完成') ? true : false;
                    this.isDisabledReopen = this.coc.Invoice_status__c == '提交' ? false : true;
                    this.isDisabledDelete = this.coc.Invoice_status__c == '草案中' ? false : true;
                    this.isDisabledAttachment = this.coc.Invoice_status__c == '已完成' ? true : false;
                    if (!this.EditAble) {
                        //附件显示
                        this.showLoadingSpinner = true;
                        this.fileData = r.entity.attachmentRecoeds;
                        for (var i in this.fileData) {
                            this.fileData[i]["Id"] = this.fileData[i].cvInfo.Id;
                            this.fileData[i]["recordId"] = this.fileData[i].cvInfo.Id;
                            this.fileData[i]["url"] = "/" + this.fileData[i].cvInfo.Id;
                            this.fileData[i]["Title"] = this.fileData[i].cvInfo.Title;
                            this.fileData[i]["CreatedByName"] = this.fileData[i].cvInfo.Owner.Name;
                            this.fileData[i]["CreatedByNameUrl"] = "/" + this.fileData[i].cvInfo.OwnerId;;
                            this.fileData[i]["CreatedDate"] = this.fileData[i].cvInfo.CreatedDate;
                            if (this.isDisabledAttachment) {
                                console.log('进入this.isDisabledAttachment')
                                this.fileData[i]["isDisabledAttachment"] = true;
                            }
                            let typeOptions = [];
                            for (var key in this.fileData[i].mailSelectOptsMap) {
                                let typeOption = {};
                                typeOption["label"] = this.fileData[i].mailSelectOptsMap[key];
                                typeOption["value"] = key;
                                typeOptions.push(typeOption);
                            }
                            this.fileData[i]["typeValue"] = this.fileData[i].mailSelectOptsin == null ? typeOptions[0].value : this.fileData[i].mailSelectOptsin;
                            this.fileData[i]["typeOptions"] = typeOptions;
                        }
                    }
                    //发票明细
                    this.invoiceOrderdetail1Recoeds = r.entity.invoiceOrderdetail1Recoeds;
                    for (var i in this.invoiceOrderdetail1Recoeds) {
                        this.invoiceOrderdetail1Recoeds[i]['esdetProductOutDate'] = this.invoiceOrderdetail1Recoeds[i].esdet.Product_OutDate__c;
                        this.invoiceOrderdetail1Recoeds[i]['esdetInvoicedet1ODlinkName'] = this.invoiceOrderdetail1Recoeds[i].esdet.Invoicedet1_OD_link__r.Name;
                        this.invoiceOrderdetail1Recoeds[i]['esdetAssetModelNo'] = this.invoiceOrderdetail1Recoeds[i].esdet.Asset_Model_No__c;
                        this.invoiceOrderdetail1Recoeds[i]['esdetInvoiceUnit'] = this.invoiceOrderdetail1Recoeds[i].esdet.Invoice_Unit__c;
                        this.invoiceOrderdetail1Recoeds[i]['esdetInvoiceUnitprice'] = this.invoiceOrderdetail1Recoeds[i].esdet.Invoice_Unitprice__c;
                        this.invoiceOrderdetail1Recoeds[i]['esdetInvoicedCount'] = this.invoiceOrderdetail1Recoeds[i].esdet.Invoiced_Count__c;
                        this.invoiceOrderdetail1Recoeds[i]['esdetInvoicedProCostRMB'] = this.invoiceOrderdetail1Recoeds[i].esdet.InvoicedProCost_RMB__c;
                    }
                    console.log('this.invoiceOrderdetail1Recoeds = ' + JSON.stringify(this.invoiceOrderdetail1Recoeds))
                    //客户名
                    this.HospitalName = r.entity.HospitalName;
                    this.HospitalInfo = r.entity.HospitalInfo;
                    this.agencyProType = r.entity.agencyProType;
                    console.log('this.HospitalName = ' + this.HospitalName);
                    console.log('this.HospitalInfo = ' + this.HospitalInfo);
                    console.log('this.agencyProType = ' + this.agencyProType);
                    //科室
                    this.ForCustomerText = this.coc.Order_ForCustomerText__c;
                    //备注
                    this.InvoiceNote = this.coc.Invoice_Note__c;
                    //二级经销商
                    for (var key in r.entity.provinceOptsMap) {
                        let object = {};
                        object["label"] = r.entity.provinceOptsMap[key];
                        object["value"] = key;
                        this.provinceOptsMap.push(object);
                    }
                    console.log('this.provinceOptsMap = ' + JSON.stringify(this.provinceOptsMap));
                    //出货一览columns
                    if (this.EditAble) {
                        let object1 = {
                            label: '客户名',
                            fieldName: "hospitalName",
                            hideDefaultActions: true,
                        };
                        let object2 = {
                            label: '出货金额(元)',
                            fieldName: "shipmentAmount",
                            hideDefaultActions: true,
                        };
                        let object3 = {
                            label: '返品金额(元)',
                            fieldName: "returnAmount",
                            hideDefaultActions: true,
                        };
                        this.outboundColumns.push(object1)
                        this.outboundColumns.push(object2)
                        this.outboundColumns.push(object3)
                    }
                    let object4 = {
                        label: '未发票金额(元)',
                        fieldName: "uninvoicedAmount",
                        hideDefaultActions: true,
                    };
                    this.outboundColumns.push(object4)
                    //出货一览Data
                    let index = 0;
                    for (var i in this.outboundData) {
                        this.outboundData[i]['esdOutboundDate'] = this.outboundData[i].esd.Outbound_Date__c;
                        this.outboundData[i]['esdNameUrl'] = '/s/lexsummonscreat?ESetid=' + this.outboundData[i].esd.Id;
                        this.outboundData[i]['esdName'] = this.outboundData[i].esd.Name;
                        if (this.EditAble) {
                            this.outboundData[i]['hospitalName'] = this.outboundData[i].esd.ShipmentAccount__c;
                            this.outboundData[i]['shipmentAmount'] = this.outboundData[i].esd.Shipment_total_amount__c;
                            this.outboundData[i]['returnAmount'] = this.outboundData[i].esd.RrturnPro_total_amount__c;
                        }
                        this.outboundData[i]['uninvoicedAmount'] = this.outboundData[i].esd.InvoiceNotPro_money__c;
                        this.outboundData[i]['invoiceFaceAmount'] = this.outboundData[i].needInvoiceCount;
                        if (!(this.outboundData[i].esd.Billed_Status__c == '全部开票' || this.EditAble || this.coc.Invoice_status__c != '草案中')) {
                            let url = "/ConInvoicedetails?orderId=" + this.outboundData[i].esd.Id + "&invoiceId=" + this.invoiceId;
                            this.outboundData[i]['invoiceFaceAmountUrl'] = url;
                            if (index == 0) {
                                let object5 = {
                                    label: '发票票面金额(元)',
                                    type: 'url',
                                    fieldName: "invoiceFaceAmountUrl",
                                    typeAttributes: {
                                        label: { fieldName: "invoiceFaceAmount" },
                                        target: "_blank",
                                    },
                                    hideDefaultActions: true,
                                };
                                this.outboundColumns.push(object5)
                                index++;
                            }
                        } else {
                            if (index == 0) {
                                let object5 = {
                                    label: '发票票面金额(元)',
                                    fieldName: "invoiceFaceAmount",
                                    hideDefaultActions: true,
                                };
                                this.outboundColumns.push(object5)
                                index++;
                            }
                        }
                        //计算发票票面金额
                        this.sumPrice += this.outboundData[i].needInvoiceCount;
                    }
                    //加最后一行显示金额
                    if (this.EditAble) {
                        let lastOutboundData = {
                            invoiceFaceAmount: this.sumPrice
                        }
                        //this.outboundData.push(lastOutboundData);
                        this.outboundDataSumPrice.push(lastOutboundData);
                    }
                    this.outboundColumns = [...this.outboundColumns];
                    this.isEditInvoice = !(!this.EditAble || this.isChange);
                    if (this.coc.SummonsForDirction__c == '销售给二级经销商')
                        this.isShowSecondaryDistributor = true;
                    if (this.deliveryId == '' && !this.ExistOutbound && this.EditAble)
                        this.hideCheckbox = false;
                    this.isShowSpinner = false;
                    this.showLoadingSpinner = false;
                } else {
                    this.showToast("Error", r.msg);
                }
            }).catch((error) => {
                console.log("error = " + JSON.stringify(error));
            });
        }
    }
    dataChange(event) {
        let fieldName = event.target.getAttribute("data-field");
        let value = event.detail.value;
        console.log("fieldName = " + fieldName + " value = " + value);
        switch (fieldName) {
            case "OrderCode":
                this.OrderCode = value;
                this.coc['Name'] = value;
                break;
            case "ForCustomerText":
                this.ForCustomerText = value;
                this.coc['Order_ForCustomerText__c'] = value;
                break;
            case "InvoiceDate":
                this.InvoiceDate = value;
                this.coc['Invoice_Date__c'] = value;
                break;
            case "secondaryDistributor":
                this.secondaryDistributor = value;
                break;
            case "deliveryFromDate":
                this.deliveryFromDate = value;
                break;
            case "deliveryToDate":
                this.deliveryToDate = value;
                break;
            case "category1":
                this.category1 = value;
                break;
            case "category2":
                this.category2 = value;
                break;
            case "invoiceStatus":
                this.invoiceStatusValue = value;
                break;
            case "searchHospitalName":
                this.searchHospitalName = value;
                break;
        }
    }
    invoiceDateChange(event) {
        this.InvoiceDate = event.detail.value;
        this.coc['Invoice_Date__c'] = event.detail.value;
        console.log('this.InvoiceDate = ' + this.InvoiceDate);
    }
    //搜索客户名
    searchHospitalNameModal() {
        console.log("searchHospitalNameModal");
        hospitalInit({
            ctype: this.agencyProType,
        }).then((r) => {
            r = JSON.parse(JSON.stringify(r));
            if (r.status == "Success") {
                this.hospitalList = r.entity.at;
                for (var i in this.hospitalList) {
                    this.hospitalList[i]["stateMasterName"] = this.hospitalList[i].State_Master__r.Name;
                }
                console.log("hospitalInit r = " + JSON.stringify(this.hospitalList));
                this.isModalOpen = true;
            }
        });
    }
    searchHospital() {
        console.log("this.searchHospitalName = " + this.searchHospitalName);
        serContact({
            searchName: this.searchHospitalName,
            ctype: this.agencyProType,
        }).then((r) => {
            r = JSON.parse(JSON.stringify(r));
            if (r.status == "Success") {
                this.hospitalList = r.entity.at;
                for (var i in this.hospitalList) {
                    this.hospitalList[i]["stateMasterName"] =
                        this.hospitalList[i].State_Master__r.Name;
                }
                console.log("hospitalInit r = " + JSON.stringify(this.hospitalList));
            }
        });
    }
    //选择客户名
    searchHandleRowAction(event) {
        console.log("searchHandleRowAction");
        let row = event.detail.row;
        this.HospitalInfo = row.Id;
        this.HospitalName = row.Name;
        console.log("this.HospitalInfo = " + this.HospitalInfo + " this.HospitalName = " + this.HospitalName);
        this.isModalOpen = false;
    }
    //当客户名是空时。客户id也变为空
    clearAgencyI(event) {
        this.HospitalName = event.target.value;
        if (this.HospitalName == "" || this.HospitalName == null) {
            this.HospitalInfo = "";
        }
        console.log("this.HospitalName = " + this.HospitalName);
        console.log("this.HospitalInfo = " + this.HospitalInfo);
    }
    closeModal() {
        this.isModalOpen = false;
    }
    //Consumable_order__c coc,String HospitalInfo,String SecondDealer,List<InvoiceOrderInfo> invoiceOrderRecoeds,String deliveryId,String invoiceId,String accountid,String agencyProType,String reopen
    SaveJs() {
        this.isShowSpinner = true;
        let cloneData = this.outboundData
        for (var i in cloneData) {
            delete cloneData[i].esdOutboundDate;
            delete cloneData[i].esdNameUrl;
            delete cloneData[i].esdName;
            delete cloneData[i].hospitalName;
            delete cloneData[i].shipmentAmount;
            delete cloneData[i].returnAmount;
            delete cloneData[i].uninvoicedAmount;
            delete cloneData[i].invoiceFaceAmount;
            delete cloneData[i].invoiceFaceAmountUrl;
        }
        console.log('this.coc = ' + JSON.stringify(this.coc));
        console.log('this.HospitalInfo = ' + this.HospitalInfo);
        console.log('this.secondaryDistributor = ' + this.secondaryDistributor);
        console.log('this.outboundData = ' + JSON.stringify(cloneData));
        console.log('this.deliveryId = ' + this.deliveryId);
        console.log('this.invoiceId = ' + this.invoiceId);
        console.log('this.accountid = ' + this.accountid);
        console.log('this.agencyProType = ' + this.agencyProType);
        console.log('this.reopen = ' + this.reopen);
        console.log('this.invoiceOrderRecoedschangeLwc = ' + JSON.stringify(this.invoiceOrderRecoedschange));
        save({
            cocLwc: this.coc,
            HospitalInfoLwc: this.HospitalInfo,
            SecondDealerLwc: this.secondaryDistributor,
            invoiceOrderRecoedsLwc: JSON.stringify(cloneData),
            deliveryIdLwc: this.deliveryId,
            invoiceIdLwc: this.invoiceId,
            accountidLwc: this.accountid,
            agencyProTypeLwc: this.agencyProType,
            reopenLwc: this.reopen,
            invoiceOrderRecoedschangeLwc: JSON.stringify(this.invoiceOrderRecoedschange)
        }).then((r) => {
            r = JSON.parse(JSON.stringify(r));
            console.log("r = " + JSON.stringify(r));
            if (r.status == "Success" && r.msg == '') {
                console.log('save success');
                let url = "/lexconinvoiceview?invoiceId=" + r.entity.invoiceId;
                console.log('url = ' + url);
                this[NavigationMixin.Navigate]({
                    type: "standard__webPage",
                    attributes: {
                        url: url,
                    },
                });
            } else {
                this.showToast("Error", r.msg);
            }
        }).catch((error) => {
            console.log("error = " + JSON.stringify(error));
            this.showToast("Error", error.message);
        });
    }
    //上传附件,直接就保存好,然后展示
    handleFilesChange(event) {
        console.log("handleFilesChange");
        if (event.target.files.length > 0) {
            this.filesUploaded = event.target.files;
            this.fileName = event.target.files[0].name;
            this.handleSave();
        }
    }
    handleSave() {
        console.log("saveFile");
        if (this.filesUploaded.length > 0) {
            this.file = this.filesUploaded[0];
            if (this.file.size > this.MAX_FILE_SIZE) {
                this.showToast("Error", "文件过大");
                return;
            }
            this.showLoadingSpinner = true;
            this.fileReader = new FileReader();
            this.fileReader.onloadend = () => {
                this.fileContents = this.fileReader.result;
                let base64 = "base64,";
                this.content = this.fileContents.indexOf(base64) + base64.length;
                this.fileContents = this.fileContents.substring(this.content);
                this.saveToFile();
            };
            this.fileReader.readAsDataURL(this.file);
        } else {
            this.fileName = "选择一个文件上传";
        }
    }
    saveToFile() {
        console.log("saveToFile");
        console.log("base64Data = " + encodeURIComponent(this.fileContents));
        saveFile({
            recordId: this.invoiceId,
            fileName: this.fileName,
            base64Data: encodeURIComponent(this.fileContents),
        }).then((r) => {
                r = JSON.parse(JSON.stringify(r));
                console.log("r = " + JSON.stringify(r));
                if (r != '') {
                    this.showLoadingSpinner = false;
                    this.showToast("Success", "上传成功");
                    this.init();
                }else{
                    this.showToast("Error", r.msg);
                }
            })
            .catch((error) => {
                console.log("error = " + error.message);
                this.showToast("Error", "上传失败");
            });
    }
    handleTypeChange(event) {
        console.log("handleTypeChange");
        const typeDetail = event.detail;
        console.log("typeDetail = " + JSON.stringify(typeDetail));
        for (var i in this.fileData) {
            if (this.fileData[i].recordId == typeDetail.data.recordId) {
                this.fileData[i].typeValue = typeDetail.data.typeValue;
                this.fileData[i].mailSelectOptsin = typeDetail.data.typeValue;
            }
        }
        console.log("this.fileData = " + JSON.stringify(this.fileData));
    }
    newInvoiceJs(){
        let url = "/lexconinvoiceview?isNew=yes";
        console.log('url = ' + url);
        this[NavigationMixin.Navigate]({
            type: "standard__webPage",
            attributes: {
                url: url,
            },
        });
    }
    saveAttachmentJs() {
        this.showLoadingSpinner = true;
        let cloneData = this.fileData
        for (var i in cloneData) {
            delete cloneData[i].Id;
            delete cloneData[i].recordId;
            delete cloneData[i].url;
            delete cloneData[i].Title;
            delete cloneData[i].CreatedByName;
            delete cloneData[i].CreatedByNameUrl;
            delete cloneData[i].CreatedDate;
            delete cloneData[i].typeValue;
            delete cloneData[i].typeOptions;
        }
        console.log('cloneData = ' + JSON.stringify(cloneData));
        saveAttachment({
            attachmentRecoedsLwc: JSON.stringify(cloneData)
        }).then((r) => {
            r = JSON.parse(JSON.stringify(r));
            console.log("r = " + JSON.stringify(r));
            if (r.status == "Success") {
                this.showLoadingSpinner = false;
                this.showToast("Success", "保存成功");
                this.init();
            }else{
                this.showToast("Error", r.msg);
            }
        }).catch((error) => {
            console.log("error = " + error.message);
            this.showToast("Error", "上传失败");
        });
    }
    invoiceCodeSearchJs(){
        this.isShowSpinner = true;
        invoiceCodeSearch({
            orderDateLwc : this.deliveryFromDate == null ? null : new Date(this.deliveryFromDate),
            deliverDateLwc : this.deliveryToDate == null ? null : new Date(this.deliveryToDate),
            invoiceStatusLwc : this.invoiceStatusValue,
            category1Lwc : this.category1,
            category2Lwc : this.category2,
            accountidLwc : this.ConInvoiceListAccountId,
            userWorkLocationLwc : this.ConInvoiceListUserWorkLocation,
            agencyProTypeLwc : this.ConInvoiceListAgencyProType,
        }).then((r) => {
            r = JSON.parse(JSON.stringify(r));
            console.log("r = " + JSON.stringify(r));
            if (r.status == "Success") {
                this.invoiceData = r.entity.raesList;
                for (var i in this.invoiceData) {
                    this.invoiceData[i]['NameUrl'] = '/lexconinvoiceview?invoiceId=' + this.invoiceData[i].Id;
                }
                console.log("this.invoiceData = " + JSON.stringify(this.invoiceData));
                this.isShowSpinner = false;
                if(r.entity.raesListSize > 0){
                    this.showToast("Success", "共检索到" + r.entity.raesListSize + "个发票");
                }else{
                    this.showToast("Warning", "没有搜索到相关发票。");
                }
            }else{
                this.showToast("Error", r.msg);
            }
        }).catch((error) => {
            console.log("error = " + error.message);
            this.showToast("Error", "搜索失败");
        });
    }
    ClearJs(){
        this.deliveryFromDate = '';
        this.deliveryToDate = '';
        this.category1 = '';
        this.category2 = '';
        this.invoiceStatusValue = '';
        this.isShowSpinner = true;
        conInvoiceListInit().then((r) => {
            r = JSON.parse(JSON.stringify(r));
            console.log("conInvoiceListInit r = " + JSON.stringify(r));
            if (r.status == "Success") {
                this.invoiceData = r.entity.raesList;
                for (var i in this.invoiceData) {
                    this.invoiceData[i]['NameUrl'] = '/lexconinvoiceview?invoiceId=' + this.invoiceData[i].Id;
                }
                console.log("this.invoiceData = " + JSON.stringify(this.invoiceData));
                this.isShowSpinner = false;
            } else {
                this.showToast("Error", r.msg);
            }
        }).catch((error) => {
            console.log("error = " + JSON.stringify(error));
        });
    }
    InvoiceorderSearchJs(){
        this.isShowSpinner = true;
        let cloneData = this.outboundData
        for (var i in cloneData) {
            delete cloneData[i].esdOutboundDate;
            delete cloneData[i].esdNameUrl;
            delete cloneData[i].esdName;
            delete cloneData[i].hospitalName;
            delete cloneData[i].shipmentAmount;
            delete cloneData[i].returnAmount;
            delete cloneData[i].uninvoicedAmount;
            delete cloneData[i].invoiceFaceAmount;
            delete cloneData[i].invoiceFaceAmountUrl;
        }
        console.log('this.coc = ' + JSON.stringify(this.coc));
        console.log('this.invoiceId = ' + this.invoiceId);
        console.log('this.accountid = ' + this.accountid);
        console.log('this.userWorkLocation = ' + this.userWorkLocation);
        console.log('this.agencyProType = ' + this.agencyProType);
        console.log('this.HospitalInfo = ' + this.HospitalInfo);
        console.log('SecondDealer = ' + this.secondaryDistributor);
        console.log('invoiceOrderRecoedsLwc = ' + JSON.stringify(cloneData));
        InvoiceorderSearch({
            cocLwc: this.coc,
            invoiceIdLwc: this.invoiceId,
            accountidLwc: this.accountid,
            userWorkLocationLwc: this.userWorkLocation,
            agencyProTypeLwc: this.agencyProType,
            HospitalInfoLwc: this.HospitalInfo,
            SecondDealerLwc: this.secondaryDistributor,
            invoiceOrderRecoedsLwc: JSON.stringify(cloneData),
        }).then((r) => {
            r = JSON.parse(JSON.stringify(r));
            console.log("r = " + JSON.stringify(r));
            if (r.status == "Success") {
                this.outboundData = r.entity.invoiceOrderRecoeds;
                let index = 0;
                for (var i in this.outboundData) {
                    this.outboundData[i]['esdOutboundDate'] = this.outboundData[i].esd.Outbound_Date__c;
                    this.outboundData[i]['esdNameUrl'] = '/s/lexsummonscreat?ESetid=' + this.outboundData[i].esd.Id;
                    this.outboundData[i]['esdName'] = this.outboundData[i].esd.Name;
                    if (this.EditAble) {
                        this.outboundData[i]['hospitalName'] = this.outboundData[i].esd.ShipmentAccount__c;
                        this.outboundData[i]['shipmentAmount'] = this.outboundData[i].esd.Shipment_total_amount__c;
                        this.outboundData[i]['returnAmount'] = this.outboundData[i].esd.RrturnPro_total_amount__c;
                    }
                    this.outboundData[i]['uninvoicedAmount'] = this.outboundData[i].esd.InvoiceNotPro_money__c;
                    this.outboundData[i]['invoiceFaceAmount'] = this.outboundData[i].needInvoiceCount;
                    if (!(this.outboundData[i].esd.Billed_Status__c == '全部开票' || this.EditAble || this.coc.Invoice_status__c != '草案中')) {
                        let url = "/ConInvoicedetails?orderId=" + this.outboundData[i].esd.Id + "&invoiceId=" + this.invoiceId;
                        this.outboundData[i]['invoiceFaceAmountUrl'] = url;
                        if (index == 0) {
                            let object5 = {
                                label: '发票票面金额(元)',
                                type: 'url',
                                fieldName: "invoiceFaceAmountUrl",
                                typeAttributes: {
                                    label: { fieldName: "invoiceFaceAmount" },
                                    target: "_blank",
                                },
                                hideDefaultActions: true,
                            };
                            this.outboundColumns.push(object5)
                            index++;
                        }
                    } else {
                        if (index == 0) {
                            let object5 = {
                                label: '发票票面金额(元)',
                                fieldName: "invoiceFaceAmount",
                                hideDefaultActions: true,
                            };
                            this.outboundColumns.push(object5)
                            index++;
                        }
                    }
                    //计算发票票面金额
                    this.sumPrice += this.outboundData[i].needInvoiceCount;
                }
                this.isShowSpinner = false;
            }else{
                this.showToast("Error", r.msg);
            }
        }).catch((error) => {
            console.log("error = " + error.message);
            this.showToast("Error", "搜索失败");
        });
    }
    getSelectedRows(event) {
        console.log("getSelectedRows ");
        for (var i in this.outboundData) {
            this.outboundData[i].check = false;
        }
        const selectedRows = event.detail.selectedRows;
        for(var i in this.outboundData){
            for(var j in selectedRows){
                if(this.outboundData[i].esd.Id == selectedRows[j].esd.Id)
                    this.outboundData[i].check = !this.outboundData[i].check;
            }
        }
    }
    showToast(type, msg) {
        this.isShowSpinner = false;
        this.showLoadingSpinner = false;
        const event = new ShowToastEvent({
            title: type,
            variant: type,
            message: msg,
        });
        this.dispatchEvent(event);
    }
}
force-app/main/default/lwc/lexConInvoiceView/lexConInvoiceView.js-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>56.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightningCommunity__Page</target>
        <target>lightningCommunity__Default</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexConsumable/lexConsumable.css
@@ -1,3 +1,9 @@
.myTable table>thead .slds-cell-fixed.slds-has-button-menu, .myTable table>thead .slds-cell-fixed.slds-has-button-menu:hover{
    background: #EEEE00;
}
.conTable td,th{
    border: 1px dashed #D4D4D4;
}
.conTable tr{
    border: 1px dashed #D4D4D4;
}
force-app/main/default/lwc/lexConsumable/lexConsumable.html
@@ -225,9 +225,9 @@
                        <p style="font-size: 16px;"><strong>消耗品明细</strong></p>
                    </div>
                    <div style="padding:10px;">
                        <table style="width: 100%;">
                        <table style="width: 100%;" class="conTable">
                            <thead>
                                <tr>
                                <tr style="border-bottom: 1px solid #D4D4D4;">
                                    <template if:true={editAble}>
                                        <th><lightning-input type="checkbox" onchange={checkAll} name="checkAll"></lightning-input></th>
                                    </template>
@@ -289,7 +289,7 @@
                                        </template>
                                        <td>
                                            <template if:true={editAble}>
                                                <lightning-input data-index={index} value={record.esd.Consumable_count__c} onchange={consumableCountChange}></lightning-input>
                                                <lightning-input style="margin-bottom: 10px;" data-index={index} value={record.esd.Consumable_count__c} onchange={consumableCountChange}></lightning-input>
                                            </template>
                                            <template if:false={editAble}>
                                                <div class="slds-truncate" title="Value Proposition">{record.esd.Consumable_count__c}</div>
force-app/main/default/lwc/lexConsumable/lexConsumable.js
@@ -531,18 +531,16 @@
               this.showSpinner = false;
               this.errorMsgs = result.errorMsgList;
               this.warningMsgs = result.warningMsgList;
               // this.hasError = result.hasError;
               // this.hasWarning = result.hasWarning;
               console.log("Error:"+result.errorMsg);
               if(result.errorMsg.indexOf("请上传订货配置单附件") != -1){
                  result.errorMsg = '请上传订货配置单附件';
               }
               this.showMyToast('提交失败',result.errorMsg,'error');
            }
      })
      .catch(error=>{
         console.log("Error:"+error);
      })
         })
         .catch(error=>{
            console.log("Error:"+error);
         })
   }
   //删除订单
force-app/main/default/lwc/lexContractdetailpdf/lexContractdetailpdf.css
New file
@@ -0,0 +1,88 @@
body {
    font-size: 13px;
    font-family: Arial Unicode MS;
}
@page {
    @charset "utf-8";
    @bottom-center {
        content:  counter(page) " / " counter(pages);
        font-size: 14px;
    }
}
.pageCanvas {
    position: relative;
    border-style: none;
    height: 940px;
}
.quoteTitle {
    text-align: center;
    font-weight: bold;
    font-size: 22px;
    width: 100%;
    padding-bottom: 20px;
}
.headerCanvas {
    position: relative;
    border-style: none;
    height: 100px;
}
.detailCanvas {
    position: relative;
    left: 0px;
    width: 100%;
}
.detailTable {
    width: 100%;
    border-bottom: solid;
}
.detailTableHeader {
    border-top: solid;
    border-bottom: solid;
    padding-left: 5px;
    text-align: center;
}
.detailTableCols {
    border: none;
}
.detailRowNumber {
    text-align: right;
    padding-right: 0px;
    padding-left: 5px;
}
.detailRowString {
    padding-right: 5px;
    padding-left: 5px;
}
.detailRowNumeric {
    text-align: right;
    padding-right: 5px;
    padding-left: 5px;
}
.footerCanvasContract {
    position: absolute;
    bottom: 0px;
    width: 100%;
    height: 110px;
}
.footerSignContract {
    position: absolute;
    text-align: center;
    right: 80px;
    bottom: 0px;
}
force-app/main/default/lwc/lexContractdetailpdf/lexContractdetailpdf.html
New file
@@ -0,0 +1,350 @@
<template>
    <!-- <body style="font-family: Arial Unicode MS;"> -->
    <!-- ページ番号の定義 -->
    <!-- <apex:variable var="count" value="{!0}"/> -->
    <!-- ページのリピート -->
    <template for:each={printRecords} for:item="items" for:index="thePage"></template>
    <!-- ページキャンバス -->
    <div class="pageCanvas">
        <!-- ページ番号インクリメント -->
        <!-- <apex:variable var="count" value="{!count + 1}"/> -->
        <!-- SWAG-C7S8QN 【委托】【重要】SI询价配置单没有抬头  lt  20211015 update    原<template rendered="{!IF(params.trade == 'USD', true, false)}">附件2 </template> -->
        <div  style="text-align: left;font-weight: bold;font-size: 18px;width: 100%;padding-bottom: 20px;"><span >附件2 </span></div>
        <!-- 各ページのタイトル -->
        <!-- <div class="quoteTitle"><template if:true={params.trade = 'USD'} >Commodity List </template></div> -->
        <div class="quoteTitle"><template if:true={params.trade}>Commodity List </template></div>
        <!-- WLIG-BYRD37  【委托】询价 打印配置单 字段修改 精琢技术 wql 2021/03/08 start -->
        <div class="quoteTitle">
            <!-- SWAG-C7S8QN 【委托】【重要】SI询价配置单没有抬头  lt  20211015 update -->
            <!-- 20211015  原<template rendered="{!IF(params.PurchaseType == '一般引合' || params.PurchaseType == '  SI(手術室案件)', true, false)}"> -->
            <span >
                 <!-- {Contract_Detail_Title} -->
                 {Contract_Detail_Title}
            </span>
        </div>
        <div class="quoteTitle">
            <!-- <template if:true="{!IF(params.PurchaseType == 'ET24時間販売',true , false)}">0 -->
             <template if:true={params.PurchaseType}>
                 订货单
            </template>
        </div>
        <!-- //WLIG-BYRD37  【委托】询价 打印配置单 字段修改 精琢技术 wql 2021/03/08 end -->
<!-- CHAN-B2L4NY 外贸询价的合同配置单格式恢复 -->
    <!-- <template if:true="{!IF(params.trade == 'RMB', true, false)}"> -->
    <template if:true= {params.trade}>
        <!-- 各ページのヘッダキャンバス -->
        <div class="headerCanvas">
            <table style="height:100%;">
                <tr>
                    <td>
                        <div style="height:25px;">{Contract_Detail_System_Code}</div>
                        <div style="height:25px;">{Quote_Client_Name}</div>
                        <!-- <template if:true="{!IF(params.salesRoot == '販売店', true, false)}" layout="none" > -->
                        <template if:true={params.salesRoot} layout="none" >
                            <div style="height:25px;">{Contract_Detail_Dealer_Name}</div>
                        </template>
                        <div style="height:25px;">{Quote_AddressName}</div>
                    </td>
                    <td>
                        <div style="height:25px;">:&nbsp;</div>
                        <div style="height:25px;">:&nbsp;</div>
                        <!-- <template layout="none" if:true="{!IF(params.salesRoot == '販売店', true, false)}"> -->
                        <template layout="none" if:true={params.salesRoot}>
                            <div style="height:25px;">:&nbsp;</div>
                        </template>
                        <div style="height:25px;">:&nbsp;</div>
                    </td>
                    <td>
                        <div style="height:25px;">&nbsp;{params.quoteNo}</div>
                        <div style="height:25px;">&nbsp;{params.clientName}</div>
                        <!-- <template layout="none" if:true="{!IF(params.salesRoot == '販売店', true, false)}"> -->
                        <template layout="none" if:true={params.salesRoot}>
                            <div style="height:25px;">&nbsp;{params.agentNameForContract}</div>
                        </template>
                        <div style="height:25px;">&nbsp;{params.addressName}</div>
                    </td>
                    <td>
                        <div style="height:25px;">&nbsp;</div>
                        <div style="height:25px;">&nbsp;</div>
                        <template layout="none" if:true={params.salesRoot}>
                            <div style="height:25px;">&nbsp;</div>
                        </template>
                        <div style="height:25px;">&nbsp;</div>
                    </td>
                    <td>
                        <div style="height:25px;">&nbsp;</div>
                        <div style="height:25px;">{Quote_Department}</div>
                        <template layout="none" if:true={params.salesRoot}>
                            <div style="height:25px;">&nbsp;</div>
                        </template>
                        <div style="height:25px;">&nbsp;</div>
                    </td>
                    <td>
                        <div style="height:25px;">&nbsp;</div>
                        <div style="height:25px;">:&nbsp;</div>
                        <template layout="none" if:true={params.salesRoot}>
                            <div style="height:25px;">&nbsp;</div>
                        </template>
                        <div style="height:25px;">&nbsp;</div>
                    </td>
                    <td>
                        <div style="height:25px;">&nbsp;</div>
                        <div style="height:25px;">&nbsp;{params.departmentName}</div>
                        <template layout="none" if:true={params.salesRoot}>
                            <div style="height:25px;">&nbsp;</div>
                        </template>
                        <div style="height:25px;">&nbsp;</div>
                    </td>
                </tr>
            </table>
            <table style="top:0px; right:0px; position:absolute; height:100%;">
                <tr>
                    <td>
                        <div style="height:25px;">&nbsp;</div>
                        <div style="height:25px;">&nbsp;</div>
                        <!-- 电子签收ID号 wql 精琢技术 2020/11/20 start -->
                        <template layout="none" if:true={params.salesRoot}>
                            <div style="height:25px;">{eSignAgencyNum}</div>
                        </template>
                        <template layout="none" if:true={params.salesRoot}>
                            <div style="height:25px;">&nbsp;</div>
                        </template>
                        <!-- 电子签收ID号 wql 精琢技术 2020/11/20 end -->
                        <div style="height:25px;">{Contract_Detail_Print_Date}</div>
                    </td>
                    <td>
                        <div style="height:25px;">&nbsp;</div>
                        <div style="height:25px;">&nbsp;</div>
                        <div style="height:25px;">:&nbsp;</div>
                        <div style="height:25px;">:&nbsp;</div>
                    </td>
                    <td>
                        <div style="height:25px;">&nbsp;</div>
                        <div style="height:25px;">&nbsp;</div>
                        <!-- 电子签收ID号 wql 精琢技术 2020/11/20 start -->
                        <template layout="none" if:true={params.salesRoot}>
                            <div style="height:25px;">{params.eSignAgencyNum}</div>
                        </template>
                        <template layout="none" if:true={params.salesRoot}>
                            <div style="height:25px;">&nbsp;</div>
                        </template>
                        <!-- 电子签收ID号 wql 精琢技术 2020/11/20 end -->
                        <div style="height:25px;">&nbsp;{params.offerPrintDateStringContract}</div>
                    </td>
                </tr>
            </table>
        </div>
    </template>
        <br/>
        <!-- ページ内の詳細のREPEAT -->
        <div class="detailCanvas" style="font-size: 10px">
            <lightning-datatable
                key-field="id"
                data={items}
                columns = {columns}>
            </lightning-datatable>
        </div>
    <!-- <template rendered="{!count=maxPageNumber}"> -->
    <template rendered=false>
        <div>
            <table style="width:100%;">
                 <tr>
                    <!-- 2018/10/11 CHAN-B5F35C 内贸时不显示 注册证号/备案凭证编号备注 start -->
                    <td style="text-align: left;">
                        <div style="height:25px;">备注:上述产品注册证号/备案凭证号以收到实物中文标签中的注册证信息为准。</div>
                    </td>
                    <!-- 2018/10/11 CHAN-B5F35C 内贸时不显示 注册证号/备案凭证编号备注 end -->
                </tr>
                <tr>
                    <td style="width: 85%;text-align: right;">
                        <div style="height:25px;">{Quote_TotalPrice}</div>
                    </td>
                    <td>
                        <div style="height:25px;">:&nbsp;</div>
                    </td>
                    <td>
                        <div style="height:25px;">&nbsp;
                            <span value={0, number, ###,##0.00}>
                                <param name="" value={params.newTotalPrice}>
                            </span>
                        </div>
                    </td>
                </tr>
            </table>
        </div>
    </template>
<!-- CHAN-B2L4NY 外贸询价的合同配置单格式恢复 -->
<!-- <template rendered="{!IF(params.trade == 'RMB', false, true)}"> -->
    <template rendered={params.trade}>
        <!-- 各ページのヘッダキャンバス -->
        <div class="headerCanvas">
            <table style="height:100%;">
                <tr>
                    <td>
                        <div style="height:25px;">
                        Prospect Code&nbsp;{Contract_Detail_System_Code}</div>
                        <div style="height:25px;">End user&nbsp;{Quote_Client_Name}</div>
                        <div style="height:25px;">Department&nbsp;{Quote_Department}</div>
                        <div style="height:25px;">The Buyer&nbsp;{Contract_Detail_Dealer_Name}</div>
                    </td>
                    <td>
                        <div style="height:25px;">:&nbsp;</div>
                        <div style="height:25px;">:&nbsp;</div>
                        <div style="height:25px;">:&nbsp;</div>
                        <div style="height:25px;">:&nbsp;</div>
                    </td>
                    <td>
                        <div style="height:25px;">&nbsp;{!params.quoteNo}</div>
                        <div style="height:25px;">&nbsp;{!params.clientName}</div>
                        <div style="height:25px;">&nbsp;{!params.departmentName}</div>
                        <!-- <template if:true="{!IF(params.agentNameForContract != null && params.lenAgentName >= 40, true, false)}"> -->
                        <template>
                            <div style="height:22px; padding-top:3px; font-size:10px;">&nbsp;{params.agentNameForContract}</div>
                        </template>
                        <!-- <template if:true="{!IF(params.agentNameForContract != null && params.lenAgentName < 40, true, false)}"> -->
                        <template>
                            <div style="height:25px;">&nbsp;{params.agentNameForContract}</div>
                        </template>
                    </td>
                </tr>
            </table>
            <table style="top:0px; right:0px; position:absolute; height:100%;">
                <tr>
                    <td>
                        <div style="height:25px;">&nbsp;</div>
                        <div style="height:25px;">&nbsp;</div>
                       <!--   -->
                        <div style="height:25px;">Print date&nbsp;{Contract_Detail_Print_Date}</div>
                        <div style="height:25px;"> ID Code</div>
                    </td>
                    <td>
                        <div style="height:25px;">&nbsp;</div>
                        <div style="height:25px;">&nbsp;</div>
                        <!-- <div style="height:25px;">&nbsp;</div> -->
                        <div style="height:25px;">:&nbsp;</div>
                        <div style="height:25px;">:&nbsp;</div>
                    </td>
                    <td>
                        <div style="height:25px;">&nbsp;</div>
                        <div style="height:25px;">&nbsp;</div>
                        <div style="height:25px;">&nbsp;{params.offerPrintDateStringContract}</div>
                        <div style="height:25px;">&nbsp;</div>
                    </td>
                </tr>
            </table>
        </div>
        <br/>
        <!-- ページ内の詳細のREPEAT -->
        <div class="detailCanvas">
            <!-- 2021/01/15 liying start -->
            <!-- 多表头 第一列表头 -->
            <lightning-datatable
                key-field="id"
                data={items}
                columns = [columns]>
            </lightning-datatable>
<!--             <apex:dataTable value="{!items}" var="item" id="dataTableUSD" styleClass="detailTableUSD" headerClass="detailTableHeaderUSD" columnClasses="detailTableCols">
                <apex:column styleClass="detailRowNumber">
                        <apex:facet name="header">Commodity Type</apex:facet>
                </apex:column>
                <apex:column styleClass="detailRowString">
                        <apex:facet name="header"></apex:facet>
                </apex:column>
                <apex:column styleClass="detailRowString">
                        <apex:facet name="header"></apex:facet>
                </apex:column>
                <apex:column styleClass="detailRowString">
                        <apex:facet name="header">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                    Description</apex:facet>
                </apex:column>
                <apex:column styleClass="detailRowNumeric">
                        <apex:facet name="header">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Quantity</apex:facet>
                </apex:column>
                <apex:column styleClass="detailRowNumeric">
                        <apex:facet name="header">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Special Warranty &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Period(year) </apex:facet>
                </apex:column>
                 lt 20220223 CHAN-CBW9FX 特殊交货期影响的对应  start -->
<!--
                <apex:column styleClass="detailRowNumeric">
                        <apex:facet name="header"> Delivery Date </apex:facet>
                </apex:column> -->
                <!-- lt 20220223 CHAN-CBW9FX 特殊交货期影响的对应  end -->
            <!-- </apex:dataTable> -->
                  <!-- 2021/01/15 liying end -->
            <!-- 多表头 第二列表头 -->
            <!-- <apex:dataTable value="{!items}" var="item" id="dataTable2" styleClass="detailTable" headerClass="detailTableHeader" columnClasses="detailTableCols">
                <apex:column styleClass="detailRowNumber">
                        <apex:facet name="header">{Quote_Product_Code}</apex:facet>
                        <apex:outputText value="{!item.qli.Item_Order__c}"/>
                </apex:column>
                <apex:column styleClass="detailRowString">
                        <apex:facet name="header"></apex:facet>
                        <apex:outputText value="{!item.qli.Asset_Model_No_forPrint__c}"/>
                </apex:column>
                <apex:column styleClass="detailRowString">
                        <apex:facet name="header">  </apex:facet>
                        <apex:outputText value="{!item.qli.NameForPrintDelimiter__c}"/>
                </apex:column>
                <apex:column styleClass="detailRowString">
                        <apex:facet name="header">{Quote_Product_Name}</apex:facet>
                        <apex:outputText value="{!item.qli.NameForPrint__c}"/>
                </apex:column>
                <apex:column styleClass="detailRowNumeric">
                        <apex:facet name="header">{Quantity}</apex:facet>
                        <apex:outputText value="{0, number, ###,###}">
                            <apex:param value="{!item.qli.Quantity}" />
                        </apex:outputText>
                </apex:column>
                <apex:column styleClass="detailRowNumeric">
                        <apex:facet name="header">特殊保修年限</apex:facet>
                        <apex:outputText value="{!item.qli.GuaranteePeriod__c}"/>
                </apex:column>
                 lt 20220223 CHAN-CBW9FX 特殊交货期影响的对应  start -->
<!--                 <apex:column styleClass="detailRowNumeric">
                        <apex:facet name="header">交货期</apex:facet>
                        <apex:outputText value="{!item.qli.DeliveryDate__c}"/>
                </apex:column> -->
                <!-- lt 20220223 CHAN-CBW9FX 特殊交货期影响的对应  end -->
            <!-- </apex:dataTable> -->
        </div>
</template>
        <br />
        <!-- 各ページのフッタキャンバス -->
        <div class="footerCanvasContract">
            <div class="footerSignContract">
                ({Contract_Detail_Buyer_Stamp})<br />
                <br />
                年  月  日<br />
            </div>
        </div>
     </div>
        <!-- 各ページを区切る改ページ、最終ページには出さないようにしている -->
        <!-- <template if:true="{!count<maxPageNumber}"> -->
<!--     <template>
        <div style="page-break-after: always;"/>
    </template> -->
<!-- </body> -->
</template>
force-app/main/default/lwc/lexContractdetailpdf/lexContractdetailpdf.js
New file
@@ -0,0 +1,50 @@
import { LightningElement, track, wire } from 'lwc';
import init from '@salesforce/apex/ContractdetailpdfController.init';
const columns = [
    { label: 'Item_Order__c', fieldName: 'Item_Order__c' },
    { label: 'Asset_Model_No_forPrint__c', fieldName: 'Asset_Model_No_forPrint__c' },
    { label: 'NameForPrintDelimiter__c', fieldName: 'NameForPrintDelimiter__c' },
    { label: 'NameForPrint__c', fieldName: 'NameForPrint__c' },
    { label: 'ApprobationNo_c', fieldName: 'ApprobationNo_c' },
    { label: 'ProduceCompany_c', fieldName: 'ProduceCompany_c' },
    { label: 'SalesPackagingUnit_c', fieldName: 'SalesPackagingUnit_c' },
    { label: 'PackingListManual_c', fieldName: 'PackingListManual_c' },
    { label: 'qli.Quantity', fieldName: 'qli.Quantity' },
    { label: 'qli.GuaranteePeriod__c', fieldName: 'qli.GuaranteePeriod__c' },
    { label: 'qli.DeliveryDate__c', fieldName: 'qli.DeliveryDate__c', type: 'date'  }
    // { label: 'Website', fieldName: 'Asset_Model_No_forPrint__c', type: 'url' },
    // { label: 'Phone', fieldName: 'phone', type: 'phone' },
    // { label: 'Balance', fieldName: 'amount', type: 'currency' },
    // { label: 'CloseAt', fieldName: 'closeAt', type: 'date' },
];
export default class lexContractdetailpdf extends LightningElement {
    items = [];
    data=[];
    Contract_Detail_Title="标题";
    columns=columns ;
    params={
        trade:false,
        PurchaseType:false
    };
    connectedCallback() {
        init().then(res=>{
            console.log("res:");
            console.log(res);
            this.data=res;
            this.items=res;
        })
    }
    generateData( amountOfRecords ) {
        return [...Array(amountOfRecords)].map((_, index) => {
            return {
                name: `Name (${index})`,
                website: 'www.salesforce.com',
                amount: Math.floor(Math.random() * 100),
                phone: `${Math.floor(Math.random() * 9000000000) + 1000000000}`,
                closeAt: new Date(
                    Date.now() + 86400000 * Math.ceil(Math.random() * 20)
                ),
            };
        });
    }
}
force-app/main/default/lwc/lexContractdetailpdf/lexContractdetailpdf.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexContractdetailpdf">
    <apiVersion>51.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexCopyPIInspectionReport/lexCopyPIInspectionReport.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="exampleHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexCopyPIInspectionReport/lexCopyPIInspectionReport.js
New file
@@ -0,0 +1,57 @@
import {
    LightningElement,
    wire,
    api
} from 'lwc';
import {
    CurrentPageReference
} from "lightning/navigation";
import {
    CloseActionScreenEvent
} from 'lightning/actions';
import init from '@salesforce/apex/otherButtonSpotInspectionReportCtl.init';
export default class LexCopyPIInspectionReport extends LightningElement {
    @api recordId;
    str;
    IsLoading = true;
    Id;
    RecordTypeId;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
        if (currentPageReference) {
            const urlValue = currentPageReference.state.recordId;
            if (urlValue) {
                let str = `${urlValue}`;
                this.recordId = str;
            }
        }
    }
    connectedCallback() {
        init({
            recordId: this.recordId
        }).then(result => {
            console.log(result);
            if (result != null) {
                this.IsLoading = false;
                this.Id = result.Id;
                this.RecordTypeId = result.RecordTypeId;
                this.CopyPI();
                this.dispatchEvent(new CloseActionScreenEvent());
            }
        }).catch(error => {
            console.log(error);
        }).finally(() => {
        });
    }
    // 复制
    CopyPI() {
        window.location.href = '/' + this.Id + '/e?newclone=1';
    }
}
force-app/main/default/lwc/lexCopyPIInspectionReport/lexCopyPIInspectionReport.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexCopyPIOnCall/lexCopyPIOnCall.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="exampleHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexCopyPIOnCall/lexCopyPIOnCall.js
New file
@@ -0,0 +1,52 @@
import {
    LightningElement,
    wire,
    api
} from 'lwc';
import {
    CurrentPageReference
} from "lightning/navigation";
import {
    CloseActionScreenEvent
} from 'lightning/actions';
import init from '@salesforce/apex/buttonOnCallCtl.init';
export default class LexCopyPIOnCall extends LightningElement {
    @api recordId;
    str;
    IsLoading = true;
    Id;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
        if (currentPageReference) {
            const urlValue = currentPageReference.state.recordId;
            if (urlValue) {
                let str = `${urlValue}`;
                this.recordId = str;
            }
        }
    }
    connectedCallback() {
        init({
            recordId: this.recordId
        }).then(result => {
            console.log(result);
            if (result != null) {
                this.IsLoading = false;
                this.Id = result.Id;
                this.CopyPI();
                this.dispatchEvent(new CloseActionScreenEvent());
            }
        }).catch(error => {
            console.log(error);
        })
    }
    //复制
    CopyPI() {
        window.location.href = '/' + this.Id + '/e?newclone=1';
    }
}
force-app/main/default/lwc/lexCopyPIOnCall/lexCopyPIOnCall.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexCopyRepair/lexCopyRepair.html
New file
@@ -0,0 +1,6 @@
<template>
    <div class="exampleHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
        <lightning-button label="Show Toast" onclick={ShowToastEvent}></lightning-button>
    </div>
</template>
force-app/main/default/lwc/lexCopyRepair/lexCopyRepair.js
New file
@@ -0,0 +1,218 @@
import {
    LightningElement,
    wire,
    api
} from 'lwc';
import {
    CurrentPageReference
} from "lightning/navigation";
import {
    CloseActionScreenEvent
} from 'lightning/actions';
import init from '@salesforce/apex/otherButtonRepairController.init';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
export default class LexCopyRepair extends LightningElement {
    @api recordId;
    str;
    IsLoading = true;
    Id;
    RecordTypeId;
    Name;
    DeliveredProductC;
    DeliveredProductIdC;
    PaperRepairRequestNoC;
    HospitalC;
    AccountC;
    DepartmentClassC;
    RepairCostTypeC;
    DealerC;
    InchargeStaffC;
    InchargeStaffContactC;
    SalesOfficeCodeSelectionC;
    OnSiteRepairC;
    workLocationSelectC;
    ReturnsProductWayC;
    RepairDetailC;
    RepairApplicantC;
    RepairApplicantHospitalC;
    RepairApplicantDepartmentC;
    DeliveryLogisticsModeC;
    engineerSendDateC;
    DeliveryLogisticsNoC;
    DeliveryLogisticsAnnotationC;
    DateReceiptQuestionsC;
    BreakORFallOffC;
    DelayReportReasonC;
    UseFailProductFinishC;
    ifDeadHurtC;
    SupportingProductsC;
    ProblemOccurredC;
    AfterFailureInformationC;
    InformationFromC;
    ReportAdverseEventsC;
    FailureQInHospitalC;
    WhatProjectC;
    OperationOrExaminationNameC;
    MaintenanceContractTypeC;
    FailureOccurrenceDateC;
    RepairSourceC;
    ProblemOccurredSelectC;
    Delay15MinC;
    ProductFailureRelatedC;
    RepairSubOrderC;
    OnCallIDC;
    QISIDC;
    InsReportC;
    MBCAwareDateC;
    CFDANoHandC;
    ProduceCompanyHandC;
    OfferRentalNewC;
    ifRentalApplyC;
    LatestCollectDatePriorityC;
    RentalApplyEquipmentSetDetailIdC;
    RentalApplyEquipmentSetDetailC;
    AwareDateC;
    OCSMAdministrativeReportNumberC;
    OCSMAdministrativeReportStatusC;
    OCSMAdministrativeReportDateC;
    Status1C;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
        if (currentPageReference) {
            const urlValue = currentPageReference.state.recordId;
            if (urlValue) {
                let str = `${urlValue}`;
                this.recordId = str;
            }
        }
    }
    connectedCallback() {
        init({
            recordId: this.recordId
        }).then(result => {
            console.log(result);
            if (result != null) {
                this.IsLoading = false;
                this.Id = result.Id;
                this.RecordTypeId = result.RecordTypeId;
                this.Name = result.Name == undefined ? "" : result.Name;
                this.DeliveredProductC = result.DeliveredProductC == undefined ? "" : result.DeliveredProductC;
                this.PaperRepairRequestNoC = result.PaperRepairRequestNoC == undefined ? "" : result.PaperRepairRequestNoC;
                this.HospitalC = result.HospitalC == undefined ? "" : result.HospitalC;
                this.DepartmentClassC = result.DepartmentClassC == undefined ? "" : result.DepartmentClassC;
                this.RepairCostTypeC = result.RepairCostTypeC == undefined ? "" : result.RepairCostTypeC;
                this.DealerC = result.DealerC == undefined ? "" : result.DealerC;
                this.InchargeStaffC = result.InchargeStaffC == undefined ? "" : result.InchargeStaffC;
                this.InchargeStaffContactC = result.InchargeStaffContactC == undefined ? "" : result.InchargeStaffContactC;
                this.SalesOfficeCodeSelectionC = result.SalesOfficeCodeSelectionC == undefined ? "" : result.SalesOfficeCodeSelectionC;
                this.OnSiteRepairC = result.OnSiteRepairC == undefined ? "" : result.OnSiteRepairC;
                this.workLocationSelectC = result.workLocationSelectC == undefined ? "" : result.workLocationSelectC;
                this.ReturnsProductWayC = result.ReturnsProductWayC == undefined ? "" : result.ReturnsProductWayC;
                this.RepairDetailC = result.RepairDetailC == undefined ? "" : result.RepairDetailC;
                this.RepairApplicantC = result.RepairApplicantC == undefined ? "" : result.RepairApplicantC;
                this.RepairApplicantHospitalC = result.RepairApplicantHospitalC == undefined ? "" : result.RepairApplicantHospitalC;
                this.RepairApplicantDepartmentC = result.RepairApplicantDepartmentC == undefined ? "" : result.RepairApplicantDepartmentC;
                this.DeliveryLogisticsModeC = result.DeliveryLogisticsModeC == undefined ? "" : result.DeliveryLogisticsModeC;
                this.engineerSendDateC = result.engineerSendDateC == undefined ? "" : result.engineerSendDateC;
                this.DeliveryLogisticsNoC = result.DeliveryLogisticsNoC == undefined ? "" : result.DeliveryLogisticsNoC;
                this.DeliveryLogisticsAnnotationC = result.DeliveryLogisticsAnnotationC == undefined ? "" : result.DeliveryLogisticsAnnotationC;
                this.DateReceiptQuestionsC = result.DateReceiptQuestionsC == undefined ? "" : result.DateReceiptQuestionsC;
                this.BreakORFallOffC = result.BreakORFallOffC == undefined ? "" : result.BreakORFallOffC;
                this.DelayReportReasonC = result.DelayReportReasonC == undefined ? "" : result.DelayReportReasonC;
                this.UseFailProductFinishC = result.UseFailProductFinishC == undefined ? "" : result.UseFailProductFinishC;
                this.ifDeadHurtC = result.ifDeadHurtC == undefined ? "" : result.ifDeadHurtC;
                this.SupportingProductsC = result.SupportingProductsC == undefined ? "" : result.SupportingProductsC;
                this.ProblemOccurredC = result.ProblemOccurredC == undefined ? "" : result.ProblemOccurredC;
                this.AfterFailureInformationC = result.AfterFailureInformationC == undefined ? "" : result.AfterFailureInformationC;
                this.InformationFromC = result.InformationFromC == undefined ? "" : result.InformationFromC;
                this.ReportAdverseEventsC = result.ReportAdverseEventsC == undefined ? "" : result.ReportAdverseEventsC;
                this.FailureQInHospitalC = result.FailureQInHospitalC == undefined ? "" : result.FailureQInHospitalC;
                this.WhatProjectC = result.WhatProjectC == undefined ? "" : result.WhatProjectC;
                this.OperationOrExaminationNameC = result.OperationOrExaminationNameC == undefined ? "" : result.OperationOrExaminationNameC;
                this.MaintenanceContractTypeC = result.MaintenanceContractTypeC == undefined ? "" : result.MaintenanceContractTypeC;
                this.FailureOccurrenceDateC = result.FailureOccurrenceDateC == undefined ? "" : result.FailureOccurrenceDateC;
                this.RepairSourceC = result.RepairSourceC == undefined ? "" : result.RepairSourceC;
                this.ProblemOccurredSelectC = result.ProblemOccurredSelectC == undefined ? "" : result.ProblemOccurredSelectC;
                this.Delay15MinC = result.Delay15MinC == undefined ? "" : result.Delay15MinC;
                this.ProductFailureRelatedC = result.ProductFailureRelatedC == undefined ? "" : result.ProductFailureRelatedC;
                this.RepairSubOrderC = result.RepairSubOrderC == undefined ? "" : result.RepairSubOrderC;
                this.OnCallIDC = result.OnCallIDC == undefined ? "" : result.OnCallIDC;
                this.QISIDC = result.QISIDC == undefined ? "" : result.QISIDC;
                this.InsReportC = result.InsReportC == undefined ? "" : result.InsReportC;
                this.MBCAwareDateC = result.MBCAwareDateC == undefined ? "" : result.MBCAwareDateC;
                this.CFDANoHandC = result.CFDANoHandC == undefined ? "" : result.CFDANoHandC;
                this.ProduceCompanyHandC = result.ProduceCompanyHandC == undefined ? "" : result.ProduceCompanyHandC;
                this.OfferRentalNewC = result.OfferRentalNewC == undefined ? "" : result.OfferRentalNewC;
                this.ifRentalApplyC = result.ifRentalApplyC == undefined ? "" : result.AifRentalApplyCccountC;
                this.LatestCollectDatePriorityC = result.LatestCollectDatePriorityC == undefined ? "" : result.LatestCollectDatePriorityC;
                this.RentalApplyEquipmentSetDetailIdC = result.RentalApplyEquipmentSetDetailIdC == undefined ? "" : result.RentalApplyEquipmentSetDetailIdC;
                this.RentalApplyEquipmentSetDetailC = result.RentalApplyEquipmentSetDetailC == undefined ? "" : result.RentalApplyEquipmentSetDetailC;
                this.AwareDateC = result.AwareDateC == undefined ? "" : result.AwareDateC;
                this.OCSMAdministrativeReportNumberC = result.OCSMAdministrativeReportNumberC == undefined ? "" : result.OCSMAdministrativeReportNumberC;
                this.OCSMAdministrativeReportStatusC = result.OCSMAdministrativeReportStatusC == undefined ? "" : result.OCSMAdministrativeReportStatusC;
                this.AccountC = result.AccountC == undefined ? "" : result.AccountC;
                this.OCSMAdministrativeReportDateC = result.OCSMAdministrativeReportDateC == undefined ? "" : result.OCSMAdministrativeReportDateC;
                this.Status1C = result.Status1C;
                this.CopyRepair();
                this.dispatchEvent(new CloseActionScreenEvent());
            }
        }).catch(error => {
            console.log(error);
        }).finally(() => {
        });
    }
    //   复制
    CopyRepair() {
        var Status = this.Status1C;
        if (Status == '0.删除' || Status == '0.取消') {
            var url = "/a0J/e?00N10000009H2fa=" + this.Name + "&CF00N10000002Dx1X=" + this.DeliveredProductC +
                "&CF00N10000002Dx1X_lkid=" + this.DeliveredProductC + "&00N10000006P1dw=" + this.PaperRepairRequestNoC +
                "&CF00N10000002Dx66=" + this.HospitalC + "&CF00N10000002Dx5t=" + this.DepartmentClassC +
                "&CF00N10000002Dx5n=" + this.AccountC + "&00N10000008rG4p=" + this.RepairCostTypeC +
                "&CF00N10000006P1eV=" + this.DealerC + "&CF00N10000002EMHw=" + this.InchargeStaffC +
                "&CF00N10000005HDvq=" + this.InchargeStaffContactC + "&00N10000006P6SM=" + this.SalesOfficeCodeSelectionC +
                "&00N10000002F6dW=" + this.OnSiteRepairC + "&00N10000006P6Rn=" + this.workLocationSelectC +
                "&00N10000009i1Z2=" + this.ReturnsProductWayC + "&00N10000002Dx6I=" + this.RepairDetailC +
                "&00N10000009H1rQ=" + this.RepairApplicantC + "&00N10000009H1rP=" + this.RepairApplicantHospitalC +
                "&00N10000009H1rO=" + this.RepairApplicantDepartmentC + "&00N10000009H1rB=" + this.DeliveryLogisticsModeC +
                "&00N10000009H1rk=" + this.engineerSendDateC + "&00N10000009H1rC=" + this.DeliveryLogisticsNoC +
                "&00N10000009H1rA=" + this.DeliveryLogisticsAnnotationC + "&00N10000008rsVQ=" + this.DateReceiptQuestionsC +
                "&00N10000008rsVN=" + this.BreakORFallOffC + "&00N10000008rsVS=" + this.DelayReportReasonC +
                "&00N10000008rsW5=" + this.UseFailProductFinishC + "&00N10000008rsW7=" + this.ifDeadHurtC +
                "&00N10000008rsW4=" + this.SupportingProductsC + "&00N10000008rsVv=" + this.ProblemOccurredC +
                "&00N10000008rsVL=" + this.AfterFailureInformationC + "&00N10000009hsvI=" + this.ProblemOccurredSelectC +
                "&00N10000008rsVR=" + this.Delay15MinC + "&00N10000008rsVw=" + this.ProductFailureRelatedC +
                "&00N10000008rsVZ=" + this.InformationFromC + "&00N10000008rsW2=" + this.ReportAdverseEventsC +
                "&00N10000008rsVT=" + this.FailureQInHospitalC + "&00N10000008rsW6=" + this.WhatProjectC +
                "&00N10000008rsVk=" + this.OperationOrExaminationNameC + "&00N10000008rWce=" + this.MaintenanceContractTypeC +
                "&00N10000002Dx5y=" + this.FailureOccurrenceDateC + "&00N10000002FH86=" + this.RepairSourceC +
                "&CF00N10000009H1rR=" + this.RepairSubOrderC + "&CF00N10000002FIJU=" + this.OnCallIDC +
                "&CF00N10000002FIJZ=" + this.QISIDC + "&CF00N10000006PRCp=" + this.InsReportC +
                "&00N10000008rsVM=" + this.AwareDateC + "&00N10000009GmI6=" + this.OCSMAdministrativeReportNumberC +
                "&00N10000009GmI4=" + this.MBCAwareDateC + "&00N10000009GmI5=" + this.OCSMAdministrativeReportDateC +
                "&00N10000009GmI7=" + this.OCSMAdministrativeReportStatusC + "&00N100000095siE=" + this.CFDANoHandC +
                "&00N100000095shz=" + this.ProduceCompanyHandC + "&00N100000098PV9=" + this.OfferRentalNewC +
                "&00N100000098PVA=" + this.ifRentalApplyC + "&00N10000006gZ4g=" + this.LatestCollectDatePriorityC +
                "&00N10000007MNFW=" + this.RentalApplyEquipmentSetDetailIdC +
                "&CF00N10000007MNFX=" + this.RentalApplyEquipmentSetDetailC + "&retURL=%2F" + this.Id;
            window.open(url);
        } else {
            this.ShowToastEvent("该状态下不能复制", "error")
            // alert("该状态下不能复制");
        }
    }
    ShowToastEvent(msg, type) {
        const event = new ShowToastEvent({
            title: '',
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
    }
}
force-app/main/default/lwc/lexCopyRepair/lexCopyRepair.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexCreateEvent/lexCreateEvent.html
New file
@@ -0,0 +1,6 @@
<template>
    <div class="lexCreateEventReportHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
        <lightning-button label="Show Toast" onclick={ShowToastEvent}></lightning-button>
    </div>
</template>
force-app/main/default/lwc/lexCreateEvent/lexCreateEvent.js
New file
@@ -0,0 +1,59 @@
/*
 * @Description:
 * @version:
 * @Author: chen jing wu
 * @Date: 2023-04-13 13:50:23
 * @LastEditors: chen jing wu
 * @LastEditTime: 2023-04-13 14:39:54
 */
import { api, wire,LightningElement } from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import init  from '@salesforce/apex/OpportunityLightingButtonController.initForCreateEventButton';
import { updateRecord } from 'lightning/uiRecordApi';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
export default class LexCreateEvent extends LightningElement {
    @api recordId;
    accountId;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
            console.log(111);
            console.log(currentPageReference);
        if (currentPageReference) {
          const urlValue = currentPageReference.state.recordId;
          if (urlValue) {
            let str = `${urlValue}`;
            console.log("str");
            console.log(str);
            this.recordId = str;
          }
        }
    }
    connectedCallback(){
        init({
            recordId: this.recordId
        }).then(result=>{
            this.accountId = result.accountId;
            this.createEvent();
        }).catch(error=>{
            console.log("error");
            console.log(error);
        })
    }
    createEvent(){
        window.open("/00U/e?retURL=%2Fapex%2FVFClosePage&accid=" + this.accountId + "&oid=" + this.recordId, "新建计划");
        this.dispatchEvent(new CloseActionScreenEvent());
    }
    showToast(msg,type) {
        const event = new ShowToastEvent({
            title: '',
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
    }
    updateRecordView(recordId) {
        updateRecord({fields: { Id: recordId }});
    }
}
force-app/main/default/lwc/lexCreateEvent/lexCreateEvent.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexCreateNotesEmail/lexCreateNotesEmail.css
New file
@@ -0,0 +1,10 @@
.createEmailHolder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display: none !important;
}
force-app/main/default/lwc/lexCreateNotesEmail/lexCreateNotesEmail.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="createEmailHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexCreateNotesEmail/lexCreateNotesEmail.js
New file
@@ -0,0 +1,97 @@
/*
 * @Description:
 * @version:
 * @Author: chen jing wu
 * @Date: 2023-03-27 13:53:40
 * @LastEditors: chen jing wu
 * @LastEditTime: 2023-04-10 14:22:27
 */
import { api, wire,LightningElement } from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import { NavigationMixin } from 'lightning/navigation';
import init  from '@salesforce/apex/MonthlyReportController.initForCreateNoteEmailButton';
import UserInfo_Owner from '@salesforce/apex/TaskFeedbackController.UserInfo_Owner';
export default class LexCreateNotesEmail extends LightningElement {
    @api recordId;
    ownerEmail;
    ownerAlias;
    keyIssue;
    feedBack;
    taskFollow;
    otherIssue;
    nextWeekPlan;
    drSumUrl;
    IsLoading = true;
    url;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
            console.log(111);
            console.log(currentPageReference);
        if (currentPageReference) {
          const urlValue = currentPageReference.state.recordId;
          if (urlValue) {
            let str = `${urlValue}`;
            console.log("str");
            console.log(str);
            this.recordId = str;
          }
        }
    }
    connectedCallback(){
        console.log(this.recordId);
        init({
            recordId: this.recordId
        }).then(result => {
            console.log(result);
            if (result != null) {
                this.IsLoading = false;
                this.ownerEmail = result.ownerEmail;
                this.ownerAlias = result.ownerAlias;
                this.keyIssue = result.keyIssue;
                this.feedBack = result.feedBack;
                this.taskFollow = result.taskFollow;
                this.otherIssue = result.otherIssue;
                this.nextWeekPlan = result.nextWeekPlan;
                this.drSumUrl = result.drSumUrl;
                this.userEmail = result.userEmail;
                this.createEmail();
                this.dispatchEvent(new CloseActionScreenEvent());
            }
        }).catch(error => {
            console.log("error");
            console.log(error);
        }).finally(() => {
        });
    }
    createEmail() {
        console.log("start");
       window.location.href = ("mailto:"
        + this.ownerEmail
        +"?bcc="
        +   this.userEmail
        +"&subject=【周报:"
        + this.ownerAlias
        + "】" + "&body=先生/女士" + "%0D%0A" + "%0D%0A" + "主要报告事项:"
        + this.keyIssue
        +"%0D%0A" + "下属事项/状态报告:"
        + this.feedBack
        +"%0D%0A" + "课题及对应结果/提案:"
        +  this.taskFollow
        +"%0D%0A" + "其他事项:"
        + this.otherIssue
        +"%0D%0A" + "下周计划:"
        + this.nextWeekPlan
        +"%0D%0A" + "连接:"
        + this.drSumUrl
        +"%0D%0A").substring(0,320).split("<br>").join("%0D%0A");
    }
}
force-app/main/default/lwc/lexCreateNotesEmail/lexCreateNotesEmail.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexCreateRepair/lexCreateRepair.css
New file
@@ -0,0 +1,10 @@
.createEmailHolder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display: none !important;
}
force-app/main/default/lwc/lexCreateRepair/lexCreateRepair.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="createEmailHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexCreateRepair/lexCreateRepair.js
New file
@@ -0,0 +1,231 @@
import { LightningElement,wire,track,api} from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import { NavigationMixin } from 'lightning/navigation';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import init  from '@salesforce/apex/QISReportController.initForlexCreateRepairButton';
import UserInfo_Owner from '@salesforce/apex/TaskFeedbackController.UserInfo_Owner';
import { updateRecord } from 'lightning/uiRecordApi';
export default class lexCreateRepair extends LightningElement {
    @api recordId;
    IsLoading = true;
    typeflag = false;
    newflag = false;
    qisReportId='';
    name='';
    qisRecordTypeId='';
    err='';
    accParentId='';
    accParentRecordTypeId='';
    accParentParentFSEGIMainLeader='';
    accParentParentFSEGIMainLeaderWorkLocation='';
    accParentParentFSESPMainLeader='';
    accParentParentFSESPMainLeaderWorkLocation='';
    WorkLocation='';
    accrecordId='';
    oCMjudgement='';
    nextaction='';
    specialfollow='';
    comment='';
    isUsedForTheOpera='';
    UseFailProductFinish='';
    failuerSituation='';
    sourceOnCall='';
    hospitalId='';
    departmentClassId='';
    hospitalDepartment='';
    nonyushohinId='';
    ownerId='';
    faliourdate='';
    sourceforrepair='';
    repairSalesPointProvinceChina='';
    trableoccurdaYcollect='';
    damageForDocOrPat='';
    relationWithTheProblem='';
    reportForGoz='';
    whichProject='';
    operaName='';
    breakORFallOff='';
    setusageproduct='';
    afterFailureInformation='';
    delay15Min='';
    informationFrom='';
    failureQInHospital='';
    ownername='';
    hospitalname = '';
    departmentClassname = '';
    hospitalDepartmentname = '';
    nonyushohinIdname = '';
    sourceOnCallname = '';
    @wire(CurrentPageReference)
     getStateParameters(currentPageReference) {
             console.log(111);
             console.log(currentPageReference);
         if (currentPageReference) {
           const urlValue = currentPageReference.state.recordId;
           if (urlValue) {
             let str = `${urlValue}`;
             console.log("str");
             console.log(str);
             this.recordId = str;
           }
         }
    }
    connectedCallback () {
        init({
            recordId: this.recordId
        }).then(result => {
            this.IsLoading = false;
            this.qisReportId = result.Id;
            this.oCMjudgement = result.oCMjudgement;
            this.nextaction = result.nextaction;
            this.ownername = result.ownername;
            this.specialfollow = result.specialfollow;
            this.qisRecordTypeId = result.qisRecordTypeId;
            this.accParentId = result.accParentId;
            this.comment = result.comment;
            if (result.sourceOnCall!=null) {
                this.sourceOnCall = result.sourceOnCall;
                this.sourceOnCallname = result.sourceOnCallname;
            }
            this.name = result.name;
            this.hospitalId = result.hospitalId;
            this.hospitalname = result.hospitalname;
            this.departmentClassname = result.departmentClassname;
            this.departmentClassId = result.departmentClassId;
            this.hospitalDepartment = result.hospitalDepartment;
            this.nonyushohinId = result.nonyushohinId;
            this.ownerId = result.ownerId;
            this.faliourdate = result.faliourdate;
            this.sourceforrepair = result.sourceforrepair;
            this.repairSalesPointProvinceChina = result.repairSalesPointProvinceChina;
            this.trableoccurdaYcollect = result.trableoccurdaYcollect;
            this.damageForDocOrPat = result.damageForDocOrPat;
            this.relationWithTheProblem = result.relationWithTheProblem;
            this.reportForGoz = result.reportForGoz;
            this.whichProject = result.whichProject;
            this.operaName = result.operaName;
            this.breakORFallOff = result.breakORFallOff;
            this.setusageproduct = result.setusageproduct;
            this.afterFailureInformation = result.afterFailureInformation;
            this.delay15Min = result.delay15Min;
            this.informationFrom = result.informationFrom;
            this.failureQInHospital = result.failureQInHospital;
            this.failuerSituation = result.failuerSituation;
            this.isUsedForTheOpera = result.isUsedForTheOpera;
            this.accParentRecordTypeId = result.accParentRecordTypeId;
            this.accParentParentFSEGIMainLeader = result.accParentParentFSEGIMainLeader;
            this.accParentParentFSEGIMainLeaderWorkLocation = result.accParentParentFSEGIMainLeaderWorkLocation;
            this.accParentParentFSESPMainLeader = result.accParentParentFSESPMainLeader;
            this.accParentParentFSESPMainLeaderWorkLocation = result.accParentParentFSESPMainLeaderWorkLocation;
             if (this.qisRecordTypeId != '01210000000RLWc' && this.qisRecordTypeId != '01210000000RLWh') {
                 this.typeflag = true;
             }
             if (this.accParentId != null) {
                 if (this.accParentRecordTypeId != null) {
                     this.accrecordId = this.accParentRecordTypeId.substring(0,15);
                     if (this.accrecordId == '01210000000QemL' || this.accrecordId == '01210000000QezZ' || this.accrecordId == '01210000000QemQ') {
                         if (this.accParentParentFSEGIMainLeader != null) {
                             this.WorkLocation = this.accParentParentFSEGIMainLeaderWorkLocation;
                         }
                     }else if(this.accrecordId == '01210000000Qeze' || this.accrecordId == '01210000000Qezj' || this.accrecordId == '01210000000Qezt'|| this.accrecordId == '01210000000Qezo'|| this.accrecordId == '01210000000Qezy'){
                         if (this.accParentParentFSESPMainLeader != null) {
                             this.WorkLocation = this.accParentParentFSESPMainLeaderWorkLocation;
                         }
                     }
                 }
             }
             if ((this.oCMjudgement == '质量问题' && this.nextaction == '无偿维修') ||
                 (this.oCMjudgement == '质量问题' && this.nextaction == '有偿维修' && this.specialfollow == '0') ||
                 (this.oCMjudgement == '非质量问题' && this.nextaction == '无偿维修' && this.specialfollow == '1') ||
                 (this.oCMjudgement == '非质量问题' && this.nextaction == '有偿维修' && this.specialfollow == '0') ||
                 (this.oCMjudgement == '质量问题+非质量问题' && this.nextaction == '无偿维修' && this.specialfollow == '1') ||
                 (this.oCMjudgement == '质量问题+非质量问题' && this.nextaction == '有偿维修+无偿维修' && this.specialfollow == '0') ||
                 (this.oCMjudgement == '现象未发现' && this.nextaction == '无偿维修' && this.specialfollow == '1') ||
                 (this.oCMjudgement == '现象未发现' && this.nextaction == '有偿维修' && this.specialfollow == '0')) {
                 this.newflag = true;
             }
             console.log('this.newflag = '+this.newflag);
             console.log('this.typeflag = '+this.typeflag);
             if ( this.newflag && this.typeflag) {
                 if (this.isUsedForTheOpera == 'YES') {
                     this.UseFailProductFinish = '是';
                 }else if(this.isUsedForTheOpera == 'NO-用替代品完成了'){
                     this.UseFailProductFinish = '否-用替代品完成';
                 }else if(this.isUsedForTheOpera == 'NO-用其他公司的同类产品完成了'){
                     this.UseFailProductFinish = '否-用其他公司的同类产品完成';
                 }else if(this.isUsedForTheOpera == 'NO-手术中止'){
                     this.UseFailProductFinish = '否-手术中止';
                 }
                 if ('使用前准备' == this.failuerSituation) {
                     this.failuerSituation = '使用前准备-患者未麻醉';
                 }
                 var url = '';
                     url = "/a0J/e?" +
                        "CF00N10000002FIJU_lkid="+this.sourceOnCall+"&" +
                        "CF00N10000002FIJU="+this.sourceOnCallname+"&" +
                        "CF00N10000002FIJZ_lkid="+this.qisReportId+"&" +
                        "CF00N10000002FIJZ="+this.name+"&" +
                        "CF00N10000002Dx66_lkid="+this.hospitalId+"&" +
                        "CF00N10000002Dx66="+this.hospitalname+"&" +
                        "CF00N10000002Dx5t_lkid="+this.departmentClassId+"&" +
                        "CF00N10000002Dx5t="+this.departmentClassname+"&" +
                        "CF00N10000002Dx5n_lkid="+this.hospitalDepartment+"&" +
                        "CF00N10000002Dx5n="+this.hospitalDepartmentname+"&" +
                        "CF00N10000002Dx1X_lkid="+this.nonyushohinId+"&" +
                        "CF00N10000002Dx1X="+this.nonyushohinIdname+"&" +
                        "CF00N10000002EMHw_lkid="+this.ownerId+"&" +
                        "CF00N10000002EMHw="+this.ownername+"&" +
                        "00N10000002Dx5y="+this.faliourdate+"&" +
                        "00N10000002Dx6I="+this.comment+"&" +
                        "00N10000002FH86="+this.sourceforrepair+"&" +
                        "00N10000006P6Rn="+this.repairSalesPointProvinceChina+"&" +
                        "00N10000008rsVQ="+this.trableoccurdaYcollect+"&" +
                        "00N10000008rsW7="+this.damageForDocOrPat+"&"+
                        "00N10000008rsVw="+this.relationWithTheProblem+"&"+
                        "00N10000008rsW2="+this.reportForGoz+"&"+
                        "00N10000008rsW6="+this.whichProject+"&"+
                        "00N10000008rsVk="+this.operaName+"&" +
                        "00N10000008rsVN="+this.breakORFallOff+"&"+
                        "00N10000008rsW4="+this.setusageproduct+"&" +
                        "00N10000008rsVL="+this.afterFailureInformation+"&" +
                        "00N10000008rsVR="+this.delay15Min+"&"+
                        "00N10000008rsVZ="+this.informationFrom+"&"+
                        "00N10000008rsVT="+this.failureQInHospital+"&" +
                        "00N10000008rsVv="+this.failuerSituation+"&"+
                        "00N10000008rsW5="+this.UseFailProductFinish+ "&" +
                        "00N10000006P6SM="+this.WorkLocation+ "&" +
                        "retURL=%2F"+this.qisReportId;
                        window.open(url, "_blank");
                        this.dispatchEvent(new CloseActionScreenEvent());
             }else{
                 const evt = new ShowToastEvent({
                        title : '该QIS不能新建修理',
                        message: '',
                        variant: 'error'
                    });
                    this.dispatchEvent(evt);
                this.dispatchEvent(new CloseActionScreenEvent());
                 return;
             }
        }).catch(error => {
            const evt = new ShowToastEvent({
                        title : '发生错误',
                        message: '',
                        variant: 'error'
                    });
                    this.dispatchEvent(evt);
            this.dispatchEvent(new CloseActionScreenEvent());
            console.log('error='+error);
             return;
        }).finally(() => {
        });
    }
}
force-app/main/default/lwc/lexCreateRepair/lexCreateRepair.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexCreateRepair">
   <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexCreateReportMaintenanceContract/lexCreateReportMaintenanceContract.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="exampleHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexCreateReportMaintenanceContract/lexCreateReportMaintenanceContract.js
New file
@@ -0,0 +1,69 @@
import {
    LightningElement,
    wire,
    api
} from 'lwc';
import {
    CurrentPageReference
} from "lightning/navigation";
import {
    CloseActionScreenEvent
} from 'lightning/actions';
import init from '@salesforce/apex/otherButtonMaintenanceContractCtl.init';
export default class LexCreateReportMaintenanceContract extends LightningElement {
    @api recordId;
    str;
    IsLoading = true;
    Id;
    RecordTypeDeveloperNameC;
    EstimateTargetC;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
        if (currentPageReference) {
            const urlValue = currentPageReference.state.recordId;
            if (urlValue) {
                let str = `${urlValue}`;
                this.recordId = str;
            }
        }
    }
    connectedCallback() {
        console.log(this.recordId);
        init({
            recordId: this.recordId
        }).then(result => {
            console.log(result);
            if (result != null) {
                this.IsLoading = false;
                this.Id = result.Id;
                this.RecordTypeDeveloperNameC = result.RecordTypeDeveloperNameC;
                this.EstimateTargetC = result.EstimateTargetC;
                this.CreateReport();
                this.dispatchEvent(new CloseActionScreenEvent());
            }
        }).catch(error => {
            console.log(error);
        }).finally(() => {
        });
    }
    // 制作报告书
    CreateReport() {
        var MaintenanceContractId = this.Id;
        var RecordTypeName = this.RecordTypeDeveloperNameC;
        var EstimateTarget = this.EstimateTargetC;
        var url = '';
        if (EstimateTarget == "经销商" && (RecordTypeName == "NewMaintenance_Contract" || RecordTypeName == "VM_Contract")) {
            url = "/apex/MoreMaintenanceContractPop?Id=" + MaintenanceContractId + "&RecordTypeName=" + RecordTypeName;
        } else {
            url = "http://powerbi.olympus.com.cn/Home/Login";
        }
        window.open(url, '_bank');
    }
}
force-app/main/default/lwc/lexCreateReportMaintenanceContract/lexCreateReportMaintenanceContract.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexCustomAnewMaintenance/lexCustomAnewMaintenance.html
New file
@@ -0,0 +1,6 @@
<template>
    <div class="exampleHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
        <lightning-button label="Show Toast" onclick={ShowToastEvent}></lightning-button>
    </div>
</template>
force-app/main/default/lwc/lexCustomAnewMaintenance/lexCustomAnewMaintenance.js
New file
@@ -0,0 +1,96 @@
import {
    LightningElement,
    wire,
    api
} from 'lwc';
import {
    CurrentPageReference
} from "lightning/navigation";
import {
    CloseActionScreenEvent
} from 'lightning/actions';
import init from '@salesforce/apex/otherButtonMaintenanceContractCtl.init';
import selectMaintenanceContractEstimate from '@salesforce/apex/otherButtonMaintenanceContractCtl.selectMaintenanceContractEstimate';
import {
    ShowToastEvent
} from 'lightning/platformShowToastEvent';
export default class LexCustomAnewMaintenance extends LightningElement {
    @api recordId;
    str;
    IsLoading = true;
    Id;
    StatusC;
    RecordTypeId;
    URFContractC;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
        if (currentPageReference) {
            const urlValue = currentPageReference.state.recordId;
            if (urlValue) {
                let str = `${urlValue}`;
                this.recordId = str;
            }
        }
    }
    connectedCallback() {
        console.log(this.recordId);
        init({
            recordId: this.recordId
        }).then(result => {
            console.log(result);
            if (result != null) {
                this.IsLoading = false;
                this.Id = result.Id;
                this.RecordTypeId = result.RecordTypeId;
                this.StatusC = result.StatusC;
                this.URFContractC = result.URFContractC;
                this.CustomAnew();
                this.dispatchEvent(new CloseActionScreenEvent());
            }
        }).catch(error => {
            console.log(error);
        })
    }
    //中止
    CustomAnew() {
        if (this.StatusC != "引合中") {
            this.ShowToastEvent("维修合同不是询价中的状态,不能再报价", "error")
            // alert("维修合同不是询价中的状态,不能再报价");
        } else {
            init().then(result => {
                if (result.length == 1) {
                    if (this.RecordTypeId == "01210000000gTYq") {
                        //URF限次合同2期 LY 20220902 start
                        if (this.URFContractC == true) {
                            window.open("/apex/SelectAssetEstimateURF?copyid=" + ids[0], "_top");
                        } else {
                            window.open("/apex/SelectAssetEstimateVM?copyid=" + ids[0], "_top");
                        }
                        //URF限次合同2期 LY 20220902 end
                    } else {
                        window.open("/apex/SelectAssetEstimate?copyid=" + ids[0], "_top");
                    }
                } else {
                    this.ShowToastEvent('请选择一个报价', "error")
                    // alert('请选择一个报价');
                }
            })
        }
    }
    // 弹窗
    ShowToastEvent(msg, type) {
        const event = new ShowToastEvent({
            title: '',
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
    }
}
force-app/main/default/lwc/lexCustomAnewMaintenance/lexCustomAnewMaintenance.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexCustomAttachmentTypeComp/lexCustomAttachmentTypeComp.html
New file
@@ -0,0 +1,16 @@
<!-- sldsValidatorIgnore -->
<!-- sldsValidatorIgnore -->
<template>
    <div class="picklist-container">
        <lightning-combobox
            name="selecttype"
            value={typeValue}
            variant="label-hidden"
            onchange={handleDataChange}
            data-field="selecttype"
            options={typeOptions}
            disabled={isDisabledAttachment}
        ></lightning-combobox>
    </div>
</template>
force-app/main/default/lwc/lexCustomAttachmentTypeComp/lexCustomAttachmentTypeComp.js
New file
@@ -0,0 +1,25 @@
import { LightningElement,api } from 'lwc';
export default class LexCustomAttachmentTypeComp extends LightningElement {
    @api typeValue;
    @api typeOptions;
    @api recordId;
    @api isDisabledAttachment;
    connectedCallback(){
        console.log('typeValue = ' + this.typeValue + ' typeOptions = ' + this.typeOptions + ' recordId' + this.recordId + ' isDisabledAttachment=' + this.isDisabledAttachment);
    }
    handleDataChange(event){
        console.log('typeValue = ' + event.target.value);
        this.typeValue = event.target.value;
        this.dispatchEvent(new CustomEvent('typechange', {
            composed: true,
            bubbles: true,
            cancelable: true,
            detail: {
                data: { typeValue: this.typeValue, recordId: this.recordId }
            }
        }));
    }
}
force-app/main/default/lwc/lexCustomAttachmentTypeComp/lexCustomAttachmentTypeComp.js-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>56.0</apiVersion>
    <isExposed>false</isExposed>
</LightningComponentBundle>
force-app/main/default/lwc/lexCustomClone/lexCustomClone.css
New file
@@ -0,0 +1,10 @@
.createEmailHolder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display: none !important;
}
force-app/main/default/lwc/lexCustomClone/lexCustomClone.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="createEmailHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexCustomClone/lexCustomClone.js
New file
@@ -0,0 +1,49 @@
import { LightningElement,wire,track,api} from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import { NavigationMixin } from 'lightning/navigation';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import init  from '@salesforce/apex/CaseController.initForlexCustomCloneButton';
import UserInfo_Owner from '@salesforce/apex/TaskFeedbackController.UserInfo_Owner';
import { updateRecord } from 'lightning/uiRecordApi';
export default class lexCustomClone extends LightningElement {
    @api recordId;
    IsLoading = true;
    inquirydetail;
    answerdetailcontent;
    @wire(CurrentPageReference)
     getStateParameters(currentPageReference) {
             console.log(111);
             console.log(currentPageReference);
         if (currentPageReference) {
           const urlValue = currentPageReference.state.recordId;
           if (urlValue) {
             let str = `${urlValue}`;
             console.log("str");
             console.log(str);
             this.recordId = str;
           }
         }
    }
    connectedCallback () {
        init({
            recordId: this.recordId
        }).then(result => {
            this.IsLoading = false;
            this.inquirydetail = result.inquirydetail;
            this.answerdetailcontent = result.answerdetailcontent;
            var url = "/500/e?retURL="+this.recordId+"&RecordType=01210000000QsYp&ent=Case"+
                        "&00N10000003M4vA="+this.inquirydetail+
                        "&00N10000003M4v8="+this.answerdetailcontent;
            window.open(url);
        }).catch(error => {
            console.log('error='+error);
        }).finally(() => {
        });
    }
}
force-app/main/default/lwc/lexCustomClone/lexCustomClone.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexCustomClone">
     <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexCustomDelete/lexCustomDelete.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="exampleHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexCustomDelete/lexCustomDelete.js
New file
@@ -0,0 +1,89 @@
import {
    LightningElement,
    wire,
    api
} from 'lwc';
import {
    CurrentPageReference
} from "lightning/navigation";
import {
    CloseActionScreenEvent
} from 'lightning/actions';
import init from '@salesforce/apex/otherButtonRepairController.init';
import selectCustomDeleteById from '@salesforce/apex/otherButtonRepairController.selectCustomDeleteById';
import deleteRepair from '@salesforce/apex/otherButtonRepairController.deleteRepair';
export default class LexCustomDelete extends LightningElement {
    @api recordId;
    str;
    IsLoading = true;
    Id;
    userID;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
        if (currentPageReference) {
            const urlValue = currentPageReference.state.recordId;
            if (urlValue) {
                let str = `${urlValue}`;
                this.recordId = str;
            }
        }
    }
    connectedCallback() {
        init({
            recordId: this.recordId
        }).then(result => {
            console.log(result);
            if (result != null) {
                this.IsLoading = false;
                this.Id = result.Id;
                this.userID = result.userID;
                this.CustomDelete();
                this.dispatchEvent(new CloseActionScreenEvent());
            }
        }).catch(error => {
            console.log(error);
        }).finally(() => {
        });
    }
    // 删除
    CustomDelete() {
        selectCustomDeleteById({
            recordId: this.Id
        }).then(repList => {
            if (repList != null && repList.length > 0) {
                var rp = repList[0];
                if (rp.Status__c != "草案中" &&
                    rp.Status__c != "1.受理完毕(SAP待发送)" &&
                    rp.Status__c != "4.修理品返送阶段"
                ) {
                    alert("不是草案中,不能删除");
                } else if (rp.Status__c == "4.修理品返送阶段" &&
                    (rp.SAP_Transfer_time__c != "" || rp.Repair_Ordered_Date__c != "")
                ) {
                    alert("已经发送过SAP,不能删除");
                } else if (this.userID.substring(0, 15) != rp.CreatedById.substring(0, 15) && this.userID.substring(0, 15) != rp.Acc_OwnerId__c.substring(0, 15) && this.userID.substring(0, 15) != rp.FSE_ownerid__c.substring(0, 15)) {
                    alert("不是所有人、创建人或FSE主负责人,不能删除");
                } else {
                    if (confirm("是否确定?")) {
                        deleteRepair({
                            rid: rp.Id
                        }).then(rtn => {
                            if (rtn == "OK") {
                                window.location.href = "/a0J/o";
                            } else {
                                alert(rtn);
                            }
                        })
                    }
                }
            }
        })
    }
}
force-app/main/default/lwc/lexCustomDelete/lexCustomDelete.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexCustomDeleteLWC/lexCustomDeleteLWC.html
New file
@@ -0,0 +1,2 @@
<template>
</template>
force-app/main/default/lwc/lexCustomDeleteLWC/lexCustomDeleteLWC.js
New file
@@ -0,0 +1,144 @@
import { LightningElement, api, track, wire } from 'lwc';
import init from '@salesforce/apex/lexCustomDeleteController.initForCustomDelete';
import {CurrentPageReference} from 'lightning/navigation'
import UserInfo_Owner from '@salesforce/apex/TaskFeedbackController.UserInfo_Owner';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import deleteRepair from '@salesforce/apex/ControllerUtil.deleteRepair';
export default class lexCustomDeleteLWC extends LightningElement {
    @api recordId;
    @api message;
    @track Status ;
    @track FSE ;
    @track SAP;
    @track cre ;
    @track Rep ;
    @track acc ;
    @track fSE ;
    @track id;
    @track rtn;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference){
        console.log(111);
        console.log(currentPageReference);
        if(currentPageReference){
            const urlValue=currentPageReference.state.recordId;
            if(urlValue){
                let str='${urlValue}';
                console.log("str");
                console.log(str);
                this.recordId=str;
            }
        }
    }
    connectedCallback(){
        console.log(this.recordId);
        init({
            recordId:this.recordId
        }).then(result=>{
            console.log(result);
            if(result!=null){
                this.FSE=result.FSEApplyForRepairtime;
                this.Rep=result.Rep;
                this.SAP=result.SAP;
                this.Status=result.Status;
                this.acc=result.acc;
                this.id=result.Id;
                this.cre=result.cre;
                this.fSE=result.FSEownerId;
                console.log("end");
                this.handleDeleteAction();
                console.log("end2");
            }
        })
    }
    handleDeleteAction(){
    if (this.Status != null && this.Status.length > 0) {
        if (this.Status != "草案中"&& this.Status != "1.受理完毕(SAP待发送)"&& this.Status != "4.修理品返送阶段") {
            this.message = "不是草案中,不能删除";
            const event = new ShowToastEvent({
                title: 'error',
                variant:'error',
                message:
                    this.message,
            });
            this.dispatchEvent(event);
        }
        else if (this.Status == "0.申请完毕"&& (this.FSE != "")) {
            message = "FSE已经申请,不能删除";
        console.log('***action4');
            const event = new ShowToastEvent({
                title: 'warning',
                message:
                    this.message,
            });
            this.dispatchEvent(event);
        }
        else if (this.Status == "4.修理品返送阶段"&& (this.SAP != "" || this.Rep!= "")){
            message = "已经发送过SAP,不能删除";
            const event = new ShowToastEvent({
                title: 'warning',
                message:
                    this.message,
            });
            this.dispatchEvent(event);
        }
        else if (UserInfo_Owner.Id.substring(0,15) != this.cre.substring(0,15) && UserInfo_Owner.Id.substring(0,15) != this.acc.substring(0,15)&& UserInfo_Owner.Id.substring(0,15) != this.fSE.substring(0,15)) {
            message = "不是所有人、创建人或FSE主负责人,不能删除";
            const event = new ShowToastEvent({
                title: 'warning',
                message:
                    this.message,
            });
            this.dispatchEvent(event);
        }
        else {
            // sforce.connection.sessionId = '{!$Api.Session_ID}';
            // var rtn=sforce.apex.execute("ControllerUtil","deleteRepair",{rid:this.id});
            deleteRepair({
                rid:this.id
            }).then(result=>{
                console.log(result);
                if(result!=null){
                    this.rtn=result;
                }
            })
            if (this.rtn == "OK") {
                 reload();
            } else {
                alert(this.rtn);
            }
        }
     }
    function reload(){
        var str="";
        if(getParam('retURL')!==null){
            str +=getParam('retURL');
        }
        window.open(str,'_self');
    }
    function getParam(paramName) {
        paramValue = "", isFound = !1;
        if (this.location.search.indexOf("?") == 0 && this.location.search.indexOf("=") > 1) {
            arrSource = unescape(this.location.search).substring(1, this.location.search.length).split("&"), i = 0;
            while (i < arrSource.length && !isFound) arrSource[i].indexOf("=") > 0 && arrSource[i].split("=")[0].toLowerCase() == paramName.toLowerCase() && (paramValue = arrSource[i].split("=")[1], isFound = !0), i++
        }
    return paramValue == "" && (paramValue = null), paramValue
}
}
}
force-app/main/default/lwc/lexCustomDeleteLWC/lexCustomDeleteLWC.js-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="customDelete">
    <apiVersion>56.0</apiVersion>
    <isExposed>true</isExposed>
</LightningComponentBundle>
force-app/main/default/lwc/lexCustomDiffReasonComp/lexCustomDiffReasonComp.html
New file
@@ -0,0 +1,9 @@
<template>
    <lightning-input
    variant="label-hidden"
    type='text'
    value = {DiffReason}
    onblur={diffReasonBlur}>
    </lightning-input>
</template>
force-app/main/default/lwc/lexCustomDiffReasonComp/lexCustomDiffReasonComp.js
New file
@@ -0,0 +1,27 @@
import { LightningElement,api, track } from 'lwc';
export default class LexCustomDiffReasonComp extends LightningElement {
    @api prodId;
    @track DiffReason = '';
    connectedCallback(){
        console.log('ProdId'+this.prodId);
    }
    diffReasonBlur(event){
        console.log('LexCustomDiffReasonComp')
        this.DiffReason = event.target.value;
        this.dispatchEvent(new CustomEvent('diffreasons', {
            composed: true,
            bubbles: true,
            cancelable: true,
            detail: {
                data: { DiffReason: this.DiffReason, ProdId: this.prodId }
            }
        }));
    }
}
force-app/main/default/lwc/lexCustomDiffReasonComp/lexCustomDiffReasonComp.js-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>56.0</apiVersion>
    <isExposed>false</isExposed>
</LightningComponentBundle>
force-app/main/default/lwc/lexCustomLightningDatatable/customAttachmentType.html
New file
@@ -0,0 +1,10 @@
<template>
    <c-lex-custom-attachment-type-comp
        type-value={typeAttributes.typeValue}
        type-options={typeAttributes.typeOptions}
        record-id={typeAttributes.recordId}
        is-disabled-attachment={typeAttributes.isDisabledAttachment}
        ontypechange={handleDataChange}
    >
    </c-lex-custom-attachment-type-comp>
</template>
force-app/main/default/lwc/lexCustomLightningDatatable/customShipmentNumber.html
@@ -1,6 +1,8 @@
<template>
    <c-custom-shipment-number-comp
    record-id={typeAttributes.recordId}>
    record-id={typeAttributes.recordId}
    shipment-number={typeAttributes.shipmentNumber}
    >
    </c-custom-shipment-number-comp>
</template>
force-app/main/default/lwc/lexCustomLightningDatatable/customShippingUnitPrice.html
@@ -1,6 +1,8 @@
<template>
    <c-custom-shipping-unit-price-comp
    record-id={typeAttributes.recordId}>
    record-id={typeAttributes.recordId}
    shipping-unit-price={typeAttributes.shippingUnitPrice}
    >
    </c-custom-shipping-unit-price-comp>
</template>
force-app/main/default/lwc/lexCustomLightningDatatable/customTableInput.html
New file
@@ -0,0 +1,3 @@
<template>
    <c-lex-custom-table-input input-value={typeAttributes.inputValue} record-id={typeAttributes.recordId}></c-lex-custom-table-input>
</template>
force-app/main/default/lwc/lexCustomLightningDatatable/lexCustomDiffReason.html
New file
@@ -0,0 +1,5 @@
<template>
    <c-lex-custom-diff-reason-comp
        prod-id={typeAttributes.ProdId}>
    </c-lex-custom-diff-reason-comp>
</template>
force-app/main/default/lwc/lexCustomLightningDatatable/lexCustomLightningDatatable.js
@@ -3,31 +3,46 @@
import customShipmentNumberTemplate from './customShipmentNumber.html';
import customShippingUnitPriceTemplate from './customShippingUnitPrice.html';
import customShipmentAmountTemplate from './customShipmentAmount.html';
import { loadStyle } from 'lightning/platformResourceLoader';
import customDiffReasonTemplate from './lexCustomDiffReason.html';
import attachmentTypeTemplate from './customAttachmentType.html';
import { loadStyle} from 'lightning/platformResourceLoader';
import LexCustomDataTable from '@salesforce/resourceUrl/LexCustomDataTable';
export default class LexCustomLightningDatatable extends LightningDatatable {
    static customTypes = {
        customUnit: {
            template: customUnitTemplate,
            typeAttributes: ['unitValue', 'unitOptions', 'recordId']
            typeAttributes: ['unitValue','unitOptions','recordId'],
        },
        customShipment: {
            template: customShipmentNumberTemplate,
            typeAttributes: ['recordId']
            typeAttributes: ['shipmentNumber','recordId'],
        },
        customShipmentUnitPrice: {
            template: customShippingUnitPriceTemplate,
            typeAttributes: ['recordId']
            typeAttributes: ['shippingUnitPrice','recordId'],
        },
        customShipmentAmount: {
            template: customShipmentAmountTemplate,
            typeAttributes: ['shipmentAmount', 'recordId']
            typeAttributes: ['shipmentAmount','recordId'],
        },
        customDiffReason : {
            template: customDiffReasonTemplate,
            typeAttributes: ['ProdId'],
        },
        customAttachmentType: {
            template: attachmentTypeTemplate,
            typeAttributes: ['typeValue','typeOptions','recordId','isDisabledAttachment'],
        },
        customTableInput: {
            template: customTableInputTemplate,
            typeAttributes:['inputValue','recordId'],
        }
    };
    constructor() {
        super();
        Promise.all([loadStyle(this, LexCustomDataTable)]).then(() => {});
        Promise.all([
            loadStyle(this, LexCustomDataTable),
        ]).then(() => {})
    }
}
}
force-app/main/default/lwc/lexCustomNewCopy2/lexCustomNewCopy2.html
New file
@@ -0,0 +1,6 @@
<template>
    <div class="exampleHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
        <lightning-button label="Show Toast" onclick={ShowToastEvent}></lightning-button>
    </div>
</template>
force-app/main/default/lwc/lexCustomNewCopy2/lexCustomNewCopy2.js
New file
@@ -0,0 +1,77 @@
import {
    LightningElement,
    wire,
    api
} from 'lwc';
import {
    CurrentPageReference
} from "lightning/navigation";
import {
    CloseActionScreenEvent
} from 'lightning/actions';
import init from '@salesforce/apex/otherButtonMaintenanceContractCtl.init';
import {
    ShowToastEvent
} from 'lightning/platformShowToastEvent';
export default class LexCustomNewCopy2 extends LightningElement {
    @api recordId;
    str;
    IsLoading = true;
    Id;
    notRenewC;
    Name;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
        if (currentPageReference) {
            const urlValue = currentPageReference.state.recordId;
            if (urlValue) {
                let str = `${urlValue}`;
                this.recordId = str;
            }
        }
    }
    connectedCallback() {
        console.log(this.recordId);
        init({
            recordId: this.recordId
        }).then(result => {
            console.log(result);
            if (result != null) {
                this.IsLoading = false;
                this.Id = result.Id;
                this.notRenewC = result.notRenewC;
                this.Name = result.Name;
                this.CustomNewCopy2();
                this.dispatchEvent(new CloseActionScreenEvent());
            }
        }).catch(error => {
            console.log(error);
        }).finally(() => {
        });
    }
    // 继续新服务合同
    CustomNewCopy2() {
        if (this.notRenewC) {
            this.ShowToastEvent("请联系服务商品部!", "error");
            // alert("请联系服务商品部!");
        } else {
            window.open("/" + this.Id + "/e?clone=1&Name=&00N10000002Dx5D=&00N10000002Dx5S=%e5%bc%95%e5%90%88%e4%b8%ad&00NO00000010sDc=&CF00NO00000010hyI=&CF00NO00000010hyI_lkid=&CF00NO00000010hyX=&CF00NO00000010hyX_lkid=&CF00NO00000010hyN=&CF00NO00000010hyN_lkid=&RecordType=01210000000gTYq&00N10000002pmOp=&00N10000006gZDd=&00N10000006gZDe=&00NO00000010hy4=&00N10000002Dx4j=&00N10000002Dx4m=&00N10000002Dx4w=&00N10000002Dx4k=&00N10000002Dx5J=&00N10000002Dx5M=&00N10000002Dx4i=&00N10000002Dx4h=&00N10000002Dx5K=&00N10000003OXdT=&00N100000048zfn=&00N10000002FMsq=&00N10000003OlGF=&00N10000002Dx4r=&00N100000047AY1=&00N100000047AYB=&00N100000047AY6=&00N10000003PCeB=&00N10000005HBNe=&00N10000006plAl=&00N10000002Dx5C=&retURL=%2F" + this.Id + "&saveURL=%2Fapex/SaveMaintenanceByCopy?mid=" + this.Id + "&CF00N100000048Paw=" + this.Name + "&CF00N100000048Paw_lkid=" + this.Id, "_blank");
        }
    }
    // 弹窗
    ShowToastEvent(msg, type) {
        const event = new ShowToastEvent({
            title: '',
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
    }
}
force-app/main/default/lwc/lexCustomNewCopy2/lexCustomNewCopy2.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexCustomNewMCMaintenance/lexCustomNewMCMaintenance.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="exampleHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexCustomNewMCMaintenance/lexCustomNewMCMaintenance.js
New file
@@ -0,0 +1,81 @@
import {
    LightningElement,
    wire,
    api
} from 'lwc';
import {
    CurrentPageReference
} from "lightning/navigation";
import {
    CloseActionScreenEvent
} from 'lightning/actions';
import init from '@salesforce/apex/otherButtonMaintenanceContractCtl.init';
export default class LexCustomNewMCMaintenance extends LightningElement {
    @api recordId;
    str;
    IsLoading = true;
    Id;
    StatusC;
    IsRecognitionModelC;
    RecordTypeId;
    URFContractC;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
        if (currentPageReference) {
            const urlValue = currentPageReference.state.recordId;
            if (urlValue) {
                let str = `${urlValue}`;
                this.recordId = str;
            }
        }
    }
    connectedCallback() {
        console.log(this.recordId);
        init({
            recordId: this.recordId
        }).then(result => {
            console.log(result);
            if (result != null) {
                this.IsLoading = false;
                this.Id = result.Id;
                this.StatusC = result.StatusC;
                this.IsRecognitionModelC = result.IsRecognitionModelC;
                this.RecordTypeId = result.RecordTypeId;
                this.URFContractC = result.URFContractC;
                this.CustomNewMC();
                this.dispatchEvent(new CloseActionScreenEvent());
            }
        }).catch(error => {
            console.log(error);
        })
    }
    // 新建新服务合同报价
    CustomNewMC() {
        if ( this.StatusC != "引合中") {
            alert("维修合同不是询价中的状态,不能新建报价");
        } else {
            //维修合同新建报价时,如果是先款对象,弹出对话框提示 thh 20220304 start
            if (this.IsRecognitionModelC == 1) {
                if (!confirm("该经销商为先款对象,是否继续新建报价?")) {
                    return;
                }
            }
            //维修合同新建报价时,如果是先款对象,弹出对话框提示 thh 20220304 end
            if (this.RecordTypeId == "01210000000gTYq") {
                if (this.URFContractC == "0") {
                    window.open("/apex/SelectAssetEstimateVM?mcid=" + this.Id, "_top");
                } else {
                    window.open("/apex/SelectAssetEstimateURF?mcid=" + this.Id, "_top");
                }
            } else {
                window.open("/apex/SelectAssetEstimate?mcid=" + this.Id, "_top");
            }
        }
    }
}
force-app/main/default/lwc/lexCustomNewMCMaintenance/lexCustomNewMCMaintenance.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexCustomNewMaintenance/lexCustomNewMaintenance.html
New file
@@ -0,0 +1,6 @@
<template>
    <div class="exampleHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
        <lightning-button label="Show Toast" onclick={ShowToastEvent}></lightning-button>
    </div>
</template>
force-app/main/default/lwc/lexCustomNewMaintenance/lexCustomNewMaintenance.js
New file
@@ -0,0 +1,79 @@
import {
    LightningElement,
    wire,
    api
} from 'lwc';
import {
    CurrentPageReference
} from "lightning/navigation";
import {
    CloseActionScreenEvent
} from 'lightning/actions';
import init from '@salesforce/apex/otherButtonMaintenanceContractCtl.init';
import {
    ShowToastEvent
} from 'lightning/platformShowToastEvent';
export default class LexCustomNewMaintenance extends LightningElement {
    @api recordId;
    str;
    IsLoading = true;
    Id;
    StatusC;
    RecordTypeId;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
        if (currentPageReference) {
            const urlValue = currentPageReference.state.recordId;
            if (urlValue) {
                let str = `${urlValue}`;
                this.recordId = str;
            }
        }
    }
    connectedCallback() {
        console.log(this.recordId);
        init({
            recordId: this.recordId
        }).then(result => {
            console.log(result);
            if (result != null) {
                this.IsLoading = false;
                this.Id = result.Id;
                this.StatusC = result.StatusC;
                this.RecordTypeId = result.RecordTypeId;
                this.CustomNew();
                this.dispatchEvent(new CloseActionScreenEvent());
            }
        }).catch(error => {
            console.log(error);
        })
    }
    // 新建维修合同报价
    CustomNew() {
        if (this.StatusC != "引合中") {
            this.ShowToastEvent("维修合同不是询价中的状态,不能新建报价", "error");
            // alert("维修合同不是询价中的状态,不能新建报价");
        } else {
            if (this.RecordTypeId == "01210000000gTYq") {
                window.open("/apex/SelectAssetEstimateVM?mcid=" + this.Id, "_top");
            } else {
                window.open("/apex/SelectAssetEstimate?mcid=" + this.Id, "_top");
            }
        }
    }
    // 弹窗
    ShowToastEvent(msg, type) {
        const event = new ShowToastEvent({
            title: '',
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
    }
}
force-app/main/default/lwc/lexCustomNewMaintenance/lexCustomNewMaintenance.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexCustomSubmit/lexCustomSubmit.css
New file
@@ -0,0 +1,11 @@
.Holder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display : none !important;
}
force-app/main/default/lwc/lexCustomSubmit/lexCustomSubmit.html
New file
@@ -0,0 +1,5 @@
<template>
      <div class="Holder" if:true={IsLoading}>
              <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
      </div>
</template>
force-app/main/default/lwc/lexCustomSubmit/lexCustomSubmit.js
New file
@@ -0,0 +1,158 @@
import { LightningElement,api, track, wire } from 'lwc';
import {CurrentPageReference} from 'lightning/navigation';
import { CloseActionScreenEvent } from 'lightning/actions';
import getUserId from '@salesforce/apex/RentalApplyControllerLWT.getUserId';
import init from '@salesforce/apex/SelectSubstituteControllerLWT.initFromCustomSubmitButton';
import updateRaesc from '@salesforce/apex/SelectSubstituteControllerLWT.updateRaesc';
import selectRacById from '@salesforce/apex/SelectSubstituteControllerLWT.selectRacById';
import postponeCheck from '@salesforce/apex/SelectSubstituteControllerLWT.postponeCheck';
import { loadScript } from 'lightning/platformResourceLoader';
import { submitForApproval } from 'lightning/uiRecordApi';
import { updateRecord } from 'lightning/uiRecordApi';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
export default class lexCustomSubmit extends LightningElement {
    @api recordId;
    id;
    RentalApplyId;
    Status;
    IsLoading=true;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference){
        console.log("进入页面");
        console.log(currentPageReference);
        if(currentPageReference){
            const urvalue=currentPageReference.state.recordId;
            if(urvalue){
                let str=`${urvalue}`;
                console.log('str');
                console.log(str);
                this.recordId=str;
            }
        }
    }
    connectedCallback(){
        console.log(this.recordId);
        init({recordId:this.recordId}).then(result=>{
            console.log(result);
            if(result!=null){
                this.Rental_Apply_Equipment_Set__c=result;
                this.cancelSubmit().then(res=>{
                    this.IsLoading=false;
                    this.dispatchEvent(new CloseActionScreenEvent());
                });
            }
        }).catch(err=>{
            console.log("error:");
            console.log(err);
        }).finally(()=>{
        });
    }
    async cancelSubmit(){
        console.log("hhh1");
        if (this.Rental_Apply_Equipment_Set__c.Request_extend_day__c == ""
        || this.Rental_Apply_Equipment_Set__c.Request_extend_day__c == null
        || this.Rental_Apply_Equipment_Set__c.Extend_request_reason__c == ""
        || this.Rental_Apply_Equipment_Set__c.Extend_request_reason__c == null) {
            // alert("必须填写延期希望结束日,延期申请理由");
            const event = new ShowToastEvent({
                title: '提示信息',
                message:"必须填写延期希望结束日,延期申请理由"
            });
            this.dispatchEvent(event);
            return;
        }
        console.log("hhh2");
        let rtn;
        await postponeCheck({
            endDate:this.Rental_Apply_Equipment_Set__c.Rental_End_Date__c,
            d:-5
        }).then(res=>{
            console.log(res);
            rtn=res;
        }).catch(err=>{
            console.log("err:",err.message);
        })
        console.log(rtn);
        if (rtn != "OK") {
            // alert(rtn);
            const event = new ShowToastEvent({
                title: '提示信息',
                message:rtn
            });
            this.dispatchEvent(event);
            return;
        }
        console.log("hhh3");
        let resultSet = await selectRacById({recordId:this.Rental_Apply_Equipment_Set__c.Rental_Apply__c})
        ;
        let records = resultSet;
        console.log("hhh4");
        let result = await updateRaesc({
            recordId:this.Rental_Apply_Equipment_Set__c.Id,
            JingliApprovalManagerc:records[0].JingliApprovalManager__c,
            BuchangApprovalManagerc:records[0].SalesManager__c,
            BuchangApprovalManagerSalesc:records[0].BuchangApprovalManager__c,
            ZongjianApprovalManagerc:records[0].BuchangApprovalManagerSales__c,
            ExtendStatusc:'填写完毕',
        });
        console.log("hhh5");
        console.log(result);
        // let messages = getConnectDMLErrorMessages(result);
        if(result!=null&&result.length>0&&result.errors.length>0){
            // alert(result.errors[0].split(",")[1]);
            const event = new ShowToastEvent({
                title: '提示信息',
                message:result.errors[0].split(",")[1]
            });
            this.dispatchEvent(event);
        }
        console.log("hhh7");
        // let request = new sforce.ProcessSubmitRequest();
        // request.objectId = this.recordId;
        // let processResults = sforce.connection.process([request]);
        console.log("hhh8");
        // submitForApproval(this.Rental_Apply_Equipment_Set__c.Id).then(result => {
        //     console.log(result);
        //     if (processResults[0].errors != null) {
        //         alert(processResults[0].errors.message);
        //         return;
        //     }
        //     console.log("hhh9");
        //     window.location.reload();
        // })
        // .catch(error => {
        //   console.error('Error submitting record for approval:', error.message);
        // });
        // await submitForApproval(this.recordId);
        const fields = {}
        const recordInput = { fields };
        updateRecord({ fields: recordInput, recordId: this.recordId })
          .then(() => {
            console.log("更新成功");
          })
          .catch(error => {
              console.log(error.message);
              console.log(error);
              // alert(error.body.message);
            const event = new ShowToastEvent({
                title: '提示信息',
                message:error.body.message
            });
            this.dispatchEvent(event);
            return;
            // 处理异常情况
          });
    }
}
force-app/main/default/lwc/lexCustomSubmit/lexCustomSubmit.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexCustomSubmit">
    <apiVersion>51.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__AppPage</target>
        <target>lightning__RecordPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexCustomTableInput/lexCustomTableInput.html
New file
@@ -0,0 +1,3 @@
<template>
    <lightning-input name="cusInput" label="cusInput" variant="label-hidden" value={inputValue}></lightning-input>
</template>
force-app/main/default/lwc/lexCustomTableInput/lexCustomTableInput.js
New file
@@ -0,0 +1,6 @@
import { LightningElement,api } from 'lwc';
export default class LexCustomTableInput extends LightningElement {
    @api inputValue;
    @api recordId;
}
force-app/main/default/lwc/lexCustomTableInput/lexCustomTableInput.js-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>56.0</apiVersion>
    <isExposed>false</isExposed>
</LightningComponentBundle>
force-app/main/default/lwc/lexDeleteQuotePage/lexDeleteQuotePage.html
New file
@@ -0,0 +1,20 @@
<template>
<div style="position: relative; margin-top: 10px; margin-left: 10px;">
<span style="font-weight: bold; font-size: 12pt;">{Label.YouCantDeleteEvent1}</span>
<br/><br/><br/>
{Label.YouCantDeleteEvent2}
<br/><br/>
{Label.YouCantDeleteEvent3}
<a href="javascript:return null;" onclick={click}>{Label.YouCantDeleteEvent4}</a>{Label.YouCantDeleteEvent5}
</div>
</template>
force-app/main/default/lwc/lexDeleteQuotePage/lexDeleteQuotePage.js
New file
@@ -0,0 +1,27 @@
import { LightningElement, track, wire } from 'lwc';
import YouCantDeleteEvent1 from '@salesforce/label/c.YouCantDeleteEvent1';
import YouCantDeleteEvent2 from '@salesforce/label/c.YouCantDeleteEvent2';
import YouCantDeleteEvent3 from '@salesforce/label/c.YouCantDeleteEvent3';
import YouCantDeleteEvent4 from '@salesforce/label/c.YouCantDeleteEvent4';
import YouCantDeleteEvent5 from '@salesforce/label/c.YouCantDeleteEvent5';
export default class lexDeleteQuotePage extends LightningElement {
    Label = {
        YouCantDeleteEvent1,
        YouCantDeleteEvent2,
        YouCantDeleteEvent3,
        YouCantDeleteEvent4,
        YouCantDeleteEvent5
    };
    click(event){
        history.back();
    }
}
force-app/main/default/lwc/lexDeleteQuotePage/lexDeleteQuotePage.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexDeleteQuotePage">
    <apiVersion>51.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexDetailBulkUpdate/lexDetailBulkUpdate.css
New file
@@ -0,0 +1,11 @@
.Holder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display : none !important;
}
force-app/main/default/lwc/lexDetailBulkUpdate/lexDetailBulkUpdate.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="Holder" if:true={IsLoading}>
          <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
      </div>
</template>
force-app/main/default/lwc/lexDetailBulkUpdate/lexDetailBulkUpdate.js
New file
@@ -0,0 +1,39 @@
import { LightningElement, track, wire, api } from 'lwc';
import {CurrentPageReference} from 'lightning/navigation';
import { CloseActionScreenEvent } from 'lightning/actions';
export default class lexDetailBulkUpdate extends LightningElement {
    @api recordId;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference){
        console.log("进入页面");
        console.log(currentPageReference);
        if(currentPageReference){
            const urvalue=currentPageReference.state.recordId;
            if(urvalue){
                let str=`${urvalue}`;
                console.log('str');
                console.log(str);
                this.recordId=str;
            }
        }
    }
    connectedCallback(){
        this.cancelSubmit().then(res=>{
            this.IsLoading=false;
            this.dispatchEvent(new CloseActionScreenEvent());
        });
    }
    async cancelSubmit(){
        window.open('/apex/TransferApplySelectDetailSub?id='+this.recordId,'DetailBulkUpdateLWC', 'width=600,height=200');
    }
    //old js
    // window.open("/apex/TransferApplySelectDetailSub?Id={!URLENCODE(TransferApply__c.Id)}");
}
force-app/main/default/lwc/lexDetailBulkUpdate/lexDetailBulkUpdate.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexDetailBulkUpdate">
    <apiVersion>51.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__AppPage</target>
        <target>lightning__RecordPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexDispatchOCSMQARA/lexDispatchOCSMQARA.css
New file
@@ -0,0 +1,10 @@
.dispatchOCSMQARAHolder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display: none !important;
}
force-app/main/default/lwc/lexDispatchOCSMQARA/lexDispatchOCSMQARA.html
New file
@@ -0,0 +1,6 @@
<template>
    <div class="dispatchOCSMQARAHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
        <lightning-button label="Show Toast" onclick={ShowToastEvent}></lightning-button>
    </div>
</template>
force-app/main/default/lwc/lexDispatchOCSMQARA/lexDispatchOCSMQARA.js
New file
@@ -0,0 +1,71 @@
/*
 * @Description:
 * @version:
 * @Author: chen jing wu
 * @Date: 2023-04-07 09:02:03
 * @LastEditors: chen jing wu
 * @LastEditTime: 2023-04-11 11:23:37
 */
import { api, wire,LightningElement } from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import updateForDispatchOCSMQARAButton  from '@salesforce/apex/ReportController.updateForDispatchOCSMQARAButton';
import { updateRecord } from 'lightning/uiRecordApi';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
export default class LexDispatchOCSMQARA extends LightningElement {
    @api recordId;
    IsLoading = true;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
            console.log(111);
            console.log(currentPageReference);
        if (currentPageReference) {
          const urlValue = currentPageReference.state.recordId;
          if (urlValue) {
            let str = `${urlValue}`;
            console.log("str");
            console.log(str);
            this.recordId = str;
          }
        }
    }
    connectedCallback(){
        console.log(this.recordId);
        this.DispatchOCSMQARA();
    }
    showToast(msg,type) {
        const event = new ShowToastEvent({
            title: '',
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
    }
    updateRecordView(recordId) {
        updateRecord({fields: { Id: recordId }});
    }
    DispatchOCSMQARA () {
            updateForDispatchOCSMQARAButton({
                recordId: this.recordId
            }).then(result =>{
                if(result){
                    this.showToast(result,"error");
                }else{
                    this.showToast("成功","success");
                    this.updateRecordView(this.recordId);
                    this.IsLoading = false;
                }
                this.dispatchEvent(new CloseActionScreenEvent());
                });
    }
}
force-app/main/default/lwc/lexDispatchOCSMQARA/lexDispatchOCSMQARA.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexESignAcceptanceHospital/lexESignAcceptanceHospital.html
New file
@@ -0,0 +1,4 @@
<template>
    <div class="lexESignAcceptanceHospital" if:true={IsLoding}>
    <lightning-spinner alternative-text="Loading" size="medium">  </lightning-spinner> </div>
</template>
force-app/main/default/lwc/lexESignAcceptanceHospital/lexESignAcceptanceHospital.js
New file
@@ -0,0 +1,186 @@
import { LightningElement,wire,track,api} from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import  init  from '@salesforce/apex/ESignController.ESignController';
import  OcsmResult  from '@salesforce/apex/ESignController.OcsmResult';
import  UserInfo_Owner  from '@salesforce/apex/ESignController.UserInfo_Owner';
import { updateRecord } from 'lightning/uiRecordApi';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
export default class Submit extends LightningElement {
    @api recordId;//OwnerId
    ownerId;//所有人id
    id;//返回值的id
    IsLoading = true;
    profileId = '';
    arrMessage = [];
    RCManagerId = null;
    GrouppurchasePCL = null;
    OCMManProvinceCus = null;
    HPSignUpStatus = null;
    SalesRootFormula = null;
    HPSignUpDate = null;
    salesManage = null;
    @wire(CurrentPageReference)
     getStateParameters(currentPageReference) {
         if (currentPageReference) {
           const urlValue = currentPageReference.state.recordId;
           if (urlValue) {
             let str = `${urlValue}`;
             this.recordId = str;
           }
         }
     }
    connectedCallback(){
        init({
            recordId: this.recordId
        }).then(result => {
            console.log(result);
            // this.RCManagerId = result.RCManagerId;
            this.GrouppurchasePCL = result.GrouppurchasePCL;
            this.OCMManProvinceCus = result.OCMManProvinceCus;
            this.HPSignUpStatus = result.HPSignUpStatus;
            this.SalesRootFormula = result.SalesRootFormula;
            this.HPSignUpDate = result.HPSignUpDate;
            this.profileId = result.profileId.slice(0,15);
            this.IsLoading = false;
            this.AcceptanceHospital();
        })
    }
    AcceptanceHospital(){
        //先判断是否为集采课
        // var Group_purchase_PCL ;
        // var Group_purchase_PCLFlag = "{!eSignForm__c.Group_purchase_PCL__c}";
        // if(Group_purchase_PCLFlag == 1){
        // Group_purchase_PCL = '集采课';
        // }else{
        // Group_purchase_PCL = "{!eSignForm__c.OCM_man_province_cus__c}";
        // }
        console.log(this.GrouppurchasePCL,this.OCMManProvinceCus,'111111111')
        var Group_purchase_PCL ;
        // if(this.GrouppurchasePCL == 1){
        // Group_purchase_PCL = '集采课';
        // }else{
        Group_purchase_PCL = this.OCMManProvinceCus;
        // }
        //检索OCSM管理省 上的营业管理部担当
        // var sql = "select id, Name, SalesManage__c from OCM_Management_Province__c where Name = "+"\'"+Group_purchase_PCL+"\'";
        // var ocsmResult = sforce.connection.query(sql);
        // var ocsm = ocsmResult.getArray("records");
        // //营业管理部担当id
        // var salesManage;
        // if (ocsm) {
        // salesManage = ocsm[0].SalesManage__c;
        // }
        console.log(Group_purchase_PCL,this.profileId,'77777777777')
        OcsmResult({GrouppurchasePCL:Group_purchase_PCL}).then(res=>{
            console.log(res)
            var salesManage;
            salesManage = res[0].SalesManage__c;
            //电子签收单id
            var id = this.recordId
            //new 一个对象
            var eSignForm;
            //医院状态
            var status = this.HPSignUpStatus;
            //销售渠道
            var sales_Root_Formula = this.SalesRootFormula;
            if (salesManage || this.profileId == '00e10000000Y3o5') {
                UserInfo_Owner().then(res => {
                    var userId = '';
                    userId = res.id;
                    if (salesManage != userId && this.profileId != '00e10000000Y3o5' && this.profileId != '00e10000000s2cp') {
                        alert('您只能审批营业管理部担当是自己的签收单!');
                        return;
                    } else if (status != '申请中') {
                        alert('您只能审批申请中的签收单!')
                        return;
                    } else if (this.HPSignUpDate) {
                        alert('医院签收日为空时,不可以确认!');
                        return;
                    }else{
                    if(sales_Root_Formula == 'OCM直接販売'){
                        window.open ('/apex/HPDirectSalesConfirmPage?id='+this.recordId, '医院确认',
                        'height=340, width=600, top=200, left=400, toolbar=no, menubar=no, scrollbars=no, location=no, status=no');
                    }else{
                        window.open ('/apex/HPConfirmPage?id='+this.recordId, '医院确认',
                        'height=340, width=600, top=200, left=400, toolbar=no, menubar=no, scrollbars=no, location=no, status=no');
                    }
                    }
                })
            }
        })
    }
    updateRecordView() {
        updateRecord({fields: { Id: this.recordId }});
    }
    showToast(msg,type) {
        const event = new ShowToastEvent({
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
        if(type == 'success'){
            this.updateRecordView();
        }
        this.dispatchEvent(new CloseActionScreenEvent());
    }
}
// var foo = function() {
//     //当前用户登录id
//     var userId = "{!CASESAFEID($User.Id)}";
//     //当前用户简档id
//     var ProfileId = "{!$Profile.Id}";
//     // var RC_Manager = "{!eSignForm__c.RC_ManagerId__c }";
//     //先判断是否为集采课
//     var Group_purchase_PCL ;
//     var Group_purchase_PCLFlag = "{!eSignForm__c.Group_purchase_PCL__c}";
//     if(Group_purchase_PCLFlag == 1){
//     Group_purchase_PCL = '集采课';
//     }else{
//     Group_purchase_PCL = "{!eSignForm__c.OCM_man_province_cus__c}";
//     }
//     //检索OCSM管理省 上的营业管理部担当
//     var sql = "select id, Name, SalesManage__c from OCM_Management_Province__c where Name = "+"\'"+Group_purchase_PCL+"\'";
//     var ocsmResult = sforce.connection.query(sql);
//     var ocsm = ocsmResult.getArray("records");
//     //营业管理部担当id
//     var salesManage;
//     if (ocsm) {
//     salesManage = ocsm[0].SalesManage__c;
//     }
//     //电子签收单id
//     var id = "{!eSignForm__c.Id}";
//     //new 一个对象
//     var eSignForm;
//     //医院状态
//     var status = "{!eSignForm__c.HPSignUpStatus__c}";
//     //销售渠道
//     var sales_Root_Formula = "{!eSignForm__c.Sales_Root_Formula__c}";
//     if (salesManage || ProfileId == '00e10000000Y3o5') {
//     if (salesManage != userId && ProfileId != '00e10000000Y3o5' && ProfileId != '00e10000000s2cp') {
//     alert('您只能审批营业管理部担当是自己的签收单!');
//     return;
//     } else if (status != '申请中') {
//     alert('您只能审批申请中的签收单!')
//     return;
//     } else if (!'{!eSignForm__c.HPSignUpDate__c}') {
//     alert('医院签收日为空时,不可以确认!');
//     return;
//     }else{
//     if(sales_Root_Formula == 'OCM直接販売'){
//     window.open ('/apex/HPDirectSalesConfirmPage?id='+"{!eSignForm__c.Id}", '医院确认',
//     'height=340, width=600, top=200, left=400, toolbar=no, menubar=no, scrollbars=no, location=no, status=no');
//     }else{
//     window.open ('/apex/HPConfirmPage?id='+"{!eSignForm__c.Id}", '医院确认',
//     'height=340, width=600, top=200, left=400, toolbar=no, menubar=no, scrollbars=no, location=no, status=no');
//     }
//     }
//     }
//     }
//     foo();
force-app/main/default/lwc/lexESignAcceptanceHospital/lexESignAcceptanceHospital.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexEquipmentSetRental_Order">
    <apiVersion>51.0</apiVersion>
    <isExposed>true</isExposed>
     <targets>
        <target>lightning__AppPage</target>
        <target>lightning__RecordPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexESignFormAttachment/lexESignFormAttachment.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="Attachment" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexESignFormAttachment/lexESignFormAttachment.js
New file
@@ -0,0 +1,48 @@
import { LightningElement,wire,track,api} from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import { updateRecord } from 'lightning/uiRecordApi';
export default class lexESignFormAttachment extends LightningElement {
    @api recordId;
    IsLoading = true;
    @wire(CurrentPageReference)
     getStateParameters(currentPageReference) {
         if (currentPageReference) {
           const urlValue = currentPageReference.state.recordId;
           if (urlValue) {
             let str = `${urlValue}`;
             this.recordId = str;
           }
         }
    }
    connectedCallback () {
        this.IsLoading = false;
        this.Attachment();
        this.dispatchEvent(new CloseActionScreenEvent());
    }
    Attachment(){
        window.open( `/apex/eSignFormAttachment?parentId=${this.recordId}`);
    }
    // 弹窗
    ShowToastEvent(msg, type) {
        const event = new ShowToastEvent({
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
    }
    updateRecordView(recordId) {
        updateRecord({fields: { Id: recordId }});
    }
}
// var From= function(){
//     window.open( "/apex/eSignFormAttachment?parentId={!URLENCODE(eSignForm__c.Id)}");
//     }
//     From();
force-app/main/default/lwc/lexESignFormAttachment/lexESignFormAttachment.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexEquipmentRentalPicturePDF/lexEquipmentRentalPicturePDF.css
New file
@@ -0,0 +1,22 @@
.outerBorderCss{
    border: 1px solid #D4D4D4;
    border-radius : 5px;
    border-top : 3px solid #565959;
}
.borderCss{
    border: 1px solid #D4D4D4;
    border-radius : 5px;
    margin-bottom : 7px;
    border-top : 3px solid #565959;
}
.headerDorderCss{
    border-top: 1px solid #565959;
    border-bottom: 1px solid #D4D4D4;
    padding:3px;
}
.centerCss{
    text-align: center;
}
.centerCss .left{
    margin-left: 100px;
}/* sample css file */
force-app/main/default/lwc/lexEquipmentRentalPicturePDF/lexEquipmentRentalPicturePDF.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="sisToOPDHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexEquipmentRentalPicturePDF/lexEquipmentRentalPicturePDF.js
New file
@@ -0,0 +1,41 @@
import { LightningElement, track, wire, api } from 'lwc';
import { CurrentPageReference,NavigationMixin } from 'lightning/navigation';
import { CloseActionScreenEvent } from 'lightning/actions';
import init from '@salesforce/apex/EquipmentRentalPicturePDFController.init';
export default class lexEquipmentRentalPicturePDF extends LightningElement {
    @api recordId;
        IsLoading = true;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference){
        if(currentPageReference) {
            const urlValue = currentPageReference.state.recordId;
            if(urlValue) {
                let str = `${urlValue}`;
                this.recordId = str;
            }
        }
    }
    connectedCallback(){
        console.log(this.recordId);
        init({
            recordId: this.recordId
        }).then(result=>{
            //console.log('result.ShipmentRequestedCnt===' + result.ShipmentRequestedCnt)
            if( result.ShipmentRequestedCnt > 0){
                console.log(result.pagelength);
                for(var i =0; i<result.pagelength; i++){
                    window.open('/apex/FixtureRentalPicturePDF?raid='+ this.recordId +'&page=' + i);
                }
            }else{
                alert('当前的申请单中没有已出库指示的配套。');
            }
            this.dispatchEvent(new CloseActionScreenEvent());
        }).catch(err=>{
            this.dispatchEvent(new CloseActionScreenEvent());
            console.log(err);
        })
    }
}
force-app/main/default/lwc/lexEquipmentRentalPicturePDF/lexEquipmentRentalPicturePDF.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexOCMSubmit">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexEquipmentSetRental_Order/lexEquipmentSetRental_Order.css
New file
@@ -0,0 +1,11 @@
.lexEquipmentSetRentalHolder{
 position: relative;
 display: inline-block;
 width: 80px;
 height: 80px;
 text-align: center;
}
.container .uiContainerManager{
 display : none !important;
}
force-app/main/default/lwc/lexEquipmentSetRental_Order/lexEquipmentSetRental_Order.html
New file
@@ -0,0 +1,5 @@
<template>
<div class="lexEquipmentSetRentalHolder" if:true={IsLoding}>
<lightning-spinner alternative-text="Loading" size="medium">  </lightning-spinner> </div>
</template>
force-app/main/default/lwc/lexEquipmentSetRental_Order/lexEquipmentSetRental_Order.js
New file
@@ -0,0 +1,83 @@
import { LightningElement,api, track, wire } from 'lwc';
import init  from '@salesforce/apex/EquipmentSetRentalController.init';
import AssignBtn  from '@salesforce/apex/RentalApplyWebService.AssignBtn';
import {CurrentPageReference} from 'lightning/navigation';
import { CloseActionScreenEvent } from 'lightning/actions';
export default class lexEquipmentSetRental_Order extends LightningElement {
     @api recordId;
     IsLoading;
     Rental_Apply__c;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference){
        if(currentPageReference){
            console.log(currentPageReference);
            console.log("进入获取page参数")
            const IdValue=currentPageReference.state.recordId;
            if(IdValue){
                let str=`${IdValue}`;
                this.recordId=str;
                console.log("recordId="+str);
            }
        }
    }
    connectedCallback(){
    init({recordId:this.recordId}).then(res=>{
        if(res!=null){
        this.IsLoading=false;
        console.log("res");
        console.log(res);
        console.log("进入初始化对象其他属性");
        this.Rental_Apply__c=res;
        console.log(this.Rental_Apply__c);
        this.distribution();
        }
        else{
             var a="没进distribution";
 console.log(a);
        }
    }).catch(error =>{
        console.log("error");
        console.log(error.message);
    }).finally(()=>{
    });
    }
    async distribution(){
          var raid = this.Rental_Apply__c.Id;
        var rtn = await AssignBtn(raid);
        if(this.Rental_Apply__c.Status__c == '取消' && this.Rental_Apply__c.Rental_Apply_Equipment_Set_Cnt__c != '0') {
            window.open("/apex/EquipmentRentalApply?raid="+URLENCODE(this.Rental_Apply__c.Id));
        } else if((this.Rental_Apply__c.demo_purpose2__c == '学会/展台' ||
            this.Rental_Apply__c.demo_purpose2__c == '课题研究' ||
            this.Rental_Apply__c.demo_purpose2__c == '培训中心'
            )
            && this.Rental_Apply__c.Status__c == '草案中') {
            alert("不能引当,请确认申请的状态");
        } else if(
            (this.Rental_Apply__c.demo_purpose2__c == '试用(无询价)' ||
            this.Rental_Apply__c.demo_purpose2__c == '试用(有询价)' ||
            this.Rental_Apply__c.demo_purpose2__c == '动物实验' ||
            this.Rental_Apply__c.demo_purpose2__c == '一般维修代用' ||
            this.Rental_Apply__c.demo_purpose2__c == '保修合同用户维修代用' ||
            this.Rental_Apply__c.demo_purpose2__c == '已购待货'
            )
            && this.Rental_Apply__c.Status__c != '批准完了'
            && this.Rental_Apply__c.Status__c != '引当完了'
            && this.Rental_Apply__c.Status__c != '出库指示完了') {
                alert("不能引当,请确认申请的状态");
        } else if(rtn == 'Fin') {
            window.open("/apex/EquipmentRentalApply?raid="+URLENCODE(this.Rental_Apply__c.Id));
        } else{
            alert(rtn);
        }
    }
}
force-app/main/default/lwc/lexEquipmentSetRental_Order/lexEquipmentSetRental_Order.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexEquipmentSetRental_Order">
    <apiVersion>51.0</apiVersion>
    <isExposed>true</isExposed>
     <targets>
        <target>lightning__AppPage</target>
        <target>lightning__RecordPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexFinLibrary/lexFinLibrary.css
New file
@@ -0,0 +1,11 @@
.lexFinlibraryHolder{
 position: relative;
 display: inline-block;
 width: 80px;
 height: 80px;
 text-align: center;
}
.container .uiContainerManager{
 display : none !important;
}
force-app/main/default/lwc/lexFinLibrary/lexFinLibrary.html
New file
@@ -0,0 +1,4 @@
<template>
<div class="lexFinlibraryHolder" if:true={IsLoding}>
<lightning-spinner alternative-text="Loading" size="medium">  </lightning-spinner> </div>
</template>
force-app/main/default/lwc/lexFinLibrary/lexFinLibrary.js
New file
@@ -0,0 +1,57 @@
import { LightningElement, track, wire,api } from 'lwc';
import getBulletinBoard  from '@salesforce/apex/FinLibraryButtonController.getBulletinBoard';
import {CurrentPageReference} from 'lightning/navigation';
import { CloseActionScreenEvent } from 'lightning/actions';
import LightningAlert from 'lightning/alert';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
export default class lexFinLibrary extends LightningElement {
        @api recordId;
        IsLoading;
        Bulletin_Board__c;
        @wire(CurrentPageReference)
    getStateParameters(currentPageReference){
        if(currentPageReference){
            console.log(currentPageReference);
            console.log("进入获取page参数")
            const IdValue=currentPageReference.state.recordId;
            if(IdValue){
                let str=`${IdValue}`;
                this.recordId=str;
                console.log("recordId="+str);
            }
        }
    }
    connectedCallback(){
        getBulletinBoard({recordId:this.recordId}).then(res=>{
            if(res!=null){
            this.IsLoading=false;
            console.log("res");
            console.log(res);
            console.log("进入初始化对象其他属性");
            this.Bulletin_Board__c=res;
            console.log(this.Bulletin_Board__c);
            this.FinLibrary();
        }
        else{
             var a="没进方法";
             console.log(a);
        }
    }).catch(error =>{
        console.log("error");
        console.log(error.message);
    }).finally(()=>{
    });
    }
    async FinLibrary(){
        this.dispatchEvent(new CloseActionScreenEvent());
        window.open(this.Bulletin_Board__c.iPad_Finlibrary__c, 'FinLibrary', '_top');
    }
}
force-app/main/default/lwc/lexFinLibrary/lexFinLibrary.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexFinLibrary">
    <apiVersion>51.0</apiVersion>
    <isExposed>true</isExposed>
     <targets>
        <target>lightning__AppPage</target>
        <target>lightning__RecordPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexFinLibrary2/lexFinLibrary2.css
New file
@@ -0,0 +1,11 @@
.lexFinlibraryHolder2{
 position: relative;
 display: inline-block;
 width: 80px;
 height: 80px;
 text-align: center;
}
.container .uiContainerManager{
 display : none !important;
}
force-app/main/default/lwc/lexFinLibrary2/lexFinLibrary2.html
New file
@@ -0,0 +1,4 @@
<template>
<div class="lexFinlibraryHolder2" if:true={IsLoding}>
<lightning-spinner alternative-text="Loading" size="medium">  </lightning-spinner> </div>
</template>
force-app/main/default/lwc/lexFinLibrary2/lexFinLibrary2.js
New file
@@ -0,0 +1,62 @@
import { LightningElement, track, wire,api } from 'lwc';
import getBulletinBoard  from '@salesforce/apex/FinLibraryButtonController2.getBulletinBoard';
import {CurrentPageReference} from 'lightning/navigation';
import { CloseActionScreenEvent } from 'lightning/actions';
export default class lexFinLibrary2 extends LightningElement {
    @api recordId;
    IsLoading;
    Bulletin_Board__c;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference){
        if(currentPageReference){
            console.log(currentPageReference);
            console.log("进入获取page参数")
            const IdValue=currentPageReference.state.recordId;
            if(IdValue){
                let str=`${IdValue}`;
                this.recordId=str;
                console.log("recordId="+str);
            }
        }
    }
    connectedCallback(){
    getBulletinBoard({recordId:this.recordId}).then(res=>{
        if(res!=null){
        this.IsLoading=false;
        console.log("res");
        console.log(res);
        console.log("进入初始化对象其他属性");
        this.Bulletin_Board__c=res;
        console.log(this.Bulletin_Board__c);
        this.FinLibrary2();
        }
        else{
             var a="没进方法";
             console.log(a);
        }
    }).catch(error =>{
        console.log("error");
        console.log(error.message);
    }).finally(()=>{
    });
    }
    FinLibrary2(){
        window.open(this.Bulletin_Board__c.iPad_Finlibrary_2__c, 'FinLibrary', '_top');
        this.dispatchEvent(new CloseActionScreenEvent());
    }
}
force-app/main/default/lwc/lexFinLibrary2/lexFinLibrary2.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexFinLibrary2">
    <apiVersion>51.0</apiVersion>
    <isExposed>true</isExposed>
      <targets>
        <target>lightning__AppPage</target>
        <target>lightning__RecordPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexFinLibrary3/lexFinLibrary3.css
New file
@@ -0,0 +1,11 @@
.lexFinlibraryHolder3{
 position: relative;
 display: inline-block;
 width: 80px;
 height: 80px;
 text-align: center;
}
.container .uiContainerManager{
 display : none !important;
}
force-app/main/default/lwc/lexFinLibrary3/lexFinLibrary3.html
New file
@@ -0,0 +1,4 @@
<template>
<div class="lexFinlibraryHolder3" if:true={IsLoding}>
<lightning-spinner alternative-text="Loading" size="medium">  </lightning-spinner> </div>
</template>
force-app/main/default/lwc/lexFinLibrary3/lexFinLibrary3.js
New file
@@ -0,0 +1,58 @@
import { LightningElement, track, wire,api } from 'lwc';
import getBulletinBoard  from '@salesforce/apex/FinLibraryButtonController3.getBulletinBoard';
import {CurrentPageReference} from 'lightning/navigation';
import { CloseActionScreenEvent } from 'lightning/actions';
export default class lexFinLibrary3 extends LightningElement {
    @api recordId;
    IsLoading;
    Bulletin_Board__c;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference){
        if(currentPageReference){
            console.log(currentPageReference);
            console.log("进入获取page参数")
            const IdValue=currentPageReference.state.recordId;
            if(IdValue){
                let str=`${IdValue}`;
                this.recordId=str;
                console.log("recordId="+str);
            }
        }
    }
    connectedCallback(){
    getBulletinBoard({recordId:this.recordId}).then(res=>{
        if(res!=null){
        this.IsLoading=false;
        console.log("res");
        console.log(res);
        console.log("进入初始化对象其他属性");
        this.Bulletin_Board__c=res;
        console.log(this.Bulletin_Board__c);
        this.FinLibrary3();
        }
        else{
             var a="没进方法";
             console.log(a);
        }
    }).catch(error =>{
        console.log("error");
        console.log(error.message);
    }).finally(()=>{
    });
    }
    FinLibrary3(){
        window.open(this.Bulletin_Board__c.iPad_Finlibrary_3__c, 'FinLibrary', '_top');
        this.dispatchEvent(new CloseActionScreenEvent());
    }
}
force-app/main/default/lwc/lexFinLibrary3/lexFinLibrary3.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexFinLibrary3">
    <apiVersion>51.0</apiVersion>
    <isExposed>true</isExposed>
     <targets>
        <target>lightning__AppPage</target>
        <target>lightning__RecordPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexInputSolution/lexInputSolution.css
New file
@@ -0,0 +1,10 @@
.createEmailHolder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display: none !important;
}
force-app/main/default/lwc/lexInputSolution/lexInputSolution.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="createEmailHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexInputSolution/lexInputSolution.js
New file
@@ -0,0 +1,49 @@
import { LightningElement,wire,track,api} from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import { NavigationMixin } from 'lightning/navigation';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import init  from '@salesforce/apex/CaseController.initForlexInputSolutionButton';
import UserInfo_Owner from '@salesforce/apex/TaskFeedbackController.UserInfo_Owner';
import { updateRecord } from 'lightning/uiRecordApi';
export default class lexInputSolution extends LightningElement {
    @api recordId;
    IsLoading = true;
    inquirydetail;
    answerdetailcontent;
    @wire(CurrentPageReference)
     getStateParameters(currentPageReference) {
             console.log(111);
             console.log(currentPageReference);
         if (currentPageReference) {
           const urlValue = currentPageReference.state.recordId;
           if (urlValue) {
             let str = `${urlValue}`;
             console.log("str");
             console.log(str);
             this.recordId = str;
           }
         }
    }
    connectedCallback () {
        init({
            recordId: this.recordId
        }).then(result => {
            this.IsLoading = false;
            this.inquirydetail = result.inquirydetail;
            this.answerdetailcontent = result.answerdetailcontent;
            var url = "/501/e?retURL="+this.recordId+
                        "&SolutionName="+this.inquirydetail+
                        "&00N10000003MXPAEA4="+this.answerdetailcontent;
            window.open(url);
        }).catch(error => {
            console.log('error='+error);
        }).finally(() => {
        });
    }
}
force-app/main/default/lwc/lexInputSolution/lexInputSolution.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexInputSolution">
        <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexInsPageBtn/lexInsPageBtn.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="exampleHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexInsPageBtn/lexInsPageBtn.js
New file
@@ -0,0 +1,62 @@
import {
    LightningElement,
    wire,
    api
} from 'lwc';
import {
    CurrentPageReference
} from "lightning/navigation";
import {
    CloseActionScreenEvent
} from 'lightning/actions';
import init from '@salesforce/apex/otherButtonSpotInspectionReportCtl.init';
export default class LexInsPageBtn extends LightningElement {
    @api recordId;
    str;
    IsLoading = true;
    Id;
    RecordTypeId;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
        if (currentPageReference) {
            const urlValue = currentPageReference.state.recordId;
            if (urlValue) {
                let str = `${urlValue}`;
                this.recordId = str;
            }
        }
    }
    connectedCallback() {
        init({
            recordId: this.recordId
        }).then(result => {
            console.log(result);
            if (result != null) {
                this.IsLoading = false;
                this.Id = result.Id;
                this.RecordTypeId = result.RecordTypeId;
                this.insPageBtn();
                this.dispatchEvent(new CloseActionScreenEvent());
            }
        }).catch(error => {
            console.log(error);
        }).finally(() => {
        });
    }
    // 报告书明细编辑
    insPageBtn() {
        var url;
        if (this.RecordTypeId == '01210000000aLii') {
            url = '/apex/OFSInsReportLayoutForVm';
        } else {
            url = '/apex/OFSInsReportLayout';
        }
        window.open(url += '?id=' + this.Id)
    }
}
force-app/main/default/lwc/lexInsPageBtn/lexInsPageBtn.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexInventoryCount/lexInventoryCount.html
@@ -1,5 +1,7 @@
<template>
    <template if:true={showSpinner}>
        <lightning-spinner size="medium" variant="brand"></lightning-spinner>
    </template>
    <template if:true={showcount}>
        <div style="border: 1px solid #D4D4D4;border-radius:5px;">
            <div style="border-top: 3px solid #51606E;;border-bottom: 1px solid #D4D4D4;padding:3px;">
@@ -64,11 +66,11 @@
                            </template>
                            <!-- 加载框 -->
                            <div if:true={casesSpinner} class="slds-spinner_inline spinner-padding"
                            <!-- <div if:true={casesSpinner} class="slds-spinner_inline spinner-padding"
                                style="margin-top:10px;">
                                <lightning-spinner variant="brand" alternative-text="Loading Cases" size="medium">
                                </lightning-spinner>
                            </div>
                            </div> -->
                        </div>
@@ -91,17 +93,15 @@
                        </tr>
                    </table>
                </div>
                <template if:true={showTable}>
                <div style="padding:10px;">
                    <template if:true={showTable}>
                        <c-lwc-datatable-utility records={codPageRecords} total-records={codPageRecords.length}
                            columns={column} key-field="Id" show-search-box="true"
                            columns={column} key-field="Id" show-search-box="true" hidecheckboxcolumn={hidecheckbox}
                            max-row-selection={codPageRecords.length} onpaginatorchange={handlePaginatorChange}>
                        </c-lwc-datatable-utility>
                    </template>
                </div>
            </template>
            </div>
        </div>
    </template>
@@ -137,58 +137,18 @@
            <lightning-accordion allow-multiple-sections-open class="slds-m-around_medium"
                active-section-name={activeSections}>
                <lightning-accordion-section name="dataExpand" label="盘点明细">
                    <table class="list" border="0" cellpadding="0" cellspacing="0" id="example">
                        <thead>
                            <tr class="headerRow">
                                <th>消耗品名称</th>
                                <th>库存</th>
                                <th>盘点</th>
                                <th>丢失</th>
                                <th>寻回</th>
                                <th>差异原因</th>
                            </tr>
                        </thead>
                        <tbody>
                            <template for:each={detailData} for:item="m">
                                <tr key={m.Prod.Name__c}>
                                    <td>{m.Prod.Name__c}</td>
                                    <td>{m.orderdetails1.Count_Sum__c}</td>
                                    <td>{m.orderdetails1.inventory_sum__c}</td>
                                    <td>{m.orderdetails1.Diff__c}</td>
                                    <td>{m.orderdetails1.Product_Refind__c}</td>
                                    <td>{m.orderdetails1.Lose_reason__c}</td>
                                </tr>
                            </template>
                        </tbody>
                    </table>
                    <lightning-datatable key-field="id" data={detailData}
                        columns={dcolumns} hide-checkbox-column>
                    </lightning-datatable>
                </lightning-accordion-section>
            </lightning-accordion>
            <lightning-accordion allow-multiple-sections-open class="slds-m-around_medium"
                active-section-name={activeSections}>
                <lightning-accordion-section name="dataExpand" label="在库调整明细">
                    <table class="list" border="0" cellpadding="0" cellspacing="0" id="examples">
                        <thead>
                            <tr class="headerRow">
                                <th>消耗品名称</th>
                                <th>产品型号</th>
                                <th>差异原因</th>
                                <th>是否丢失</th>
                            </tr>
                        </thead>
                        <tbody>
                            <template for:each={adjustdata} for:item="m">
                                <tr key={m.Prod.Name__c}>
                                    <td>{m.Prod.Name__c}</td>
                                    <td>{m.Prod.Asset_Model_No__c}</td>
                                    <td>{m.orderdetails2.Lose_reason__c}</td>
                                    <td>{m.orderdetails1.Diff__c}</td>
                                    <td>{m.orderdetails1.Product_Refind__c}</td>
                                    <td>{m.orderdetails2.Lose_Flag__c}</td>
                                </tr>
                            </template>
                        </tbody>
                    </table>
                    <lightning-datatable key-field="id" data={adjustdata}
                    columns={stockadjustcolumns} hide-checkbox-column>
                </lightning-datatable>
                </lightning-accordion-section>
            </lightning-accordion>
        </div>
force-app/main/default/lwc/lexInventoryCount/lexInventoryCount.js
@@ -1,162 +1,164 @@
import { LightningElement, wire, api, track } from 'lwc';
import oninit from '@salesforce/apex/LexInventoryController.init';
import barcodeEntry from '@salesforce/apex/LexInventoryController.searchConsumableorderdetails';
import saveConfirm from '@salesforce/apex/LexInventoryController.save';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import { NavigationMixin } from 'lightning/navigation';
import { LightningElement, wire, api, track } from "lwc";
import oninit from "@salesforce/apex/LexInventoryController.init";
import barcodeEntry from "@salesforce/apex/LexInventoryController.searchConsumableorderdetails";
// import saveConfirm from '@salesforce/apex/LexInventoryController.saveConfirm';
import save from "@salesforce/apex/LexInventoryController.save";
import datainit from "@salesforce/apex/LexInventoryListController.init";
import { ShowToastEvent } from "lightning/platformShowToastEvent";
import { NavigationMixin } from "lightning/navigation";
//库存盘点主页面数据
const columns = [
    {
        label: '是否盘点',
        fieldName: 'iscount',
        type: 'checkbox',
        cellAttributes: { alignment: 'left' }
        label: "是否盘点",
        fieldName: "iscount",
        hideDefaultActions: true,
        cellAttributes: { alignment: "left" },
    },
    {
        label: '消耗品名称',
        fieldName: 'Name__c',
        type: 'Name',
        cellAttributes: { alignment: 'left' }
        label: "消耗品名称",
        fieldName: "Name__c",
        hideDefaultActions: true,
        initialWidth: 250,
        cellAttributes: { alignment: "left" },
    },
    {
        label: '规格',
        fieldName: 'Packing_list_manual__c',
        hideDefaultActions: true
        label: "规格",
        fieldName: "Packing_list_manual__c",
        hideDefaultActions: true,
    },
    {
        label: '单位',
        fieldName: 'boxPiece',
        hideDefaultActions: true
        label: "单位",
        fieldName: "boxPiece",
        hideDefaultActions: true,
    },
    {
        label: '有效期内库存',
        fieldName: 'limitCount',
        hideDefaultActions: true
        label: "有效期内库存",
        fieldName: "limitCount",
        hideDefaultActions: true,
    },
    {
        label: '过期库存',
        fieldName: 'overlimitCount',
        label: "过期库存",
        fieldName: "overlimitCount",
        hideDefaultActions: true,
        initialWidth: 100
        initialWidth: 100,
    },
    {
        label: '盘点',
        fieldName: 'Pandian',
        label: "盘点",
        fieldName: "Pandian",
        hideDefaultActions: true,
        initialWidth: 100
        initialWidth: 100,
    },
    {
        label: '丢失',
        fieldName: 'Diff',
        label: "丢失",
        fieldName: "Diff",
        hideDefaultActions: true,
        initialWidth: 100
        initialWidth: 100,
    },
    {
        label: '寻回    ',
        fieldName: 'refind',
        label: "寻回    ",
        fieldName: "refind",
        hideDefaultActions: true,
        initialWidth: 150
        initialWidth: 150,
    },
    {
        label: '差异原因',
        label: "差异原因",
        // fieldName: "DiffReason",
        hideDefaultActions: true,
        type: 'customDiffReason',
        type: "customDiffReason",
        typeAttributes: {
            DiffReason: { fieldName: 'DiffReason' },
            ProdId: { fieldName: 'ProdId' }
        }
    }
            DiffReason: { fieldName: "DiffReason" },
            ProdId: { fieldName: "ProdId" },
        },
    },
];
//调整明细
const column = [
    {
        label: '消耗品名称',
        fieldName: 'Name__c',
        type: 'Name',
        cellAttributes: { alignment: 'left' }
    },
    {
        label: '单位',
        fieldName: 'Box_Piece__c',
        hideDefaultActions: true
    },
    {
        label: 'barcode',
        fieldName: 'Bar_Code__c',
        label: "消耗品名称",
        fieldName: "Name__c",
        hideDefaultActions: true,
        initialWidth: 150
        cellAttributes: { alignment: "left" },
    },
    {
        label: '调整原因',
        fieldName: 'DiffReason',
        hideDefaultActions: true
    }
        label: "单位",
        fieldName: "Box_Piece__c",
        hideDefaultActions: true,
    },
    {
        label: "barcode",
        fieldName: "Bar_Code__c",
        hideDefaultActions: true,
        initialWidth: 150,
    },
    {
        label: "调整原因",
        fieldName: "DiffReason",
        hideDefaultActions: true,
    },
];
//盘点明细
const dcolumns = [
    {
        label: '消耗品名称',
        fieldName: 'Name__c',
        type: 'Name',
        cellAttributes: { alignment: 'left' }
    },
    {
        label: '库存',
        fieldName: 'Box_Piece__c',
        hideDefaultActions: true
    },
    {
        label: '盘点',
        fieldName: 'Bar_Code__c',
        label: "消耗品名称",
        fieldName: "Name__c",
        hideDefaultActions: true,
        initialWidth: 150
        cellAttributes: { alignment: "left" },
    },
    {
        label: '丢失',
        fieldName: 'DiffReason',
        hideDefaultActions: true
        label: "库存",
        fieldName: "Count_Sum__c",
        hideDefaultActions: true,
    },
    {
        label: '寻回',
        fieldName: 'DiffReason',
        hideDefaultActions: true
        label: "盘点",
        fieldName: "inventory_sum__c",
        hideDefaultActions: true,
        initialWidth: 150,
    },
    ,
    {
        label: '差异原因',
        fieldName: 'DiffReason',
        hideDefaultActions: true
    }
        label: "丢失",
        fieldName: "Diff__c",
        hideDefaultActions: true,
    },
    {
        label: "寻回",
        fieldName: "Product_Refind__c",
        hideDefaultActions: true,
    },
    {
        label: "差异原因",
        fieldName: "Lose_reason__c",
        hideDefaultActions: true,
    },
];
//在库调整明细
const stockadjustcolumns = [
    {
        label: '消耗品名称',
        fieldName: 'Name__c',
        type: 'Name',
        cellAttributes: { alignment: 'left' }
        label: "消耗品名称",
        fieldName: "Name__c",
        cellAttributes: { alignment: "left" },
    },
    {
        label: '产品型号',
        fieldName: 'Box_Piece__c',
        hideDefaultActions: true
    },
    {
        label: '差异原因',
        fieldName: 'Bar_Code__c',
        label: "产品型号",
        fieldName: "Asset_Model_No__c",
        hideDefaultActions: true,
        initialWidth: 150
    },
    {
        label: '是否丢失',
        fieldName: 'DiffReason',
        hideDefaultActions: true
    }
        label: "差异原因",
        fieldName: "Lose_reason__c",
        hideDefaultActions: true,
        initialWidth: 150,
    },
    {
        label: "是否丢失",
        type: "boolean",
        fieldName: "Lose_Flag__c",
        hideDefaultActions: true,
    },
];
export default class LexInventoryCount extends NavigationMixin(
@@ -171,29 +173,35 @@
    @track accountName;
    @track agencyProType;
    @track userWorkLocation;
    @track accountid
    @track pandiandetailsMap
    @track reSet
    @track showTable = false;
    @track showbutton = false;
    @track barCode;
    @track barcode = "";
    @track ConsumableorderdetailsRecordsview = [];
    @track consumableorderdetailsRecords = [];
    @track showTable = false;
    @track barcode;
    @track showcount = true;
    @track iSinventory;
    @track iSinventory = false
    @track numberDetail;
    @track hidecheckbox = true;
    //加载框
    @track casesSpinner = true;
    // @track casesSpinner = true;
    @track showSpinner = true;
    //row
    @track selectedRows = [];
    //inventoryList
    @track isSummonsFlag;
    //展开栏
    activeSections = ['dataExpand'];
    columnHeader = ['消耗品名称', '单位', 'barCode', '调整原因'];
    activeSections = ["dataExpand"];
    columnHeader = ["消耗品名称", "单位", "barCode", "调整原因"];
    //确认一览
    @track eSetId = '';
    @track eSetId = "";
    @track EditAble = false;
    @track selectedData;
    @track conId;
@@ -202,8 +210,8 @@
    //获取链接参数
    getQueryString(name) {
        console.log('getQueryString name ' + name);
        let reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
        console.log("getQueryString name " + name);
        let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
        let r = window.location.search.substr(1).match(reg);
        if (r != null) {
            return decodeURIComponent(r[2]);
@@ -212,21 +220,28 @@
    }
    connectedCallback() {
        console.log('===>初始化');
        console.log("===>初始化");
        this.showSpinner = true;
        //获取ESetid
        this.eSetId = this.getQueryString('eSetId');
        this.eSetId = this.eSetId == null ? '' : this.eSetId;
        console.log(' this.eSetId' + this.eSetId);
        this.EditAble = false;
        this.showcount = true;
        this.eSetId = this.getQueryString("eSetId");
        this.eSetId = this.eSetId == null ? "" : this.eSetId;
        console.log(" this.eSetId" + this.eSetId);
        if (this.eSetId == "") {
            this.EditAble = false;
        } else {
            this.inits();
            this.showcount = false;
            this.EditAble = true;
        }
        oninit()
            .then((result) => {
                console.log('1112' + JSON.stringify(result));
                console.log("1112" + JSON.stringify(result));
                result = JSON.parse(JSON.stringify(result));
                console.log('result.status = ' + result.status);
                console.log("result.status = " + result.status);
                console.log(
                    ' ConsumableorderdetailsRecordsview= ' +
                        result.entity.ConsumableorderdetailsRecordsview
                    " ConsumableorderdetailsRecordsview= " +
                    result.entity.ConsumableorderdetailsRecordsview
                );
                this.ConsumableorderdetailsRecordsview = JSON.parse(
                    result.entity.ConsumableorderdetailsRecordsview
@@ -234,24 +249,19 @@
                this.consumableorderdetailsRecords =
                    result.entity.consumableorderdetailsRecords;
                console.log(
                    ' consumableorderdetailsRecords= ' +
                        result.entity.consumableorderdetailsRecords
                    " consumableorderdetailsRecords= " +
                    result.entity.consumableorderdetailsRecords
                );
                console.log(
                    '传参类型',
                    typeof this.consumableorderdetailsRecords
                );
                if (result.status == 'Success') {
                console.log("传参类型", typeof this.consumableorderdetailsRecords);
                if (result.status == "Success") {
                    console.log(
                        'this.ConsumableorderdetailsRecordsview[0] = ' +
                            JSON.stringify(
                                this.ConsumableorderdetailsRecordsview[0]
                            )
                        "this.ConsumableorderdetailsRecordsview[0] = " +
                        JSON.stringify(this.ConsumableorderdetailsRecordsview[0])
                    );
                    console.log(
                        'this.ConsumableorderdetailsRecordsview[0].length = ' +
                            this.ConsumableorderdetailsRecordsview[0].length
                        "this.ConsumableorderdetailsRecordsview[0].length = " +
                        this.ConsumableorderdetailsRecordsview[0].length
                    );
                    // let cloneData = [];
@@ -263,32 +273,34 @@
                    // this.data = cloneData;
                    this.data = [];
                    this.data = this.ConsumableorderdetailsRecordsview[0];
                    console.log('this.data ==>' + JSON.stringify(this.data));
                    console.log("this.data ==>" + JSON.stringify(this.data));
                    for (let i in this.data) {
                        this.data[i]['Name__c'] = this.data[i].Prod.Name__c;
                        this.data[i]['Packing_list_manual__c'] =
                        this.data[i]["Name__c"] = this.data[i].Prod.Name__c;
                        this.data[i]["Packing_list_manual__c"] =
                            this.data[i].Prod.Packing_list_manual__c;
                    }
                    this.accountName = result.entity.accountName;
                    this.agencyProType = result.entity.agencyProType;
                    this.userWorkLocation = result.entity.userWorkLocation;
                    this.casesSpinner = false;
                    this.showSpinner = false;
                    this.accountid = result.entity.accountid;
                    // this.casesSpinner = false;
                    this.showTable = true;
                } else {
                    console.log('Error:' + result.errorMsg);
                    console.log("Error:" + result.errorMsg);
                    const evt = new ShowToastEvent({
                        title: '解析失败',
                        title: "解析失败",
                        message: result.errorMsg,
                        variant: 'error'
                        variant: "error",
                    });
                    this.dispatchEvent(evt);
                }
            })
            .catch((error) => {
                console.log('error = ' + JSON.stringify(error));
                console.log("error = " + JSON.stringify(error));
            });
        //默认展开栏
        this.activeSections = ['dataExpand'];
        this.activeSections = ["dataExpand"];
        this.showTable = false;
        this.showbutton = false;
        //init
@@ -298,86 +310,95 @@
    barcodeEntrys() {
        this.showTable = false;
        this.showbutton = false;
        console.log('进入录入');
        this.showSpinner = true;
        console.log("进入录入");
        console.log(
            'this.consumableorderdetailsRecords===>' +
                this.consumableorderdetailsRecords
            "this.consumableorderdetailsRecords===>" +
            this.consumableorderdetailsRecords
        );
        if (
            this.barcode == '' ||
            this.barcode == null ||
            this.barcode == 'undefined'
        ) {
            this.connectedCallback();
        }
        barcodeEntry({
            accountName: this.accountName,
            agencyProType: this.agencyProType,
            userWorkLocation: this.userWorkLocation,
            barcode: this.barcode,
            consumableorderdetailsRecordsLWC: this.consumableorderdetailsRecords
            consumableorderdetailsRecordsLWC: this.consumableorderdetailsRecords,
        })
            .then((result) => {
                // result = JSON.parse(JSON.stringify(result));
                this.codPageRecords = JSON.parse(result.entity.codPageRecords);
                for (var i in this.codPageRecords) {
                    this.codPageRecords[i]['Name__c'] =
                        this.codPageRecords[i].Prod.Name__c;
                    this.codPageRecords[i]['Box_Piece__c'] =
                        this.codPageRecords[i].orderdetails2.Box_Piece__c;
                    this.codPageRecords[i]['Bar_Code__c'] =
                        this.codPageRecords[i].orderdetails2.Bar_Code__c;
                }
                this.data = JSON.parse(
                    result.entity.consumableorderdetailsRecords
                );
                for (var i in this.data) {
                    this.data[i]['Name__c'] = this.data[i].Prod.Name__c;
                    this.data[i]['Packing_list_manual__c'] =
                        this.data[i].Prod.Packing_list_manual__c;
                }
                for (var i in this.data) {
                    if (this.data[i]['check']) {
                        this.selectedRows.push(this.data[i].ProdId);
                        console.log('selectedRows:' + this.selectedRows);
                    }
                }
                this.iSinventory = result.entity.iSinventory;
                console.log('iSinventory:' + this.iSinventory);
                this.showTable = true;
                this.showbutton = true;
                result = JSON.parse(JSON.stringify(result));
                console.log("result ===>" + JSON.stringify(result));
                console.log(
                    ' this.codPageRecords=11111 ' + result.entity.codPageRecords
                );
                console.log('result录入= ' + JSON.stringify(result));
                console.log(
                    'result主页数据= ' +
                        result.entity.consumableorderdetailsRecords
                );
                console.log("1111");
                if (result.status == "Sucess") {
                    this.codPageRecords = JSON.parse(result.entity.codPageRecords);
                    for (var i in this.codPageRecords) {
                        this.codPageRecords[i]["Name__c"] = this.codPageRecords[i].Prod.Name__c;
                        this.codPageRecords[i]["Box_Piece__c"] = this.codPageRecords[i].orderdetails2.Box_Piece__c;
                        this.codPageRecords[i]["Bar_Code__c"] = this.codPageRecords[i].orderdetails2.Bar_Code__c;
                    }
                    this.data = JSON.parse(result.entity.consumableorderdetailsRecords);
                    for (var i in this.data) {
                        this.data[i]["Name__c"] = this.data[i].Prod.Name__c;
                        this.data[i]["Packing_list_manual__c"] = this.data[i].Prod.Packing_list_manual__c;
                    }
                    for (var i in this.data) {
                        if (this.data[i]["check"]) {
                            this.selectedRows.push(this.data[i].ProdId);
                            console.log("selectedRows:" + this.selectedRows);
                        }
                    }
                    this.iSinventory = result.entity.iSinventory;
                    this.pandiandetailsMap = result.entity.pandiandetailsMap;
                    this.reSet = result.entity.reSet;
                    console.log("iSinventory:" + this.iSinventory);
                    this.showTable = true;
                    this.showbutton = true;
                    this.showSpinner = false;
                    console.log('reSet' + this.reSet);
                    console.log('pandiandetailsMap' + this.pandiandetailsMap);
                    console.log(
                        "this.codPageRecords=11111 " + result.entity.codPageRecords
                    );
                    console.log("result录入= " + JSON.stringify(result));
                    console.log(
                        "result主页数据= " + result.entity.consumableorderdetailsRecords
                    );
                } else {
                    console.log('Error:' + result.errorMsg);
                    const evt = new ShowToastEvent({
                      title: '',
                      message: result.msg,
                      variant: 'error'
                    });
                    this.dispatchEvent(evt);
                    this.showSpinner = false;
                    this.showTable = true;
                }
            })
            .catch((error) => {
                console.log('error = ' + JSON.stringify(error));
                console.log("error = " + JSON.stringify(error));
            });
    }
    //获取当前输入值
    handleChange(event) {
        let value = event.detail.value;
        console.log('value' + value);
        console.log("value" + value);
        this.barcode = value;
    }
    getSelectedRows(event) {
        const selectedRows = event.detail.selectedRows;
        console.log('this.selectedRows = ' + this.selectedRows);
        console.log("this.selectedRows = " + this.selectedRows);
        for (var i in this.data) {
            this.data[i]['check'] = false;
            this.data[i]["check"] = false;
        }
        for (var i in this.data) {
            for (var j in selectedRows) {
                if (this.data[i].Id == selectedRows[j].Id) {
                    this.data[i]['check'] = true;
                if (this.data[i].ProdId == selectedRows[j].ProdId) {
                    this.data[i]["check"] = true;
                }
            }
        }
@@ -385,39 +406,38 @@
    //导出为csv
    exportData() {
        console.log('导出');
        console.log("导出");
        // Prepare a html table
        let doc = '<table>';
        let doc = "<table>";
        // Add styles for the table
        doc += '<style>';
        doc += 'table, th, td {';
        doc += '    border: 1px solid black;';
        doc += '    border-collapse: collapse;';
        doc += '}';
        doc += '</style>';
        doc += "<style>";
        doc += "table, th, td {";
        doc += "    border: 1px solid black;";
        doc += "    border-collapse: collapse;";
        doc += "}";
        doc += "</style>";
        // Add all the Table Headers
        doc += '<tr>';
        doc += "<tr>";
        this.columnHeader.forEach((element) => {
            doc += '<th>' + element + '</th>';
            doc += "<th>" + element + "</th>";
        });
        doc += '</tr>';
        doc += "</tr>";
        // Add the data rows
        this.codPageRecords.forEach((record) => {
            doc += '<tr>';
            doc += '<th>' + record.Name__c + '</th>';
            doc += '<th>' + record.Box_Piece__c + '</th>';
            doc += '<th>' + record.Bar_Code__c + '</th>';
            doc += '<th>' + record.DiffReason + '</th>';
            doc += '</tr>';
            doc += "<tr>";
            doc += "<th>" + record.Name__c + "</th>";
            doc += "<th>" + record.Box_Piece__c + "</th>";
            doc += "<th>" + record.Bar_Code__c + "</th>";
            doc += "<th>" + record.DiffReason + "</th>";
            doc += "</tr>";
        });
        doc += '</table>';
        var element =
            'data:application/vnd.ms-excel,' + encodeURIComponent(doc);
        let downloadElement = document.createElement('a');
        doc += "</table>";
        var element = "data:application/vnd.ms-excel," + encodeURIComponent(doc);
        let downloadElement = document.createElement("a");
        downloadElement.href = element;
        downloadElement.target = '_self';
        downloadElement.target = "_self";
        // use .csv as extension on below line if you want to export data as csv
        downloadElement.download = '库存变化明细.xls';
        downloadElement.download = "库存变化明细.xls";
        document.body.appendChild(downloadElement);
        downloadElement.click();
    }
@@ -427,76 +447,109 @@
    diffreasons(event) {
        const numberDetail = event.detail;
        // this.numberDetail = numberDetail;
        console.log('numberDetail' + JSON.stringify(numberDetail));
        console.log("numberDetail" + JSON.stringify(numberDetail));
        for (var i in this.data) {
            if (this.data[i]['ProId'] == numberDetail.data.ProId) {
                this.data[i]['DiffReason'] = numberDetail.data.DiffReason;
            if (this.data[i]["ProId"] == numberDetail.data.ProId) {
                this.data[i]["DiffReason"] = numberDetail.data.DiffReason;
            }
        }
        console.log(' this.data==>' + JSON.stringify(this.data));
        console.log(" this.data==>" + JSON.stringify(this.data));
    }
    saveConfirm() {
        console.log('进入盘点确认');
        var el = this.template.querySelector(
            'c-lex-custom-lightning-datatable'
        );
        console.log("进入盘点确认");
        console.log('reSet' + this.reSet);
        console.log('pandiandetailsMap' + this.pandiandetailsMap);
        var el = this.template.querySelector("c-lex-custom-lightning-datatable");
        var selected = el.getSelectedRows();
        this.selectedData = selected;
        console.log('选中数据' + JSON.stringify(this.selectedData));
        saveConfirm({
        console.log("选中数据" + JSON.stringify(this.selectedData));
        save({
            iSinventory: this.iSinventory,
            consumableorderdetailsRecordsLWC: JSON.stringify(this.selectedData)
            consumableorderdetailsRecordsLWC: JSON.stringify(this.selectedData),
            accountid: this.accountid,
            agencyProType: this.agencyProType,
            reSet: this.reSet,
            pandiandetailsMap: this.pandiandetailsMap
        })
            .then((result) => {
                console.log('result = ' + JSON.stringify(result));
                this.EditAble = true;
                this.showcount = false;
                // result = JSON.parse(JSON.stringify(result));
                // console.log('result = ' + JSON.stringify(result));
                result = JSON.parse(JSON.stringify(result));
                console.log("result = " + JSON.stringify(result));
                console.log("111111");
                // if (result.status == 'Success') {
                //   // let url = '/lexInventoryCount?eSetId=' + result.entity.eSetId;
                //   // this[NavigationMixin.Navigate]({
                //   //   type: 'standard__webPage',
                //   //   attributes: {
                //   //     url: url
                //   //   }
                //   // });
                //   this.EditAble = true;
                //   this.showcount = false;
                // } else {
                //   console.log('result.msg = ' + result.msg);
                //   const evt = new ShowToastEvent({
                //     title: '失败',
                //     message: result.msg,
                //     variant: 'error'
                //   });
                //   this.dispatchEvent(evt);
                // }
                if (result.status == "Success") {
                    let url = "/lexInventoryCount?ESetid=" + result.entity.eSetId;
                    this[NavigationMixin.Navigate]({
                        type: "standard__webPage",
                        attributes: {
                            url: url,
                        },
                    });
                    console.log("Id" + this.eSetId);
                    // this.EditAble = true;
                    // this.showcount = false;
                } else {
                    console.log("result.msg = " + result.msg);
                    const evt = new ShowToastEvent({
                        title: "失败",
                        message: result.msg,
                        variant: "error",
                    });
                    this.dispatchEvent(evt);
                }
            })
            .catch((error) => {
                console.log('error = ' + JSON.stringify(error));
                console.log("error = " + JSON.stringify(error));
            });
    }
    // inits(){
    //   init({
    //     eSetId:this.eSetId
    //   }).then((result) => {
    //     result = JSON.parse(JSON.stringify(result));
    //     for(var i in result.entity.qs){
    //       this.conId = result.entity.qs[i].Id;
    //     }
    //     console.log('this.conId'+typeof( this.conId));
    //     this.detailData = JSON.parse(result.entity.consumableorderdetailsRecords);
    inits() {
        datainit({
            eSetId: this.eSetId,
        })
            .then((result) => {
                result = JSON.parse(JSON.stringify(result));
                console.log('盘点一览===>' + JSON.stringify(result));
                for (var i in result.entity.qs) {
                    this.conId = result.entity.qs[i].Id;
                }
                console.log("this.conId" + typeof this.conId);
                this.detailData = JSON.parse(
                    result.entity.consumableorderdetailsRecords
                );
                if (result.entity.ConsumableorderdetailsRecordsError != null) {
                    this.adjustdata = JSON.parse(
                        result.entity.ConsumableorderdetailsRecordsError
                    );
                    for (let i in this.detailData) {
                        this.detailData[i].Name__c = this.detailData[i].Prod.Name__c;
                        this.detailData[i].Count_Sum__c = this.detailData[i].orderdetails1.Count_Sum__c;
                        this.detailData[i].inventory_sum__c = this.detailData[i].orderdetails1.inventory_sum__c;
                        this.detailData[i].Diff__c = this.detailData[i].orderdetails1.Diff__c;
                        this.detailData[i].Product_Refind__c = this.detailData[i].orderdetails1.Product_Refind__c;
                        this.detailData[i].Lose_reason__c = this.detailData[i].orderdetails1.Lose_reason__c;
                    }
                    for (let i in this.adjustdata) {
                        this.adjustdata[i].Name__c = this.adjustdata[i].Prod.Name__c;
                        this.adjustdata[i].Asset_Model_No__c = this.adjustdata[i].Prod.Asset_Model_No__c;
                        this.adjustdata[i].Lose_reason__c = this.adjustdata[i].orderdetails2.Lose_reason__c;
                        this.adjustdata[i].Lose_Flag__c = this.adjustdata[i].orderdetails2.Lose_Flag__c;
    //     console.log('result盘点Id'+JSON.stringify(this.conId));
    //   })
    //   .catch((error) => {
    //     console.log("error = " + JSON.stringify(error));
    //   });
    // }
}
                    }
                }
                console.log("result盘点Id" + JSON.stringify(this.conId));
                console.log("调整明细" + JSON.stringify(this.adjustdata));
            })
            .catch((error) => {
                console.log("error = " + JSON.stringify(error));
            });
    }
}
force-app/main/default/lwc/lexLoanerArrangedEmail/lexLoanerArrangedEmail.css
New file
@@ -0,0 +1,10 @@
.exampleHolder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display: none !important;
}
force-app/main/default/lwc/lexLoanerArrangedEmail/lexLoanerArrangedEmail.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="EquipmentRentalPDF" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexLoanerArrangedEmail/lexLoanerArrangedEmail.js
New file
@@ -0,0 +1,102 @@
import { LightningElement, track, wire, api } from 'lwc';
import { CurrentPageReference,NavigationMixin } from 'lightning/navigation';
import { CloseActionScreenEvent } from 'lightning/actions';
import init from '@salesforce/apex/loanerArrangedEmailController.init';
import getRentalApplyEquipmentSet from '@salesforce/apex/loanerArrangedEmailController.getRentalApplyEquipmentSet';
import approvalCheck from '@salesforce/apex/RentalApplyWebService.approvalCheck';
import setShipment_request from '@salesforce/apex/RentalApplyWebService.approvalCheck';
export default class lexLoanerArrangedEmail extends LightningElement {
    @api recordId;
    IsLoading = true;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
        if(currentPageReference) {
            const urlValue = currentPageReference.state.recordId;
            if(urlValue) {
                let str = `${urlValue}`;
                this.recordId = str;
            }
        }
    }
    connectedCallback() {
        init({
            recordId: this.recordId
        }).then(result => {
            console.log(this.recordId);
            console.log('result==='+JSON.stringify(result));
            if(result != null) {
                if( result.WeiAssignedCnt > 0 ) {
                    alert("申请单内存在未分配的配套,请分配备品或分割申请单");
                }else if(result.CampaignStatus == "取消") {
                    alert("学会取消,不可出库指示");
                }else if (result.RaStatus == "已出库指示" && result.AssignedNotShipment == 0){
                    alert("所有的借出备品Set一览都进行过出库指示了");
                }else if (result.AssignedNotShipment == 0) {
                    alert("没有可以出库指示的明细");
                }else if (result.DemoPurpose1 == "长期借出" && result.ContractPdfUpdated == 0){
                    alert("长期借出时,必须先上传契约书");
                }else if (result.RepairId != '' && (result.RepairFinalInspectionDateF != null && result.RepairFinalInspectionDateF != '') || (result.RCReturnToOffice != null && result.RCReturnToOffice != '')){
                    alert("修理有最终检测日或修理品返送日,不可出库指示");
                }else if (result.IFApproved == "true" && (result.MeetingApprovedNo == null || result.MeetingApprovedNo == "")){
                    alert("没有决裁号的,暂不能出借,请更新裁决信息。");
                }else if (result.IFApproved == "true" && result.MeetingApprovedNo != "" && result.StatusList.indexOf(records[0].Approved_Status__c) != -1){
                    alert("已申请决裁但决裁状态不符合条件。");
                }else {
                    approvalCheck({
                        rentalApplyId: this.recordId
                    }).then(res=>{
                        if (res != '1') {
                            alert(rs1);
                        } else {
                            //bp2 var rs2 = sforce.apex.execute("RentalApplyWebService", "reserve", {rentalApplyId: raid});
                            //bp2 if (rs2 != '1') {
                            //bp2 alert(rs2);
                            //bp2 } else {
                            //var rs1 = sforce.apex.execute("RentalApplyWebService", "setShipment_request", {raid : "{!Rental_Apply__c.Id}"});
                            setShipment_request({
                                raid: this.recordId
                            }).then(res=>{
                                if (res == "状态更新到已出库指示") {
                                    alert("状态更新到已出库指示");
                                    print();
                                    setTimeout(function() {
                                        location.href = "/{!Rental_Apply__c.Id}";
                                    },100);
                                }else {
                                    alert(res);
                                }
                            }).catch(e=>{
                                console.log('approvalCheck==='+e);
                            })
                        }
                    }).catch(e=>{
                        console.log('setShipment_request==='+e);
                    })
                }
                this.dispatchEvent(new CloseActionScreenEvent());
            }
        })
    }
    print() {
        getRentalApplyEquipmentSet({
            recordId: this.recordId
        }).then(result => {
            window.open("https://ocsm--partial.sandbox.lightning.force.com/apex/FixtureRentalPDF?raid=" + this.recordId + "&page=" + result);
        })
    }
    fixDate(date){
        var Month = fixTime(date.getMonth() + 1);
        var Day = fixTime(date.getDate());
        var UTC = date.toUTCString();
        var Time = UTC.substring(UTC.indexOf(':')-2, UTC.indexOf(':')+6);
        var Minutes = fixTime(date.getMinutes());
        var Seconds = fixTime(date.getSeconds());
        return date.getFullYear() + "-" + Month + "-" + Day + "T" + Time;
    }
}
force-app/main/default/lwc/lexLoanerArrangedEmail/lexLoanerArrangedEmail.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexLookup/LexLookup.css
New file
@@ -0,0 +1,30 @@
.slds-combobox__input,
.slds-combobox_container {
    transition: border 0.1s linear, box-shadow 0.1 linear;
}
.slds-combobox__input {
    box-shadow: none;
}
.slds-combobox__input.has-custom-border {
    box-shadow: 0 0 0 2px #fff inset, 0 0 0 3px rgb(221, 219, 218) inset;
}
.slds-combobox__input.has-custom-error {
    border: 1px solid rgb(194, 57, 52);
    box-shadow: rgb(194, 57, 52) 0 0 0 1px inset;
}
.slds-combobox_container.has-custom-error {
    border: none !important;
}
.slds-combobox__input.has-custom-height {
    height: 32px !important;
}
.form-error {
    color: rgb(194, 57, 52);
    display: block;
}
force-app/main/default/lwc/lexLookup/lexLookup.html
New file
@@ -0,0 +1,139 @@
<template>
    <div class={getFormElementClass}>
        <label lwc:if={label} class={getLabelClass} for="combobox">
            <abbr lwc:if={required} title="required" class="slds-required">*</abbr>
            {label}
        </label>
        <div class="slds-form-element__control">
            <div class={getContainerClass}>
                <div class={getDropdownClass} aria-expanded={isListboxOpen} aria-haspopup="listbox" aria-owns="listbox"
                    role="combobox">
                    <!-- Search input start -->
                    <div class={getComboboxClass} role="none">
                        <template lwc:if={isSingleEntry}>
                            <lightning-icon icon-name={getSelectIconName} size="small"
                                alternative-text="Selected item icon" class={getSelectIconClass}>
                            </lightning-icon>
                        </template>
                        <!-- Text input -->
                        <input type="text" class={getInputClass} aria-autocomplete="list" aria-controls="listbox"
                            aria-activedescendant={_focusedResultIndex} autocomplete="off" role="textbox" id="combobox"
                            placeholder={placeholder} value={getInputValue} title={getInputTitle}
                            readonly={isInputReadonly} disabled={disabled} onfocus={handleFocus} onblur={handleBlur}
                            oninput={handleInput} onkeydown={handleKeyDown} />
                        <!-- Search icon -->
                        <lightning-icon icon-name="utility:search" size="x-small" alternative-text="Search icon"
                            class={getSearchIconClass}></lightning-icon>
                        <!-- Clear selection button icon for single entry lookups -->
                        <template lwc:if={isSingleEntry}>
                            <button title="Remove selected option" type="button" onclick={handleClearSelection}
                                class={getClearSelectionButtonClass} disabled={disabled}>
                                <lightning-icon icon-name="utility:close" size="x-small"
                                    alternative-text="Remove selected option"
                                    class="slds-button__icon"></lightning-icon>
                            </button>
                        </template>
                    </div>
                    <!-- Search input end -->
                    <!-- Result list box start -->
                    <div id="listbox" role="listbox" aria-label={label} onmousedown={handleComboboxMouseDown}
                        onmouseup={handleComboboxMouseUp} class={getListboxClass}>
                        <ul class="slds-listbox slds-listbox_vertical" role="presentation">
                            <!-- Spinner to display when waiting for results of search -->
                            <div lwc:if={loading}>
                                <lightning-spinner alternative-text="Loading" size="small"></lightning-spinner>
                            </div>
                            <!-- Result list start -->
                            <template for:each={searchResultsLocalState} for:item="item" for:index="index"
                                lwc:if={hasResults}>
                                <li key={item.result.id} role="presentation" class="slds-listbox__item">
                                    <div class={item.classes} role="option" id={index} aria-label={item.result.title}
                                        onclick={handleResultClick} data-recordid={item.result.id}>
                                        <span class="slds-media__figure slds-listbox__option-icon">
                                            <lightning-icon icon-name={item.result.icon} size="small"
                                                alternative-text="Result item icon"></lightning-icon>
                                        </span>
                                        <span class="slds-media__body">
                                            <span class="slds-listbox__option-text slds-listbox__option-text_entity">
                                                <lightning-formatted-rich-text value={item.result.titleFormatted}
                                                    disable-linkify>
                                                </lightning-formatted-rich-text>
                                            </span>
                                            <span lwc:if={item.result.subtitleFormatted}
                                                class="slds-listbox__option-meta slds-listbox__option-meta_entity">
                                                <lightning-formatted-rich-text value={item.result.subtitleFormatted}
                                                    disable-linkify>
                                                </lightning-formatted-rich-text>
                                            </span>
                                        </span>
                                    </div>
                                </li>
                            </template>
                            <!-- Result list end -->
                            <!-- No results start -->
                            <template lwc:else>
                                <li role="presentation">
                                    <span class="slds-media slds-listbox__option_entity" role="option">
                                        <span lwc:if={loading} class="slds-media__body">Loading...</span>
                                        <span lwc:else class="slds-media__body">No results.</span>
                                    </span>
                                </li>
                            </template>
                            <!-- No results end -->
                            <!-- Create new records -->
                            <template for:each={newRecordOptions} for:item="newRecord">
                                <li key={newRecord.value} role="presentation" class="slds-listbox__item">
                                    <div class="slds-media slds-media_center slds-listbox__option slds-listbox__option_entity"
                                        onclick={handleNewRecordClick} data-sobject={newRecord.value} role="option">
                                        <span class="slds-media__figure slds-listbox__option-icon">
                                            <lightning-icon icon-name="utility:add" size="small"
                                                alternative-text={newRecord.label}></lightning-icon>
                                        </span>
                                        <span class="slds-media__body">
                                            <span class="slds-listbox__option-text">{newRecord.label}</span>
                                        </span>
                                    </div>
                                </li>
                            </template>
                            <!-- Create new records end -->
                        </ul>
                    </div>
                    <!-- Result list box end -->
                </div>
            </div>
            <!-- Multi-selection start -->
            <template lwc:if={isMultiEntry}>
                <div id="selection" role="listbox" aria-label={label} aria-orientation="horizontal">
                    <ul class="slds-listbox slds-listbox_inline slds-var-p-top_xxx-small" role="group"
                        aria-label="Selected options">
                        <template for:each={selection} for:item="item">
                            <li key={item.id} role="presentation">
                                <lightning-pill label={item.title} title={item.title}
                                    onremove={handleRemoveSelectedItem} name={item.id}>
                                    <lightning-icon icon-name={item.icon}></lightning-icon>
                                </lightning-pill>
                            </li>
                        </template>
                    </ul>
                </div>
            </template>
            <!-- Multi-selection end -->
            <!-- Errors start -->
            <template for:each={_errors} for:item="error">
                <div key={error.id} role="alert" class="slds-form-element__label slds-var-m-top_xx-small form-error">
                    {error.message}
                </div>
            </template>
            <!-- Errors end -->
        </div>
    </div>
</template>
force-app/main/default/lwc/lexLookup/lexLookup.js
New file
@@ -0,0 +1,475 @@
import { LightningElement, api, track } from 'lwc';
import { NavigationMixin } from 'lightning/navigation';
const SEARCH_DELAY = 300; // Wait 300 ms after user stops typing then, peform search
const KEY_ARROW_UP = 38;
const KEY_ARROW_DOWN = 40;
const KEY_ENTER = 13;
const VARIANT_LABEL_STACKED = 'label-stacked';
const VARIANT_LABEL_INLINE = 'label-inline';
const VARIANT_LABEL_HIDDEN = 'label-hidden';
const REGEX_SOSL_RESERVED = /(\?|&|\||!|\{|\}|\[|\]|\(|\)|\^|~|\*|:|"|\+|-|\\)/g;
const REGEX_EXTRA_TRAP = /(\$|\\)/g;
export default class LexLookup extends NavigationMixin(LightningElement) {
    // Public properties
    @api variant = VARIANT_LABEL_STACKED;
    @api label = '';
    @api required = false;
    @api disabled = false;
    @api placeholder = '';
    @api isMultiEntry = false;
    @api scrollAfterNItems = null;
    @api newRecordOptions = [];
    @api minSearchTermLength = 2;
    // Template properties
    searchResultsLocalState = [];
    loading = false;
    // Private properties
    _errors = [];
    _hasFocus = false;
    _isDirty = false;
    _searchTerm = '';
    _cleanSearchTerm;
    _cancelBlur = false;
    _searchThrottlingTimeout;
    _searchResults = [];
    _defaultSearchResults = [];
    _curSelection = [];
    _focusedResultIndex = null;
    // PUBLIC FUNCTIONS AND GETTERS/SETTERS
    @api
    set selection(initialSelection) {
        if (initialSelection) {
            this._curSelection = Array.isArray(initialSelection) ? initialSelection : [initialSelection];
            this.processSelectionUpdate(false);
        }
    }
    get selection() {
        return this._curSelection;
    }
    @api
    set errors(errors) {
        this._errors = errors;
        // Blur component if errors are passed
        if (this._errors?.length > 0) {
            this.blur();
        }
    }
    get errors() {
        return this._errors;
    }
    @api
    get validity() {
        return { valid: !this._errors || this._errors.length === 0 };
    }
    @api
    get value() {
        return this.getSelection();
    }
    @api
    setSearchResults(results) {
        // Reset the spinner
        this.loading = false;
        // Clone results before modifying them to avoid Locker restriction
        let resultsLocal = JSON.parse(JSON.stringify(results));
        // Remove selected items from search results
        const selectedIds = this._curSelection.map((sel) => sel.id);
        resultsLocal = resultsLocal.filter((result) => selectedIds.indexOf(result.id) === -1);
        // Format results
        const cleanSearchTerm = this._searchTerm.replace(REGEX_SOSL_RESERVED, '.?').replace(REGEX_EXTRA_TRAP, '\\$1');
        const regex = new RegExp(`(${cleanSearchTerm})`, 'gi');
        this._searchResults = resultsLocal.map((result) => {
            // Format title and subtitle
            if (this._searchTerm.length > 0) {
                result.titleFormatted = result.title
                    ? result.title.replace(regex, '<strong>$1</strong>')
                    : result.title;
                result.subtitleFormatted = result.subtitle
                    ? result.subtitle.replace(regex, '<strong>$1</strong>')
                    : result.subtitle;
            } else {
                result.titleFormatted = result.title;
                result.subtitleFormatted = result.subtitle;
            }
            // Add icon if missing
            if (typeof result.icon === 'undefined') {
                result.icon = 'standard:default';
            }
            return result;
        });
        // Add local state and dynamic class to search results
        this._focusedResultIndex = null;
        const self = this;
        this.searchResultsLocalState = this._searchResults.map((result, i) => {
            return {
                result,
                state: {},
                get classes() {
                    let cls = 'slds-media slds-media_center slds-listbox__option slds-listbox__option_entity';
                    if (result.subtitleFormatted) {
                        cls += ' slds-listbox__option_has-meta';
                    }
                    if (self._focusedResultIndex === i) {
                        cls += ' slds-has-focus';
                    }
                    return cls;
                }
            };
        });
    }
    @api
    getSelection() {
        return this._curSelection;
    }
    @api
    setDefaultResults(results) {
        this._defaultSearchResults = [...results];
        if (this._searchResults.length === 0) {
            this.setSearchResults(this._defaultSearchResults);
        }
    }
    @api
    blur() {
        this.template.querySelector('input')?.blur();
    }
    // INTERNAL FUNCTIONS
    updateSearchTerm(newSearchTerm) {
        this._searchTerm = newSearchTerm;
        // Compare clean new search term with current one and abort if identical
        const newCleanSearchTerm = newSearchTerm.trim().replace(REGEX_SOSL_RESERVED, '?').toLowerCase();
        if (this._cleanSearchTerm === newCleanSearchTerm) {
            return;
        }
        // Save clean search term
        this._cleanSearchTerm = newCleanSearchTerm;
        // Ignore search terms that are too small after removing special characters
        if (newCleanSearchTerm.replace(/\?/g, '').length < this.minSearchTermLength) {
            this.setSearchResults(this._defaultSearchResults);
            return;
        }
        // Apply search throttling (prevents search if user is still typing)
        if (this._searchThrottlingTimeout) {
            clearTimeout(this._searchThrottlingTimeout);
        }
        // eslint-disable-next-line @lwc/lwc/no-async-operation
        this._searchThrottlingTimeout = setTimeout(() => {
            // Send search event if search term is long enougth
            if (this._cleanSearchTerm.length >= this.minSearchTermLength) {
                // Display spinner until results are returned
                this.loading = true;
                const searchEvent = new CustomEvent('search', {
                    detail: {
                        searchTerm: this._cleanSearchTerm,
                        rawSearchTerm: newSearchTerm,
                        selectedIds: this._curSelection.map((element) => element.id)
                    }
                });
                this.dispatchEvent(searchEvent);
            }
            this._searchThrottlingTimeout = null;
        }, SEARCH_DELAY);
    }
    isSelectionAllowed() {
        if (this.isMultiEntry) {
            return true;
        }
        return !this.hasSelection();
    }
    hasSelection() {
        return this._curSelection.length > 0;
    }
    processSelectionUpdate(isUserInteraction) {
        // Reset search
        this._cleanSearchTerm = '';
        this._searchTerm = '';
        this.setSearchResults([...this._defaultSearchResults]);
        // Indicate that component was interacted with
        this._isDirty = isUserInteraction;
        // Blur input after single select lookup selection
        if (!this.isMultiEntry && this.hasSelection()) {
            this._hasFocus = false;
        }
        // If selection was changed by user, notify parent components
        if (isUserInteraction) {
            const selectedIds = this._curSelection.map((sel) => sel.id);
            this.dispatchEvent(new CustomEvent('selectionchange', { detail: selectedIds }));
        }
    }
    // EVENT HANDLING
    handleInput(event) {
        // Prevent action if selection is not allowed
        if (!this.isSelectionAllowed()) {
            return;
        }
        this.updateSearchTerm(event.target.value);
    }
    handleKeyDown(event) {
        if (this._focusedResultIndex === null) {
            this._focusedResultIndex = -1;
        }
        if (event.keyCode === KEY_ARROW_DOWN) {
            // If we hit 'down', select the next item, or cycle over.
            this._focusedResultIndex++;
            if (this._focusedResultIndex >= this._searchResults.length) {
                this._focusedResultIndex = 0;
            }
            event.preventDefault();
        } else if (event.keyCode === KEY_ARROW_UP) {
            // If we hit 'up', select the previous item, or cycle over.
            this._focusedResultIndex--;
            if (this._focusedResultIndex < 0) {
                this._focusedResultIndex = this._searchResults.length - 1;
            }
            event.preventDefault();
        } else if (event.keyCode === KEY_ENTER && this._hasFocus && this._focusedResultIndex >= 0) {
            // If the user presses enter, and the box is open, and we have used arrows,
            // treat this just like a click on the listbox item
            const selectedId = this._searchResults[this._focusedResultIndex].id;
            this.template.querySelector(`[data-recordid="${selectedId}"]`).click();
            event.preventDefault();
        }
    }
    handleResultClick(event) {
        const recordId = event.currentTarget.dataset.recordid;
        // Save selection
        const selectedItem = this._searchResults.find((result) => result.id === recordId);
        if (!selectedItem) {
            return;
        }
        const newSelection = [...this._curSelection];
        newSelection.push(selectedItem);
        this._curSelection = newSelection;
        // Process selection update
        this.processSelectionUpdate(true);
    }
    handleComboboxMouseDown(event) {
        const mainButton = 0;
        if (event.button === mainButton) {
            this._cancelBlur = true;
        }
    }
    handleComboboxMouseUp() {
        this._cancelBlur = false;
        // Re-focus to text input for the next blur event
        this.template.querySelector('input').focus();
    }
    handleFocus() {
        // Prevent action if selection is not allowed
        if (!this.isSelectionAllowed()) {
            return;
        }
        this._hasFocus = true;
        this._focusedResultIndex = null;
    }
    handleBlur() {
        // Prevent action if selection is either not allowed or cancelled
        if (!this.isSelectionAllowed() || this._cancelBlur) {
            return;
        }
        const blurEvent = new CustomEvent('blur', {
            detail: {}
        });
        this.dispatchEvent(blurEvent);
        this._hasFocus = false;
        if(!this.hasSelection()){
            this._searchTerm = '';
        }
    }
    handleRemoveSelectedItem(event) {
        if (this.disabled) {
            return;
        }
        const recordId = event.currentTarget.name;
        this._curSelection = this._curSelection.filter((item) => item.id !== recordId);
        // Process selection update
        this.processSelectionUpdate(true);
    }
    handleClearSelection() {
        this._curSelection = [];
        this._hasFocus = false;
        // Process selection update
        this.processSelectionUpdate(true);
    }
    handleNewRecordClick(event) {
        const objectApiName = event.currentTarget.dataset.sobject;
        const selection = this.newRecordOptions.find((option) => option.value === objectApiName);
        const preNavigateCallback = selection.preNavigateCallback
            ? selection.preNavigateCallback
            : () => Promise.resolve();
        preNavigateCallback(selection).then(() => {
            this[NavigationMixin.Navigate]({
                type: 'standard__objectPage',
                attributes: {
                    objectApiName,
                    actionName: 'new'
                },
                state: {
                    defaultFieldValues: selection.defaults
                }
            });
        });
    }
    // STYLE EXPRESSIONS
    get isSingleEntry() {
        return !this.isMultiEntry;
    }
    get isListboxOpen() {
        const isSearchTermValid = this._cleanSearchTerm && this._cleanSearchTerm.length >= this.minSearchTermLength;
        return (
            this._hasFocus &&
            this.isSelectionAllowed() &&
            (isSearchTermValid || this.hasResults || this.newRecordOptions?.length > 0)
        );
    }
    get hasResults() {
        return this._searchResults.length > 0;
    }
    get getFormElementClass() {
        return this.variant === VARIANT_LABEL_INLINE
            ? 'slds-form-element slds-form-element_horizontal'
            : 'slds-form-element';
    }
    get getLabelClass() {
        return this.variant === VARIANT_LABEL_HIDDEN
            ? 'slds-form-element__label slds-assistive-text'
            : 'slds-form-element__label';
    }
    get getContainerClass() {
        let css = 'slds-combobox_container ';
        if (this._errors.length > 0) {
            css += 'has-custom-error';
        }
        return css;
    }
    get getDropdownClass() {
        let css = 'slds-combobox slds-dropdown-trigger slds-dropdown-trigger_click ';
        if (this.isListboxOpen) {
            css += 'slds-is-open';
        }
        return css;
    }
    get getInputClass() {
        let css = 'slds-input slds-combobox__input has-custom-height ';
        if (this._hasFocus && this.hasResults) {
            css += 'slds-has-focus ';
        }
        if (this._errors.length > 0 || (this._isDirty && this.required && !this.hasSelection())) {
            css += 'has-custom-error ';
        }
        if (!this.isMultiEntry) {
            css += 'slds-combobox__input-value ' + (this.hasSelection() ? 'has-custom-border' : '');
        }
        return css;
    }
    get getComboboxClass() {
        let css = 'slds-combobox__form-element slds-input-has-icon ';
        if (this.isMultiEntry) {
            css += 'slds-input-has-icon_right';
        } else {
            css += this.hasSelection() ? 'slds-input-has-icon_left-right' : 'slds-input-has-icon_right';
        }
        return css;
    }
    get getSearchIconClass() {
        let css = 'slds-input__icon slds-input__icon_right ';
        if (!this.isMultiEntry) {
            css += this.hasSelection() ? 'slds-hide' : '';
        }
        return css;
    }
    get getClearSelectionButtonClass() {
        return (
            'slds-button slds-button_icon slds-input__icon slds-input__icon_right ' +
            (this.hasSelection() ? '' : 'slds-hide')
        );
    }
    get getSelectIconName() {
        return this.hasSelection() ? this._curSelection[0].icon : 'standard:default';
    }
    get getSelectIconClass() {
        return 'slds-combobox__input-entity-icon ' + (this.hasSelection() ? '' : 'slds-hide');
    }
    get getInputValue() {
        if (this.isMultiEntry) {
            return this._searchTerm;
        }
        return this.hasSelection() ? this._curSelection[0].title : this._searchTerm;
    }
    get getInputTitle() {
        if (this.isMultiEntry) {
            return '';
        }
        return this.hasSelection() ? this._curSelection[0].title : '';
    }
    get getListboxClass() {
        return (
            'slds-dropdown ' +
            (this.scrollAfterNItems ? `slds-dropdown_length-with-icon-${this.scrollAfterNItems} ` : '') +
            'slds-dropdown_fluid'
        );
    }
    get isInputReadonly() {
        if (this.isMultiEntry) {
            return false;
        }
        return this.hasSelection();
    }
}
force-app/main/default/lwc/lexLookup/lexLookup.js-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>56.0</apiVersion>
    <isExposed>false</isExposed>
</LightningComponentBundle>
force-app/main/default/lwc/lexLoseBid/lexLoseBid.css
New file
@@ -0,0 +1,18 @@
/*
 * @Description:
 * @version:
 * @Author: chen jing wu
 * @Date: 2023-04-13 10:31:18
 * @LastEditors: chen jing wu
 * @LastEditTime: 2023-04-13 10:46:09
 */
.lexLoseBidHolder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display: none !important;
}
force-app/main/default/lwc/lexLoseBid/lexLoseBid.html
New file
@@ -0,0 +1,6 @@
<template>
    <div class="lexLoseBidHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
        <lightning-button label="Show Toast" onclick={ShowToastEvent}></lightning-button>
    </div>
</template>
force-app/main/default/lwc/lexLoseBid/lexLoseBid.js
New file
@@ -0,0 +1,89 @@
import { api, wire,LightningElement } from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import { updateRecord } from 'lightning/uiRecordApi';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import init  from '@salesforce/apex/OpportunityLightingButtonController.initForLoseBidButton';
import updateForLoseBidButton  from '@salesforce/apex/OpportunityLightingButtonController.updateForLoseBidButton';
import queryForLexLoseBidButton  from '@salesforce/apex/OpportunityLightingButtonController.queryForLoseBidButton';
export default class LexLoseBid extends LightningElement {
    @api recordId;
    ifOpenBid;
    IsLoading = true;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
            console.log(111);
            console.log(currentPageReference);
        if (currentPageReference) {
          const urlValue = currentPageReference.state.recordId;
          if (urlValue) {
            let str = `${urlValue}`;
            console.log("str");
            console.log(str);
            this.recordId = str;
          }
        }
    }
    connectedCallback(){
        init({
            recordId: this.recordId
        }).then(result=>{
            console.log(result);
            this.ifOpenBid = result.ifOpenBid;
            this.lexLoseBid();
        }).catch(error=>{
            console.log("error");
            console.log(error);
        })
    }
    lexLoseBid(){
        console.log("query start");
        queryForLexLoseBidButton({
            recordId: this.recordId
        }).then(result=>{
            console.log("query end");
            console.log(result);
            var flag = true;
            var taskslist = result;
            for(var task of taskslist ){
                if(task.taskStatus__c != '04 取消'){
                flag = false;
            }
            }
            if(this.ifOpenBid == '非公开招标'){
                flag = false;
            }
            if(flag){
                this.showToast("条件不符合,不可操作","error");
            }else{
                if (window.confirm('是否确认竞争对手中标?')) {
                    updateForLoseBidButton({
                        recordId: this.recordId
                    }).then(result=>{
                        if (result) {
                            this.showToast(result,"error");
                        }else{
                            this.IsLoading = false;
                            this.updateRecordView(this.recordId);
                            this.showToast("操作成功!","success");
                        }
                    })
                }
            }
        });
    }
    showToast(msg,type) {
        const event = new ShowToastEvent({
            title: '',
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
        this.dispatchEvent(new CloseActionScreenEvent());
    }
    updateRecordView(recordId) {
        updateRecord({fields: { Id: recordId }});
    }
}
force-app/main/default/lwc/lexLoseBid/lexLoseBid.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexLoseReport/lexLoseReport.css
New file
@@ -0,0 +1,10 @@
.lexLoseReportHolder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display: none !important;
}
force-app/main/default/lwc/lexLoseReport/lexLoseReport.html
New file
@@ -0,0 +1,6 @@
<template>
    <div class="lexLoseReportHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
        <lightning-button label="Show Toast" onclick={ShowToastEvent}></lightning-button>
    </div>
</template>
force-app/main/default/lwc/lexLoseReport/lexLoseReport.js
New file
@@ -0,0 +1,102 @@
/*
 * @Description:
 * @version:
 * @Author: chen jing wu
 * @Date: 2023-04-14 10:16:19
 * @LastEditors: chen jing wu
 * @LastEditTime: 2023-04-14 10:41:46
 */
import { api, wire,LightningElement } from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import { updateRecord } from 'lightning/uiRecordApi';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import init  from '@salesforce/apex/OpportunityLightingButtonController.initForLostReportButton';
export default class LexLoseReport extends LightningElement {
    @api recordId;
    stageName;
    sapSendOK;
    cntLostCancelReport;
    name;
    salesAssistantName;
    salesAssistantID;
    managerName;
    salesManagerDepartmentID;
    salesOwnerBuchang;
    salesOwnerBuchangID;
    IsLoading = true;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
            console.log(111);
            console.log(currentPageReference);
        if (currentPageReference) {
          const urlValue = currentPageReference.state.recordId;
          if (urlValue) {
            let str = `${urlValue}`;
            console.log("str");
            console.log(str);
            this.recordId = str;
          }
        }
    }
    connectedCallback(){
        init({
            recordId: this.recordId
        }).then(result=>{
            this.stageName = result.stageName;
            this.sapSendOK = result.sapSendOK;
            this.cntLostCancelReport = result.cntLostCancelReport;
            this.name = result.name;
            this.salesAssistantID = result.salesAssistantID;
            this.salesAssistantName = result.salesAssistantName;
            this.managerName = result.managerName;
            this.salesManagerDepartmentID = result.salesManagerDepartmentID;
            this.salesOwnerBuchang = result.salesOwnerBuchang;
            this.salesOwnerBuchangID = result.salesOwnerBuchangID;
            this.loseReport();
        })
    }
    loseReport(){
        // jsの場合、翻訳された値がでるので、要注意
        if (this.stageName != '引合'
        && this.stageName != '询价'
        ) {
            this.showToast("状态1:" + this.stageName + "、不能做 失单 了!","error");
        }
        else if (this.sapSendOK == '1') {
            this.showToast("已经上传SAP、不能做 失单 了!","error");
        }
        else if (this.cntLostCancelReport > 0) {
            this.showToast("询价已经有 取消/失单报告 了!","error");
        }
        //else if({!Not(ISBLANK(Opportunity.Bidding_Project_Name_Bid__c))} && //'{!Opportunity.InfoTypeBid__c}' != '3:结果' ){
        //alert("关联招投标项目的询价,只能在有结果后做失单报告!");
        //}
        else {
            location.href = '/a1U/e?retURL=%2F' + this.recordId +
            '&RecordType=01210000000R4hM' +
            '&CF00N10000004lbGT=' + this.name +
            '&CF00N10000004lbGT_lkid=' + this.recordId +
            '&CF00N10000006QShg=' + this.salesAssistantName +
            '&CF00N10000006QShg_lkid=' + this.salesAssistantID +
            '&CF00N10000006QShq=' + this.managerName +
            '&CF00N10000006QShq_lkid=' + this.salesManagerDepartmentID +
            '&CF00N10000006QShb=' + this.salesOwnerBuchang +
            '&CF00N10000006QShb_lkid=' + this.salesOwnerBuchangID +
            '';
        }
        this.dispatchEvent(new CloseActionScreenEvent());
    }
    showToast(msg,type) {
        const event = new ShowToastEvent({
            title: '',
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
    }
    updateRecordView(recordId) {
        updateRecord({fields: { Id: recordId }});
    }
}
force-app/main/default/lwc/lexLoseReport/lexLoseReport.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexLostReturnDeliverySlip/lexLostReturnDeliverySlip.css
New file
@@ -0,0 +1,11 @@
.Holder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display : none !important;
}
force-app/main/default/lwc/lexLostReturnDeliverySlip/lexLostReturnDeliverySlip.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="Holder" if:true={IsLoading}>
          <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
      </div>
</template>
force-app/main/default/lwc/lexLostReturnDeliverySlip/lexLostReturnDeliverySlip.js
New file
@@ -0,0 +1,39 @@
import { LightningElement, track, wire, api } from 'lwc';
import {CurrentPageReference} from 'lightning/navigation';
import { CloseActionScreenEvent } from 'lightning/actions';
export default class lexLostReturnDeliverySlip extends LightningElement {
    @api recordId;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference){
        console.log("进入页面");
        console.log(currentPageReference);
        if(currentPageReference){
            const urvalue=currentPageReference.state.recordId;
            if(urvalue){
                let str=`${urvalue}`;
                console.log('str');
                console.log(str);
                this.recordId=str;
            }
        }
    }
    connectedCallback(){
        this.cancelSubmit().then(res=>{
            this.IsLoading=false;
            this.dispatchEvent(new CloseActionScreenEvent());
        });
    }
    async cancelSubmit(){
        window.open('/apex/Lost_Return_DeliverySlip?id='+this.recordId,'LostReturnDeliverySlip', 'width=600,height=200');
    }
    //old js
    // window.open('/apex/Lost_Return_DeliverySlip?id={!TransferApply__c.Id}');
}
force-app/main/default/lwc/lexLostReturnDeliverySlip/lexLostReturnDeliverySlip.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexLostReturnDeliverySlip">
    <apiVersion>51.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__AppPage</target>
        <target>lightning__RecordPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexMailMessege/lexMailMessege.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="exampleHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexMailMessege/lexMailMessege.js
New file
@@ -0,0 +1,89 @@
import {
    LightningElement,
    wire,
    api
} from 'lwc';
import {
    CurrentPageReference
} from "lightning/navigation";
import {
    CloseActionScreenEvent
} from 'lightning/actions';
import init from '@salesforce/apex/otherButtonRepairController.init';
export default class LexMailMessege extends LightningElement {
    @api recordId;
    str;
    IsLoading = true;
    Id;;
    InchargeStaffEmailC;
    Name;
    HPNameC;
    DeliveredProductC;
    RepairProductSerialNoC;
    ServiceRepairNoC;
    RepairFirstestimatedDateC;
    RepairEstimatedDateC;
    RCInformationC;
    userEmail;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
        if (currentPageReference) {
            const urlValue = currentPageReference.state.recordId;
            if (urlValue) {
                let str = `${urlValue}`;
                this.recordId = str;
            }
        }
    }
    connectedCallback() {
        console.log(this.recordId);
        init({
            recordId: this.recordId
        }).then(result => {
            console.log(result);
            if (result != null) {
                this.IsLoading = false;
                this.Id = result.Id;
                this.InchargeStaffEmailC = result.InchargeStaffEmailC;
                this.Name = result.Name;
                this.HPNameC = result.HPNameC;
                this.DeliveredProductC = result.DeliveredProductC;
                this.RepairProductSerialNoC = result.RepairProductSerialNoC;
                this.ServiceRepairNoC = result.ServiceRepairNoC;
                this.RepairFirstestimatedDateC = result.RepairFirstestimatedDateC;
                this.RepairEstimatedDateC = result.RepairEstimatedDateC;
                this.RCInformationC = result.RCInformationC;
                this.userEmail = result.userEmail;
                this.mailMessege();
                this.dispatchEvent(new CloseActionScreenEvent());
            }
        }).catch(error => {
            console.log(error);
        }).finally(() => {
        });
    }
    // 报价附件更新的邮件通知
    mailMessege() {
        var Link = "https://ocsm--partial.sandbox.my.salesforce.com/" + this.Id;
        console.log(Link);
        location.href = 'mailto:' + this.InchargeStaffEmailC +
            '?bcc=' + this.userEmail +
            '&subject=【报价附件更新通知:' + this.Name + '】' + this.HPNameC + this.DeliveredProductC + this.RepairProductSerialNoC + this.ServiceRepairNoC +
            '&body=先生/女士%0D%0A' +
            '%0D%0A' +
            '关于主题的修理,修理报价的附件更新好了%0D%0A' +
            '请确认并跟进一下%0D%0A' +
            '%0D%0A' +
            '初次报价日:' + this.RepairFirstestimatedDateC + '%0D%0A' +
            '此次报价日:' + this.RepairEstimatedDateC + '%0D%0A' +
            '%0D%0A' +
            'RC联络事项:' + this.RCInformationC + '%0D%0A' +
            '%0D%0A' + Link + '';
    }
}
force-app/main/default/lwc/lexMailMessege/lexMailMessege.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexMainFixtureSelect/lexMainFixtureSelect.css
New file
@@ -0,0 +1,22 @@
.outerBorderCss{
    border: 1px solid #D4D4D4;
    border-radius : 5px;
    border-top : 3px solid #565959;
}
.borderCss{
    border: 1px solid #D4D4D4;
    border-radius : 5px;
    margin-bottom : 7px;
    border-top : 3px solid #565959;
}
.headerDorderCss{
    border-top: 1px solid #565959;
    border-bottom: 1px solid #D4D4D4;
    padding:3px;
}
.centerCss{
    text-align: center;
}
.centerCss .left{
    margin-left: 100px;
}/* sample css file */
force-app/main/default/lwc/lexMainFixtureSelect/lexMainFixtureSelect.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="sisToOPDHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexMainFixtureSelect/lexMainFixtureSelect.js
New file
@@ -0,0 +1,33 @@
import { LightningElement, track, wire, api } from 'lwc';
import { CurrentPageReference,NavigationMixin } from 'lightning/navigation';
import { CloseActionScreenEvent } from 'lightning/actions';
import init from '@salesforce/apex/MainFixtureSelectButtonController.init';
export default class lexMainFixtureSelect extends LightningElement {
    @api recordId;
    IsLoading = true;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference){
        if(currentPageReference) {
            const urlValue = currentPageReference.state.recordId;
            if(urlValue) {
                let str = `${urlValue}`;
                this.recordId = str;
            }
        }
    }
    connectedCallback(){
        init({
            recordId:this.recordId
        }).then(res=>{
            window.open("/apex/MainFixtureSelect?pt_recid=" + res, "_top");
            this.dispatchEvent(new CloseActionScreenEvent());
        }).catch(err=>{
            console.log(err);
            this.dispatchEvent(new CloseActionScreenEvent());
        })
    }
}
force-app/main/default/lwc/lexMainFixtureSelect/lexMainFixtureSelect.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexOCMSubmit">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexNewRepairLWC/lexNewRepairLWC.css
New file
@@ -0,0 +1,9 @@
.Narrow{
    padding: 20px;
}
.searchField,.searchField .input-text{
    /*display: flex;*/
}
.searchField .slds-combobox_container{
    width: 160px !important;
}
force-app/main/default/lwc/lexNewRepairLWC/lexNewRepairLWC.html
New file
@@ -0,0 +1,114 @@
<template>
  <!-- <lightning-card  variant="Narrow"> -->
      <div class="exampleHolder" if:true={isLoading}>
        <lightning-spinner alternative-text="Loading" size="small"></lightning-spinner>
    </div>
    <!-- slds-modal__container -->
    <div class="">
        <!-- <header class="slds-modal__header">
            <button class="slds-button slds-button_icon slds-modal__close slds-button_icon-inverse"
            title="Close" onclick={closeNewObjectModal}>
                <lightning-icon icon-name="utility:close" alternative-text="close"
                variant="inverse" size="small"></lightning-icon>
                <span class="slds-assistive-text">Close</span>
            </button>
            <h2 id="modal-heading-01" class="slds-text-heading_medium slds-hyphenate">
            {modalHeader} : {selectedRecordType}
            </h2>
        </header> -->
        <div class="slds-modal__content slds-p-around_medium" id="modal-content-id-2">
            <!-- Repair__c   onsubmit={handleSubmit}-->
            <lightning-record-edit-form onload={handleRecordEditFormLoad}  onsuccess={successNewRecordInsert} object-api-name='{objectName}'
            record-type-id={recordId}>
                <lightning-messages></lightning-messages>
                <template if:true={uiPageLayoutView}>
                    <lightning-layout multiple-rows="true">
                        <lightning-layout-item size="12">
                            <lightning-accordion allow-multiple-sections-open
                                                     onsectiontoggle={handleSectionToggle}
                                                     active-section-name={activeSections}>
                            <template for:each={uiPageLayoutView.sections} for:item="section">
                                <!-- slds-grid -->
                                <div key={section.id} class="slds-wrap">
                                    <lightning-accordion-section name={section.id} label={section.heading}>
                                    <!-- <div class="row slds-gutters row-width">
                                    <h3 class="slds-p-vertical_xx-small slds-p-left_medium" style="font-size: 16px;width: 100%;border: 3px outset #d0d9e1;">{section.heading}</h3>
                                    </div> -->
                                        <lightning-layout multiple-rows="true">
                                            <template for:each={section.layoutRows} for:item="layoutRow">
                                                <template for:each={layoutRow.layoutItems} for:item="layoutItem">
                                                    <template for:each={layoutItem.layoutComponents} for:item="layoutComponent">
                                                        <lightning-layout-item key={layoutComponent.apiName} size="6" padding="horizontal-small">
                                                            <template if:true={layoutItem.editableForNew}>
                                                            <lightning-input-field data-fieldname={layoutComponent.apiName}
                                                            field-name={layoutComponent.apiName} name={layoutComponent.apiName} required={layoutItem.required}>
                                                            </lightning-input-field>
                                                            </template>
                                                            <!-- <template if:false={layoutItem.editableForNew}> -->
                                                                <!-- 修理受付番号 -->
                                                                <!-- <template if:true={layoutComponent.apiName}>
                                                                <lightning-output-field field-name={layoutComponent.apiName}>
                                                                </lightning-output-field>
                                                                </template> -->
                                                            <!-- </template> -->
                                                        </lightning-layout-item>
                                                    </template>
                                                </template>
                                            </template>
                                        </lightning-layout>
                                    </lightning-accordion-section>
                                </div>
                            </template>
                            </lightning-accordion>
                        </lightning-layout-item>
                    </lightning-layout>
                </template>
                <lightning-messages></lightning-messages>
                <!-- slds-m-top_medium  slds-m-top_small-->
                <div class="" style="text-align: center;">
                    <lightning-button
                        class=""
                        label="取消"
                        onclick={handleReset}
                    ></lightning-button>
                    <lightning-button
                        class=""
                        type="submit"
                        name="save"
                        label="保存"
                        style="margin-left: 10px;"
                    ></lightning-button>
                    <!-- <lightning-button
                        class="slds-m-top_small"
                        type="submit"
                        name="saveAndNew"
                        label="保存新建"
                    ></lightning-button> -->
                </div>
            </lightning-record-edit-form>
        </div>
        <!-- <div class="footer-background-class">
            <div class="slds-align_absolute-center slds-p-around_xx-small">
                <lightning-button class="slds-m-around_xx-small"
                title="Cancel" label="Cancel"
                onclick={closeNewObjectModal}>
                </lightning-button>
                <lightning-button variant="brand" title="Save"
                onclick={submitRecordForm} name="Save" label="Save">
                </lightning-button>
            </div>
        </div> -->
    </div>
  <!-- <lightning-record-edit-form record-id={recordId} object-api-name='{objectName}'>
    <lightning-input-field field-name="Delivered_Product__c"> </lightning-input-field>
    <lightning-button
        class="slds-m-top_small"
        variant="brand"
        type="submit"
        label="Update"
    >
    </lightning-button>
</lightning-record-edit-form> -->
</template>
force-app/main/default/lwc/lexNewRepairLWC/lexNewRepairLWC.js
New file
@@ -0,0 +1,153 @@
import { LightningElement,wire,track,api} from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import { NavigationMixin } from 'lightning/navigation';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
// import { getRecordUi } from 'lightning/uiRecordApi';
// import NAME_FIELD from '@salesforce/schema/Repair__c.Incharge_Staff__c';
import MY_CUSTOM_OBJECT from '@salesforce/schema/Repair__c';
import init from '@salesforce/apex/NewRepairAuraController.init';
export default class newRepairLWC extends LightningElement {
    // Expose a field to make it available in the template
    // nameField = NAME_FIELD;
    // Flexipage provides recordId and objectApiName
    // @api recordId = 'a0J0l00000EouAT';
    @api recordId;
    @api urlStr;
    @api objectApiName;
    /* @wire(CurrentPageReference)
     getStateParameters(currentPageReference) {
             console.log(111);
             console.log(currentPageReference);
         if (currentPageReference) {
           const urlValue = currentPageReference.state.recordId;
           if (urlValue) {
             let str = `${urlValue}`;
             console.log("str");
             console.log(str);
             this.recordId = str;
           }
         }
     }*/
    objectName = 'Repair__c';
    uiPageLayoutView;
    isNewMode;
    //默认值赋值标记
    // defaultFlag = true;
    defaultValue;
    isLoading = true;
    activeSections;
    connectedCallback(){
        console.log(this.recordId);
        console.log(JSON.parse(this.urlStr));
    }
    //获取Layout字段
    handleRecordEditFormLoad(event) {
        console.log('Layout => ', JSON.stringify(event.detail.layout));
        this.uiPageLayoutView = event.detail.layout;
        console.log('Layout1 => ',this.uiPageLayoutView);
        // urlStr 传参处理
       init({
            recordId : this.recordId,urlStr : this.urlStr
        }).then(result => {
            console.log("result");
            console.log(result);
            this.defaultValue = result;
            //to del !
            this.defaultValue['Delivered_Product'] = '02i10000004tNXIAA2';
            this.defaultValue['Account'] = '0011000001g11rDAAQ';
            this.defaultValue['SalesOfficeCode_selection'] = '北京';
            this.defaultValue['On_site_repair'] = 'RC修理';
            this.defaultValue['Repair_Detail'] = 'testLwc';
            this.defaultValue['Hospital'] = '0011000001g11rDAAQ';
            this.defaultValue['work_location_select'] = '北京办事处';
            if (!result.status) {
                const inputFields = this.template.querySelectorAll(
               'lightning-input-field'
                );
                if (inputFields) {
                   inputFields.forEach(field => {
                    /*console.log('fieldsif => ',field);
                    console.log('fieldsif => ',field.name);
                    console.log('fieldsif => ',field.name.replace("__c",""));*/
                    let fieldName = field.name.replace("__c","");
                    if (this.defaultValue.hasOwnProperty(fieldName)) {
                        field.value= this.defaultValue[fieldName];
                    }
                   });
               }
            }
        }).catch(error => {
            console.log("error");
            console.log(error);
        }).finally(() => {
            let checkedSections = new Set();
            if (this.uiPageLayoutView.sections.length > 0) {
              // console.log("id");
              checkedSections.add(this.uiPageLayoutView.sections[0].id);
              //todo del  or 显示所有
              checkedSections.add(this.uiPageLayoutView.sections[1].id);
              // console.log(this.uiPageLayoutView.sections[0].id);
              //默认打开第一个accordion
              this.activeSections =  Array.from(checkedSections);
            }
            this.isLoading = false;
        });
    }
    //
    handleSubmit(event){
       console.log("handleSubmit");
       event.preventDefault();       // stop the form from submitting
       const fields = event.detail.fields;
       console.log("fields");
       console.log(fields);
       console.log(event.detail);
       // this.template.querySelector('lightning-record-edit-form').submit(fields);
    }
    //成功后跳转
    handleSucess(event){
       const updatedRecord = event.detail.id;
       console.log('onsuccess: ', updatedRecord);
    }
    handleReset(event) {
        const fields = event.detail.fields;
        console.log('fields => ',fields);
       const inputFields = this.template.querySelectorAll(
           'lightning-input-field'
       );
       if (inputFields) {
           inputFields.forEach(field => {
                console.log('fieldsif => ',field);
                console.log('fieldsif => ',field.name);
               // field.reset();
           });
       }
    }
    handleSectionToggle(event) {
        const openSections = event.detail.openSections;
        /*if (openSections.length === 0) {
            this.activeSectionsMessage = 'All sections are closed';
        } else {
            this.activeSectionsMessage =
                'Open sections: ' + openSections.join(', ');
        }*/
    }
}
force-app/main/default/lwc/lexNewRepairLWC/lexNewRepairLWC.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexNewTransferApply/lexNewTransferApply.css
New file
@@ -0,0 +1,22 @@
.outerBorderCss{
    border: 1px solid #D4D4D4;
    border-radius : 5px;
    border-top : 3px solid #565959;
}
.borderCss{
    border: 1px solid #D4D4D4;
    border-radius : 5px;
    margin-bottom : 7px;
    border-top : 3px solid #565959;
}
.headerDorderCss{
    border-top: 1px solid #565959;
    border-bottom: 1px solid #D4D4D4;
    padding:3px;
}
.centerCss{
    text-align: center;
}
.centerCss .left{
    margin-left: 100px;
}/* sample css file */
force-app/main/default/lwc/lexNewTransferApply/lexNewTransferApply.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="sisToOPDHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexNewTransferApply/lexNewTransferApply.js
New file
@@ -0,0 +1,126 @@
import { LightningElement, track, wire, api } from 'lwc';
import { CurrentPageReference,NavigationMixin } from 'lightning/navigation';
import { CloseActionScreenEvent } from 'lightning/actions';
import { encodeDefaultFieldValues } from 'lightning/pageReferenceUtils';
import init from '@salesforce/apex/NewTransferApplyController.init';
import getRecordId from '@salesforce/apex/NewTransferApplyController.getRecordId';
export default class lexNewTransferApply extends LightningElement {
    @api recordId;
    IsLoading = true;
    raId;
    raName;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference){
        if(currentPageReference) {
            const urlValue = currentPageReference.state.recordId;
            if(urlValue) {
                let str = `${urlValue}`;
                this.recordId = str;
            }
        }
    }
    connectedCallback(){
        init({
            recordId: this.recordId
        }).then(result =>{
            console.log(this.recordId);
            this.raId = result.raId;
            this.raName = result.raName;
            let raDetailSet = result.rae;
            console.log(raDetailSet);
            let IsCanCreateTransfer = false;
            if(raDetailSet.length > 0){
                if(raDetailSet[0].Rental_Apply__r.RecordType.DeveloperName != 'AgencyRequest'){
                    alert('此记录类型不支持新建调拨单');
                }else{
                    for(let i=0; i<raDetailSet.length; i++){
                        if(raDetailSet[i].Asset__c != null){
                            //画面默认且仅显示符合调拨要求的数据(①欠品断念后找回的主体 ②(主体上架ok)欠品断念后找回的附属品 ③主体待修理的整个配套 ④(主体上架ok)待修理的附属品)⑤主体断念后单独的附属品
                            if(raDetailSet[i].Is_Body__c == 'true'){
                                //①欠品断念后找回的主体
                                if(raDetailSet[i].Lost_item_giveup__c == 'true'){
                                    IsCanCreateTransfer = true; break;
                                }
                                //③主体待修理的整个配套
                                if(raDetailSet[i].Arrival_wh_Result_Agency__c != null && (raDetailSet[i].Arrival_wh_Result_Agency__c == '待修理' || raDetailSet[i].Arrival_wh_Result_Agency__c == '移至报废区' )){
                                    IsCanCreateTransfer = true; break;
                                }
                            }else{
                                //③主体待修理的整个配套(不是欠品的附属品)
                                if(raDetailSet[i].Rental_Apply_Equipment_Set__r.First_RAESD__r.Arrival_wh_Result_Agency__c != null &&
                                (raDetailSet[i].Rental_Apply_Equipment_Set__r.First_RAESD__r.Arrival_wh_Result_Agency__c == '待修理' ||
                                raDetailSet[i].Rental_Apply_Equipment_Set__r.First_RAESD__r.Arrival_wh_Result_Agency__c == '移至报废区' ) &&
                                raDetailSet[i].OneToOne_Flag__c == 'true' &&
                                raDetailSet[i].Arrival_wh_Result_Agency__c != null
                                ){
                                    IsCanCreateTransfer = true; break;
                                }
                                //②主体欠品断念后的整个配套(不是欠品的附属品)
                                //有主体得是一对一附属品
                                if(raDetailSet[i].Rental_Apply_Equipment_Set__r.First_RAESD__r.Lost_item_giveup__c == 'true' &&
                                raDetailSet[i].OneToOne_Flag__c == 'true' &&
                                raDetailSet[i].Arrival_wh_Result_Agency__c != null){
                                    IsCanCreateTransfer = true; break;
                                }
                                //④(主体上架ok)待修理的附属品
                                if(raDetailSet[i].Rental_Apply_Equipment_Set__r.First_RAESD__r.Arrival_wh_Result_Agency__c !=null &&
                                raDetailSet[i].Rental_Apply_Equipment_Set__r.First_RAESD__r.Arrival_wh_Result_Agency__c == 'OK' &&
                                raDetailSet[i].OneToOne_Flag__c == 'true' &&
                                raDetailSet[i].Arrival_wh_Result_Agency__c != null && (raDetailSet[i].Arrival_wh_Result_Agency__c == '待修理' || raDetailSet[i].Arrival_wh_Result_Agency__c == '移至报废区')){
                                    IsCanCreateTransfer = true; break;
                                }
                                //⑤ 断念后的附属品
                                if(raDetailSet[i].Lost_item_giveup__c == 'true'){
                                    IsCanCreateTransfer = true; break;
                                }
                                if(raDetailSet[i].Rental_Apply_Equipment_Set__r.First_You_Xiao_Ku_Cun__c <= 0
                                && raDetailSet[i].OneToOne_Flag__c && raDetailSet[i].Check_lost_Item__c != null && raDetailSet[i].Check_lost_Item_Final__c !=null && raDetailSet[i].Check_lost_Item__c == '欠品' && raDetailSet[i].Check_lost_Item_Final__c == 'OK'
                                && raDetailSet[i].Arrival_in_wh__c == 'true'
                                && raDetailSet[i].Arrival_wh_time__c != raDetailSet[i].Rental_Apply_Equipment_Set__r.First_RAESD__r.Arrival_wh_time__c ){
                                    IsCanCreateTransfer = true; break;
                                }
                            }
                        }
                    }
                    if(IsCanCreateTransfer){
                        getRecordId().then(res=>{
                            const defaultValues = encodeDefaultFieldValues({
                                recordId: res,
                                Name: '*',
                                Rental_Apply__c: this.recordId
                            });
                            this[NavigationMixin.Navigate]({
                                type: 'standard__objectPage',
                                attributes: {
                                    objectApiName: 'TransferApply__c',
                                    actionName: 'new'
                                },
                                state:{
                                    defaultFieldValues: this.defaultValues
                                }
                            })
                        })
                    }else{
                        alert('该申请没有符合条件的借出备品配套一览明细!');
                    }
                }
            }else{
                alert('该申请没有符合条件的借出备品配套一览明细!');
            }
        })
        .catch(err=>{
            this.dispatchEvent(new CloseActionScreenEvent());
            console.log('init==='+err);
        })
    }
}
force-app/main/default/lwc/lexNewTransferApply/lexNewTransferApply.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexOCMSubmit">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexOCMSubmit/lexOCMSubmit.css
New file
@@ -0,0 +1,22 @@
.outerBorderCss{
    border: 1px solid #D4D4D4;
    border-radius : 5px;
    border-top : 3px solid #565959;
}
.borderCss{
    border: 1px solid #D4D4D4;
    border-radius : 5px;
    margin-bottom : 7px;
    border-top : 3px solid #565959;
}
.headerDorderCss{
    border-top: 1px solid #565959;
    border-bottom: 1px solid #D4D4D4;
    padding:3px;
}
.centerCss{
    text-align: center;
}
.centerCss .left{
    margin-left: 100px;
}/* sample css file */
force-app/main/default/lwc/lexOCMSubmit/lexOCMSubmit.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="sisToOPDHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexOCMSubmit/lexOCMSubmit.js
New file
@@ -0,0 +1,133 @@
import { LightningElement,wire,track,api} from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import { NavigationMixin } from 'lightning/navigation';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import init  from '@salesforce/apex/QISReportController.initForOCMSubmitButton';
import updateQis  from '@salesforce/apex/QISReportController.updateQisWithOCM';
import UserInfo_Owner from '@salesforce/apex/TaskFeedbackController.UserInfo_Owner';
import { updateRecord } from 'lightning/uiRecordApi';
export default class lexOCMSubmit extends LightningElement {
    @api recordId;
    IsLoading = true;
    qisReportId;
    QISInstallDate;
    qisStatus;
    contractnumber;
    isaohuiproduct;
    err;
    @wire(CurrentPageReference)
     getStateParameters(currentPageReference) {
             console.log(111);
             console.log(currentPageReference);
         if (currentPageReference) {
           const urlValue = currentPageReference.state.recordId;
           if (urlValue) {
             let str = `${urlValue}`;
             console.log("str");
             console.log(str);
             this.recordId = str;
           }
         }
    }
    connectedCallback () {
        init({
            recordId: this.recordId
        }).then(result => {
            this.IsLoading = false;
            this.qisReportId = result.Id;
            this.qisStatus = result.qIStatus;
            this.QISInstallDate = result.qISInstallDate;
            this.contractnumber = result.contractnumber;
            this.isaohuiproduct = result.isaohuiproduct;
             if (this.qisStatus!='草案中' && this.qisStatus!='取消') {
                 const evt = new ShowToastEvent({
                        title : '已经提交',
                        message: '',
                        variant: 'error'
                    });
                    this.dispatchEvent(evt);
                this.dispatchEvent(new CloseActionScreenEvent());
                 return;
             }else{
                 if (this.qisStatus == '取消') {
                     const evt = new ShowToastEvent({
                        title : '取消后的QIS不允许再提交,如果需要提交请点击\"复制\"按钮重新生成一个QIS',
                        message: '',
                        variant: 'error'
                    });
                    this.dispatchEvent(evt);
                    this.dispatchEvent(new CloseActionScreenEvent());
                    return;
                 }
             }
             if (this.QISInstallDate == null) {
                 const evt = new ShowToastEvent({
                        title : '【购买日期/安装日期】为空时不能提交申请',
                        message: '',
                        variant: 'error'
                    });
                 this.dispatchEvent(evt);
                 this.dispatchEvent(new CloseActionScreenEvent());
                return;
             }
             if (this.contractnumber == null) {
                 const evt = new ShowToastEvent({
                        title : '【销售合同上订单号码】为空时不能提交申请',
                        message: '',
                        variant: 'error'
                    });
                    this.dispatchEvent(evt);
                 this.dispatchEvent(new CloseActionScreenEvent());
                return;
             }
             if (!confirm("一旦提交此记录以待批准,根据您的设置您可能不再能够编辑此记录或将他从批准过程中调回。是否继续?")) {
                 this.dispatchEvent(new CloseActionScreenEvent());
                return;
            }
            this.updateQisSubmit();
            if (this.isaohuiproduct == 'true') {
                this.dispatchEvent(new CloseActionScreenEvent());
                this.updateRecordView(this.recordId);
            }
            this.dispatchEvent(new CloseActionScreenEvent());
            this.updateRecordView(this.recordId);
        }).catch(error => {
            console.log('error='+error);
        }).finally(() => {
        });
    }
    updateRecordView(recordId) {
        updateRecord({fields: { Id: recordId }});
    }
    updateQisSubmit(){
            updateQis({
                 recordId: this.recordId
                }).then(result =>{
                    console.log('result'+result);
                    if (result!='成功') {
                        this.err = result;
                        const evt = new ShowToastEvent({
                            title : '更新失败',
                            message: this.err,
                            variant: 'error'
                        });
                        this.dispatchEvent(evt);
                    }
                this.dispatchEvent(new CloseActionScreenEvent());
                }).catch(error => {
                        console.log('error='+error);
                }).finally(() => {
                });
    }
}
force-app/main/default/lwc/lexOCMSubmit/lexOCMSubmit.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexOCMSubmit">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexOCSMNoToReport/lexOCSMNoToReport.css
New file
@@ -0,0 +1,10 @@
.toReportHolder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display: none !important;
}/* sample css file */
force-app/main/default/lwc/lexOCSMNoToReport/lexOCSMNoToReport.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="exampleHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexOCSMNoToReport/lexOCSMNoToReport.js
New file
@@ -0,0 +1,82 @@
import {
    LightningElement,
    wire,
    api
} from 'lwc';
import {
    CurrentPageReference
} from "lightning/navigation";
import {
    CloseActionScreenEvent
} from 'lightning/actions';
import init from '@salesforce/apex/otherButtonRepairController.init';
export default class LexOCSMNoToReport extends LightningElement {
    @api recordId;
    str;
    IsLoading = true;
    Id;
    OCSMAdministrativeReportNumberC;
    OCSMAdministrativeReportDateC;
    AwareDateC;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
        if (currentPageReference) {
            const urlValue = currentPageReference.state.recordId;
            if (urlValue) {
                let str = `${urlValue}`;
                this.recordId = str;
            }
        }
    }
    connectedCallback() {
        console.log(this.recordId);
        init({
            recordId: this.recordId
        }).then(result => {
            console.log(result);
            if (result != null) {
                this.IsLoading = false;
                this.OCSMAdministrativeReportNumberC = result.Id;
                this.OCSMAdministrativeReportDateC = result.OCSMAdministrativeReportDateC;
                this.AwareDateC = result.AwareDateC;
                this.Id = result.Id;
                this.OCSMNoToReport();
                this.dispatchEvent(new CloseActionScreenEvent());
            }
        }).catch(error => {
            console.log(error);
        }).finally(() => {
        });
    }
    OCSMNoToReport() {
        if (!confirm("不要报告后无法撤回,是否继续?")) {
            return;
        }
        if (this.OCSMAdministrativeReportNumberC != "" ||
        this.OCSMAdministrativeReportDateC != "") {
            alert("已经报告的QIS,不可以点击OCSM不要报告。");
            return;
        }
        if (this.AwareDateC != "") {
            var updateRe = new sforce.SObject("Repair__c");
            updateRe.id = this.Id;
            updateRe.OCSMAdministrativeReportStatus__c = '无需报告';
            var result = sforce.connection.update([updateRe]);
            var messages = getConnectDMLErrorMessages(result);
            if (messages.length > 0) {
                alert(messages.join("\n"));
                return;
            }
            window.location.reload();
        } else {
            alert("没有AwareDate或已经OCSM行政报告,请确认。");
            return;
        }
    }
}
force-app/main/default/lwc/lexOCSMNoToReport/lexOCSMNoToReport.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexOCSMNoToReportForReport/lexOCSMNoToReportForReport.html
New file
@@ -0,0 +1,6 @@
<template>
    <div class="reportHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
        <lightning-button label="Show Toast" onclick={ShowToastEvent}></lightning-button>
    </div>
</template>
force-app/main/default/lwc/lexOCSMNoToReportForReport/lexOCSMNoToReportForReport.js
New file
@@ -0,0 +1,100 @@
/*
 * @Description:
 * @version:
 * @Author: chen jing wu
 * @Date: 2023-03-28 15:59:44
 * @LastEditors: chen jing wu
 * @LastEditTime: 2023-04-11 11:24:51
 */
import { api, wire,LightningElement } from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import init  from '@salesforce/apex/ReportController.initForOCSMNoToReportButton';
import updateForOCSMNoToReportButton  from '@salesforce/apex/ReportController.updateForOCSMNoToReportButton';
import { updateRecord } from 'lightning/uiRecordApi';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
export default class LexOCSMNoToReportForReport extends LightningElement {
    @api recordId;
    IsLoading = true;
    OCSMAdministrativeReportNumber;
    OCSMAdministrativeReportDate;
    AwareDate;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
            console.log(111);
            console.log(currentPageReference);
        if (currentPageReference) {
          const urlValue = currentPageReference.state.recordId;
          if (urlValue) {
            let str = `${urlValue}`;
            console.log("str");
            console.log(str);
            this.recordId = str;
          }
        }
    }
    connectedCallback(){
        console.log("123");
        init({
            recordId: this.recordId
        }).then(result=>{
            console.log(result);
            this.OCSMAdministrativeReportDate = result.OCSMAdministrativeReportDate;
            this.OCSMAdministrativeReportNumber = result.OCSMAdministrativeReportNumber;
            this.AwareDate = result.awareDate;
            this.noToReport();
        }).catch(error=>{
            console.log(error);
        });
    }
    updateRecordView(recordId) {
        updateRecord({fields: { Id: recordId }});
    }
    showToast(msg,type) {
        const event = new ShowToastEvent({
            title: '',
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
    }
    noToReport(){
        if (!confirm("不要报告后无法撤回,是否继续?")) {
            this.dispatchEvent(new CloseActionScreenEvent());
            return;
        }
        if(this.OCSMAdministrativeReportNumber != undefined || this.OCSMAdministrativeReportDate != undefined ){
            this.showToast("已经报告的QIS,不可以点击OCSM不要报告。","error");
            this.dispatchEvent(new CloseActionScreenEvent());
            return;
        }
        if(this.AwareDate != undefined ){
           updateForOCSMNoToReportButton({
                recordId: this.recordId
           }).then(result=>{
            if(result){
                this.showToast(result,"error");
            }else{
                this.showToast("OCSM不要报告成功","success");
                this.updateRecordView(this.recordId);
                this.IsLoading = false;
            }
                this.dispatchEvent(new CloseActionScreenEvent());
           });
        }else{
            this.showToast("没有AwareDate或已经OCSM行政报告,请确认。","error");
            this.dispatchEvent(new CloseActionScreenEvent());
            return;
        }
    }
}
force-app/main/default/lwc/lexOCSMNoToReportForReport/lexOCSMNoToReportForReport.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexOCSMNoToReportLighting/lexOCSMNoToReportLighting.css
New file
@@ -0,0 +1,22 @@
.outerBorderCss{
    border: 1px solid #D4D4D4;
    border-radius : 5px;
    border-top : 3px solid #565959;
}
.borderCss{
    border: 1px solid #D4D4D4;
    border-radius : 5px;
    margin-bottom : 7px;
    border-top : 3px solid #565959;
}
.headerDorderCss{
    border-top: 1px solid #565959;
    border-bottom: 1px solid #D4D4D4;
    padding:3px;
}
.centerCss{
    text-align: center;
}
.centerCss .left{
    margin-left: 100px;
}
force-app/main/default/lwc/lexOCSMNoToReportLighting/lexOCSMNoToReportLighting.html
New file
@@ -0,0 +1,5 @@
<template>
   <div class="sisToOPDHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexOCSMNoToReportLighting/lexOCSMNoToReportLighting.js
New file
@@ -0,0 +1,105 @@
import { LightningElement,wire,track,api} from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import { NavigationMixin } from 'lightning/navigation';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import init  from '@salesforce/apex/QISReportController.initForlexOCSMNoToReportLightingButton';
import updateQis  from '@salesforce/apex/QISReportController.updateQisForlexOCSMNoToReportLighting';
import UserInfo_Owner from '@salesforce/apex/TaskFeedbackController.UserInfo_Owner';
import { updateRecord } from 'lightning/uiRecordApi';
export default class lexOCSMNoToReportLighting extends LightningElement {
    @api recordId;
    IsLoading = true;
    qisReportId;
    OCSMAdministrativeReportNumber;
    OCSMAdministrativeReportDate;
    Awaredate;
    err;
    @wire(CurrentPageReference)
     getStateParameters(currentPageReference) {
             console.log(111);
             console.log(currentPageReference);
         if (currentPageReference) {
           const urlValue = currentPageReference.state.recordId;
           if (urlValue) {
             let str = `${urlValue}`;
             console.log("str");
             console.log(str);
             this.recordId = str;
           }
         }
    }
    connectedCallback () {
        init({
            recordId: this.recordId
        }).then(result => {
            this.IsLoading = false;
            this.OCSMAdministrativeReportNumber = result.oCSMAdministrativeReportNumber;
            this.OCSMAdministrativeReportDate = result.oCSMAdministrativeReportDate;
            this.qisReportId = result.Id;
            this.Awaredate = result.awaredate;
            if (!confirm("不要报告后无法撤回,是否继续?")) {
                    this.dispatchEvent(new CloseActionScreenEvent());
                    return;
            }
            if (this.OCSMAdministrativeReportDate != null || this.OCSMAdministrativeReportNumber != null) {
                    const evt = new ShowToastEvent({
                            title : '已经报告的QIS,不可以点击OCSM不要报告',
                            message: '',
                            variant: 'error'
                        });
                        this.dispatchEvent(evt);
                        this.dispatchEvent(new CloseActionScreenEvent());
                        return;
            }
             if (this.Awaredate!=null) {
                 this.updateQisSubmit();
             }else{
                 const evt = new ShowToastEvent({
                        title : '没有AwareDate或已经OCSM行政报告,请确认',
                        message: '',
                        variant: 'error'
                    });
                    this.dispatchEvent(evt);
                    this.dispatchEvent(new CloseActionScreenEvent());
                    return;
             }
        }).catch(error => {
            console.log('error='+error);
        }).finally(() => {
        });
    }
    updateRecordView(recordId) {
        updateRecord({fields: { Id: recordId }});
    }
    updateQisSubmit(){
            updateQis({
                 recordId: this.recordId
                }).then(result =>{
                    console.log('result'+result);
                     this.err = result;
                    if (result!='成功') {
                        const evt = new ShowToastEvent({
                            title : '更新失败',
                            message: this.err,
                            variant: 'error'
                        });
                        this.dispatchEvent(evt);
                    }
                this.dispatchEvent(new CloseActionScreenEvent());
                this.updateRecordView(this.recordId);
                }).catch(error => {
            console.log('error='+error);
        }).finally(() => {
        });
    }
}
force-app/main/default/lwc/lexOCSMNoToReportLighting/lexOCSMNoToReportLighting.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexOCSMNoToReportLighting">
   <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexOCSMNoToReportRepair/lexOCSMNoToReportRepair.html
New file
@@ -0,0 +1,6 @@
<template>
    <div class="exampleHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
        <lightning-button label="Show Toast" onclick={ShowToastEvent}></lightning-button>
    </div>
</template>
force-app/main/default/lwc/lexOCSMNoToReportRepair/lexOCSMNoToReportRepair.js
New file
@@ -0,0 +1,102 @@
import {
    LightningElement,
    wire,
    api
} from 'lwc';
import {
    CurrentPageReference
} from "lightning/navigation";
import {
    CloseActionScreenEvent
} from 'lightning/actions';
import init from '@salesforce/apex/otherButtonRepairController.init';
import updateRepair from '@salesforce/apex/otherButtonRepairController.updateRepair';
import {
    ShowToastEvent
} from 'lightning/platformShowToastEvent';
export default class LexOCSMNoToReportRepair extends LightningElement {
    @api recordId;
    str;
    IsLoading = true;
    Id;;
    OCSMAdministrativeReportNumberC;
    OCSMAdministrativeReportDateC;
    AwareDateC;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
        if (currentPageReference) {
            const urlValue = currentPageReference.state.recordId;
            if (urlValue) {
                let str = `${urlValue}`;
                this.recordId = str;
            }
        }
    }
    connectedCallback() {
        console.log(this.recordId);
        init({
            recordId: this.recordId
        }).then(result => {
            console.log(result);
            if (result != null) {
                this.IsLoading = false;
                this.Id = result.Id;
                this.OCSMAdministrativeReportNumberC = result.OCSMAdministrativeReportNumberC;
                this.OCSMAdministrativeReportDateC = result.OCSMAdministrativeReportDateC;
                this.AwareDateC = result.AwareDateC;
                this.OCSMNoToReport();
                this.dispatchEvent(new CloseActionScreenEvent());
            }
        }).catch(error => {
            console.log(error);
        }).finally(() => {
        });
    }
    // OCSM不要报告
    OCSMNoToReport() {
        if (!confirm("不要报告后无法撤回,是否继续?")) {
            return;
        }
        if (this.OCSMAdministrativeReportNumberC != undefined ||
            this.OCSMAdministrativeReportDateC != undefined) {
            this.ShowToastEvent("已经报告的QIS,不可以点击OCSM不要报告。", "error")
            // alert("已经报告的QIS,不可以点击OCSM不要报告。");
            return;
        }
        if (this.AwareDateC != undefined) {
            updateRepair({
                recordId: this.Id
            }).catch(error => {
                if (error.body.pageErrors.length > 0) {
                    var errmsg = error.body.pageErrors[0].message.toString();
                    this.ShowToastEvent(errmsg.join("\n"), "error")
                    // alert(errmsg.join("\n"));
                    return;
                }
            })
            window.location.reload();
        } else {
            this.ShowToastEvent("没有AwareDate或已经OCSM行政报告,请确认。", "error")
            // alert("没有AwareDate或已经OCSM行政报告,请确认。");
            return;
        }
    }
    // 弹窗
    ShowToastEvent(msg, type) {
        const event = new ShowToastEvent({
            title: '',
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
    }
}
force-app/main/default/lwc/lexOCSMNoToReportRepair/lexOCSMNoToReportRepair.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexOCSMNogoods/lexOCSMNogoods.css
New file
@@ -0,0 +1,22 @@
.outerBorderCss{
    border: 1px solid #D4D4D4;
    border-radius : 5px;
    border-top : 3px solid #565959;
}
.borderCss{
    border: 1px solid #D4D4D4;
    border-radius : 5px;
    margin-bottom : 7px;
    border-top : 3px solid #565959;
}
.headerDorderCss{
    border-top: 1px solid #565959;
    border-bottom: 1px solid #D4D4D4;
    padding:3px;
}
.centerCss{
    text-align: center;
}
.centerCss .left{
    margin-left: 100px;
}/* sample css file */
force-app/main/default/lwc/lexOCSMNogoods/lexOCSMNogoods.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="sisToOPDHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexOCSMNogoods/lexOCSMNogoods.js
New file
@@ -0,0 +1,101 @@
import { LightningElement,wire,track,api} from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import { NavigationMixin } from 'lightning/navigation';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import { updateRecord } from 'lightning/uiRecordApi';
import init  from '@salesforce/apex/QISReportController.initForlexRCRecievedButton';
import updateQis  from '@salesforce/apex/QISReportController.updateQisForRCRecieved';
export default class lexOCSMNogoods extends LightningElement {
    @api recordId;
    err;
    IsLoading = true;
    qisReportId;
    qisStatus;
    isAEProfile;
    isCNBuy;
     @wire(CurrentPageReference)
     getStateParameters(currentPageReference) {
             console.log(111);
             console.log(currentPageReference);
         if (currentPageReference) {
           const urlValue = currentPageReference.state.recordId;
           if (urlValue) {
             let str = `${urlValue}`;
             console.log("str");
             console.log(str);
             this.recordId = str;
           }
         }
     }
     connectedCallback () {
        init({
            recordId: this.recordId
        }).then(result => {
            this.IsLoading = false;
            this.qisReportId = result.Id;
            this.qisStatus = result.qIStatus;
            this.isAEProfile = result.isAEProfile;
            this.isCNBuy = result.isCNBuy;
            console.log('this.qisStatus='+this.qisStatus);
             if (this.qisStatus!='RC检测申请') {
                const evt = new ShowToastEvent({
                        title : 'OCM服务本部已经收到实物',
                        message: '',
                        variant: 'error'
                    });
                this.dispatchEvent(evt);
                this.dispatchEvent(new CloseActionScreenEvent());
                return;
             }else{
                 if (this.isAEProfile == null || this.isPAEProfile == null || this.isCNBuy != 'true') {
                     const evt = new ShowToastEvent({
                        title : '安全信息未判定,请联系质量法规部',
                        message: '',
                        variant: 'error'
                    });
                    this.dispatchEvent(evt);
                    this.dispatchEvent(new CloseActionScreenEvent());
                    return;
                 }else{
                     this.updateQisSubmit();
                 }
             }
        }).catch(error => {
            console.log('error='+error);
        }).finally(() => {
        });
    }
    updateRecordView(recordId) {
        updateRecord({fields: { Id: recordId }});
    }
    updateQisSubmit(){
            updateQis({
                 recordId: this.recordId
                }).then(result =>{
                    console.log('result'+result);
                    this.err = result;
                    if (result!='成功') {
                        const evt = new ShowToastEvent({
                            title : '更新失败',
                            message: this.err,
                            variant: 'error'
                        });
                        this.dispatchEvent(evt);
                    }
                this.dispatchEvent(new CloseActionScreenEvent());
                this.updateRecordView(this.recordId);
                }).catch(error => {
                            console.log('error='+error);
                }).finally(() => {
                });
    }
}
force-app/main/default/lwc/lexOCSMNogoods/lexOCSMNogoods.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexOCSMNogoods">
     <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexOCSMToReport/lexOCSMToReport.css
New file
@@ -0,0 +1,10 @@
.toReportHolder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display: none !important;
}
force-app/main/default/lwc/lexOCSMToReport/lexOCSMToReport.html
New file
@@ -0,0 +1,6 @@
<template>
    <div class="toReportHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
        <lightning-button label="Show Toast" onclick={ShowToastEvent}></lightning-button>
    </div>
</template>
force-app/main/default/lwc/lexOCSMToReport/lexOCSMToReport.js
New file
@@ -0,0 +1,97 @@
/*
 * @Description:
 * @version:
 * @Author: chen jing wu
 * @Date: 2023-04-07 09:02:03
 * @LastEditors: chen jing wu
 * @LastEditTime: 2023-04-11 11:26:11
 */
import { api, wire,LightningElement } from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import init  from '@salesforce/apex/ReportController.initForOCSMToReportButton';
import updateForOCSMToReportButton  from '@salesforce/apex/ReportController.updateForOCSMToReportButton';
import { updateRecord } from 'lightning/uiRecordApi';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
export default class LexOCSMToReport extends LightningElement {
    @api recordId;
    IsLoading = true;
    OCSMAdministrativeReportStatus;
    awareDate;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
            console.log(111);
            console.log(currentPageReference);
        if (currentPageReference) {
          const urlValue = currentPageReference.state.recordId;
          if (urlValue) {
            let str = `${urlValue}`;
            console.log("str");
            console.log(str);
            this.recordId = str;
          }
        }
    }
    connectedCallback(){
        console.log(this.recordId);
        init({
            recordId: this.recordId
        }).then(result => {
            console.log(result);
            if (result != null) {
                this.OCSMAdministrativeReportStatus = result.OCSMAdministrativeReportStatus;
                this.awareDate = result.awareDate;
                this.toReport();
            }
        }).catch(error => {
            console.log("error");
            console.log(error);
        });
    }
    showToast(msg,type) {
        const event = new ShowToastEvent({
            title: '',
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
    }
    updateRecordView(recordId) {
        updateRecord({fields: { Id: recordId }});
    }
    toReport () {
        if (!confirm("报告后无法撤回,是否继续?")) {
            this.dispatchEvent(new CloseActionScreenEvent());
            return;
            }
        if(this.OCSMAdministrativeReportStatus == undefined && this.awareDate != undefined ){
            updateForOCSMToReportButton({
                recordId: this.recordId
            }).then(result =>{
                if(result){
                    this.showToast(result,"error");
                }else{
                    this.showToast("成功","success");
                    this.updateRecordView(this.recordId);
                    this.IsLoading = false;
                }
                this.dispatchEvent(new CloseActionScreenEvent());
                });
        }else{
            this.showToast("没有AwareDate或已经OCSM行政报告,请确认。","error");
            this.dispatchEvent(new CloseActionScreenEvent());
            return;
        }
    }
}
force-app/main/default/lwc/lexOCSMToReport/lexOCSMToReport.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexOCSMToReportLighting/lexOCSMToReportLighting.css
New file
@@ -0,0 +1,10 @@
.toReportHolder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display: none !important;
}/* sample css file *//* sample css file */
force-app/main/default/lwc/lexOCSMToReportLighting/lexOCSMToReportLighting.html
New file
@@ -0,0 +1,5 @@
<template>
   <div class="sisToOPDHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexOCSMToReportLighting/lexOCSMToReportLighting.js
New file
@@ -0,0 +1,89 @@
import { LightningElement,wire,track,api} from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import { NavigationMixin } from 'lightning/navigation';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import init  from '@salesforce/apex/QISReportController.initForlexOCSMToReportLightingButton';
import updateQis  from '@salesforce/apex/QISReportController.updateQisForlexOCSMToReportLighting';
import UserInfo_Owner from '@salesforce/apex/TaskFeedbackController.UserInfo_Owner';
import { updateRecord } from 'lightning/uiRecordApi';
export default class lexOCSMToReportLighting extends LightningElement {
    @api recordId;
    str;
    err;
    IsLoading = true;
    qisReportId;
    OCSMAdministrativeReportStatus;
    Awaredate;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
        if (currentPageReference) {
            const urlValue = currentPageReference.state.recordId;
            if (urlValue) {
                let str = `${urlValue}`;
                this.recordId = str;
            }
        }
    }
    connectedCallback() {
        console.log(this.recordId);
        init({
            recordId: this.recordId
        }).then(result => {
            console.log(result);
                this.IsLoading = false;
                this.OCSMAdministrativeReportStatus = result.oCSMAdministrativeReportStatus;
                this.qisReportId = result.Id;
                this.Awaredate = result.awaredate;
                if (!confirm("不要报告后无法撤回,是否继续?")) {
                    this.dispatchEvent(new CloseActionScreenEvent());
                    return;
                }
                if (this.OCSMAdministrativeReportStatus == null && this.Awaredate!=null) {
                     this.updateQisSubmit();
                 }else{
                     const evt = new ShowToastEvent({
                            title : '没有AwareDate或已经OCSM行政报告,请确认',
                            message: '',
                            variant: 'error'
                        });
                        this.dispatchEvent(evt);
                        this.dispatchEvent(new CloseActionScreenEvent());
                        return;
                 }
        }).catch(error => {
            console.log(error);
        }).finally(() => {
        });
    }
    updateRecordView(recordId) {
        updateRecord({fields: { Id: recordId }});
    }
    updateQisSubmit(){
            updateQis({
                 recordId: this.recordId
                }).then(result =>{
                    console.log('result'+result);
                     this.err = result;
                    if (result!='成功') {
                        const evt = new ShowToastEvent({
                            title : '更新失败',
                            message: this.err,
                            variant: 'error'
                        });
                        this.dispatchEvent(evt);
                    }
                this.dispatchEvent(new CloseActionScreenEvent());
                this.updateRecordView(this.recordId);
                }).catch(error => {
            console.log('error='+error);
        }).finally(() => {
        });
    }
}
force-app/main/default/lwc/lexOCSMToReportLighting/lexOCSMToReportLighting.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexOCSMToReportLighting">
   <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexOCSMToReportRepair/lexOCSMToReportRepair.html
New file
@@ -0,0 +1,6 @@
<template>
    <div class="exampleHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
        <lightning-button label="Show Toast" onclick={ShowToastEvent}></lightning-button>
    </div>
</template>
force-app/main/default/lwc/lexOCSMToReportRepair/lexOCSMToReportRepair.js
New file
@@ -0,0 +1,92 @@
import {
    LightningElement,
    wire,
    api
} from 'lwc';
import {
    CurrentPageReference
} from "lightning/navigation";
import {
    CloseActionScreenEvent
} from 'lightning/actions';
import init from '@salesforce/apex/otherButtonRepairController.init';
import updateRepair from '@salesforce/apex/otherButtonRepairController.updateRepair';
import {
    ShowToastEvent
} from 'lightning/platformShowToastEvent';
export default class LexOCSMToReportRepair extends LightningElement {
    @api recordId;
    str;
    IsLoading = true;
    Id;
    AwareDateC;
    OCSMAdministrativeReportStatusC;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
        if (currentPageReference) {
            const urlValue = currentPageReference.state.recordId;
            if (urlValue) {
                let str = `${urlValue}`;
                this.recordId = str;
            }
        }
    }
    connectedCallback() {
        console.log(this.recordId);
        init({
            recordId: this.recordId
        }).then(result => {
            console.log(result);
            if (result != null) {
                this.IsLoading = false;
                this.Id = result.Id;
                this.AwareDateC = result.AwareDateC;
                this.OCSMAdministrativeReportStatusC = result.OCSMAdministrativeReportStatusC;
                this.OCSMToReport();
                this.dispatchEvent(new CloseActionScreenEvent());
            }
        }).catch(error => {
            console.log(error);
        }).finally(() => {
        });
    }
    // OCSM要报告
    OCSMToReport() {
        if (!confirm("报告后无法撤回,是否继续?")) {
            return;
        }
        if (this.OCSMAdministrativeReportStatusC == undefined && this.AwareDateC != undefined) {
            updateRepair({
                recordId: this.Id
            }).catch(error => {
                if (error.body.pageErrors.length > 0) {
                    // alert(messages.join("\n"));
                    var errmsg = error.body.pageErrors[0].message.toString();
                    this.ShowToastEvent(errmsg.join("\n"), "error")
                    return;
                }
            })
            window.location.reload();
        } else {
            this.ShowToastEvent("没有AwareDate或已经OCSM行政报告,请确认。", "error")
            return;
        }
    }
    // 弹窗
    ShowToastEvent(msg, type) {
        const event = new ShowToastEvent({
            title: '',
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
    }
}
force-app/main/default/lwc/lexOCSMToReportRepair/lexOCSMToReportRepair.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexOLYwinBid/lexOLYwinBid.css
New file
@@ -0,0 +1,10 @@
.lexOLYwinBidHolder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display: none !important;
}
force-app/main/default/lwc/lexOLYwinBid/lexOLYwinBid.html
New file
@@ -0,0 +1,6 @@
<template>
    <div class="lexOLYwinBidHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
        <lightning-button label="Show Toast" onclick={ShowToastEvent}></lightning-button>
    </div>
</template>
force-app/main/default/lwc/lexOLYwinBid/lexOLYwinBid.js
New file
@@ -0,0 +1,97 @@
/*
 * @Description:
 * @version:
 * @Author: chen jing wu
 * @Date: 2023-04-13 13:15:52
 * @LastEditors: chen jing wu
 * @LastEditTime: 2023-04-13 13:37:19
 */
import { api, wire,LightningElement } from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import { updateRecord } from 'lightning/uiRecordApi';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import init  from '@salesforce/apex/OpportunityLightingButtonController.initForOLYwinBidButton';
import updateForOLYwinBidButton  from '@salesforce/apex/OpportunityLightingButtonController.updateForOLYwinBidButton';
import queryForOLYwinBidButton  from '@salesforce/apex/OpportunityLightingButtonController.queryForOLYwinBidButton';
export default class LexOLYwinBid extends LightningElement {
    @api recordId;
    ifOpenBid;
    IsLoading = true;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
            console.log(111);
            console.log(currentPageReference);
        if (currentPageReference) {
          const urlValue = currentPageReference.state.recordId;
          if (urlValue) {
            let str = `${urlValue}`;
            console.log("str");
            console.log(str);
            this.recordId = str;
          }
        }
    }
    connectedCallback(){
        init({
            recordId: this.recordId
        }).then(result=>{
            console.log(result);
            this.ifOpenBid = result.ifOpenBid;
            this.lexLoseBid();
        }).catch(error=>{
            console.log("error");
            console.log(error);
        })
    }
    lexLoseBid(){
        console.log("query start");
        queryForOLYwinBidButton({
            recordId: this.recordId
        }).then(result=>{
            console.log("query end");
            console.log(result);
            var flag = true;
            var taskslist = result;
            for(var task of taskslist ){
                if(task.taskStatus__c != '04 取消'){
                flag = false;
            }
            }
            if(this.ifOpenBid == '非公开招标'){
                flag = false;
            }
            if(flag){
                this.showToast("条件不符合,不可操作","error");
            }else{
                if (window.confirm('是否确认OLY中标?')) {
                    updateForOLYwinBidButton({
                        recordId: this.recordId
                    }).then(result=>{
                        if (result) {
                            this.showToast(result,"error");
                        }else{
                            this.IsLoading = false;
                            this.updateRecordView(this.recordId);
                            this.showToast("操作成功!","success");
                        }
                    })
                }
            }
        });
    }
    showToast(msg,type) {
        const event = new ShowToastEvent({
            title: '',
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
        this.dispatchEvent(new CloseActionScreenEvent());
    }
    updateRecordView(recordId) {
        updateRecord({fields: { Id: recordId }});
    }
}
force-app/main/default/lwc/lexOLYwinBid/lexOLYwinBid.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexOPDtoSIS/lexOPDtoSIS.css
New file
@@ -0,0 +1,10 @@
.opdToSISHolder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display: none !important;
}
force-app/main/default/lwc/lexOPDtoSIS/lexOPDtoSIS.html
New file
@@ -0,0 +1,6 @@
<template>
    <div class="opdToSISHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
        <lightning-button label="Show Toast" onclick={ShowToastEvent}></lightning-button>
    </div>
</template>
force-app/main/default/lwc/lexOPDtoSIS/lexOPDtoSIS.js
New file
@@ -0,0 +1,95 @@
/*
 * @Description:
 * @version:
 * @Author: chen jing wu
 * @Date: 2023-04-07 09:02:03
 * @LastEditors: chen jing wu
 * @LastEditTime: 2023-04-11 11:27:14
 */
import { api, wire,LightningElement } from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import updateForOPDtoSISButton  from '@salesforce/apex/ReportController.updateForOPDtoSISButton';
import init  from '@salesforce/apex/ReportController.initForOPDtoSISButton';
import { updateRecord } from 'lightning/uiRecordApi';
import UserInfo_Owner from '@salesforce/apex/TaskFeedbackController.UserInfo_Owner';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
export default class LexOPDtoSIS extends LightningElement {
    @api recordId;
    IsLoading = true;
    ownerId;
    status;
    userId;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
            console.log(111);
            console.log(currentPageReference);
        if (currentPageReference) {
          const urlValue = currentPageReference.state.recordId;
          if (urlValue) {
            let str = `${urlValue}`;
            console.log("str");
            console.log(str);
            this.recordId = str;
          }
        }
    }
    connectedCallback(){
        console.log(this.recordId);
        init({
            recordId: this.recordId
        }).then(result => {
            console.log(result);
            console.log("123");
            if (result != null) {
                this.ownerId = result.ownerId;
                this.status = result.status;
                this.userId = result.userId;
                this.OPDtoSIS();
            }
        }).catch(error => {
            console.log("error");
            console.log(error);
        });
    }
    showToast(msg,type) {
        const event = new ShowToastEvent({
            title: '',
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
    }
    updateRecordView(recordId) {
        updateRecord({fields: { Id: recordId }});
    }
    OPDtoSIS () {
        if(this.ownerId == this.userId && this.status == "草案中") {
            updateForOPDtoSISButton({
                recordId: this.recordId
            }).then(result =>{
                if(result){
                    this.showToast(result,"error");
                }else{
                    this.updateRecordView(this.recordId);
                    this.showToast("成功!","success");
                    this.IsLoading = false;
                }
                this.dispatchEvent(new CloseActionScreenEvent());
                });
            } else {
                this.showToast("只草案中状态及OPD/SIS报告书的所有人可以提交","error");
                this.dispatchEvent(new CloseActionScreenEvent());
            }
    }
}
force-app/main/default/lwc/lexOPDtoSIS/lexOPDtoSIS.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexOSHInspect/lexOSHInspect.css
New file
@@ -0,0 +1,10 @@
.opdToSISHolder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display: none !important;
}/* sample css file */
force-app/main/default/lwc/lexOSHInspect/lexOSHInspect.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="opdToSISHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexOSHInspect/lexOSHInspect.js
New file
@@ -0,0 +1,100 @@
import { LightningElement,wire,track,api} from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import { NavigationMixin } from 'lightning/navigation';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import init  from '@salesforce/apex/QISReportController.initForlexOSHInspectButton';
import updateQis  from '@salesforce/apex/QISReportController.updateQisForlexOSHInspect';
import UserInfo_Owner from '@salesforce/apex/TaskFeedbackController.UserInfo_Owner';
import { updateRecord } from 'lightning/uiRecordApi';
export default class lexOSHInspect extends LightningElement {
    @api recordId;
    IsLoading = true;
    qisReportId;
    qisStatus;
    oSHInspectionDate;
    err;
    @wire(CurrentPageReference)
     getStateParameters(currentPageReference) {
             console.log(111);
             console.log(currentPageReference);
         if (currentPageReference) {
           const urlValue = currentPageReference.state.recordId;
           if (urlValue) {
             let str = `${urlValue}`;
             console.log("str");
             console.log(str);
             this.recordId = str;
           }
         }
     }
    connectedCallback () {
        init({
            recordId: this.recordId
        }).then(result => {
            this.IsLoading = false;
            this.qisReportId = result.Id;
            this.qisStatus = result.qIStatus;
            this.oSHInspectionDate = result.oSHInspectionDate;
             if (this.qisStatus!='OSH检测中') {
                 const evt = new ShowToastEvent({
                            title : '需要先点击[OSH现品收到]',
                            message: '',
                            variant: 'error'
                        });
                        this.dispatchEvent(evt);
                        this.dispatchEvent(new CloseActionScreenEvent());
                        return;
             }else if(this.oSHInspectionDate != null){
                 const evt = new ShowToastEvent({
                            title : 'OSH检测已经受理',
                            message: '',
                            variant: 'error'
                        });
                        this.dispatchEvent(evt);
                        this.dispatchEvent(new CloseActionScreenEvent());
                        return;
             }else{
                 this.updateQisSubmit();
             }
        }).catch(error => {
            console.log('error='+error);
        }).finally(() => {
        });
    }
    updateRecordView(recordId) {
        updateRecord({fields: { Id: recordId }});
    }
    updateQisSubmit(){
            updateQis({
                 recordId: this.recordId
                }).then(result =>{
                    console.log('result'+result);
                    if (result!='成功') {
                        this.err = result;
                        const evt = new ShowToastEvent({
                            title : '更新失败',
                            message: this.err,
                            variant: 'error'
                        });
                        this.dispatchEvent(evt);
                    }
                this.dispatchEvent(new CloseActionScreenEvent());
                this.updateRecordView(this.recordId);
                }).catch(error => {
            console.log('error='+error);
        }).finally(() => {
        });
    }
}
force-app/main/default/lwc/lexOSHInspect/lexOSHInspect.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexOSHInspect">
      <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexOSHSubmit/lexOSHSubmit.css
New file
@@ -0,0 +1,10 @@
.opdToSISHolder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display: none !important;
}/* sample css file */
force-app/main/default/lwc/lexOSHSubmit/lexOSHSubmit.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="opdToSISHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexOSHSubmit/lexOSHSubmit.js
New file
@@ -0,0 +1,140 @@
import { LightningElement,wire,track,api} from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import { CloseActionScreenEvent } from 'lightning/actions';
import { NavigationMixin } from 'lightning/navigation';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import init  from '@salesforce/apex/QISReportController.initForOSHSubmitButton';
import updateQis  from '@salesforce/apex/QISReportController.updateQis1';
import UserInfo_Owner from '@salesforce/apex/TaskFeedbackController.UserInfo_Owner';
import { updateRecord } from 'lightning/uiRecordApi';
export default class lexOSHSubmit extends LightningElement {
    @api recordId;
    IsLoading = true;
    qisReportId;
    qisStatus;
    OSHstaff;
    OSHstaffEmail;
    err;
    @wire(CurrentPageReference)
     getStateParameters(currentPageReference) {
             console.log(111);
             console.log(currentPageReference);
         if (currentPageReference) {
           const urlValue = currentPageReference.state.recordId;
           if (urlValue) {
             let str = `${urlValue}`;
             console.log("str");
             console.log(str);
             this.recordId = str;
           }
         }
     }
    connectedCallback () {
        init({
            recordId: this.recordId
        }).then(result => {
            this.IsLoading = false;
            this.qisReportId = result.Id;
            this.qisStatus = result.qIStatus;
            this.OSHstaff = result.oSHstaff;
            this.OSHstaffEmail = result.oSHstaffEmail;
            console.log('this.qisStatus='+this.qisStatus);
            console.log('this.OSHstaff='+this.OSHstaff);
            console.log('this.OSHstaffEmail='+this.OSHstaffEmail);
             if (this.qisStatus=='OSH检测申请' && this.qisStatus=='完毕') {
                const evt = new ShowToastEvent({
                            title : '需要先点击[OSH检查受理]',
                            message: '',
                            variant: 'error'
                        });
                        this.dispatchEvent(evt);
                        this.dispatchEvent(new CloseActionScreenEvent());
                        return;
             }
             if (this.qisStatus!='OSH检测中') {
                const evt = new ShowToastEvent({
                            title : '已经提交审批',
                            message: '',
                            variant: 'error'
                        });
                        this.dispatchEvent(evt);
                        this.dispatchEvent(new CloseActionScreenEvent());
                        return;
             }
             if (!confirm("一旦提交此记录以待批准,根据您的设置您可能不再能够编辑此记录或将他从批准过程中调回。是否继续?")) {
                return;
            }
            if (this.OSHstaff==null||this.OSHstaffEmail==null) {
                const evt = new ShowToastEvent({
                            title : 'OSH担当必须填写',
                            message: '',
                            variant: 'error'
                        });
                        this.dispatchEvent(evt);
                        this.dispatchEvent(new CloseActionScreenEvent());
                        return;
            }
            try{
                this.updateQisSubmit();
            }catch(err){
                if(err.faultstring !=undefined && err.faultstring.indexOf('INVALID_SESSION_ID') != -1) {
                    const evt = new ShowToastEvent({
                            title : '当前网页已登出,请您重新登录后刷新该网页!',
                            message: '',
                            variant: 'error'
                        });
                        this.dispatchEvent(evt);
                        this.dispatchEvent(new CloseActionScreenEvent());
                        return;
                } else {
                    const evt = new ShowToastEvent({
                            title : err.faultstring,
                            message: '',
                            variant: 'error'
                        });
                        this.dispatchEvent(evt);
                        this.dispatchEvent(new CloseActionScreenEvent());
                        return;
                }
                return;
            }
        }).catch(error => {
            console.log('error='+error);
        }).finally(() => {
        });
    }
    updateRecordView(recordId) {
        updateRecord({fields: { Id: recordId }});
    }
    updateQisSubmit(){
            updateQis({
                 recordId: this.recordId
                }).then(result =>{
                    console.log('result'+result);
                    if (result!='成功') {
                        this.err = result;
                        const evt = new ShowToastEvent({
                            title : '更新失败',
                            message: this.err,
                            variant: 'error'
                        });
                        this.dispatchEvent(evt);
                    }
                this.dispatchEvent(new CloseActionScreenEvent());
                this.updateRecordView(this.recordId);
                }).catch(error => {
            console.log('error='+error);
        }).finally(() => {
        });
    }
}
force-app/main/default/lwc/lexOSHSubmit/lexOSHSubmit.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexOSHSubmit">
     <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexOutboundorderImport/lexOutboundorderImport.css
New file
@@ -0,0 +1,29 @@
.outerBorderCss{
    border: 1px solid #D4D4D4;
    border-radius : 5px;
    border-top : 3px solid #565959;
}
.borderCss{
    border: 1px solid #D4D4D4;
    border-radius : 5px;
    margin-bottom : 7px;
    border-top : 3px solid #565959;
}
.headerDorderCss{
    border-top: 1px solid #565959;
    border-bottom: 1px solid #D4D4D4;
    padding:3px;
}
.centerCss{
    text-align: center;
}
.centerCss .left{
    margin-left: 100px;
}
.floatLeft{
    float: left;
}
.fontWeight{
    margin-left: 5px;
    font-weight:bold;
}
force-app/main/default/lwc/lexOutboundorderImport/lexOutboundorderImport.html
New file
@@ -0,0 +1,74 @@
<!-- sldsValidatorIgnore -->
<!-- sldsValidatorIgnore -->
<template>
    <template if:true={isShowSpinner}>
        <lightning-spinner
            alternative-text="Loading"
            size="large"
        ></lightning-spinner>
    </template>
    <div class="outerBorderCss">
        <div style="padding: 5px">
            <div class="borderCss">
                <div style="padding: 10px">
                    <div lwc:dom="manual" class="resultDiv"></div>
                    <div draggable="false" class="centerCss">
                        <lightning-layout multiple-rows="true">
                            <lightning-layout-item size="4" style="display: flex;align-items: center;">
                                <lightning-input
                                class="floatLeft"
                                    label=""
                                    name="file uploader"
                                    onchange={handleFilesChange}
                                    type="file"
                                    accept={acceptedType}
                                    variant="label-hidden"
                                ></lightning-input>
                                <div class="slds-text-body_small floatLeft fontWeight">
                                    {fileName}
                                </div>
                            </lightning-layout-item>
                            <lightning-layout-item size="4">
                                <lightning-button
                                    label="读取csv文件"
                                    onclick={getCsvFile}
                                ></lightning-button>
                            </lightning-layout-item>
                            <lightning-layout-item size="4">
                                <lightning-button
                                    label="导入数据"
                                    onclick={dataImport}
                                    disabled={saveFLGbln}
                                ></lightning-button>
                            </lightning-layout-item>
                        </lightning-layout>
                    </div>
                    <div class="borderCss" style="margin-top: 10px;">
                        <div class="headerDorderCss">
                            <p style="font-size: 16px">
                                <strong>出库单信息</strong>
                            </p>
                        </div>
                        <div style="padding: 10px">
                            <div lwc:dom="manual" class="resultDiv"></div>
                            <div draggable="false">
                                <lightning-datatable
                                    key-field="id"
                                    data={data}
                                    columns={columns}
                                    hide-checkbox-column
                                    default-sort-direction={defaultSortDirection}
                                    sorted-direction={sortDirection}
                                    sorted-by={sortedBy}
                                    onsort={onHandleSort}
                                >
                                </lightning-datatable>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</template>
force-app/main/default/lwc/lexOutboundorderImport/lexOutboundorderImport.js
New file
@@ -0,0 +1,233 @@
import { LightningElement, api, track, wire } from "lwc";
import { ShowToastEvent } from "lightning/platformShowToastEvent";
import init from "@salesforce/apex/LexOutboundorderImportController.init";
import importCSVFile from "@salesforce/apex/LexOutboundorderImportController.importCSVFile";
import dataImport from "@salesforce/apex/LexOutboundorderImportController.dataImport";
const columns = [
  {
    label: "出库单名称",
    fieldName: "orderName",
    hideDefaultActions: true,
  },
  {
    label: "目的",
    fieldName: "orderSummonsForDirction",
    hideDefaultActions: true,
  },
  {
    label: "医院编码",
    fieldName: "hospitalCode",
    hideDefaultActions: true,
  },
  {
    label: "医院名称",
    fieldName: "hospitalName",
    hideDefaultActions: true,
  },
  {
    label: "科室",
    fieldName: "orderOrderForCustomerText",
    hideDefaultActions: true,
  },
  {
    label: "二级经销商",
    fieldName: "agencyName",
    hideDefaultActions: true,
  },
  {
    label: "出库/销售日期",
    fieldName: "orderOutboundDate",
    hideDefaultActions: true,
  },
];
export default class LexOutboundorderImport extends LightningElement {
  @track isShowSpinner = true;
  //文件上传
  @track showLoadingSpinner = false;
  @track UploadFile = "Upload File";
  @track fileName = "";
  @track fileData = [];
  @track fileColumns = [
    {
      label: "标题",
      fieldName: "url",
      type: "url",
      typeAttributes: { label: { fieldName: "Title" }, target: "_blank" },
      hideDefaultActions: true,
    },
    {
      label: "创建人",
      fieldName: "CreatedByName",
      hideDefaultActions: true,
    },
  ];
  filesUploaded = [];
  fileContents;
  fileReader;
  content;
  MAX_FILE_SIZE = 1500000;
  get acceptedType() {
    return [".csv"];
  }
  //列表
  columns = columns;
  @track data = [];
  //数据
  @track accountid = "";
  @track userWorkLocation = "";
  @track agencyProType = "";
  @track accountName = "";
  @track sqlagencyProType = "";
  @track csvRecordStr = [];
  @track saveFLGbln = false;
  connectedCallback() {
    init()
      .then((r) => {
        r = JSON.parse(JSON.stringify(r));
        console.log("r = " + JSON.stringify(r));
        if (r.status == "Success") {
          this.accountid = r.entity.accountid;
          this.userWorkLocation = r.entity.userWorkLocation;
          this.agencyProType = r.entity.agencyProType;
          this.accountName = r.entity.accountName;
          this.sqlagencyProType = r.entity.sqlagencyProType;
          this.isShowSpinner = false;
        } else {
          console.log("r = " + JSON.stringify(r));
          this.showToast("Error", r.msg);
        }
      })
      .catch((error) => {
        console.log("error = " + JSON.stringify(error));
        this.showToast("Error", error.message);
      });
  }
  getCsvFile() {
    this.isShowSpinner = true;
    if (this.filesUploaded.length > 0) {
      this.file = this.filesUploaded[0];
      if (this.file.size > this.MAX_FILE_SIZE) {
        window.console.log("文件过大");
        this.isShowSpinner = false;
        return;
      }
      this.fileReader = new FileReader();
      this.fileReader.onloadend = () => {
        this.fileContents = this.fileReader.result;
        let base64 = "base64,";
        this.content = this.fileContents.indexOf(base64) + base64.length;
        this.fileContents = this.fileContents.substring(this.content);
        console.log('getCsvFile')
        this.importCSVFile();
      };
      this.fileReader.readAsDataURL(this.file);
    } else {
      this.fileName = "选择一个csv文件上传";
      this.showToast("Error", '选择一个csv文件上传');
    }
  }
  importCSVFile() {
    console.log('importCSVFile')
    importCSVFile({
      base64Data: encodeURIComponent(this.fileContents),
      sqlagencyProType: this.sqlagencyProType,
      userWorkLocation: this.userWorkLocation,
      accountName: this.accountName,
    }).then((r) => {
        r = JSON.parse(JSON.stringify(r));
        console.log("r = " + JSON.stringify(r));
        if (r.status == "Success" && r.msg == "") {
            console.log("importCSVFile success");
            this.saveFLGbln = r.entity.saveFLGbln;
            this.csvRecordStr = r.entity.csvRecordStr;
            this.data = r.entity.orderRecords;
            for(var i in this.data){
                this.data[i]['orderName'] = this.data[i].order.Name;
                this.data[i]['orderSummonsForDirction'] = this.data[i].order.SummonsForDirction__c;
                this.data[i]['orderOrderForCustomerText'] = this.data[i].order.Order_ForCustomerText__c;
                this.data[i]['orderOutboundDate'] = this.data[i].order.Outbound_Date__c;
            }
            this.isShowSpinner = false;
        }else if(r.msg != ""){
            console.log("r.msg = " + JSON.stringify(r.msg));
            this.saveFLGbln = r.entity.saveFLGbln;
            this.data = r.entity.orderRecords;
            for(var i in this.data){
                this.data[i]['orderName'] = this.data[i].order.Name;
                this.data[i]['orderSummonsForDirction'] = this.data[i].order.SummonsForDirction__c;
                this.data[i]['orderOrderForCustomerText'] = this.data[i].order.Order_ForCustomerText__c;
                this.data[i]['orderOutboundDate'] = this.data[i].order.Outbound_Date__c;
            }
            this.showToast("Error", r.msg);
        }else{
            console.log("r.msg = " + JSON.stringify(r.msg));
            this.showToast("Error", r.msg);
        }
      })
      .catch((error) => {
        console.log("error = " + JSON.stringify(error.message));
        this.showToast("Error", error.message);
      });
  }
  dataImport(){
    this.isShowSpinner = true;
    let cloneData = this.data;
    for(var i in cloneData){
      delete cloneData[i].orderName;
      delete cloneData[i].orderSummonsForDirction;
      delete cloneData[i].orderOrderForCustomerText;
      delete cloneData[i].orderOutboundDate;
  }
    dataImport({
      csvRecordStr: this.csvRecordStr,
      orderRecords: cloneData,
      sqlagencyProType: this.sqlagencyProType,
      userWorkLocation: this.userWorkLocation,
      accountName : this.accountName
    }).then((r) => {
        r = JSON.parse(JSON.stringify(r));
        console.log("r = " + JSON.stringify(r));
        if (r.status == "Success" && r.msg == "") {
            console.log("dataImport success");
            this.showToast("Success", '保存成功');
        }else if(r.msg != ""){
            console.log("r.msg = " + JSON.stringify(r.msg));
            this.showToast("Error", r.msg);
        }else{
            console.log("r.msg = " + JSON.stringify(r.msg));
            this.showToast("Error", r.msg);
        }
      })
      .catch((error) => {
        console.log("error = " + JSON.stringify(error.message));
        this.showToast("Error", error.message);
      });
  }
  handleFilesChange(event) {
    console.log("handleFilesChange");
    if (event.target.files.length > 0) {
      this.filesUploaded = event.target.files;
      this.fileName = event.target.files[0].name;
    }
  }
  showToast(type, msg) {
    this.isShowSpinner = false;
    const event = new ShowToastEvent({
      title: type,
      variant: type,
      message: msg,
    });
    this.dispatchEvent(event);
  }
}
force-app/main/default/lwc/lexOutboundorderImport/lexOutboundorderImport.js-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>56.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightningCommunity__Page</target>
        <target>lightningCommunity__Default</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexOverdueStock/lexOverdueStock.html
New file
@@ -0,0 +1,109 @@
<template>
    <template if:true={showSpinner}>
        <lightning-spinner size="medium" variant="brand"></lightning-spinner>
    </template>
    <div style="border: 1px solid #D4D4D4;border-radius:5px;">
        <div style="border-top: 3px solid #51606E;;border-bottom: 1px solid #D4D4D4;padding:3px;">
            <div>
                <p style="font-size: 19px;float:left"><strong>过期库存销存</strong></p>
            </div>
            <div style="margin-left:400px;">
                <lightning-button label="销存确认" title="销存确认" onclick={saveConfirm}></lightning-button>
            </div>
        </div>
        <div style="padding:10px;">
            <div style="border: 1px solid #D4D4D4;border-radius:5px;margin-bottom:7px;">
                <div style="border-top: 3px solid #51606E;border-bottom: 1px solid #D4D4D4;padding:3px;">
                    <table>
                        <colgroup>
                            <col width="160px" />
                            <col width="100px" />
                            <col width="10px" />
                            <col width="70px" />
                            <col width="100px" />
                            <col width="10px" />
                            <col width="90px" />
                            <col width="100px" />
                            <col width="10px" />
                            <col width="85px" />
                            <col width="100px" />
                            <col width="10px" />
                            <col width="70px" />
                            <col width="100px" />
                        </colgroup>
                        <tbody>
                            <tr>
                                <td></td>
                                <td align="right">Barcode</td>
                                <td style="width:600px"><lightning-textarea name="Barcode" label=""
                                        onchange={handleChange}></lightning-textarea></td>
                                <td align="right"></td>
                                <td></td>
                                <td><lightning-button label="Barcode" title="Barcode录入" onclick={barcodeEntrys}
                                        style="width: 150px;"></lightning-button>
                                </td>
                            </tr>
                        </tbody>
                    </table>
                </div>
            </div>
            <div style="border: 1px solid #D4D4D4;border-radius:5px;margin-bottom:7px;">
                <div style="border-top: 3px solid #51606E;border-bottom: 1px solid #D4D4D4;padding:3px;">
                    <p style="font-size: 16px;"><strong>过期库存一览</strong></p>
                </div>
                <div style="padding:10px;">
                    <div style="height: 300px;">
                        <template if:true={showTable}>
                            <c-lex-custom-lightning-datatable key-field="prodid" data={data} columns={columns}
                            onrowselection={getSelectedRows}
                            selected-rows={selectedRows}>
                                </c-lex-custom-lightning-datatable>
                        </template>
                        <!-- 加载框 -->
                           <!-- <div if:true={casesSpinner} class="slds-spinner_inline spinner-padding"
                            style="margin-top:10px;">
                            <lightning-spinner variant="brand" alternative-text="Loading Cases" size="medium">
                            </lightning-spinner>
                        </div> -->
                    </div>
                </div>
            </div>
        </div>
            <div style="border: 1px solid #D4D4D4;border-radius:5px;margin-bottom:7px;margin-top:50px">
                <div style="border-top: 3px solid #51606E;border-bottom: 1px solid #D4D4D4;padding:3px;">
                    <table>
                        <tr>
                            <td>
                                <p style="font-size: 16px;"><strong>销存明细</strong></p>
                            </td>
                        </tr>
                    </table>
                </div>
            <div style="padding:10px;">
                <template if:true={showTables}>
                    <!-- <c-lwc-datatable-utility records={overduePageRecords} total-records={overduePageRecords.length}
                        columns={column} key-field="Id" show-search-box="true" max-row-selection={overduePageRecords.length}
                        onpaginatorchange={handlePaginatorChange}>
                    </c-lwc-datatable-utility> -->
                    <c-lex-custom-lightning-datatable key-field="prodid" data={overduePageRecords} columns={column}
                    onrowselection={getSelectedRows}   hide-checkbox-column="true"
                   selected-rows={selectedRows}>
               </c-lex-custom-lightning-datatable>
                </template>
            </div>
        </div>
    </div>
</template>
force-app/main/default/lwc/lexOverdueStock/lexOverdueStock.js
New file
@@ -0,0 +1,265 @@
import { LightningElement, wire, api, track } from 'lwc';
import init from '@salesforce/apex/LexOverdueStockController.init';
import barcodeEntry from '@salesforce/apex/LexOverdueStockController.searchorderBean';
import save from '@salesforce/apex/LexOverdueStockController.save';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import { NavigationMixin } from 'lightning/navigation';
//过期库存一览
const columns = [
    {
      label: '是否盘点',
      fieldName: 'iscount',
      type: 'checkbox',
      hideDefaultActions: true,
      initialWidth: 250,
    },
    {
      label: '消耗品名称',
      fieldName: 'prodname',
      type: 'prodname',
      initialWidth: 350,
      hideDefaultActions: true
    },
    {
      label: '单位',
      fieldName: 'boxPiece',
      hideDefaultActions: true,
      initialWidth: 250,
    },
    {
      label: '过期数量',
      fieldName: 'overlimitCount',
      hideDefaultActions: true,
      initialWidth: 250,
    },
    {
      label: '销存数量',
      fieldName: 'pandian',
      hideDefaultActions: true,
      initialWidth: 250,
    //   cellAttributes: { alignment: 'center' }
    }
  ];
  //过期库存一览
const column = [
    {
      label: '消耗品名称',
      fieldName: 'Name__c',
      type: 'Name',
      initialWidth : 300,
      hideDefaultActions: true,
      cellAttributes: { alignment: 'left' }
    },
    {
      label: '单位',
      fieldName: 'Box_Piece__c',
      initialWidth : 250,
      hideDefaultActions: true
    },
    {
      label: 'BarCode',
      fieldName: 'Bar_Code__c',
      hideDefaultActions: true,
      initialWidth : 250
    },
    {
      label: '使用期限',
      fieldName: 'Sterilization_limit__c',
      hideDefaultActions: true,
      initialWidth : 250
    }
    ,
    {
      label: '销存原因',
      fieldName: 'diffReason',
      hideDefaultActions: true,
      initialWidth: 100
    }
  ];
export default class LexOverdueStock extends NavigationMixin (LightningElement ){
    columns = columns
    column = column
    @track data =[];
    @track overduePageRecords = [];
    @track iSinventory = false
    //加载框
    // @track casesSpinner = true;
    @track showSpinner =true;
    //显示口
    @track showbutton = false
    @track showTable = false;
    @track showTables = false;
    //销存一览数据
    @track accountName
    @track agencyProType
    @track userWorkLocation
    @track barcode = ''
    @track orderDetZaiku
    @track selectedRows = [];
    @track codPageRecordsLWC
    @track Id
    //初始化
    connectedCallback() {
        console.log('初始化');
        this.showSpinner = true;
        init().then((result) => {
            result = JSON.parse(JSON.stringify(result));
            console.log('result ='+JSON.stringify(result));
            console.log('result 1='+result.entity.codPageRecords);
            if(result.status = 'Success'){
                this.data = JSON.parse(result.entity.codPageRecords);
                this.codPageRecordsLWC = result.entity.codPageRecords;
                console.log('this.data'+this.data);
                this.accountName = result.entity.accountName;
                this.agencyProType = result.entity.agencyProType;
                this.userWorkLocation = result.entity.userWorkLocation;
                this.showTable = true;
                // this.casesSpinner = false;
                this.showSpinner = false;
            }else {
                console.log('Error:' + result.errorMsg);
                const evt = new ShowToastEvent({
                  title: '解析失败',
                  message: result.errorMsg,
                  variant: 'error'
                });
                this.dispatchEvent(evt);
              }
        }).catch((error) => {
            console.log('error = ' + JSON.stringify(error));
          });
    }
    //barcode录入
    barcodeEntrys(){
        this.showSpinner = true;
        this.showTable = false;
        console.log('code'+this.barcode);
        console.log(' this.accountName'+ this.accountName);
        barcodeEntry({
            accountNameLWC: this.accountName,
            agencyProTypeLWC: this.agencyProType,
            userWorkLocationLWC:this.userWorkLocation,
            barcodeLWC:this.barcode,
            codPageRecordsLWC:this.codPageRecordsLWC
        }).then((result)=>{
            result = JSON.parse(JSON.stringify(result));
            if (result.status == 'Success') {
            this.overduePageRecords = JSON.parse(result.entity.overduePageRecords);
            this.iSinventory = result.entity.iSinventory;
            console.log('result录入'+JSON.stringify( result));
            console.log(JSON.stringify( this.overduePageRecords ));
            for(let i in this.overduePageRecords){
                this.overduePageRecords[i]['Name__c'] = this.overduePageRecords[i].Prod.Name__c;
                this.overduePageRecords[i]['Bar_Code__c'] = this.overduePageRecords[i].orderdetails2.Bar_Code__c;
                this.overduePageRecords[i]['Box_Piece__c'] = this.overduePageRecords[i].orderdetails2.Box_Piece__c;
                this.overduePageRecords[i]['Sterilization_limit__c'] = this.overduePageRecords[i].orderdetails2.Sterilization_limit__c;
            }
           this.data = JSON.parse(result.entity.codPageRecords);
           console.log(' this.data'+ JSON.stringify(this.data));
           for (var i in this.data) {
            if (this.data[i]['check']) {
              this.selectedRows.push(this.data[i].prodid);
              console.log('selectedRows:' + this.selectedRows);
            }
          }
          this.showSpinner = false;
          this.showTables = true;
          this.showTable = true;
        }else{
          console.log('result.msg = ' + result.msg);
          const evt = new ShowToastEvent({
            title: '录入失败',
            message: result.msg,
            variant: 'error'
          });
          this.dispatchEvent(evt);
        }
        }).catch((error) => {
            console.log('error = ' + JSON.stringify(error));
          });
    }
     //获取当前输入值
  handleChange(event) {
    let value = event.detail.value;
    console.log('value' + value);
    this.barcode = value;
    console.log('this.barcode'+this.barcode);
  }
  getSelectedRows(event) {
    console.log('打勾');
    const selectedRows = event.detail.selectedRows;
    console.log('this.selectedRows = ' + this.selectedRows);
    for (var i in this.data) {
      this.data[i]['check'] = false;
    }
    for (var i in this.data) {
      for (var j in selectedRows) {
        console.log('this.selectedRows111 = ' + selectedRows[j].prodid);
        console.log('this.selectedRows1112 = ' + this.data[i].prodid );
        if (this.data[i].prodid == selectedRows[j].prodid) {
          this.data[i]['check'] = true;
        }
      }
    }
  }
  //保存
  saveConfirm() {
    console.log('进入销存确认');
    var el = this.template.querySelector('c-lex-custom-lightning-datatable');
    var selected = el.getSelectedRows();
    this.selectedData = selected;
    console.log('选中数据' + JSON.stringify(this.selectedData));
    save({
      iSinventory: this.iSinventory,
      saveCodPageRecords:  JSON.stringify(this.selectedData)
    }).then((result) => {
        result = JSON.parse(JSON.stringify(result));
        console.log('result保存 = ' + JSON.stringify(result));
        if (result.status == 'Success') {
            this[NavigationMixin.Navigate]({
                type: 'standard__recordPage',
                attributes: {
                    recordId:result.entity.Id,
                    objectApiName: 'Consumable_order__c',
                    actionName: 'view'
                }
            });
        } else {
          console.log('result.msg = ' + result.msg);
          const evt = new ShowToastEvent({
            title: '失败',
            message: result.msg,
            variant: 'error'
          });
          this.dispatchEvent(evt);
        }
      })
      .catch((error) => {
        console.log('error = ' + JSON.stringify(error));
      });
  }
}
Diff truncated after the above file
force-app/main/default/lwc/lexOverdueStock/lexOverdueStock.js-meta.xml force-app/main/default/lwc/lexPDFMaintenanceCommission/lexPDFMaintenanceCommission.html force-app/main/default/lwc/lexPDFMaintenanceCommission/lexPDFMaintenanceCommission.js force-app/main/default/lwc/lexPDFMaintenanceCommission/lexPDFMaintenanceCommission.js-meta.xml force-app/main/default/lwc/lexPDFQISrequest/lexPDFQISrequest.css force-app/main/default/lwc/lexPDFQISrequest/lexPDFQISrequest.html force-app/main/default/lwc/lexPDFQISrequest/lexPDFQISrequest.js force-app/main/default/lwc/lexPDFQISrequest/lexPDFQISrequest.js-meta.xml force-app/main/default/lwc/lexPaymentPlanLoad/lexPaymentPlanLoad.html force-app/main/default/lwc/lexPaymentPlanLoad/lexPaymentPlanLoad.js force-app/main/default/lwc/lexPaymentPlanLoad/lexPaymentPlanLoad.js-meta.xml force-app/main/default/lwc/lexPreContractSubmit/lexPreContractSubmit.html force-app/main/default/lwc/lexPreContractSubmit/lexPreContractSubmit.js force-app/main/default/lwc/lexPreContractSubmit/lexPreContractSubmit.js-meta.xml force-app/main/default/lwc/lexPredictedDateChange/lexPredictedDateChange.css force-app/main/default/lwc/lexPredictedDateChange/lexPredictedDateChange.html force-app/main/default/lwc/lexPredictedDateChange/lexPredictedDateChange.js force-app/main/default/lwc/lexPredictedDateChange/lexPredictedDateChange.js-meta.xml force-app/main/default/lwc/lexProductRepairQuoteRepair/lexProductRepairQuoteRepair.html force-app/main/default/lwc/lexProductRepairQuoteRepair/lexProductRepairQuoteRepair.js force-app/main/default/lwc/lexProductRepairQuoteRepair/lexProductRepairQuoteRepair.js-meta.xml force-app/main/default/lwc/lexQISAgree/lexQISAgree.css force-app/main/default/lwc/lexQISAgree/lexQISAgree.html force-app/main/default/lwc/lexQISAgree/lexQISAgree.js force-app/main/default/lwc/lexQISAgree/lexQISAgree.js-meta.xml force-app/main/default/lwc/lexQISIntakeuniversalcode/lexQISIntakeuniversalcode.css force-app/main/default/lwc/lexQISIntakeuniversalcode/lexQISIntakeuniversalcode.html force-app/main/default/lwc/lexQISIntakeuniversalcode/lexQISIntakeuniversalcode.js force-app/main/default/lwc/lexQISIntakeuniversalcode/lexQISIntakeuniversalcode.js-meta.xml force-app/main/default/lwc/lexQISSC/lexQISSC.css force-app/main/default/lwc/lexQISSC/lexQISSC.html force-app/main/default/lwc/lexQISSC/lexQISSC.js force-app/main/default/lwc/lexQISSC/lexQISSC.js-meta.xml force-app/main/default/lwc/lexQuarterlyReport/lexQuarterlyReport.html force-app/main/default/lwc/lexQuarterlyReport/lexQuarterlyReport.js force-app/main/default/lwc/lexQuarterlyReport/lexQuarterlyReport.js-meta.xml force-app/main/default/lwc/lexQuotationProductNew/lexQuotationProductNew.html force-app/main/default/lwc/lexQuotationProductNew/lexQuotationProductNew.js force-app/main/default/lwc/lexQuotationProductNew/lexQuotationProductNew.js-meta.xml force-app/main/default/lwc/lexQuotationRequest/lexQuotationRequest.css force-app/main/default/lwc/lexQuotationRequest/lexQuotationRequest.html force-app/main/default/lwc/lexQuotationRequest/lexQuotationRequest.js force-app/main/default/lwc/lexQuotationRequest/lexQuotationRequest.js-meta.xml force-app/main/default/lwc/lexRCCDScomplete/lexRCCDScomplete.css force-app/main/default/lwc/lexRCCDScomplete/lexRCCDScomplete.html force-app/main/default/lwc/lexRCCDScomplete/lexRCCDScomplete.js force-app/main/default/lwc/lexRCCDScomplete/lexRCCDScomplete.js-meta.xml force-app/main/default/lwc/lexRCRecieved/lexRCRecieved.css force-app/main/default/lwc/lexRCRecieved/lexRCRecieved.html force-app/main/default/lwc/lexRCRecieved/lexRCRecieved.js force-app/main/default/lwc/lexRCRecieved/lexRCRecieved.js-meta.xml force-app/main/default/lwc/lexRCSubmit/lexRCSubmit.css force-app/main/default/lwc/lexRCSubmit/lexRCSubmit.html force-app/main/default/lwc/lexRCSubmit/lexRCSubmit.js force-app/main/default/lwc/lexRCSubmit/lexRCSubmit.js-meta.xml force-app/main/default/lwc/lexRCinspectioncompletedate/lexRCinspectioncompletedate.css force-app/main/default/lwc/lexRCinspectioncompletedate/lexRCinspectioncompletedate.html force-app/main/default/lwc/lexRCinspectioncompletedate/lexRCinspectioncompletedate.js force-app/main/default/lwc/lexRCinspectioncompletedate/lexRCinspectioncompletedate.js-meta.xml force-app/main/default/lwc/lexRemoveBox/lexRemoveBox.html force-app/main/default/lwc/lexRemoveBox/lexRemoveBox.js force-app/main/default/lwc/lexRemoveBox/lexRemoveBox.js-meta.xml force-app/main/default/lwc/lexRentalApplyCanleButton/lexRentalApplyCanleButton.css force-app/main/default/lwc/lexRentalApplyCanleButton/lexRentalApplyCanleButton.html force-app/main/default/lwc/lexRentalApplyCanleButton/lexRentalApplyCanleButton.js force-app/main/default/lwc/lexRentalApplyCanleButton/lexRentalApplyCanleButton.js-meta.xml force-app/main/default/lwc/lexRentalApplyDiscountApproval/lexRentalApplyDiscountApproval.html force-app/main/default/lwc/lexRentalApplyDiscountApproval/lexRentalApplyDiscountApproval.js force-app/main/default/lwc/lexRentalApplyDiscountApproval/lexRentalApplyDiscountApproval.js-meta.xml force-app/main/default/lwc/lexRentalApplyESetRefreshStatus/lexRentalApplyESetRefreshStatus.css force-app/main/default/lwc/lexRentalApplyESetRefreshStatus/lexRentalApplyESetRefreshStatus.html force-app/main/default/lwc/lexRentalApplyESetRefreshStatus/lexRentalApplyESetRefreshStatus.js force-app/main/default/lwc/lexRentalApplyESetRefreshStatus/lexRentalApplyESetRefreshStatus.js-meta.xml force-app/main/default/lwc/lexRentalApplyJump/lexRentalApplyJump.css force-app/main/default/lwc/lexRentalApplyJump/lexRentalApplyJump.html force-app/main/default/lwc/lexRentalApplyJump/lexRentalApplyJump.js force-app/main/default/lwc/lexRentalApplyJump/lexRentalApplyJump.js-meta.xml force-app/main/default/lwc/lexRentalApplySubmitedApprovalButton/lexRentalApplySubmitedApprovalButton.css force-app/main/default/lwc/lexRentalApplySubmitedApprovalButton/lexRentalApplySubmitedApprovalButton.html force-app/main/default/lwc/lexRentalApplySubmitedApprovalButton/lexRentalApplySubmitedApprovalButton.js force-app/main/default/lwc/lexRentalApplySubmitedApprovalButton/lexRentalApplySubmitedApprovalButton.js-meta.xml force-app/main/default/lwc/lexRequestDB/lexRequestDB.css force-app/main/default/lwc/lexRequestDB/lexRequestDB.html force-app/main/default/lwc/lexRequestDB/lexRequestDB.js force-app/main/default/lwc/lexRequestDB/lexRequestDB.js-meta.xml force-app/main/default/lwc/lexReturnDeliverySlip/lexReturnDeliverySlip.css force-app/main/default/lwc/lexReturnDeliverySlip/lexReturnDeliverySlip.html force-app/main/default/lwc/lexReturnDeliverySlip/lexReturnDeliverySlip.js force-app/main/default/lwc/lexReturnDeliverySlip/lexReturnDeliverySlip.js-meta.xml force-app/main/default/lwc/lexSICopyDemand/lexSICopyDemand.html force-app/main/default/lwc/lexSICopyDemand/lexSICopyDemand.js force-app/main/default/lwc/lexSICopyDemand/lexSICopyDemand.js-meta.xml force-app/main/default/lwc/lexSINewQuoteEntry/lexSINewQuoteEntry.css force-app/main/default/lwc/lexSINewQuoteEntry/lexSINewQuoteEntry.html force-app/main/default/lwc/lexSINewQuoteEntry/lexSINewQuoteEntry.js force-app/main/default/lwc/lexSINewQuoteEntry/lexSINewQuoteEntry.js-meta.xml force-app/main/default/lwc/lexSISearchSetProduct/lexSISearchSetProduct.css force-app/main/default/lwc/lexSISearchSetProduct/lexSISearchSetProduct.html force-app/main/default/lwc/lexSISearchSetProduct/lexSISearchSetProduct.js force-app/main/default/lwc/lexSISearchSetProduct/lexSISearchSetProduct.js-meta.xml force-app/main/default/lwc/lexSIStoOPD/lexSIStoOPD.css force-app/main/default/lwc/lexSIStoOPD/lexSIStoOPD.html force-app/main/default/lwc/lexSIStoOPD/lexSIStoOPD.js force-app/main/default/lwc/lexSIStoOPD/lexSIStoOPD.js-meta.xml force-app/main/default/lwc/lexSISubmit/lexSISubmit.html force-app/main/default/lwc/lexSISubmit/lexSISubmit.js force-app/main/default/lwc/lexSISubmit/lexSISubmit.js-meta.xml force-app/main/default/lwc/lexSaleAndDelivery/lexSaleAndDelivery.css force-app/main/default/lwc/lexSaleAndDelivery/lexSaleAndDelivery.html force-app/main/default/lwc/lexSaleAndDelivery/lexSaleAndDelivery.js force-app/main/default/lwc/lexSaleAndDelivery/lexSaleAndDelivery.js-meta.xml force-app/main/default/lwc/lexSaleAndDelivery/templates/boxorpieceType.html force-app/main/default/lwc/lexSearchProduct/lexSearchProduct.css force-app/main/default/lwc/lexSearchProduct/lexSearchProduct.html force-app/main/default/lwc/lexSearchProduct/lexSearchProduct.js force-app/main/default/lwc/lexSearchProduct/lexSearchProduct.js-meta.xml force-app/main/default/lwc/lexSearchProductCs/lexSearchProductCs.css force-app/main/default/lwc/lexSearchProductCs/lexSearchProductCs.html force-app/main/default/lwc/lexSearchProductCs/lexSearchProductCs.js force-app/main/default/lwc/lexSearchProductCs/lexSearchProductCs.js-meta.xml force-app/main/default/lwc/lexSelectAssetsMaintenance/lexSelectAssetsMaintenance.html force-app/main/default/lwc/lexSelectAssetsMaintenance/lexSelectAssetsMaintenance.js force-app/main/default/lwc/lexSelectAssetsMaintenance/lexSelectAssetsMaintenance.js-meta.xml force-app/main/default/lwc/lexSelectRental/lexSelectRental.css force-app/main/default/lwc/lexSelectRental/lexSelectRental.html force-app/main/default/lwc/lexSelectRental/lexSelectRental.js force-app/main/default/lwc/lexSelectRental/lexSelectRental.js-meta.xml force-app/main/default/lwc/lexSelectSubstitute/lexSelectSubstitute.css force-app/main/default/lwc/lexSelectSubstitute/lexSelectSubstitute.html force-app/main/default/lwc/lexSelectSubstitute/lexSelectSubstitute.js force-app/main/default/lwc/lexSelectSubstitute/lexSelectSubstitute.js-meta.xml force-app/main/default/lwc/lexSendNFM103/lexSendNFM103.html force-app/main/default/lwc/lexSendNFM103/lexSendNFM103.js force-app/main/default/lwc/lexSendNFM103/lexSendNFM103.js-meta.xml force-app/main/default/lwc/lexSendQIS/lexSendQIS.css force-app/main/default/lwc/lexSendQIS/lexSendQIS.html force-app/main/default/lwc/lexSendQIS/lexSendQIS.js force-app/main/default/lwc/lexSendQIS/lexSendQIS.js-meta.xml force-app/main/default/lwc/lexSendRepairsToEtQ/lexSendRepairsToEtQ.html force-app/main/default/lwc/lexSendRepairsToEtQ/lexSendRepairsToEtQ.js force-app/main/default/lwc/lexSendRepairsToEtQ/lexSendRepairsToEtQ.js-meta.xml force-app/main/default/lwc/lexServiceCutPriceApply/lexServiceCutPriceApply.html force-app/main/default/lwc/lexServiceCutPriceApply/lexServiceCutPriceApply.js force-app/main/default/lwc/lexServiceCutPriceApply/lexServiceCutPriceApply.js-meta.xml force-app/main/default/lwc/lexSplitApply/lexSplitApply.css force-app/main/default/lwc/lexSplitApply/lexSplitApply.html force-app/main/default/lwc/lexSplitApply/lexSplitApply.js force-app/main/default/lwc/lexSplitApply/lexSplitApply.js-meta.xml force-app/main/default/lwc/lexStockApply/lexStockApply.css force-app/main/default/lwc/lexStockApply/lexStockApply.html force-app/main/default/lwc/lexStockApply/lexStockApply.js force-app/main/default/lwc/lexStockApply/lexStockApply.js-meta.xml force-app/main/default/lwc/lexSubmit/lexSubmit.css force-app/main/default/lwc/lexSubmit/lexSubmit.html force-app/main/default/lwc/lexSubmit/lexSubmit.js force-app/main/default/lwc/lexSubmit/lexSubmit.js-meta.xml force-app/main/default/lwc/lexSubmitApprovalProcess/lexSubmitApprovalProcess.css force-app/main/default/lwc/lexSubmitApprovalProcess/lexSubmitApprovalProcess.html force-app/main/default/lwc/lexSubmitApprovalProcess/lexSubmitApprovalProcess.js force-app/main/default/lwc/lexSubmitApprovalProcess/lexSubmitApprovalProcess.js-meta.xml force-app/main/default/lwc/lexSubmitCompetitorReport/lexSubmitCompetitorReport.css force-app/main/default/lwc/lexSubmitCompetitorReport/lexSubmitCompetitorReport.html force-app/main/default/lwc/lexSubmitCompetitorReport/lexSubmitCompetitorReport.js force-app/main/default/lwc/lexSubmitCompetitorReport/lexSubmitCompetitorReport.js-meta.xml force-app/main/default/lwc/lexSubmitExtensionApprovalProcess/lexSubmitExtensionApprovalProcess.css force-app/main/default/lwc/lexSubmitExtensionApprovalProcess/lexSubmitExtensionApprovalProcess.html force-app/main/default/lwc/lexSubmitExtensionApprovalProcess/lexSubmitExtensionApprovalProcess.js force-app/main/default/lwc/lexSubmitExtensionApprovalProcess/lexSubmitExtensionApprovalProcess.js-meta.xml force-app/main/default/lwc/lexSubmitForApproval/lexSubmitForApproval.html force-app/main/default/lwc/lexSubmitForApproval/lexSubmitForApproval.js force-app/main/default/lwc/lexSubmitForApproval/lexSubmitForApproval.js-meta.xml force-app/main/default/lwc/lexSummonsCreat/lexSummonsCreat.html force-app/main/default/lwc/lexSummonsCreat/lexSummonsCreat.js force-app/main/default/lwc/lexTenderingAntiLogicButton/lexTenderingAntiLogicButton.html force-app/main/default/lwc/lexTenderingAntiLogicButton/lexTenderingAntiLogicButton.js force-app/main/default/lwc/lexTenderingAntiLogicButton/lexTenderingAntiLogicButton.js-meta.xml force-app/main/default/lwc/lexTenderingAttachmentButton/lexTenderingAttachmentButton.html force-app/main/default/lwc/lexTenderingAttachmentButton/lexTenderingAttachmentButton.js force-app/main/default/lwc/lexTenderingAttachmentButton/lexTenderingAttachmentButton.js-meta.xml force-app/main/default/lwc/lexTenderingCopyButton/lexTenderingCopyButton.html force-app/main/default/lwc/lexTenderingCopyButton/lexTenderingCopyButton.js force-app/main/default/lwc/lexTenderingCopyButton/lexTenderingCopyButton.js-meta.xml force-app/main/default/lwc/lexTenderingEnquiryButton/lexTenderingEnquiryButton.html force-app/main/default/lwc/lexTenderingEnquiryButton/lexTenderingEnquiryButton.js force-app/main/default/lwc/lexTenderingEnquiryButton/lexTenderingEnquiryButton.js-meta.xml force-app/main/default/lwc/lexTenderingHospitalButton/lexTenderingHospitalButton.html force-app/main/default/lwc/lexTenderingHospitalButton/lexTenderingHospitalButton.js force-app/main/default/lwc/lexTenderingHospitalButton/lexTenderingHospitalButton.js-meta.xml force-app/main/default/lwc/lexTenderingIntentionButton/lexTenderingIntentionButton.html force-app/main/default/lwc/lexTenderingIntentionButton/lexTenderingIntentionButton.js force-app/main/default/lwc/lexTenderingIntentionButton/lexTenderingIntentionButton.js-meta.xml force-app/main/default/lwc/lexTenderingLogicButton/lexTenderingLogicButton.html force-app/main/default/lwc/lexTenderingLogicButton/lexTenderingLogicButton.js force-app/main/default/lwc/lexTenderingLogicButton/lexTenderingLogicButton.js-meta.xml force-app/main/default/lwc/lexTenderingLostButton/lexTenderingLostButton.html force-app/main/default/lwc/lexTenderingLostButton/lexTenderingLostButton.js force-app/main/default/lwc/lexTenderingLostButton/lexTenderingLostButton.js-meta.xml force-app/main/default/lwc/lexTenderingNoStandardButton/lexTenderingNoStandardButton.html force-app/main/default/lwc/lexTenderingNoStandardButton/lexTenderingNoStandardButton.js force-app/main/default/lwc/lexTenderingNoStandardButton/lexTenderingNoStandardButton.js-meta.xml force-app/main/default/lwc/lexTenderingNotarizeButton/lexTenderingNotarizeButton.html force-app/main/default/lwc/lexTenderingNotarizeButton/lexTenderingNotarizeButton.js force-app/main/default/lwc/lexTenderingNotarizeButton/lexTenderingNotarizeButton.js-meta.xml force-app/main/default/lwc/lexTenderingRelevancyButton/lexTenderingRelevancyButton.html force-app/main/default/lwc/lexTenderingRelevancyButton/lexTenderingRelevancyButton.js force-app/main/default/lwc/lexTenderingRelevancyButton/lexTenderingRelevancyButton.js-meta.xml force-app/main/default/lwc/lexTenderingUsedAttachmentButton/lexTenderingUsedAttachmentButton.html force-app/main/default/lwc/lexTenderingUsedAttachmentButton/lexTenderingUsedAttachmentButton.js force-app/main/default/lwc/lexTenderingUsedAttachmentButton/lexTenderingUsedAttachmentButton.js-meta.xml force-app/main/default/lwc/lexTerminalMaintenance/lexTerminalMaintenance.html force-app/main/default/lwc/lexTerminalMaintenance/lexTerminalMaintenance.js force-app/main/default/lwc/lexTerminalMaintenance/lexTerminalMaintenance.js-meta.xml force-app/main/default/lwc/lexTopInQueue/lexTopInQueue.css force-app/main/default/lwc/lexTopInQueue/lexTopInQueue.html force-app/main/default/lwc/lexTopInQueue/lexTopInQueue.js force-app/main/default/lwc/lexTopInQueue/lexTopInQueue.js-meta.xml force-app/main/default/lwc/lexTransferApplyPDF/lexTransferApplyPDF.css force-app/main/default/lwc/lexTransferApplyPDF/lexTransferApplyPDF.html force-app/main/default/lwc/lexTransferApplyPDF/lexTransferApplyPDF.js force-app/main/default/lwc/lexTransferApplyPDF/lexTransferApplyPDF.js-meta.xml force-app/main/default/lwc/lexUploadToRecognitionModel/lexUploadToRecognitionModel.html force-app/main/default/lwc/lexUploadToRecognitionModel/lexUploadToRecognitionModel.js force-app/main/default/lwc/lexUploadToRecognitionModel/lexUploadToRecognitionModel.js-meta.xml force-app/main/default/lwc/lexUploadToSap/lexUploadToSap.html force-app/main/default/lwc/lexUploadToSap/lexUploadToSap.js force-app/main/default/lwc/lexUploadToSap/lexUploadToSap.js-meta.xml force-app/main/default/lwc/lexVOCAnswer/lexVOCAnswer.css force-app/main/default/lwc/lexVOCAnswer/lexVOCAnswer.html force-app/main/default/lwc/lexVOCAnswer/lexVOCAnswer.js force-app/main/default/lwc/lexVOCAnswer/lexVOCAnswer.js-meta.xml force-app/main/default/lwc/lexVOCCheck/lexVOCCheck.css force-app/main/default/lwc/lexVOCCheck/lexVOCCheck.html force-app/main/default/lwc/lexVOCCheck/lexVOCCheck.js force-app/main/default/lwc/lexVOCCheck/lexVOCCheck.js-meta.xml force-app/main/default/lwc/lexVOCConfirm/lexVOCConfirm.css force-app/main/default/lwc/lexVOCConfirm/lexVOCConfirm.html force-app/main/default/lwc/lexVOCConfirm/lexVOCConfirm.js force-app/main/default/lwc/lexVOCConfirm/lexVOCConfirm.js-meta.xml force-app/main/default/lwc/lexVOCFinish/lexVOCFinish.css force-app/main/default/lwc/lexVOCFinish/lexVOCFinish.html force-app/main/default/lwc/lexVOCFinish/lexVOCFinish.js force-app/main/default/lwc/lexVOCFinish/lexVOCFinish.js-meta.xml force-app/main/default/lwc/lexVOCSubmit/lexVOCSubmit.css force-app/main/default/lwc/lexVOCSubmit/lexVOCSubmit.html force-app/main/default/lwc/lexVOCSubmit/lexVOCSubmit.js force-app/main/default/lwc/lexVOCSubmit/lexVOCSubmit.js-meta.xml force-app/main/default/lwc/lexXinSearchVisitorPlace/lexXinSearchVisitorPlace.css force-app/main/default/lwc/lexXinSearchVisitorPlace/lexXinSearchVisitorPlace.html force-app/main/default/lwc/lexXinSearchVisitorPlace/lexXinSearchVisitorPlace.js force-app/main/default/lwc/lexXinSearchVisitorPlace/lexXinSearchVisitorPlace.js-meta.xml force-app/main/default/lwc/lexYanshoudanRequest/lexYanshoudanRequest.html force-app/main/default/lwc/lexYanshoudanRequest/lexYanshoudanRequest.js force-app/main/default/lwc/lexYanshoudanRequest/lexYanshoudanRequest.js-meta.xml force-app/main/default/lwc/lexcopyQIS/lexcopyQIS.css force-app/main/default/lwc/lexcopyQIS/lexcopyQIS.html force-app/main/default/lwc/lexcopyQIS/lexcopyQIS.js force-app/main/default/lwc/lexcopyQIS/lexcopyQIS.js-meta.xml force-app/main/default/lwc/lexinventoryViewLWC/lexinventoryViewLWC.html force-app/main/default/lwc/lexinventoryViewLWC/lexinventoryViewLWC.js force-app/main/default/lwc/listInfiniteScrolling/listInfiniteScrolling.css force-app/main/default/lwc/listInfiniteScrolling/listInfiniteScrolling.html force-app/main/default/lwc/listInfiniteScrolling/listInfiniteScrolling.js force-app/main/default/lwc/listInfiniteScrolling/listInfiniteScrolling.js-meta.xml force-app/main/default/lwc/listInfiniteScrollingWrapper/listInfiniteScrollingWrapper.html force-app/main/default/lwc/listInfiniteScrollingWrapper/listInfiniteScrollingWrapper.js force-app/main/default/lwc/listInfiniteScrollingWrapper/listInfiniteScrollingWrapper.js-meta.xml force-app/main/default/lwc/listRecordLinks/__mocks__/listRecordLinks.js force-app/main/default/lwc/listRecordLinks/listRecordLinks.css force-app/main/default/lwc/listRecordLinks/listRecordLinks.html force-app/main/default/lwc/listRecordLinks/listRecordLinks.js force-app/main/default/lwc/listRecordLinks/listRecordLinks.js-meta.xml force-app/main/default/lwc/listRecordLinksWrapper/listRecordLinksWrapper.html force-app/main/default/lwc/listRecordLinksWrapper/listRecordLinksWrapper.js force-app/main/default/lwc/listRecordLinksWrapper/listRecordLinksWrapper.js-meta.xml force-app/main/default/lwc/listWithParentRecordData/__mocks__/listWithParentRecordData.js force-app/main/default/lwc/listWithParentRecordData/listWithParentRecordData.css force-app/main/default/lwc/listWithParentRecordData/listWithParentRecordData.html force-app/main/default/lwc/listWithParentRecordData/listWithParentRecordData.js force-app/main/default/lwc/listWithParentRecordData/listWithParentRecordData.js-meta.xml force-app/main/default/lwc/listWithParentRecordDataWrapper/listWithParentRecordDataWrapper.html force-app/main/default/lwc/listWithParentRecordDataWrapper/listWithParentRecordDataWrapper.js force-app/main/default/lwc/listWithParentRecordDataWrapper/listWithParentRecordDataWrapper.js-meta.xml force-app/main/default/lwc/ll/ll.html force-app/main/default/lwc/ll/ll.js force-app/main/default/lwc/ll/ll.js-meta.xml force-app/main/default/lwc/loanerArrangedEmailLWC/loanerArrangedEmailLWC.css force-app/main/default/lwc/loanerArrangedEmailLWC/loanerArrangedEmailLWC.html force-app/main/default/lwc/loanerArrangedEmailLWC/loanerArrangedEmailLWC.js force-app/main/default/lwc/loanerArrangedEmailLWC/loanerArrangedEmailLWC.js-meta.xml force-app/main/default/lwc/lwcDatatableUtility/lwcDatatableUtility.css force-app/main/default/lwc/maintenanceContract/maintenanceContract.js force-app/main/default/lwc/navigateToRecord/navigateToRecord.html force-app/main/default/lwc/navigateToRecord/navigateToRecord.js force-app/main/default/lwc/navigateToRecord/navigateToRecord.js-meta.xml force-app/main/default/lwc/newOrderButton/newOrderButton.html force-app/main/default/lwc/newOrderButton/newOrderButton.js force-app/main/default/lwc/newOrderButton/newOrderButton.js-meta.xml force-app/main/default/lwc/newOrderLWC/newOrderLWC.html force-app/main/default/lwc/newOrderLWC/newOrderLWC.js force-app/main/default/lwc/newOrderLWC/newOrderLWC.js-meta.xml force-app/main/default/lwc/newOrderList/newOrderList.html force-app/main/default/lwc/newOrderList/newOrderList.js force-app/main/default/lwc/newOrderList/newOrderList.js-meta.xml force-app/main/default/lwc/newPaymentPlanLoadLWC/newPaymentPlanLoadLWC.css force-app/main/default/lwc/newPaymentPlanLoadLWC/newPaymentPlanLoadLWC.html force-app/main/default/lwc/newPaymentPlanLoadLWC/newPaymentPlanLoadLWC.js force-app/main/default/lwc/newPaymentPlanLoadLWC/newPaymentPlanLoadLWC.js-meta.xml force-app/main/default/lwc/newRepairLWC/newRepairLWC.css force-app/main/default/lwc/newRepairLWC/newRepairLWC.html force-app/main/default/lwc/newRepairLWC/newRepairLWC.js force-app/main/default/lwc/newRepairLWC/newRepairLWC.js-meta.xml force-app/main/default/lwc/opdCancelSubmit/opdCancelSubmit.css force-app/main/default/lwc/opdCancelSubmit/opdCancelSubmit.html force-app/main/default/lwc/opdCancelSubmit/opdCancelSubmit.js force-app/main/default/lwc/opdCancelSubmit/opdCancelSubmit.js-meta.xml force-app/main/default/lwc/opdNewSparePartsLoanApplication/opdNewSparePartsLoanApplication.css force-app/main/default/lwc/opdNewSparePartsLoanApplication/opdNewSparePartsLoanApplication.html force-app/main/default/lwc/opdNewSparePartsLoanApplication/opdNewSparePartsLoanApplication.js force-app/main/default/lwc/opdNewSparePartsLoanApplication/opdNewSparePartsLoanApplication.js-meta.xml force-app/main/default/lwc/opdReportSubmit/opdReportSubmit.css force-app/main/default/lwc/opdReportSubmit/opdReportSubmit.html force-app/main/default/lwc/opdReportSubmit/opdReportSubmit.js force-app/main/default/lwc/opdReportSubmit/opdReportSubmit.js-meta.xml force-app/main/default/lwc/opdSupplementaryApplication/opdSupplementaryApplication.css force-app/main/default/lwc/opdSupplementaryApplication/opdSupplementaryApplication.html force-app/main/default/lwc/opdSupplementaryApplication/opdSupplementaryApplication.js force-app/main/default/lwc/opdSupplementaryApplication/opdSupplementaryApplication.js-meta.xml force-app/main/default/lwc/opdUpdateDate/opdUpdateDate.css force-app/main/default/lwc/opdUpdateDate/opdUpdateDate.html force-app/main/default/lwc/opdUpdateDate/opdUpdateDate.js force-app/main/default/lwc/opdUpdateDate/opdUpdateDate.js-meta.xml force-app/main/default/lwc/oppLoseButton/oppLoseButton.html force-app/main/default/lwc/oppLoseButton/oppLoseButton.js force-app/main/default/lwc/oppLoseButton/oppLoseButton.js-meta.xml force-app/main/default/lwc/oshRecieved/oshRecieved.css force-app/main/default/lwc/oshRecieved/oshRecieved.html force-app/main/default/lwc/oshRecieved/oshRecieved.js force-app/main/default/lwc/oshRecieved/oshRecieved.js-meta.xml force-app/main/default/lwc/otherButtonInASACEditor/otherButtonInASACEditor.css force-app/main/default/lwc/otherButtonInASACEditor/otherButtonInASACEditor.html force-app/main/default/lwc/otherButtonInASACEditor/otherButtonInASACEditor.js force-app/main/default/lwc/otherButtonInASACEditor/otherButtonInASACEditor.js-meta.xml force-app/main/default/lwc/otherButtonInCancelSubmit/OtherButtonInCancelSubmit.css force-app/main/default/lwc/otherButtonInCancelSubmit/otherButtonInCancelSubmit.html force-app/main/default/lwc/otherButtonInCancelSubmit/otherButtonInCancelSubmit.js force-app/main/default/lwc/otherButtonInCancelSubmit/otherButtonInCancelSubmit.js-meta.xml force-app/main/default/lwc/otherButtonInOpportunity/otherButtonInOpportunity.css force-app/main/default/lwc/otherButtonInOpportunity/otherButtonInOpportunity.html force-app/main/default/lwc/otherButtonInOpportunity/otherButtonInOpportunity.js force-app/main/default/lwc/otherButtonInOpportunity/otherButtonInOpportunity.js-meta.xml force-app/main/default/lwc/pageBlocks/pageBlocks.html force-app/main/default/lwc/pageBlocks/pageBlocks.js force-app/main/default/lwc/pageBlocks/pageBlocks.js-meta.xml force-app/main/default/lwc/pageBlocksWrapper/pageBlocksWrapper.html force-app/main/default/lwc/pageBlocksWrapper/pageBlocksWrapper.js force-app/main/default/lwc/pageBlocksWrapper/pageBlocksWrapper.js-meta.xml force-app/main/default/lwc/pageMessagesDataRetrieval/__mocks__/pageMessagesDataRetrieval.js force-app/main/default/lwc/pageMessagesDataRetrieval/pageMessagesDataRetrieval.html force-app/main/default/lwc/pageMessagesDataRetrieval/pageMessagesDataRetrieval.js force-app/main/default/lwc/pageMessagesDataRetrieval/pageMessagesDataRetrieval.js-meta.xml force-app/main/default/lwc/pageMessagesDataRetrievalWrapper/pageMessagesDataRetrievalWrapper.html force-app/main/default/lwc/pageMessagesDataRetrievalWrapper/pageMessagesDataRetrievalWrapper.js force-app/main/default/lwc/pageMessagesDataRetrievalWrapper/pageMessagesDataRetrievalWrapper.js-meta.xml force-app/main/default/lwc/pageMessagesForm/pageMessagesForm.html force-app/main/default/lwc/pageMessagesForm/pageMessagesForm.js force-app/main/default/lwc/pageMessagesForm/pageMessagesForm.js-meta.xml force-app/main/default/lwc/pageMessagesFormWrapper/pageMessagesFormWrapper.html force-app/main/default/lwc/pageMessagesFormWrapper/pageMessagesFormWrapper.js force-app/main/default/lwc/pageMessagesFormWrapper/pageMessagesFormWrapper.js-meta.xml force-app/main/default/lwc/pageMessagesToast/pageMessagesToast.html force-app/main/default/lwc/pageMessagesToast/pageMessagesToast.js force-app/main/default/lwc/pageMessagesToast/pageMessagesToast.js-meta.xml force-app/main/default/lwc/pageMessagesToastWrapper/pageMessagesToastWrapper.html force-app/main/default/lwc/pageMessagesToastWrapper/pageMessagesToastWrapper.js force-app/main/default/lwc/pageMessagesToastWrapper/pageMessagesToastWrapper.js-meta.xml force-app/main/default/lwc/paginatedList/paginatedList.js force-app/main/default/lwc/paginatedListWrapper/paginatedListWrapper.html force-app/main/default/lwc/paginatedListWrapper/paginatedListWrapper.js force-app/main/default/lwc/paginatedListWrapper/paginatedListWrapper.js-meta.xml force-app/main/default/lwc/paginator/paginator.css force-app/main/default/lwc/panelBar/panelBar.html force-app/main/default/lwc/panelBar/panelBar.js force-app/main/default/lwc/panelBar/panelBar.js-meta.xml force-app/main/default/lwc/panelBarWrapper/panelBarWrapper.html force-app/main/default/lwc/panelBarWrapper/panelBarWrapper.js force-app/main/default/lwc/panelBarWrapper/panelBarWrapper.js-meta.xml force-app/main/default/lwc/panelGrid/panelGrid.html force-app/main/default/lwc/panelGrid/panelGrid.js force-app/main/default/lwc/panelGrid/panelGrid.js-meta.xml force-app/main/default/lwc/panelGridWrapper/panelGridWrapper.html force-app/main/default/lwc/panelGridWrapper/panelGridWrapper.js force-app/main/default/lwc/panelGridWrapper/panelGridWrapper.js-meta.xml force-app/main/default/lwc/parentComponentTest/parentComponentTest.html force-app/main/default/lwc/parentComponentTest/parentComponentTest.js force-app/main/default/lwc/parentComponentTest/parentComponentTest.js-meta.xml force-app/main/default/lwc/pocCustomComp/pocCustomComp.html force-app/main/default/lwc/pocCustomComp/pocCustomComp.js force-app/main/default/lwc/pocCustomComp/pocCustomComp.js-meta.xml force-app/main/default/lwc/pocFileUpload/pocFileUpload.html force-app/main/default/lwc/pocFileUpload/pocFileUpload.js force-app/main/default/lwc/pocFileUpload/pocFileUpload.js-meta.xml force-app/main/default/lwc/qisUniversalFailureCode/qisUniversalFailureCode.css force-app/main/default/lwc/qisUniversalFailureCode/qisUniversalFailureCode.html force-app/main/default/lwc/qisUniversalFailureCode/qisUniversalFailureCode.js force-app/main/default/lwc/qisUniversalFailureCode/qisUniversalFailureCode.js-meta.xml force-app/main/default/lwc/quoteTrial/quoteTrial.html force-app/main/default/lwc/quoteTrial/quoteTrial.js force-app/main/default/lwc/quoteTrial/quoteTrialUtil.js force-app/main/default/lwc/recentProjectsLWC/recentProjectsLWC.html force-app/main/default/lwc/recentProjectsLWC/recentProjectsLWC.js force-app/main/default/lwc/recentProjectsLWC/recentProjectsLWC.js-meta.xml force-app/main/default/lwc/rentalApplyEquipmentRentalPDF/rentalApplyEquipmentRentalPDF.css force-app/main/default/lwc/rentalApplyEquipmentRentalPDF/rentalApplyEquipmentRentalPDF.html force-app/main/default/lwc/rentalApplyEquipmentRentalPDF/rentalApplyEquipmentRentalPDF.js force-app/main/default/lwc/rentalApplyEquipmentRentalPDF/rentalApplyEquipmentRentalPDF.js-meta.xml force-app/main/default/lwc/rentalApplyLWT/rentalApplyLWT.css force-app/main/default/lwc/rentalApplyLWT/rentalApplyLWT.html force-app/main/default/lwc/rentalApplyLWT/rentalApplyLWT.js force-app/main/default/lwc/rentalApplyLWT/rentalApplyLWT.js-meta.xml force-app/main/default/lwc/selectSubstituteLWC/selectSubstituteLWC.css force-app/main/default/lwc/selectSubstituteLWC/selectSubstituteLWC.html force-app/main/default/lwc/selectSubstituteLWC/selectSubstituteLWC.js force-app/main/default/lwc/selectSubstituteLWC/selectSubstituteLWC.js-meta.xml force-app/main/default/lwc/singleRecords/singleRecords.html force-app/main/default/lwc/singleRecords/singleRecords.js force-app/main/default/lwc/singleRecords/singleRecords.js-meta.xml force-app/main/default/lwc/splitApplyLWC/splitApplyLWC.css force-app/main/default/lwc/splitApplyLWC/splitApplyLWC.html force-app/main/default/lwc/splitApplyLWC/splitApplyLWC.js force-app/main/default/lwc/splitApplyLWC/splitApplyLWC.js-meta.xml force-app/main/default/lwc/tEnquiry/tEnquiry.html force-app/main/default/lwc/tabs/tabs.html force-app/main/default/lwc/tabs/tabs.js force-app/main/default/lwc/tabs/tabs.js-meta.xml force-app/main/default/lwc/tabsWrapper/tabsWrapper.html force-app/main/default/lwc/tabsWrapper/tabsWrapper.js force-app/main/default/lwc/tabsWrapper/tabsWrapper.js-meta.xml force-app/main/default/lwc/tenderLost/tenderLost.js force-app/main/default/lwc/test/test.html force-app/main/default/lwc/test/test.js force-app/main/default/lwc/test/test.js-meta.xml force-app/main/default/lwc/toolbar/toolbar.css force-app/main/default/lwc/toolbar/toolbar.html force-app/main/default/lwc/toolbar/toolbar.js force-app/main/default/lwc/toolbar/toolbar.js-meta.xml force-app/main/default/lwc/toolbarWrapper/toolbarWrapper.html force-app/main/default/lwc/toolbarWrapper/toolbarWrapper.js force-app/main/default/lwc/toolbarWrapper/toolbarWrapper.js-meta.xml force-app/main/default/lwc/topPageLwc/topPageLwc.html force-app/main/default/lwc/topPageLwc/topPageLwc.js force-app/main/default/lwc/topPageLwc/topPageLwc.js-meta.xml force-app/main/default/lwc/viewRecord/viewRecord.html force-app/main/default/lwc/viewRecord/viewRecord.js force-app/main/default/lwc/viewRecord/viewRecord.js-meta.xml force-app/main/default/lwc/viewRecordWithParentRecordData/viewRecordWithParentRecordData.html force-app/main/default/lwc/viewRecordWithParentRecordData/viewRecordWithParentRecordData.js force-app/main/default/lwc/viewRecordWithParentRecordData/viewRecordWithParentRecordData.js-meta.xml force-app/main/default/lwc/viewRecordWithParentRecordDataWrapper/viewRecordWithParentRecordDataWrapper.html force-app/main/default/lwc/viewRecordWithParentRecordDataWrapper/viewRecordWithParentRecordDataWrapper.js force-app/main/default/lwc/viewRecordWithParentRecordDataWrapper/viewRecordWithParentRecordDataWrapper.js-meta.xml force-app/main/default/lwc/viewRecordWrapper/viewRecordWrapper.html force-app/main/default/lwc/viewRecordWrapper/viewRecordWrapper.js force-app/main/default/lwc/viewRecordWrapper/viewRecordWrapper.js-meta.xml force-app/main/default/lwc/viewVfLwcSource/viewVfLwcSource.css force-app/main/default/lwc/viewVfLwcSource/viewVfLwcSource.html force-app/main/default/lwc/viewVfLwcSource/viewVfLwcSource.js force-app/main/default/lwc/viewVfLwcSource/viewVfLwcSource.js-meta.xml manifest/packageForLex copy.xml manifest/packageForLex.xml (deleted) manifest/packageForSign.xml