From bbf6d58d453cda88220d8513e98df808a698c7c7 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Tue, 03 Feb 2026 11:38:32 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
applications/drone-command/src/utils/validate.js | 38 +++++++++++--------
applications/drone-command/src/views/basicManage/deviceStock/FormDiaLog.vue | 4 +-
applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/FormDiaLog.vue | 3 +
packages/utils/common/index.js | 17 ++++++++
applications/task-work-order/src/styles/common/cockpit.scss | 30 +++++++++++++++
applications/drone-command/src/views/areaManage/precinctInfo/FormDiaLog.vue | 4 +-
applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/ViewDiaLog.vue | 2
applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue | 2
applications/drone-command/src/views/basicManage/deviceStock/DeviceTrackDiaLog.vue | 4 +-
applications/drone-command/src/views/aICrudTemplate/FormDiaLog.vue | 4 +-
10 files changed, 82 insertions(+), 26 deletions(-)
diff --git a/applications/drone-command/src/utils/validate.js b/applications/drone-command/src/utils/validate.js
index ff19e76..336a976 100644
--- a/applications/drone-command/src/utils/validate.js
+++ b/applications/drone-command/src/utils/validate.js
@@ -176,24 +176,30 @@
* 判断手机号码是否正确
*/
export function isvalidatemobile(phone) {
- let list = [];
- let result = true;
+ const list = [];
+ let result = true; // true=不通过(保持你的语义)
let msg = '';
- var isPhone = /^0\d{2,3}-?\d{7,8}$/;
- //增加134 减少|1349[0-9]{7},增加181,增加145,增加17[678]
- if (!validatenull(phone)) {
- if (phone.length === 11) {
- if (isPhone.test(phone)) {
- msg = '手机号码格式不正确';
- } else {
- result = false;
- }
- } else {
- msg = '手机号码长度不为11位';
- }
- } else {
- msg = '手机号码不能为空';
+
+ const raw = String(phone ?? '').trim();
+ if (!raw) {
+ return [true, '手机号不能为空'];
}
+
+ // 1) 归一化:去空格/括号/短横线
+ // 2) 去掉 +86/86 前缀
+ const value = raw
+ .replace(/[\s()()-]+/g, '')
+ .replace(/^(?:\+?86)/, '');
+
+ // 只允许纯数字11位手机号
+ const mobile = /^1[3-9]\d{9}$/;
+
+ if (mobile.test(value)) {
+ result = false; // 通过
+ } else {
+ msg = '手机号格式不正确';
+ }
+
list.push(result);
list.push(msg);
return list;
diff --git a/applications/drone-command/src/views/aICrudTemplate/FormDiaLog.vue b/applications/drone-command/src/views/aICrudTemplate/FormDiaLog.vue
index c9246e6..2fa4a20 100644
--- a/applications/drone-command/src/views/aICrudTemplate/FormDiaLog.vue
+++ b/applications/drone-command/src/views/aICrudTemplate/FormDiaLog.vue
@@ -102,7 +102,7 @@
import { ElMessage } from 'element-plus'
import { fwDeviceDetailApi, fwDeviceSubmitApi } from '@/views/aICrudTemplate/aICrudTemplateApi'
import { getUserListApi } from '@/api/system/user'
-import { fieldRules } from '@ztzf/utils'
+import { contactPhoneRules, fieldRules } from '@ztzf/utils'
const initForm = () => ({
belongDept: '', // 所属部门
@@ -136,7 +136,7 @@
deviceAtt: fieldRules(true),
deviceModel: fieldRules(true, 50),
belongDept: fieldRules(true),
- contactPhone: fieldRules(true, 50),
+ contactPhone: contactPhoneRules(true, 50),
charger: fieldRules(true),
}
diff --git a/applications/drone-command/src/views/areaManage/precinctInfo/FormDiaLog.vue b/applications/drone-command/src/views/areaManage/precinctInfo/FormDiaLog.vue
index 9875138..88f41ae 100644
--- a/applications/drone-command/src/views/areaManage/precinctInfo/FormDiaLog.vue
+++ b/applications/drone-command/src/views/areaManage/precinctInfo/FormDiaLog.vue
@@ -114,7 +114,7 @@
import { computed, nextTick, ref, watch } from 'vue'
import { ElMessage } from 'element-plus'
import { fwPoliceStationDetailApi, fwPoliceStationSubmitApi } from './precinctInfoApi'
-import { fieldRules } from '@ztzf/utils'
+import { contactPhoneRules, fieldRules } from '@ztzf/utils'
import CommonCesiumMap from '@/components/map-container/common-cesium-map.vue'
import * as Cesium from 'cesium'
import axios from 'axios'
@@ -147,7 +147,7 @@
address: fieldRules(true, 50),
stationName: fieldRules(true, 50),
contactPerson: fieldRules(true, 50),
- contactPhone: fieldRules(true, 50),
+ contactPhone: contactPhoneRules(true, 50),
longitude: fieldRules(true),
}
diff --git a/applications/drone-command/src/views/basicManage/deviceStock/DeviceTrackDiaLog.vue b/applications/drone-command/src/views/basicManage/deviceStock/DeviceTrackDiaLog.vue
index 1f905b1..13edcb7 100644
--- a/applications/drone-command/src/views/basicManage/deviceStock/DeviceTrackDiaLog.vue
+++ b/applications/drone-command/src/views/basicManage/deviceStock/DeviceTrackDiaLog.vue
@@ -67,7 +67,7 @@
import { ElMessage } from 'element-plus'
import { getUserListApi } from '@/api/system/user'
import { getLazyTree } from '@/api/base/region'
-import { fieldRules } from '@ztzf/utils'
+import { contactPhoneRules, fieldRules } from '@ztzf/utils'
import { fwDeviceTrackSubmitApi } from '@/views/basicManage/deviceStock/fwDeviceTrackApi'
import { saveOperationLog } from '@ztzf/apis'
import { useRoute } from 'vue-router'
@@ -101,7 +101,7 @@
const rules = {
charger: fieldRules(true), // 负责人
- contactPhone: fieldRules(true, 50), // 联系电话
+ contactPhone: contactPhoneRules(true, 50), // 联系电话
outTarget: fieldRules(true, 50),
outTime: fieldRules(true),
purpose: fieldRules(true, 50), // 用途
diff --git a/applications/drone-command/src/views/basicManage/deviceStock/FormDiaLog.vue b/applications/drone-command/src/views/basicManage/deviceStock/FormDiaLog.vue
index 8d86c69..92a83a7 100644
--- a/applications/drone-command/src/views/basicManage/deviceStock/FormDiaLog.vue
+++ b/applications/drone-command/src/views/basicManage/deviceStock/FormDiaLog.vue
@@ -183,7 +183,7 @@
import { ElMessage } from 'element-plus'
import { fwDeviceDetailApi, fwDeviceSubmitApi } from '@/views/basicManage/deviceStock/fwDevice'
import { getUserListApi } from '@/api/system/user'
-import { fieldRules, getDictLabel } from '@ztzf/utils'
+import { contactPhoneRules, fieldRules, getDictLabel } from '@ztzf/utils'
import { fwDeviceTrackPageApi } from '@/views/basicManage/deviceStock/fwDeviceTrackApi'
import { saveOperationLog } from '@ztzf/apis'
import { useRoute } from 'vue-router'
@@ -244,7 +244,7 @@
source: fieldRules(true, 50),
purpose: fieldRules(true, 50),
belongDept: fieldRules(true),
- contactPhone: fieldRules(true, 50),
+ contactPhone: contactPhoneRules(true, 50),
charger: fieldRules(true),
}
diff --git a/applications/task-work-order/src/styles/common/cockpit.scss b/applications/task-work-order/src/styles/common/cockpit.scss
index 71ed3a3..b6af6e4 100644
--- a/applications/task-work-order/src/styles/common/cockpit.scss
+++ b/applications/task-work-order/src/styles/common/cockpit.scss
@@ -1176,6 +1176,35 @@
}
.gd-dialog-form {
+ // 最后一排不需要设置 margin-bottom
+ // border: 1px solid red;
+ // 倒数第二个也设置为0
+ // .el-col:nth-last-child(2) {
+ // margin-bottom: 0;
+ // }
+ // .el-col:nth-last-child(1) {
+ // margin-bottom: 0;
+ // }
+
+ // .el-form-item:nth-last-child(2) {
+ // margin-bottom: 0;
+ // }
+ // .el-form-item:nth-last-child(1) {
+ // margin-bottom: 0;
+ // }
+ .gd-select {
+ .el-select__wrapper {
+ height: 36px;
+ }
+ }
+
+ .gd-date-picker {
+ height: 36px;
+ }
+
+ .gd-input {
+ height: 36px;
+ }
.el-input,
.el-input-number {
min-width: 200px;
@@ -1187,6 +1216,7 @@
.el-input__inner {
text-align: left;
+ color: #383874;
&::placeholder {
text-align: left;
diff --git a/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/FormDiaLog.vue b/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/FormDiaLog.vue
index eb42fdc..8529787 100644
--- a/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/FormDiaLog.vue
+++ b/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/FormDiaLog.vue
@@ -477,6 +477,9 @@
color: #f56c6c;
margin-right: 4px;
}
+:deep(.el-table__header th) {
+ font-weight: normal !important;
+}
.grayText {
color: #9f9f9f !important;
diff --git a/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/ViewDiaLog.vue b/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/ViewDiaLog.vue
index 105b3bc..d5e84a7 100644
--- a/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/ViewDiaLog.vue
+++ b/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/ViewDiaLog.vue
@@ -92,7 +92,7 @@
</div>
<!-- 编辑模式 -->
- <el-form class="gd-dialog-form" v-else ref="formRef" :model="formData" :rules="rules" label-width="110px">
+ <el-form class="gd-dialog-form" v-else ref="formRef" :model="formData" :rules="rules" label-width="130px">
<div class="detail-title">巡查任务详情</div>
<el-row>
<el-col :span="12">
diff --git a/applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue b/applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue
index e5aaf96..2acc032 100644
--- a/applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue
+++ b/applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue
@@ -141,7 +141,7 @@
<el-input
class="gd-input"
type="textarea"
- :rows="4"
+ :rows="3"
v-model="formData.remark"
placeholder="请输入"
clearable
diff --git a/packages/utils/common/index.js b/packages/utils/common/index.js
index 43fcec6..2fe1b9c 100644
--- a/packages/utils/common/index.js
+++ b/packages/utils/common/index.js
@@ -22,6 +22,23 @@
return rules
}
+const isContactPhone = value => {
+ const mobile = /^1[3-9]\d{9}$/
+ const landline = /^0\d{2,3}-?\d{7,8}$/
+ return mobile.test(value) || landline.test(value)
+}
+
+export const contactPhoneRules = (required = true, max = 50) => {
+ const validateContactPhone = (rule, value, callback) => {
+ const nextValue = String(value || '').trim()
+ if (!nextValue) return callback()
+ if (isContactPhone(nextValue)) return callback()
+ return callback(new Error('联系电话格式不正确'))
+ }
+
+ return [...fieldRules(required, max), { validator: validateContactPhone, trigger: ['blur', 'change'] }]
+}
+
export function getDictLabel(value, dictList = []) {
if (value === null || value === undefined || value === '') return '';
const values = String(value).split(',');
--
Gitblit v1.9.3