update: 修复定价中保存图片问题

This commit is contained in:
admin 2024-07-20 11:15:39 +08:00
parent 58e2cb435b
commit b23ad4b28a
4 changed files with 22 additions and 34 deletions

View File

@ -44,24 +44,6 @@
</text> </text>
</template> </template>
</u-input> </u-input>
<u-input
v-if="item.type === 'number'"
v-model="(model1.formData as any)[item.key]"
:placeholder="`请输入${
item.name
}`"
clearable
:customStyle="{}"
border="none"
@change="(e:any) => {handleInput(e, item)}"
@clear="handleClear(item)"
>
<template #suffix>
<text>
{{ item.unit }}
</text>
</template>
</u-input>
<template #right v-if="item.type === 'select'"> <template #right v-if="item.type === 'select'">
<u-icon name="arrow-right"></u-icon> <u-icon name="arrow-right"></u-icon>
</template> </template>
@ -86,7 +68,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { GoodsApi } from "@/services"; import { GoodsApi } from "@/services";
import { countDots } from "@/utils"; import { countDots, isTwoDecimalPlaces } from "@/utils";
import valid from "@/utils/validate"; import valid from "@/utils/validate";
import { onLoad } from "@dcloudio/uni-app"; import { onLoad } from "@dcloudio/uni-app";
import _ from "underscore"; import _ from "underscore";
@ -97,20 +79,18 @@ const handleClear = (item: any) => {
const handleInput = (e: any, item: any) => { const handleInput = (e: any, item: any) => {
if (["minPrice", "maxPrice", "commonPrice"].indexOf(item.key) > -1) { if (["minPrice", "maxPrice", "commonPrice"].indexOf(item.key) > -1) {
const temp = e?.replace(valid.valid_decimal.pattern, ""); const temp = e?.replace(valid.valid_decimal.pattern, "");
if (!valid.valid_decimal2.pattern.test(temp)) { if (countDots(temp) > 1) {
uni.showToast({
title: "请输入正确的" + item.name + ", 且最多保留2位小数",
icon: "none",
});
return;
}
if (countDots(temp).length > 1) {
uni.showToast({ uni.showToast({
title: "请输入正确的" + item.name, title: "请输入正确的" + item.name,
icon: "none", icon: "none",
}); });
} else if(countDots(temp) === 1 && (isTwoDecimalPlaces(temp))) {
uni.showToast({
title: item.name + "最多只能输入2位小数",
icon: "none",
});
} }
setTimeout(() => { setTimeout(() => {
model1.formData[item.key] = temp; model1.formData[item.key] = temp;
}, 10); }, 10);
@ -185,21 +165,21 @@ const formAttrList = reactive<any>([
{ {
name: "最低价", name: "最低价",
key: "minPrice", key: "minPrice",
type: "number", type: "input",
required: false, required: false,
unit: "", unit: "",
}, },
{ {
name: "最高价", name: "最高价",
key: "maxPrice", key: "maxPrice",
type: "number", type: "input",
required: false, required: false,
unit: "", unit: "",
}, },
{ {
name: "常用价格", name: "常用价格",
key: "commonPrice", key: "commonPrice",
type: "number", type: "input",
required: false, required: false,
unit: "", unit: "",
}, },

View File

@ -68,7 +68,7 @@ export const http = <T>(options: UniApp.RequestOptions) => {
// #endif // #endif
}, },
timeout: 1800000, timeout: 1800000,
url: baseUrl + '/test/sh0001' + options.url, //仅为示例,非真实的接口地址 url: options.url, //仅为示例,非真实的接口地址
fileType: "image", fileType: "image",
// #ifdef H5 // #ifdef H5
files: (options as any).data.files, files: (options as any).data.files,

View File

@ -269,7 +269,15 @@ export function formatMoney(
export function countDots(str: any) { export function countDots(str: any) {
return (str.match(/\./g) || []).length; return (str.match(/\./g) || []).length;
} }
export function isTwoDecimalPlaces(num:any) {
// 转换为字符串并移除可能的符号
const str = num.toString().replace(/[-]+/g, '');
// 分割整数部分和小数部分
const parts = str.split('.');
console.log(parts)
// 如果小数点后有两位数字返回true
return parts.length === 2 && parts[1].length > 2;
}
export function validateRegex(regexValue: string, value: string) { export function validateRegex(regexValue: string, value: string) {
const regex = new RegExp(regexValue); const regex = new RegExp(regexValue);
return regex.test(value); return regex.test(value);

View File

@ -27,7 +27,7 @@ const valid = {
message: "请输入正确的数字", message: "请输入正确的数字",
}, },
valid_decimal2: { valid_decimal2: {
pattern: /^\d+(\.\d{1,2})?$/, pattern: /([1-9]+[\d]*(\.[0-9]{0,2})?)/,
message: "请输入正确的数字", message: "请输入正确的数字",
}, },
valid_id_card: { valid_id_card: {