init: function () {
var param = new HashMap();
param.put('operate', 'getParam');
Rpc({
functionId: 'GZ00002301',
async: false,
success: function (data) {
var result = Ext.decode(data.responseText);
if (result.return_code == 'success') {
var returnData = result.return_data;
var params = returnData.paramMap;
approvalparameter_me.allSalarySet = params.salaryTypeList;
approvalparameter_me.salaryMainArr = params.approvalParamList;
approvalparameter_me.flowableList = params.flowableList
approvalparameter_me.org_id = params.org_id
console.log(params)
}
}
}, param);
var showData = [];
var data = approvalparameter_me.salaryMainArr
Ext.each(data, function (item, index) {
showData.push(item);
});
data.push({
operate:true,
id: '',
name: '',
salary_table: '',
salary_type: '',
appeal_user: '',
approval_report: '',
approval_flow: '',
approval_org: ''
});
//grid面板 的Store
approvalparameter_me.mianStore = Ext.create('Ext.data.Store', {
storeId: 'mainStore',
// 增加排序字段
fields: ['operate','id', 'name', 'salary_table','salary_name', 'salary_type', 'appeal_user', 'approval_report', 'approval_flow','approval_flow_name', 'approval_org', 'approval_org_name'],
// 自动加载
data: data
});
var states = Ext.create('Ext.data.Store', {
id: 'flowableStore',
fields: ['dataName', 'dataValue']
});
Ext.each(approvalparameter_me.flowableList, function (obj, index) {
states.insert(index, [{dataName: obj.dataName, dataValue: obj.dataValue}]);
});
//界面的grid面板
var salaryGrid = Ext.create("Ext.grid.Panel", {
store: approvalparameter_me.mianStore,
itemId: "salaryGrid",
id:'approvalParameterPanel',
border: false,
bodyStyle: "margin-top:1px;",
enableColumnResize: true,//改变列宽
enableColumnMove: false,//拖放列
stripeRows: false,//表格是否隔行换色
columnLines: true,//列分割线
selModel: Ext.create("Ext.selection.CheckboxModel", {
mode: "multi",//multi,simple,single;默认为多选multi
checkOnly: true,//如果值为true,则只用点击checkbox列才能选中此条记录
enableKeyNav: true,
renderer: function (value, metaData, record, rowIndex, colIndex, store, view) {
if (record.data.operate) {
metaData.tdStyle = 'border-width:0px !important'; //去除操作行的分割线
return "<i class='hj-line hj-line-xinzeng' data-qtip='新增' style='font-size: 18px;cursor:pointer;' onclick='approvalparameter_me.addData()'/>";
}else {
return '<span class="' + Ext.baseCSSPrefix + 'grid-checkcolumn" role="presentation"></span>'
}
}
}),
viewConfig: {
markDirty: false // 禁用脏数据标记
},
columns: [//名称
{
text: '名称',
dataIndex: 'name',
sortable: false,
hideable: false,
align: 'left',
width: 180,
editor: {
xtype: 'textfield', // 这里定义编辑器的类型
allowBlank: false,
listeners: {
// 监听编辑完成事件
blur: function(field) {
var editor = field.up('editor'); // 获取编辑器组件
var record = editor.context.record; // 获取当前编辑的记录
console.log('当前行数据:', record.data);
console.log('字段名:', editor.context.column.dataIndex);
console.log('行索引:', editor.context.rowIdx);
var currentid = record.data.id;
var param = new HashMap();
param.put('operate', 'save');
param.put('opt', 'saveName');
param.put("id", currentid);
param.put("value", field.value);
Rpc({
functionId: 'GZ00002301',
async: false,
success: function (data) {
var result = Ext.decode(data.responseText);
if (result.return_code == 'success') {
var returnData = result.return_data;
//record.data.id开头是ext,更新record.data.id 为params.returnValue
if (record.data.id && record.data.id.toString().startsWith('ext')) {
// 更新record.data.id为params.returnValue
record.set('id', returnData.returnValue);
console.log('更新ID:', returnData.returnValue);
}
}
}
}, param);
}
}
},
renderer: function (value, metaData, record, rowIndex, colIndex, store, view) {
var html = value;
if (record.data.operate) {
metaData.tdStyle = 'border-width:0px !important'; //去除操作行的分割线
}
if (record.data.operate) {
html= "<i class='hj-line hj-line-shanchu' data-qtip='删除' style='font-size: 18px;cursor:pointer;' onclick='approvalparameter_me.delData()'/>";
}
return html;
}
},// 薪资类别
{
text: '薪资类别',
dataIndex: 'salary_name',
sortable: false,
hideable: false,
align: 'left',
width: 300,
renderer: function (value, metaData, record, rowIndex, colIndex, store, view) {
if (record.data.operate) {
metaData.tdStyle = 'border-width:0px !important'; // 去除操作行的分割线
} else {
if (!value){
value = ''
}
var html = '<div style="display: flex; justify-content: space-between; align-items: center; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; width: 100%;">'; // 使用 flexbox
// 在此处添加 data-qtip,给出完整值
html += '<div style="text-align: left; flex-grow: 1; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; max-width: 80%;" data-qtip="' + Ext.util.Format.htmlEncode(value) + '">' + value + '</div>'; // value 超出部分显示省略号
html += '<a onclick="approvalparameter_me.createSetSalerySetWin(\'';
html += record.data.id;
html += '\',\''+rowIndex+'\')"><i class="hj-line hj-line-peizhicanshu" data-qtip="' + gz.label.attribute + '"></i></a>';
html += '</div>';
return html;
}
}
},//报批用户
{
text: '报批用户',
dataIndex: 'appeal_user',
sortable: false,
hideable: false,
align: 'left',
width: 180,
renderer: function (value, metaData, record, rowIndex, colIndex, store, view) {
if (record.data.operate) {
metaData.tdStyle = 'border-width:0px !important'; //去除操作行的分割线
}else {
var orgId = record.data.org_id;
if (value) {
var name = record.data.userfullname;
if (record.data.fullname) {
name+='(' + record.data.fullname + ')';
}
var showName = name;
var personImgId='user_name_' + record.data.id;
var photoUrl =record.data.photoPath;
if (photoUrl == "/images/photo.jpg") {
photoUrl = rootPath+ photoUrl;
}
// var qtipName = recorddata.fullname?record.data.username+ '(' +record.data.fullname + ')':record.data.username;
return '<div id="'+ personImgId +'"><div style="margin-top:-10px;position:relative; padding-right:8px;" data-qtip="' + name + '">' +
'<img id="'+ personImgId +'_photo" width=30 height=30 onclick="approvalparameter_me.createPersonPicker(\''+ orgId +'\',\''+ rowIndex +'\', \''+ personImgId +'\', \''+ record.data.id +'\')" style="border-radius: 100%;vertical-align:middle;margin:0px 4px 0px 0px;padding-top: 0px;cursor:pointer;" src='+photoUrl+' />'+
'<span style="display:inline-block;margin-top:10px;" id="'+ personImgId +'_name">'+ showName +'</span>'+
'</div></div>';
} else {
var personImgId = 'user_name_' + orgId + '_' + rowIndex;
var html =
'<div id="'+ personImgId +'" style="width:98%;display:flex;">';
html = html + '<i onclick="approvalparameter_me.createPersonPicker(\''+orgId+'\',\''+ rowIndex +'\', \''+ personImgId +'\', \''+ record.data.id +'\')" ';
html = html + ' class="hj-workflow hj-workflow-zengjiarenwu" style="font-size: 18px;float:right;margin-right:5px;cursor:pointer;"></i>';
html = html + '<span style="float: right"></span></div>';
return html;
}
}
}
},// 审批报表
{
text: '审批报表',
dataIndex: 'approval_report',
sortable: false,
hideable: false,
align: 'left',
width: 100,
renderer: function (value, metaData, record, rowIndex, colIndex, store, view) {
if (record.data.operate) {
metaData.tdStyle = 'border-width:0px !important'; //去除操作行的分割线
}else {
var html = '<div style="display: flex; justify-content: center; align-items: center;">'; // 使用 flexbox 并居中
html += '<a onclick="approvalparameter_me.openProperty(\'';
html += 'salaryid';
html += '\',\'' + '' + '\',\'' + '' + '\')"><i class="hj-line hj-line-peizhicanshu" data-qtip="' + gz.label.attribute + '"></i></a>';
html += '</div>';
return html;
}
}
},// 审批流程
{
text: '审批流程',
dataIndex: 'approval_flow_name',
sortable: false,
hideable: false,
align: 'left',
width: 200,
editor: {
xtype: 'combobox',
store: states, // 根据需求替换成实际的流程数据
editable: false,
forceSelection: true,
queryMode: 'local',
displayField: 'dataName',
valueField: 'dataValue',
emptyText: "请选择流程",
value: 'xz',
listeners: {
afterrender: function (combo) {
combo.setValue('cs'); // 手动设置值
},
select: function (combo,newValue, oldValue) {
var editor = combo.up('editor');
var grid = editor.up('gridpanel');
var rowIndex = editor.context.rowIdx;
approvalparameter_me.mianStore.data.items[rowIndex].data.approval_flow = newValue.data.dataValue;
approvalparameter_me.mianStore.data.items[rowIndex].data.approval_flow_name = newValue.data.dataName;
var record = editor.context.record;
var param = new HashMap();
param.put('operate', 'save');
param.put('opt', 'saveaApprovalFlow');
param.put("id", record.id);
param.put("value", newValue.data.dataValue);
Rpc({
functionId: 'GZ00002301',
async: false,
success: function (data) {
var result = Ext.decode(data.responseText);
if (result.return_code == 'success') {
Ext.showAlert('保存成功!');
approvalparameter_me.mianStore.load();
}
}
}, param);
}
}
},
renderer: function (value, metaData, record, rowIndex, colIndex, store, view) {
if (record.data.operate) {
metaData.tdStyle = 'border-width:0px !important'; //去除操作行的分割线
}else {
return value;
}
}
},// 所属组织
{
text: '所属组织',
dataIndex: 'approval_org_name',
sortable: false,
hideable: false,
align: 'left',
width: 220,
renderer: function (value, metaData, record, rowIndex, colIndex, store, view) {
if (record.data.operate) {
metaData.tdStyle = 'border-width:0px !important'; //去除操作行的分割线
}else {
if (!value){
value = ''
}
var salaryid = record.data.salaryid_safe;
var html = '  <a href="javascript:;" onclick="approvalparameter_me.openSelectPerson(this,\''+salaryid+'\',\'' + record.data.approval_org + '\',\'' + record.data.id + '\')"><i style="padding-right: 4px;" class="hj-line hj-line-zuzhijigou"></i>'+value+'</a>';
return html;
}
}
}
],
plugins: [
Ext.create('Ext.grid.plugin.CellEditing', { // 添加单元格编辑插件
clicksToEdit: 1 // 单击一次进入编辑状态
})
],
listeners: {
cellclick: function (grid, td, cellIndex, record, tr, rowIndex, e, options) {
// 判断点击的列是否是审批流程列
if (cellIndex === grid.getColumnManager().getHeaderIndex('审批流程')) {
// 启动单元格编辑
grid.getPlugin().startEdit(record, cellIndex);
}
}
}
});
approvalparameter_me.add(salaryGrid);
}最后一行数据的operate为true