/*
|
* @Description: 产品标签模板相关
|
* @Author: Ben Lin
|
* @version:
|
* @Date: 2024-06-19 20:34:27
|
* @LastEditors: Ben Lin
|
* @LastEditTime: 2024-08-20 15:03:44
|
*/
|
|
import { DeleteLabelTemplate } from '/@/api/tigerapi/mes/label';
|
import { CustModalParams } from '/@/api/tigerapi/model/systemModel';
|
import { ActionItem, BasicColumn } from '/@/components/Table';
|
import { useWebSocketStore } from '/@/store/modules/websocket';
|
import { useI18n } from '/@/hooks/web/useI18n';
|
|
const { t } = useI18n();
|
function _default() {
|
const ActionColumn: BasicColumn = {
|
width: 120,
|
title: '操作',
|
dataIndex: 'action',
|
slots: { customRender: 'action' },
|
fixed: 'right',
|
};
|
|
/**
|
* @description: 些自定义方法
|
* @return {*}
|
*/
|
const methods = {
|
/**
|
* @description: 获取新增按钮的行为
|
* @return {*}
|
*/
|
CreateAction: (type: string, ...args) => {
|
return {
|
action: 'drawer', //drawer(打开左侧抽屉框) | go(跳转到新的页面)
|
};
|
// const colSlots = args[0];
|
// return {
|
// action: 'go', //drawer(打开左侧抽屉框) | go(跳转到新的页面) | edit(如果是表格可编辑页面就是自定义方法)
|
// url: 'BAS_LABEL_VAR/High',
|
// params: {
|
// CODE: '0',
|
// ID: buildUUID(),
|
// Name: 'BAS_LABEL_VAR', //实体名
|
// Title: '新增模板', //标题
|
// pCode: 'LABEL_CODE', //主信息关键字段CODE
|
// IsID: true, //是否带过去侧边框的是ID,false就是CODE,true是ID
|
// colSlots: colSlots,
|
// colSlotsInHigh: ['BAS_LABEL_VAR1add', 'BAS_LABEL_VAR2add'],
|
// drawers: [
|
// {
|
// name: 'BAS_LABEL_VAR', //实体名
|
// code: 'LABEL_ID', //传递过去高级表单页面的关键字段名
|
// type: 'one', //one-表示需要code的一个值,默认是这个
|
// keyName: 'BAS_LABEL_VAR', //关键表名(实体名)
|
// order: 'VAR_NAME', //排序
|
// showTbButton: false, //是否显示工具栏按钮
|
// FnName: '', //自定义方法名
|
// },
|
// {
|
// name: 'BAS_LABEL_VAR_WO', //实体名
|
// code: 'LABEL_ID', //传递过去高级表单页面的关键字段名
|
// type: 'one', //all-表示需要code的所有的值
|
// keyName: 'BAS_LABEL_VAR_WO', //关键表名(实体名)
|
// order: '',
|
// showTbButton: true, //是否显示工具栏按钮
|
// FnName: 'AddRow', //自定义方法名
|
// },
|
// ], //drawers是右边弹出增改侧框的名字列表,及按钮的执行方法
|
// },
|
// };
|
},
|
/**
|
* @description: 操作字段自定义按钮
|
* @return {*}
|
*/
|
ActionItem: (params: Recordable<any>, data, ...args): ActionItem[] => {
|
data.map((x) => {
|
if (x.name == 'goDetail') {
|
x.onClick = goDetail.bind(null, args[5], params);
|
x.tooltip = '模板变量';
|
}
|
if (x.name == 'Delete') {
|
x.popConfirm.confirm = Del.bind(null, args, params);
|
x.tooltip = '删除';
|
}
|
});
|
return data;
|
},
|
GetUseForm: () => {
|
return {};
|
},
|
/**
|
* @description: 自定义方法
|
* @param {string} type
|
* @param {array} args
|
* @return {*}
|
*/
|
CustFunc: (param: CustModalParams) => {
|
const webSocketStore = useWebSocketStore();
|
if (webSocketStore.GetSocketState == 1 && param.values['TEMP_TYPE'] == 0) {
|
webSocketStore.sendMessage(
|
`wsSubStrings ${param.values['ID']}_#_${param.values['TEMP_PATH']}`,
|
);
|
}
|
},
|
/**
|
* @description: 选择过程变量弹出选择框成功返回赋值方法
|
* @param {*} d
|
* @param {*} u
|
* @return {*}
|
*/
|
GetSelectSuccess: (d, u) => {
|
return {
|
LABEL_CODE: d.values['val'],
|
};
|
},
|
/**
|
* @description: 打开客户弹出选择框
|
* @param {Fn} openItemModal
|
* @param {array} args
|
* @return {*}
|
*/
|
OpenSelectItem: (openItemModal: Fn, ...args) => {
|
openItemModal(true, {
|
title: '打印模板列表',
|
schemas: [
|
{
|
field: 'LABEL_CODE',
|
component: 'Input',
|
label: '模板编码',
|
colProps: {
|
span: 12,
|
},
|
},
|
],
|
ItemColumns: [
|
{
|
title: t('模板编码'),
|
dataIndex: 'LABEL_CODE',
|
resizable: true,
|
sorter: true,
|
width: 200,
|
},
|
{
|
title: t('模板名称'),
|
dataIndex: 'LABEL_NAME',
|
resizable: true,
|
sorter: true,
|
width: 180,
|
},
|
],
|
tableName: 'BAS_LABEL_TEMP',
|
rowKey: 'LABEL_CODE',
|
searchInfo: { TABLE_NAME: 'BAS_LABEL_TEMP' },
|
});
|
},
|
};
|
|
/* 以下是内部方法,不export,供上面的方法调用 */
|
|
/**
|
* @description: 跳转到详情页面方法
|
* @param {Fn} go
|
* @return {*}
|
*/
|
function goDetail(go: Fn, params: Recordable) {
|
const id = {
|
CODE: params['record']['LABEL_CODE'],
|
ID: params['record']['ID'],
|
Name: 'BAS_LABEL_VAR',
|
SessionName: 'BAS_LABEL_VAR_update',
|
Title: `编辑模板${params['record']['LABEL_CODE']}的变量`,
|
pCode: 'LABEL_CODE',
|
IsID: true,
|
ifSave: false,
|
colSlots: params['colSlots'].value, //['BAS_LABEL_VAR1add', 'BAS_LABEL_VAR2add'],
|
colSlotsInHigh: ['BAS_LABEL_VAR1add', 'BAS_LABEL_VAR2add'],
|
drawers: [
|
{
|
name: 'BAS_LABEL_VAR',
|
code: 'LABEL_ID',
|
type: 'one',
|
keyName: 'BAS_LABEL_VAR',
|
order: 'VAR_NAME',
|
showTbButton: true,
|
FnName: 'AddRow',
|
},
|
// {
|
// name: 'BAS_LABEL_VAR_WO',
|
// code: 'LABEL_ID',
|
// type: 'one',
|
// keyName: 'BAS_LABEL_VAR_WO',
|
// order: '',
|
// showTbButton: true,
|
// FnName: 'AddRow',
|
// },
|
], //drawers是右边弹出增改侧框的名字列表
|
};
|
// const webSocketStore = useWebSocketStore();
|
// if (webSocketStore.GetSocketState == 1) {
|
// webSocketStore.sendMessage(
|
// `wsSubStrings 1d441e20c43a469286319de9b0df5d7b_#_http://localhost:8800/files/10位唯一ID.btw`,
|
// );
|
// }
|
// 将对象转换为JSON字符串并保存到sessionStorage
|
sessionStorage.removeItem(`${id.SessionName}_params`);
|
sessionStorage.setItem(`${id.SessionName}_params`, encodeURI(JSON.stringify(id)));
|
go(
|
`/BAS_LABEL_VAR/High/${encodeURI(JSON.stringify({ sName: id.SessionName, Name: id.Name }))}`,
|
);
|
}
|
|
/**
|
* @description: 自定义删除方法
|
* @param {Fn} args
|
* @param {*} params
|
* @return {*}
|
*/
|
function Del(args: Fn[], params: {}) {
|
const reload = args[1];
|
DeleteLabelTemplate(params['record']['ID']).then((action) => {
|
if (action.IsSuccessed) {
|
reload();
|
}
|
});
|
}
|
|
return [methods, ActionColumn];
|
}
|
|
export default _default;
|