* 'master' of https://gitee.com/ZhongBangKeJi/crmeb_java:
  fix: 优品推荐请求不登录可以访问修改。
  fix:修改商品添加中商品的价格校验,最小值为0.01,库存正整数。
  fix:修改商品添加中商品的价格校验,最小值为0.01,库存正整数。
  update README.md.
This commit is contained in:
337031187
2023-09-11 10:07:26 +08:00
3 changed files with 41 additions and 34 deletions

View File

@@ -99,7 +99,7 @@ CRMEB开源商城PHPhttps://gitee.com/ZhongBangKeJi/CRMEB
--- ---
### 系统演示: ### 🎬 系统演示:
![](crmeb/crmebimage/crmebimage/demoimage/c1.jpg) ![](crmeb/crmebimage/crmebimage/demoimage/c1.jpg)
移动端https://java.crmeb.net<br> 移动端https://java.crmeb.net<br>
WEBPC管理端https://admin.java.crmeb.net<br> WEBPC管理端https://admin.java.crmeb.net<br>
@@ -113,7 +113,7 @@ WEBPC管理端https://admin.java.crmeb.net<br>
--- ---
### 系统资料 ### 📃 系统资料
需要系统文档的朋友看过来,安装文档、产品介绍、技术文档...你想要的我都有! 需要系统文档的朋友看过来,安装文档、产品介绍、技术文档...你想要的我都有!
[https://doc.crmeb.com/java/crmeb_java](https://doc.crmeb.com/java/crmeb_java) [https://doc.crmeb.com/java/crmeb_java](https://doc.crmeb.com/java/crmeb_java)
@@ -123,13 +123,13 @@ WEBPC管理端https://admin.java.crmeb.net<br>
--- ---
### UI界面 ### 💟 UI界面
#### 核心功能 #### 核心功能
![](crmeb/crmebimage/crmebimage/demoimage/javaop2.jpg) ![](crmeb/crmebimage/crmebimage/demoimage/javaop2.jpg)
### 移动端预览 ### 📱 移动端预览
![](crmeb/crmebimage/crmebimage/demoimage/03-mobile-01.png) ![](crmeb/crmebimage/crmebimage/demoimage/03-mobile-01.png)
![](crmeb/crmebimage/crmebimage/demoimage/04-mobile-02.png) ![](crmeb/crmebimage/crmebimage/demoimage/04-mobile-02.png)
![](crmeb/crmebimage/crmebimage/demoimage/05-mobile-03.png) ![](crmeb/crmebimage/crmebimage/demoimage/05-mobile-03.png)
@@ -148,18 +148,18 @@ WEBPC管理端https://admin.java.crmeb.net<br>
--- ---
### CRMEB互动 ### 📲 CRMEB互动
#### 技术娱乐 #### 技术娱乐
代码写累了?那就歇会吧!扫码让你开心一刻! 代码写累了?那就歇会吧!扫码让你开心一刻!
![](crmeb/crmebimage/crmebimage/demoimage/crmebdouyin.jpg) ![](crmeb/crmebimage/crmebimage/demoimage/crmebdouyin.jpg)
#### 技术社区 #### 📈 技术社区
找方法、提bug、看官方消息、拿活跃大奖 找方法、提bug、看官方消息、拿活跃大奖
https://www.crmeb.com/ask/thread/list/152 https://www.crmeb.com/ask/thread/list/152
#### 技术交流 #### 📞 技术交流
跟着官方不迷路欢迎扫码加入CRMEB 开源项目群,一手消息及资源,尽在掌握!<br> 跟着官方不迷路欢迎扫码加入CRMEB 开源项目群,一手消息及资源,尽在掌握!<br>
CRMEB JAVA 技术交流QQ群 1群 🈵️<br> CRMEB JAVA 技术交流QQ群 1群 🈵️<br>
CRMEB JAVA 技术交流QQ群 2群 🈵️<br> CRMEB JAVA 技术交流QQ群 2群 🈵️<br>
@@ -170,7 +170,7 @@ CRMEB JAVA 技术交流QQ群 3群 640230510 🈵️ 群已满<br>
--- ---
### 特别鸣谢 ### 💌 特别鸣谢
核心开发团队 核心开发团队
产品:木子刀客 产品:木子刀客
@@ -183,13 +183,13 @@ UI被子横盖显得高🐰
--- ---
### 使用须知 ### 🔔 使用须知
1.允许用于个人学习、毕业设计、教学案例、公益事业、商业使用;<br> 1.允许用于个人学习、毕业设计、教学案例、公益事业、商业使用;<br>
2.如果商用必须保留版权信息,请自觉遵守;<br> 2.如果商用必须保留版权信息,请自觉遵守;<br>
3.禁止将本项目的代码和资源进行任何形式的出售,产生的一切任何后果责任由侵权者自负。<br> 3.禁止将本项目的代码和资源进行任何形式的出售,产生的一切任何后果责任由侵权者自负。<br>
--- ---
### 版权信息 ### 🪪 版权信息
本项目包含的第三方源码和二进制文件之版权信息另行标注。<br> 本项目包含的第三方源码和二进制文件之版权信息另行标注。<br>
版权所有Copyright © 2017-2022 by CRMEB (https://www.crmeb.com)<br> 版权所有Copyright © 2017-2022 by CRMEB (https://www.crmeb.com)<br>
All rights reserved。<br> All rights reserved。<br>

View File

@@ -177,7 +177,7 @@
</el-table-column> </el-table-column>
<el-table-column v-for="(item,iii) in attrValue" :key="iii" :label="formThead[iii].title" align="center" min-width="120"> <el-table-column v-for="(item,iii) in attrValue" :key="iii" :label="formThead[iii].title" align="center" min-width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-model="scope.row[iii]" :type="formThead[iii].title==='商品编号'?'text':'number'" :min="0" class="priceBox" @keyup.native='keyupEvent($event,oneFormBatch,scope.$index,iii, 1)' /> <el-input v-model="scope.row[iii]" maxlength="9" min="0.01" class="priceBox" @blur="keyupEvent(iii, scope.row[iii], scope.$index, 1)"/>
</template> </template>
</el-table-column> </el-table-column>
<template v-if="formValidate.isSub"> <template v-if="formValidate.isSub">
@@ -216,7 +216,7 @@
</el-table-column> </el-table-column>
<el-table-column v-for="(item,iii) in attrValue" :key="iii" :label="formThead[iii].title" align="center" min-width="120"> <el-table-column v-for="(item,iii) in attrValue" :key="iii" :label="formThead[iii].title" align="center" min-width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input :disabled="isDisabled" v-model="scope.row[iii]" :type="formThead[iii].title==='商品编号'?'text':'number'" :min="0" class="priceBox" @keyup.native='keyupEvent($event,oneFormBatch,scope.$index,iii, 2)' /> <el-input :disabled="isDisabled" v-model="scope.row[iii]" maxlength="9" min="0.01" class="priceBox" @blur="keyupEvent(iii, scope.row[iii], scope.$index, 2)" />
</template> </template>
</el-table-column> </el-table-column>
<template v-if="formValidate.isSub"> <template v-if="formValidate.isSub">
@@ -260,7 +260,8 @@
<el-table-column v-for="(item,iii) in attrValue" :key="iii" :label="formThead[iii].title" align="center" min-width="120"> <el-table-column v-for="(item,iii) in attrValue" :key="iii" :label="formThead[iii].title" align="center" min-width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<!-- <span>scope.row:{{scope.row}}</span>--> <!-- <span>scope.row:{{scope.row}}</span>-->
<el-input :disabled="isDisabled" v-model="scope.row[iii]" :type="formThead[iii].title==='商品编号'?'text':'number'" class="priceBox" @keyup.native='keyupEvent($event,oneFormBatch,scope.$index,iii, 3)' /> <el-input :disabled="isDisabled" maxlength="9" min="0.01"
v-model="scope.row[iii]" class="priceBox" @blur="keyupEvent(iii, scope.row[iii], scope.$index, 3)" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="一级返佣(元)" min-width="120" v-if="formValidate.isSub"> <el-table-column align="center" label="一级返佣(元)" min-width="120" v-if="formValidate.isSub">
@@ -585,33 +586,39 @@
this.getGoodsType() this.getGoodsType()
}, },
methods: { methods: {
keyupEvent(e,array,index,row,num){ // 校验输入框不能输入0保留2位小数库存为正整数
e.target.value=e.target.value.replace(/[^\d.]/g, ''); keyupEvent(key, val, index, num) {
e.target.value=e.target.value.replace(/\.{2,}/g, '.'); if (key === 'barCode') return;
e.target.value=e.target.value.replace(/^\./g, '0.'); var re = /^\D*([0-9]\d*\.?\d{0,2})?.*$/;
e.target.value=e.target.value.replace(/^\d*\.\d*\./g, e.target.value.substring(0,e.target.value.length-1));
e.target.value=e.target.value.replace(/^0[^\.]+/g, '0')
e.target.value=e.target.value.replace(/^(\d+)\.(\d\d).*$/, '$1.$2')
switch (num) { switch (num) {
case 1: case 1:
if(row == 'stock'){ if (val == 0) {
this.oneFormBatch[index][row]=parseInt(e.target.value) this.oneFormBatch[index][key] = key === 'stock' ? 0 : 0.01;
}else{ } else {
this.oneFormBatch[index][row]=e.target.value this.oneFormBatch[index][key] =
key === 'stock'
? parseInt(val)
: this.$set(this.oneFormBatch[index], key, val.toString().replace(re, '$1'));
} }
break; break;
case 2: case 2:
if(row == 'stock'){ if (val == 0) {
this.OneattrValue[index][row]=parseInt(e.target.value) this.OneattrValue[index][key] = key === 'stock' ? 0 : 0.01;
}else{ } else {
this.OneattrValue[index][row]=e.target.value this.OneattrValue[index][key] =
key === 'stock'
? parseInt(val)
: this.$set(this.OneattrValue[index], key, val.toString().replace(re, '$1'));
} }
break; break;
default: default:
if(row == 'stock'){ if (val == 0) {
this.ManyAttrValue[index][row]=parseInt(e.target.value) this.ManyAttrValue[index][key] = key === 'stock' ? 0 : 0.01;
}else{ } else {
this.ManyAttrValue[index][row]=e.target.value this.ManyAttrValue[index][key] =
key === 'stock'
? parseInt(val)
: this.$set(this.ManyAttrValue[index], key, val.toString().replace(re, '$1'));
} }
break; break;
} }

View File

@@ -175,7 +175,7 @@ export function storeListApi(data) {
* @param object data * @param object data
*/ */
export function getProductGood() { export function getProductGood() {
return request.get('product/good'); return request.get('product/good',{},{ noAuth : true});
} }
/** /**
@@ -185,7 +185,7 @@ export function getProductGood() {
* *
*/ */
export function getReplyProduct(id) { export function getReplyProduct(id) {
return request.get('reply/product/' + id, { return request.get('reply/product/' + id, {},{
noAuth: true noAuth: true
}) })
} }