Commit 4d535a31 by 齐伟伦

Merge remote-tracking branch 'origin/weiqiao-vue3' into weiqiao-vue3

parents 1f0b6cff bea303af
...@@ -17,6 +17,12 @@ export interface MesWarehouseProductNumberPageParams extends BasicPageParams { ...@@ -17,6 +17,12 @@ export interface MesWarehouseProductNumberPageParams extends BasicPageParams {
kxs: string; kxs: string;
erpid: string; erpid: string;
dqsj: string;
tqyjts: string;
bz: string;
} }
/** /**
...@@ -46,6 +52,12 @@ export interface MesWarehouseProductNumberPageModel { ...@@ -46,6 +52,12 @@ export interface MesWarehouseProductNumberPageModel {
erpid: string; erpid: string;
bz: string; bz: string;
cpbh: string;
dqsj: string;
tqyjts: string;
} }
/** /**
...@@ -112,6 +124,10 @@ export interface MesWarehouseProductNumberModel { ...@@ -112,6 +124,10 @@ export interface MesWarehouseProductNumberModel {
modifyUserId: string; modifyUserId: string;
dqsj: string;
tqyjts: string;
mesWarehouseProductNumInfoList?: MesWarehouseProductNumInfoModel; mesWarehouseProductNumInfoList?: MesWarehouseProductNumInfoModel;
} }
......
...@@ -730,6 +730,72 @@ export const formProps: FormProps = { ...@@ -730,6 +730,72 @@ export const formProps: FormProps = {
], ],
}, },
{ {
span: 8,
list: [
{
key: '749c23841dd84b2c994bf00fcb546dd4',
field: 'dqsj',
label: '到期时间',
type: 'date',
component: 'DatePicker',
colProps: { span: 24 },
defaultValue: '',
componentProps: {
span: 7,
defaultValue: '',
width: '100%',
placeholder: '请选择到期时间',
format: 'YYYY-MM-DD HH:mm:ss',
showLabel: true,
allowClear: true,
disabled: false,
required: false,
isShow: true,
rules: [],
events: {},
isGetCurrent: false,
tooltipConfig: { visible: false, title: '提示文本' },
searchType: 'time',
style: { width: '100%' },
},
},
],
},
{
span: 8,
list: [
{
key: '25477fb57417425195a30e82c266c670',
field: 'tqyjts',
label: '提前预警天数',
type: 'number',
component: 'InputNumber',
colProps: { span: 24 },
defaultValue: '',
componentProps: {
width: '100%',
span: 7,
defaultValue: '',
min: 0,
max: 100,
step: 1,
maxlength: null,
disabled: false,
showLabel: true,
controls: true,
required: false,
subTotal: false,
isShow: true,
rules: [],
events: {},
placeholder: '请输入提前预警天数',
tooltipConfig: { visible: false, title: '提示文本' },
style: { width: '100%' },
},
},
],
},
{
span: 24, span: 24,
list: [ list: [
{ {
...@@ -774,7 +840,7 @@ export const formProps: FormProps = { ...@@ -774,7 +840,7 @@ export const formProps: FormProps = {
colProps: { span: 24 }, colProps: { span: 24 },
componentProps: { componentProps: {
api: uploadApi, api: uploadApi,
span: 2, span: 3,
defaultValue: '', defaultValue: '',
accept: '', accept: '',
maxNumber: 5, maxNumber: 5,
......
...@@ -173,6 +173,40 @@ export const permissionList = [ ...@@ -173,6 +173,40 @@ export const permissionList = [
disabled: false, disabled: false,
isSaveTable: false, isSaveTable: false,
tableName: '', tableName: '',
fieldName: '到期时间',
fieldId: 'dqsj',
isSubTable: false,
showChildren: true,
type: 'date',
key: '749c23841dd84b2c994bf00fcb546dd4',
children: [],
options: {},
defaultValue: '',
},
{
required: false,
view: true,
edit: true,
disabled: false,
isSaveTable: false,
tableName: '',
fieldName: '提前预警天数',
fieldId: 'tqyjts',
isSubTable: false,
showChildren: true,
type: 'number',
key: '25477fb57417425195a30e82c266c670',
children: [],
options: {},
defaultValue: '',
},
{
required: false,
view: true,
edit: true,
disabled: false,
isSaveTable: false,
tableName: '',
fieldName: '备注', fieldName: '备注',
fieldId: 'bz', fieldId: 'bz',
isSubTable: false, isSubTable: false,
......
...@@ -202,6 +202,7 @@ ...@@ -202,6 +202,7 @@
title: '操作', title: '操作',
dataIndex: 'action', dataIndex: 'action',
slots: { customRender: 'action' }, slots: { customRender: 'action' },
className: 'action-column-cell',
}, },
tableSetting: { tableSetting: {
size: false, size: false,
...@@ -287,8 +288,11 @@ ...@@ -287,8 +288,11 @@
function customRow(record: Recordable) { function customRow(record: Recordable) {
//判断行数据是否需要变红
const isRedRow = isNeedWarn(record);
return { return {
// 核心修改:添加类名,而非行内style
class: isRedRow ? 'red-row' : '',
ondblclick: () => { ondblclick: () => {
if (record.isCanEdit && hasPermission("kczb:edit")) { if (record.isCanEdit && hasPermission("kczb:edit")) {
handleEdit(record); handleEdit(record);
...@@ -297,6 +301,37 @@ ...@@ -297,6 +301,37 @@
}; };
} }
/**
* 计算是否需要预警(变红)的函数
* @param record
*/
function isNeedWarn(record: Recordable): boolean {
// 1. 校验字段是否存在,避免报错
if (!record.dqsj || !record.tqyjts) return false;
// 2. 解析到期时间(兼容字符串/时间戳)
const dqsjDate = new Date(record.dqsj);
// 校验时间格式是否合法
if (isNaN(dqsjDate.getTime())) return false;
// 3. 当前时间(取当天0点,避免时分秒干扰)
const now = new Date();
// 4. 计算到期时间 - 当前时间的毫秒差 → 转换为天数
const timeDiff = dqsjDate.getTime() - now.getTime();
const dayDiff = Math.ceil(timeDiff / (1000 * 60 * 60 * 24)); // 向上取整(比如剩余1.2天算2天)
// 5. 判断:天数差 < 提前预警天数且数量>0 需要预警(变红)
// 补充:如果到期时间已过(dayDiff < 0),也强制变红
let isNeedWarn = false;
if (record.sl && record.sl > 0) {
if (dayDiff < record.tqyjts || dayDiff < 0) {
isNeedWarn = true;
}
}
return isNeedWarn;
}
function handleSuccess() { function handleSuccess() {
...@@ -379,7 +414,23 @@ ...@@ -379,7 +414,23 @@
display: none !important; display: none !important;
} }
// 其他样式不变,修改预警行样式
:deep(.ant-table-tbody > tr.red-row) {
td {
background-color: #ff4d4f !important;
color: black !important;
}
// 覆盖操作列样式
td.action-column-cell {
background-color: white !important;
color: black !important;
}
/*&:hover td {
background-color: #ff1f1f !important;
}
&:hover td.action-column-cell {
background-color: white !important;
}*/
}
</style> </style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment