diff --git a/测试按钮/TestCommand.js b/测试按钮/TestCommand.js new file mode 100644 index 0000000..c6d04e6 --- /dev/null +++ b/测试按钮/TestCommand.js @@ -0,0 +1,517 @@ +define('DS/TestCommand/TestCommand', [ + 'UWA/Core', + 'DS/ApplicationFrame/Command', + 'DS/ENOXEngineerCommonUtils/XENModal', + 'DS/Utilities/Utils', + 'DS/ENOXEngineerCommonUtils/XENMask', + 'DS/ENOXEngineerCommonUtils/xEngAlertManager', + 'DS/EngineeringItemCmd/SetPartNumberCmd/setPartNumberListView', + 'DS/ENOXEngineerCommonUtils/XENPlatform3DXSettings', + 'DS/ENOXEngineerCommonUtils/PromiseUtils', + 'DS/EngineeringItemCmd/SetPartNumberCmd/setPartNumberHttpClient', + 'DS/ENOXEngineerCommonUtils/XENCommandsAppContextProxy', + 'DS/PlatformAPI/PlatformAPI', + 'DS/ENOXEngineerCommonUtils/XENWebInWinHelper', + 'DS/EngineeringItemCmd/SetPartNumberCmd/SetPartProgressDialog', + 'DS/EngineeringItemCmd/SetPartNumberCmd/SetPartConstants', + 'i18n!DS/EngineeringItemCmd/assets/nls/ExposedCmdsNls.json', + 'text!DS/TestCommand/index.html' +], function ( + UWA, + AFRCommand, + XEngineerModal, + Utils, + Mask, + xEngAlertManager, + PartNumberListView, + XENPlatform3DXSettings, + PromiseUtils, + xAppWSCalls, + XENCommandsAppContextProxy, + PlatformAPI, + XENWebInWinHelper, + SetPartProgressDialog, + SetPartConstants, + nlsKeys, + HTMLsetPartNumberListView) { + 'use strict'; + + var SetPartNumber = AFRCommand.extend({ + _setPartNumberListView: null, + items: [], + modal: null, + transactionParameters: null, + sTenentID: "OnPremise", + securityContext: null, + myBaseAppURL: null, + init: function (options) { + console.log(111); + options = UWA.extend(options, { + isAsynchronous: false + }); + this._parent(options); + + // IR-749796-3DEXPERIENCER2021x + // The initialization is to early to get the app Security context to correct it + // the initialization has been deplaced in isUserGranted call and the that.enable() is now check with isUserGranted + // XENCommandsAppContextProxy.loadCommandsSetting(); + this._initCommandPrereqs(); + }, + isUserGranted: function () { + var that = this; + if (this.grantingPromise) + return this.grantingPromise; + this.grantingPromise = PromiseUtils.wrappedWithCancellablePromise(function (resolve, reject) { + XENCommandsAppContextProxy.loadCommandsSetting() + .then(function (settings) { + if (settings && settings.isGrantedEnterpriseExtension) { + resolve(true); + } else { + if (XENPlatform3DXSettings.isCatiaV6Environment()) { //Setting added for IR-788376-3DEXPERIENCER2020x + resolve(true); + } else { + reject('user is not granted'); + } + } + }).catch(function (reason) { + if (XENPlatform3DXSettings.isCatiaV6Environment()) { //Setting added for IR-788376-3DEXPERIENCER2020x + resolve(true); + } else { + console.error(reason); + reject('some failure'); + } + }); + }); + return this.grantingPromise; + }, + + bindEditModeListener: function () { + console.log(444); + var that = this; + if (that.options.context && + typeof that.options.context.addEvent === "function") { + that.options.context.addEvent('editModeModified', function (state) { + if (state === true) { + that._checkSelection(); + } else { + that.disable(); + } + }); + } + }, + _checkSelection: function () { + console.log(555); + var that = this; + if (that.options.context && + typeof that.options.context.getEditMode === "function") { + if (!that.options.context.getEditMode()) + return that.disable(); + } + + if (!Array.isArray(that.options.context.getSelectedNodes()) || + that.options.context.getSelectedNodes().length === 0) { + return that.disable(); + } else { + var SelectedNodes = that.options.context.getSelectedNodes(); + for (var i = 0; i < SelectedNodes.length; i++) { + var node = SelectedNodes[i]; + if (!node || !node.getID()) { // for not saved items + return that.disable(); + } + if (node.options.type === 'VPMReference') + continue; + + if (node.options.type === 'Drawing' || + !node.options.padgrid || + node.options.padgrid['ds6w:globalType'] !== 'ds6w:Part') { + return that.disable(); + } + } + that.isUserGranted().then(function () { + that.enable(); + }).catch(function (reason) { + console.error(reason); + that.disable(); + }); + } + }, + // + _buildSetPartNumDialog: function () { + console.log(666); + if (this._setPartNumberListView) { + this._setPartNumberListView.destroy(); + this._setPartNumberListView = null; + } + var that = this; + + that._setPartNumberListView = new PartNumberListView(); + that._setPartNumberListView.render(); + console.log(123123); + console.log(that._setPartNumberListView.render()); + that.retrievePartNumber(); + }, + //删除视图 + destroyView: function (isErrorThrown) { + console.log(777); + var that = this; + if (that._setPartNumberListView) { + that._setPartNumberListView.destroy(); + that._setPartNumberListView = null; + } + if (that.modal && that.modal.isNotDestroyed()) { + that.modal.dispose(); + that.modal = null; + } + + if (XENWebInWinHelper) { + if (isErrorThrown == true) { + XENWebInWinHelper.closePanel(isErrorThrown); + } else { + XENWebInWinHelper.closePanel(); + } + } + }, + buildModal: function () { + console.log(888); + var that = this; + widget.innerHtml = HTMLsetPartNumberListView; + + this.modal = new XEngineerModal({ + // title: nlsKeys.get("edit_test_command"), + // className: 'set-partNumber-modal', + withFooter: true, + customFooter: function () { + if (that._setPartNumberListView.isEINSettingBlockedForUsers()) { + return ''; + } else { + return '' + + ''; + } + }, + persitId: 'edit_test_command', + relatedCommand: that, + onClose: function () { + that.destroyView(); + that.end(); + that.modal = undefined; + } + }); + }, + formatForRefreshView: function (data) { + console.log(999); + if (!data || !Array.isArray(data.references)) return []; + + return data.references.map(function (item) { + return { + physicalid: item.physicalid, + attributes: [{ + name: "ds6wg:EnterpriseExtension.V_PartNumber", + value: item.partNumber + }] + } + }) + }, + getProvidedSC: function () { + console.log(1010); + if (!this.options.context || !this.options.context.getSecurityContext) + return null; + + var _sc = this.options.context.getSecurityContext() || {}; + var value = _sc.SecurityContext; + if (_sc.SecurityContext) { + if (value.startsWith('ctx::')) + value = value.substring(5); + XENPlatform3DXSettings.setDefaultSecurityContext(value); + } + + if (_sc.tenant) { + XENPlatform3DXSettings.setPlatformId(_sc.tenant); + } + + return value; + }, + execute: function () { + console.log(1012); + var that = this; + var selectedObjetcsCount = that.options.context.getSelectedNodes().length; + if (selectedObjetcsCount > SetPartConstants.CONSTANT_LIMIT_EIN) { + xEngAlertManager.errorAlert(nlsKeys.get("eng.partNumber.limit.title").replace('$1', selectedObjetcsCount)); + return; + } + this.progressDialog = new SetPartProgressDialog(); + this.progressDialog.createProgress(widget.body, nlsKeys.get("eng.partNumber.loading.mask.title")); + XENCommandsAppContextProxy.getAppContextPromise(this).then(function (context) { + + if (!Array.isArray(that.options.context.getSelectedNodes()) || + that.options.context.getSelectedNodes().length === 0) { + throw new Error('No Selected Items!'); + } + + that.transactionParameters = (that.options.context.getTransactionParameters) ? that.options.context.getTransactionParameters() : null; + that.items = that.options.context.getSelectedNodes().map(function (item) { + return { + physicalId: item.getID(), + name: item.getLabel(), + sessionStoredEIN: (item.getSessionStoredEIN && item.getSessionStoredEIN()) ? item.getSessionStoredEIN() : undefined, + partNumber: item.options.grid['ds6wg:EnterpriseExtension.V_PartNumber'] + }; + }); + that.items = that.items.reduce(function (result, item) { + var idx = result.filter((function (cp) { + return item.physicalId === cp.physicalId; + }))[0]; + if (!UWA.is(idx)) { + result.push(item); + } + return result; + }, []); + that.sTenentID = (that.options.context.getTenentID) ? that.options.context.getTenentID() : "OnPremise"; + that.myBaseAppURL = (that.options.context.getMyBaseAppURL) ? that.options.context.getMyBaseAppURL() : null; + that.securityContext = (that.options.context.getSC) ? that.options.context.getSC() : null; + if (XENPlatform3DXSettings.isBuildSecurityContext() && XENPlatform3DXSettings.isCloud()) { + var _platform = {}; + var strTenentId = that.sTenentID; + var sURL = that.myBaseAppURL; + _platform[strTenentId] = { + "3DSpace": sURL + } + XENPlatform3DXSettings._platforms = _platform; + XENPlatform3DXSettings.setDefaultSecurityContext(that.securityContext.replace("ctx : ", "")); + that._buildSetPartNumDialog(); + } else { + var needSC = (!that.getProvidedSC()); + XENPlatform3DXSettings.bindCommandsToABackend(needSC /* need to retrieve SC */ ).then(function () { + that.isUserGranted().then(function () { + that._buildSetPartNumDialog(); + }).catch(function (reason) { + console.log(reason); + xEngAlertManager.errorNotif({ + title: nlsKeys.get("error.not.granted"), + subtitle: nlsKeys.get("error.contact.admin"), + }); + that.progressDialog.close(); + }); + }).catch(function (error) { + console.error(error); + //notify the user + xEngAlertManager.unexpectedFailure(nlsKeys.get('failure.setPartNumber.cmd.launch')); + that.progressDialog.close(); + }) + } + }).catch(function (error) { + console.error(error); + xEngAlertManager.unexpectedFailure(nlsKeys.get('failure.setPartNumber.cmd.launch')); + that.progressDialog.close(); + }) + }, + retrievePartNumber: function () { + // console.log(1013); + var that = this; + var sessionStoredEINValues = {}; + var physicalIds = this.items.map(function (item) { + sessionStoredEINValues[item.physicalId] = item.sessionStoredEIN; + return item.physicalId; + }); + this.retrievePartNumberAttr(physicalIds).then(function (data) { + that._setPartNumberListView.destroy(); + var mappedReferencesData = data.references.map(function (current) { + // IE :( + var item = that.items.filter(function (item) { + if (item.physicalId === current.physicalid) { + return true; + } + return false; + })[0]; + + return { + id: item.physicalId, + name: item.name, + oldpartnumber: (sessionStoredEINValues && sessionStoredEINValues[item.physicalId]) ? sessionStoredEINValues[item.physicalId] : current.partNumber, + editable: (current[SetPartConstants.CONSTANT_STATUS] !== SetPartConstants.CONSTANT_COMPUTED) ? true : false, + newpartnumber: current[SetPartConstants.CONSTANT_COMPUTED_PARTNUMBER], + status: current[SetPartConstants.CONSTANT_STATUS], + [SetPartConstants.CONSTANT_DEFORMED]: current[SetPartConstants.CONSTANT_DEFORMED], + [SetPartConstants.CONSTANT_SUGGESTED_EIN]: current[SetPartConstants.CONSTANT_SUGGESTED_EIN] ? current[SetPartConstants.CONSTANT_SUGGESTED_EIN] : "", + [SetPartConstants.CONSTANT_KEY_ITEMNUMBER_GENERATOR]: data[SetPartConstants.CONSTANT_KEY_ITEMNUMBER_GENERATOR] + }; + }); + var einFormat = data[SetPartConstants.CONSTANT_BLOCK_EIN_CONFIGURED] == SetPartConstants.CONSTANT_TRUE ? SetPartConstants.CONSTANT_EIN_TYPE_NONE : data[SetPartConstants.CONSTANT_EIN_FORMAT]; + var manualInput = data[SetPartConstants.CONSTANT_BLOCK_EIN_CONFIGURED] == SetPartConstants.CONSTANT_TRUE ? SetPartConstants.CONSTANT_FALSE : data[SetPartConstants.CONSTANT_MANUAL_OR_FREE_INPUT]; + var collection = { + [SetPartConstants.CONSTANT_KEY_ITEMNUMBER_GENERATOR]: data[SetPartConstants.CONSTANT_KEY_ITEMNUMBER_GENERATOR], + [SetPartConstants.CONSTANT_KEY_ITEMNUMBER_UNIQUENESS]: data[SetPartConstants.CONSTANT_KEY_ITEMNUMBER_UNIQUENESS], + [SetPartConstants.CONSTANT_FORMULA_CONFIGURED]: data[SetPartConstants.CONSTANT_FORMULA_CONFIGURED], + [SetPartConstants.CONSTANT_CONFIGURED_FORMULA_EXPRESSION]: data[SetPartConstants.CONSTANT_CONFIGURED_FORMULA_EXPRESSION], + [SetPartConstants.CONSTANT_MANUAL_OR_FREE_INPUT]: manualInput, + [SetPartConstants.CONSTANT_EIN_FORMAT]: einFormat, + [SetPartConstants.CONSTANT_PHYSICAL_PRODUCT_ATTRIBUTES]: data[SetPartConstants.CONSTANT_PHYSICAL_PRODUCT_ATTRIBUTES], + [SetPartConstants.CONSTANT_BLOCK_EIN_CONFIGURED]: data[SetPartConstants.CONSTANT_BLOCK_EIN_CONFIGURED], + [SetPartConstants.CONSTANT_IS_V6_ENVIRONMENT]: XENPlatform3DXSettings.isCatiaV6Environment(), + references: mappedReferencesData + } + console.log(1099); + console.log(collection); + + that.showDialog(collection); + + XENWebInWinHelper.commandViewReady(); + }).catch(function (errors) { + console.warn(errors); + var errorReason = (errors && errors.error && errors.error.message) ? errors.error.message : (errors.message ? errors.message : errors); + errorReason = (errors && errors.response && errors.response.message) ? errors.response.message : errorReason; + + if (errorReason) { + xEngAlertManager.errorAlert(errorReason); + } else { + xEngAlertManager.unexpectedFailure(nlsKeys.get('failure.setPartNumber.cmd.launch')); + } + + if (that.modal && that.modal.isNotDestroyed()) + Mask.unmask(that.modal.getBody()); + + that.destroyView(true); + that.end(); + }).finally(function () { + that.progressDialog.close(); + }); + }, + + getTargetedNode: function () { + console.log(1014); + var nodes = this.options.context.getSelectedNodes(); + return nodes.length > 0 ? nodes[0] : null; + }, + retrievePartNumberAttr: function (physicalIds) { + console.log(1015); + var myRetrievePartNumCommand = XENPlatform3DXSettings.getCommand('mcs_retrievePartNumber'); + var parameters = this.transactionParameters; + var payload = { + references: physicalIds.map(function (physicalid) { + return { + physicalid: physicalid + }; + }) + }; + if (parameters) { + payload["winTransactionParameters"] = parameters; + } + + return PromiseUtils.wrappedWithCancellablePromise(function (resolve, reject) { + xAppWSCalls.perform(myRetrievePartNumCommand, JSON.stringify(payload)).then(function (res) { + //app.core.settingManager.setApplicationMode('authoring'); + + // Sorting the result in the order of payload - start + var payloadArray = payload.references; + + if (payloadArray.length > 1) { + var resultJson = {}; + var resArray = res.references; + var phyId; + for (var i = 0; i < resArray.length; i++) + resultJson[resArray[i].physicalid] = resArray[i]; + + var sortedResArray = []; + for (var i = 0; i < payloadArray.length; i++) + sortedResArray.push(resultJson[payloadArray[i].physicalid]); + res.references = sortedResArray; + } + // Sorting the result in the order of payload - end + return resolve(res); + }).catch(function (errors) { + reject(errors); + }); + }); + }, + updatePartNumberAttr: function (collection) { + console.log(1016); + var myUpdatePartNumCommand = XENPlatform3DXSettings.getCommand('mcs_setPartNumber'); + var parameters = this.transactionParameters; + var payload = {}; + + payload = this.buildUpdateEINPayload(collection, parameters); + + return PromiseUtils.wrappedWithCancellablePromise(function (resolve, reject) { + xAppWSCalls.perform(myUpdatePartNumCommand, JSON.stringify(payload)).then(function (res) { + //app.core.settingManager.setApplicationMode('authoring'); + return resolve(res); + }).catch(function (errors) { + reject(errors); + }); + }); + }, + updateModalTitleInfo: function (selectedValidObjects, allObjects) { + console.log(1017); + var that = this; + var selectionDetails = ""; + if (allObjects == 1 && selectedValidObjects == 1) { + selectionDetails = nlsKeys.get("eng.partNumber.selected.object.count").replace("$1", selectedValidObjects); + } else if (selectedValidObjects > 0) { + var selectionDetails = (selectedValidObjects == 1) ? nlsKeys.get("eng.partNumber.selected.object.count").replace("$1", selectedValidObjects) : + nlsKeys.get("eng.partNumber.selected.multiple.objects.count").replace("$1", selectedValidObjects); + } + that.modal.modal.setTitle(nlsKeys.get("edit_part_number_title") + selectionDetails); + }, + showDialog: function (collection) { + console.log(1018); + var that = this; + var setPartCont = that._setPartNumberListView.setCollection(collection).render(); + + if (that._setPartNumberListView.collection && that._setPartNumberListView.collection.references && that._setPartNumberListView.invalidObjectsCount != that._setPartNumberListView.collection.references.length) { + that.buildModal(); + + // var nowNode = document.querySelector(".modal-body"); + // setPartCont.inject(body) + // var divTest = document.createElement('div'); + // h1.innerHTML = "123"; + + var divTest = widget.createElement('div'); + divTest.setHTML(HTMLsetPartNumberListView); + divTest.inject(that.modal.getBody()); + //todo + that.modal.modal.setNewSize({ + width: 1000, + height: 500 + }); + that.modal.modal.centerIt(); + that.modal.show(); + that.updateModalTitleInfo(that._setPartNumberListView.successCount, that._setPartNumberListView.collection[SetPartConstants.CONSTANT_KEY_REFERENCES].length); + } + }, + enableSetPartCmdButtons: function () { + console.log(1019); + var that = this; + that.modal.modal.getFooter().getElements('.btn').forEach(function (element) { + element.disabled = false; + }) + }, + disableSetPartCmdButtons: function () { + console.log(1020); + var that = this; + that.modal.modal.getFooter().getElements('.btn').forEach(function (element) { + element.disabled = true; + }) + }, + buildUpdateEINPayload: function (collection, parameters) { + console.log(1021); + + var payload = {}; + + var parameters = this.transactionParameters; + if (parameters) { + payload["winTransactionParameters"] = parameters; + } + + if (collection[SetPartConstants.CONSTANT_KEY_REFERENCES].length > 0) { + payload[SetPartConstants.CONSTANT_KEY_REFERENCES] = collection[SetPartConstants.CONSTANT_KEY_REFERENCES]; + } + + if (Object.keys(collection[SetPartConstants.CONSTANT_USER_MAPPED_PN]).length > 0) { + payload[SetPartConstants.CONSTANT_USER_MAPPED_PN] = collection[SetPartConstants.CONSTANT_USER_MAPPED_PN]; + } + + payload[SetPartConstants.CONSTANT_KEY_ALL_REV_SKIP] = collection[SetPartConstants.CONSTANT_KEY_ALL_REV_SKIP]; + return payload; + } + }); + return SetPartNumber; +}); \ No newline at end of file diff --git a/测试按钮/index.html b/测试按钮/index.html new file mode 100644 index 0000000..a53ee24 --- /dev/null +++ b/测试按钮/index.html @@ -0,0 +1,105 @@ + + + + + + 炫酷表格 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
姓名年龄城市
张三30北京
李四25上海
王五35深圳
+ + + \ No newline at end of file diff --git a/测试按钮/scripts/Main.js b/测试按钮/scripts/Main.js new file mode 100644 index 0000000..e69de29