From 89380e6260a75d1d3b94de687ebcc2f50d50659d Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Tue, 03 Feb 2026 15:44:33 +0800
Subject: [PATCH] feat:环境变量配置调整

---
 packages/utils/common/index.js |   55 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 50 insertions(+), 5 deletions(-)

diff --git a/packages/utils/common/index.js b/packages/utils/common/index.js
index 7f36aa7..2fe1b9c 100644
--- a/packages/utils/common/index.js
+++ b/packages/utils/common/index.js
@@ -1,18 +1,51 @@
-export function fieldRules(required,isSelect = false, max = 50, ) {
+/*
+ * @Author       : yuan
+ * @Date         : 2026-01-20 17:01:20
+ * @LastEditors  : yuan
+ * @LastEditTime : 2026-01-20 17:20:21
+ * @FilePath     : \packages\utils\common\index.js
+ * @Description  :
+ * Copyright 2026 OBKoro1, All Rights Reserved.
+ * 2026-01-20 17:01:20
+ */
+export function fieldRules(required,max) {
+// export function fieldRules({ required = true, isSelect = false, max = 50,type = 'string' }) {
 	const trigger = ['blur', 'change']
 	const rules = []
+	const isInput = typeof max === 'number'
 	if (required) {
-		rules.push({ required: true, message: isSelect ? '请选择' : '请输入', trigger, })
+		rules.push({ required: true, message: isInput ? '请输入' : '请选择', trigger })
 	}
-	if (!isSelect) {
+	if (isInput) {
 		rules.push({ max, message: `长度不超过${max}`, trigger })
 	}
 	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 function getDictLabel(value, dictList) {
-	return dictList.find(item => item.dictKey === value)?.dictValue || 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(',');
+	return dictList
+		.filter(item => values.includes(String(item.dictKey)))
+		.map(item => item.dictValue)
+		.join(',');
 }
 
 export function blobDownload(res) {
@@ -28,3 +61,15 @@
 	elink.click()
 	document.body.removeChild(elink)
 }
+
+export function geomAnalysis(str) {
+	if (!str) return []
+	return str
+		.replace('POLYGON((', '')
+		.replace('))', '')
+		.split(',')
+		.map(pair => {
+			const [longitude, latitude] = pair.trim().split(' ').map(Number)
+			return { longitude, latitude }
+		})
+}

--
Gitblit v1.9.3