You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
333 lines
15 KiB
JavaScript
333 lines
15 KiB
JavaScript
define('DS/UpdateModalValue/UpdateModalValue', [
|
|
'UWA/Core',
|
|
'DS/ApplicationFrame/Command',
|
|
'DS/ENOXEngineerCommonUtils/XENModal',
|
|
'DS/ENOXEngineerCommonUtils/xEngAlertManager',
|
|
'DS/EngineeringItemCmd/SetPartNumberCmd/setPartNumberListView',
|
|
'DS/ENOXEngineerCommonUtils/XENPlatform3DXSettings',
|
|
'DS/ENOXEngineerCommonUtils/PromiseUtils',
|
|
'DS/ENOXEngineerCommonUtils/XENCommandsAppContextProxy',
|
|
'DS/ENOXEngineerCommonUtils/XENWebInWinHelper',
|
|
'i18n!DS/EngineeringItemCmd/assets/nls/ExposedCmdsNls.json',
|
|
'css!DS/UpdateModalValue/layui/css/layui.css',
|
|
'DS/UpdateModalValue/layui/layui.all',
|
|
'text!DS/UpdateModalValue/index.html',
|
|
'DS/UpdateModalValue/layui/xmSelect'
|
|
], function (
|
|
UWA,
|
|
AFRCommand,
|
|
XEngineerModal,
|
|
xEngAlertManager,
|
|
PartNumberListView,
|
|
XENPlatform3DXSettings,
|
|
PromiseUtils,
|
|
XENCommandsAppContextProxy,
|
|
XENWebInWinHelper,
|
|
nlsKeys,
|
|
LayUI,
|
|
laycss,
|
|
testHTML,
|
|
xmSelect
|
|
) {
|
|
'use strict';
|
|
|
|
//todo
|
|
var SetPartNumber = AFRCommand.extend({
|
|
_setPartNumberListView: null,
|
|
items: [],
|
|
modal: null,
|
|
transactionParameters: null,
|
|
sTenentID: "OnPremise",
|
|
securityContext: null,
|
|
myBaseAppURL: null,
|
|
init: function (options) {
|
|
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;
|
|
},
|
|
|
|
//todo 返回的值为 VPLMProjectLeader.Company Name.Common Space //该方法用处还需进一步验证
|
|
getProvidedSC: function () {
|
|
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 () {
|
|
var that = this;
|
|
XENCommandsAppContextProxy.getAppContextPromise(this).then(function (context) {
|
|
var ModalPhysicalId = "";
|
|
//获取数据值
|
|
that.items = that.options.context.getSelectedNodes().map(function (item) {
|
|
console.log(item);
|
|
//modalValue = item.options.grid['ds6w:identifier'];
|
|
ModalPhysicalId = item.getID();
|
|
console.log("==========>");
|
|
console.log(ModalPhysicalId);
|
|
return {
|
|
physicalId: item.getID(),
|
|
name: item.getLabel(),
|
|
sessionStoredEIN: (item.getSessionStoredEIN && item.getSessionStoredEIN()) ? item.getSessionStoredEIN() : undefined,
|
|
partNumber: item.options.grid['ds6wg:EnterpriseExtension.V_PartNumber']
|
|
};
|
|
});
|
|
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._setPartNumberListView = new PartNumberListView();
|
|
that._setPartNumberListView.render();
|
|
that.showDialog(ModalPhysicalId);
|
|
} else {
|
|
var needSC = (!that.getProvidedSC());
|
|
XENPlatform3DXSettings.bindCommandsToABackend(needSC /* need to retrieve SC */).then(function () {
|
|
that.isUserGranted().then(function () {
|
|
that._setPartNumberListView = new PartNumberListView();
|
|
that._setPartNumberListView.render();
|
|
//todo
|
|
|
|
that.showDialog(ModalPhysicalId);
|
|
}).catch(function (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();
|
|
})
|
|
}
|
|
})
|
|
},
|
|
|
|
// 向页面写具体body页面
|
|
showDialog: function (ModalPhysicalId) {
|
|
let httpBaseUrl = "/3dspace/ModalInfo/";
|
|
|
|
layui.use(['form', 'jquery'], function () {
|
|
var form = layui.form;
|
|
var $ = layui.jquery;
|
|
let layer = layui.layer;
|
|
|
|
//判断当前模型是否是在工作中的状态
|
|
$.get({
|
|
url: httpBaseUrl + "GetModalState?PhysicalId=" + ModalPhysicalId,
|
|
crossDomain: true,
|
|
contentType: "application/json",
|
|
dataType: "json",
|
|
success: function (res) {
|
|
let modalCurrentState = res.data;
|
|
console.log(modalCurrentState);
|
|
if ("IN_WORK" == modalCurrentState) {
|
|
//公司代码数据
|
|
var companyCodeValue = "";
|
|
|
|
//物料组数据
|
|
var AEGVPMDataValue = "";
|
|
|
|
layer.open({
|
|
type: 1,
|
|
title: ["物料组修改", "font-size : 16px; font-weight: bold; color: #fff; background-color: #005685"],
|
|
area: ["700px", "350px"],
|
|
content: testHTML,
|
|
success: function () {
|
|
var companyCodeSelect = xmSelect.render({
|
|
el: '#demo1',
|
|
filterable: true,
|
|
radio: true,
|
|
clickClose: true,
|
|
data: [],
|
|
toolbar: { show: true },
|
|
on: function (data) {
|
|
var arr = data.arr;
|
|
if (arr.length > 0) {
|
|
companyCodeValue = arr[0].value;
|
|
console.log(companyCodeValue);
|
|
GetMaterialGroupData(materialGroupSelect, companyCodeValue)
|
|
}
|
|
}
|
|
})
|
|
GetCompanyCodeData("GetCompanyCode", companyCodeSelect);
|
|
|
|
var materialGroupSelect = xmSelect.render({
|
|
el: '#demo2',
|
|
filterable: true,
|
|
radio: true,
|
|
clickClose: true,
|
|
toolbar: { show: true },
|
|
on: function (data) {
|
|
var arr = data.arr;
|
|
console.log(arr);
|
|
if (arr.length > 0) {
|
|
AEGVPMDataValue = arr[0].material;
|
|
console.log("0000000000");
|
|
console.log(AEGVPMDataValue);
|
|
}
|
|
}
|
|
})
|
|
}
|
|
})
|
|
|
|
function GetCompanyCodeData(url, companyCodeSelect) {
|
|
$.get({
|
|
url: httpBaseUrl + url,
|
|
crossDomain: true,
|
|
contentType: "application/json",
|
|
dataType: "json",
|
|
success: function (res) {
|
|
console.log(res.data);
|
|
let companyCode = JSON.parse(res.data);
|
|
companyCodeSelect.update({ data: companyCode });
|
|
}
|
|
});
|
|
}
|
|
|
|
function GetMaterialGroupData(materialGroupSelect, value) {
|
|
$.get({
|
|
url: httpBaseUrl + "GetMaterialGroup",
|
|
crossDomain: true,
|
|
contentType: "application/json",
|
|
dataType: "json",
|
|
success: function (res) {
|
|
let AEGVPMDataValue = JSON.parse(res.data);
|
|
|
|
let Array = [];
|
|
|
|
$.each(AEGVPMDataValue, function (index, item) {
|
|
let valueJson = {};
|
|
|
|
if (item.value.includes(value)) {
|
|
valueJson.name = item.name,
|
|
valueJson.value = item.value,
|
|
valueJson.material = item.material,
|
|
Array.push(valueJson);
|
|
}
|
|
})
|
|
|
|
// console.log(Array);
|
|
|
|
materialGroupSelect.update({ data: Array });
|
|
}
|
|
});
|
|
}
|
|
|
|
// form.on('select(companyCode)', function (data) {
|
|
// let companyCodeBySelect = data.value; //获取选中的省份索引
|
|
|
|
// console.log("00000");
|
|
// console.log(companyCodeBySelect);
|
|
|
|
// //清空城市选择器
|
|
// $('#MateriaGroup').empty();
|
|
|
|
// console.log("123123");
|
|
|
|
// console.log(AEGVPMData);
|
|
|
|
|
|
// for (let index = 0; index < AEGVPMData.length; index++) {
|
|
// console.log("234566");
|
|
// console.log(AEGVPMData[index].code);
|
|
// console.log(companyCodeBySelect);
|
|
// if(AEGVPMData[index].code == companyCodeBySelect){
|
|
// $('#MateriaGroup').append('<option value = "' + AEGVPMData[index].material + '">' + AEGVPMData[index].materialZH + '</option>')
|
|
// }
|
|
// }
|
|
|
|
// form.render('select');
|
|
// });
|
|
|
|
$('#myButton').on('click', function (data) {
|
|
console.log(data);
|
|
|
|
// var selectedCompanyCode = $('#demo1').val();
|
|
// var selectedMateriaGroup = $('#demo2').val();
|
|
// console.log(ModalPhysicalId);
|
|
// console.log(selectedMateriaGroup);
|
|
// console.log(selectedCompanyCode);
|
|
|
|
if (AEGVPMDataValue != "" && AEGVPMDataValue != null) {
|
|
$.post({
|
|
url: httpBaseUrl + "UpdateModalInfo/" + ModalPhysicalId + "/" + companyCodeValue + "/" + AEGVPMDataValue,
|
|
crossDomain: true,
|
|
contentType: "application/json",
|
|
dataType: "json",
|
|
success: function (res) {
|
|
layer.closeAll();
|
|
}
|
|
}).done(function () {
|
|
layer.msg('修改成功');
|
|
})
|
|
} else {
|
|
layer.msg('物料组不能为空')
|
|
}
|
|
});
|
|
} else {
|
|
layer.msg('当前模型已发布,不可更改,请联系管理员');
|
|
}
|
|
}
|
|
})
|
|
})
|
|
}
|
|
});
|
|
return SetPartNumber;
|
|
}); |