Merge remote-tracking branch 'origin/master' into feature/hcs-api-p0-web

# Conflicts:
#	src/views/business/contract-manage-change.vue
This commit is contained in:
刘泉佳
2026-10-23 19:20:12 +08:00
27 changed files with 1924 additions and 572 deletions
+1
View File
@@ -42,6 +42,7 @@ export const waybillStatusOptions = [
{ label: '草稿', value: 'draft' },
{ label: '待执行', value: 'pending' },
{ label: '进行中', value: 'running' },
{ label: '待确认回单', value: 'pending_return' },
{ label: '已完成', value: 'completed' },
{ label: '已取消', value: 'cancelled' },
];
+17 -3
View File
@@ -478,7 +478,15 @@ export const config = {
formatStatus(row, prop, defaultText) {
if (prop !== 'businessStatus') return defaultText;
const status = String(row.businessStatus || '');
const terminalStatuses = ['draft', 'completed', 'cancelled', 'waiting_dispatch', 'dispatching'];
const terminalStatuses = [
'draft',
'completed',
'cancelled',
'waiting_dispatch',
'dispatching',
'pending_return',
];
if (status === 'pending_return') return '待确认回单';
const needAccept =
row.requireAccept === true ||
row.requireAccept === 1 ||
@@ -497,14 +505,20 @@ export const config = {
getDriverRejectReason,
isDriverRejectedWaybill,
canEdit(row) {
// 进行中的运单不允许编辑
// 进行中、待确认回单不允许编辑
if (isInProgressStatus(row, row.businessStatusName)) {
return false;
}
if (String(row.businessStatus || '') === 'pending_return') {
return false;
}
return !isDriverRejectedWaybill(row);
},
canCancel(row) {
// 进行中的运单不允许取消
// 进行中、待确认回单不允许取消
if (String(row.businessStatus || '') === 'pending_return') {
return false;
}
return !isInProgressStatus(row, row.businessStatusName);
},
deleteStatus: ['draft'],
+61
View File
@@ -14,6 +14,11 @@ const validatePhone = (rule, value, callback) => {
callback(new Error('请输入手机号'));
return;
}
// 详情回显为脱敏手机号(含 *)时放行,未修改则提交时剔除该字段
if (phone.includes('*')) {
callback();
return;
}
if (!/^1\d{10}$/.test(phone)) {
callback(new Error('请输入正确的手机号'));
return;
@@ -121,6 +126,62 @@ export default {
order: 60,
rules: [{ required: true, message: '请选择小程序身份', trigger: 'change' }],
},
{
label: '所属组织',
prop: 'deptId',
formslot: true,
hide: true,
span: 24,
order: 55,
rules: [{ required: true, message: '请选择所属组织', trigger: 'change' }],
},
{
label: '所属组织',
prop: 'deptName',
minWidth: 180,
overHidden: true,
addDisplay: false,
editDisplay: false,
viewDisplay: false,
order: 54,
},
{
label: '数据权限范围',
prop: 'dataScopeRange',
type: 'radio',
span: 24,
hide: true,
order: 53,
value: 1,
dicData: [
{ label: '仅所属组织', value: 1 },
{ label: '全部组织', value: 2 },
{ label: '自定义', value: 3 },
],
rules: [{ required: true, message: '请选择数据权限范围', trigger: 'change' }],
},
{
label: '数据层级范围',
prop: 'dataLevelRange',
type: 'radio',
span: 24,
hide: true,
order: 52,
value: 1,
dicData: [
{ label: '包含下级', value: 1 },
{ label: '仅本级', value: 2 },
],
rules: [{ required: true, message: '请选择数据层级范围', trigger: 'change' }],
},
{
label: '数据权限',
prop: 'dataScopeDeptIds',
formslot: true,
span: 24,
hide: true,
order: 51,
},
{
label: '性别',
prop: 'sex',