Browse Source

优化代码

master
xh-pan1 2 years ago
parent
commit
cf26fd59ff
  1. 2
      README.md
  2. 1
      canvas-container/components/toolBar/BasicsComp/assistDiv.vue
  3. 4
      canvas-container/components/toolBar/BasicsComp/brandList.vue
  4. 2
      canvas-container/components/toolBar/BasicsComp/customTool.vue
  5. 2
      canvas-container/components/toolBar/BasicsComp/imageText.vue
  6. 7
      canvas-container/components/toolBar/BasicsComp/imageTextList.vue
  7. 2
      canvas-container/components/toolBar/BasicsComp/imageTextNav.vue
  8. 2
      canvas-container/components/toolBar/BasicsComp/shopTop.vue
  9. 5
      canvas-container/components/toolBar/BasicsComp/textTool.vue
  10. 4
      canvas-container/components/toolBar/BasicsComp/videoTool.vue
  11. 2
      canvas-container/components/toolBar/goodsComp/categoryTool.vue
  12. 2
      canvas-container/components/toolBar/toolModule/coupon-select.vue
  13. 2
      canvas-container/components/toolBar/toolModule/custom-page-select.vue
  14. 2
      canvas-container/components/toolBar/toolModule/product-select.vue
  15. 2
      canvas-container/components/toolBar/toolModule/shop-select.vue
  16. 7
      package.json
  17. 6
      src/layout/components/Navbar.vue
  18. 5
      src/views/active/getActive.vue
  19. 2
      src/views/active/index.vue
  20. 11
      src/views/commodity/commodityList/commodityGroup.vue
  21. 2
      src/views/commodity/commodityList/index.vue
  22. 6
      src/views/commodity/commoditySystem/addCommodity.vue
  23. 22
      src/views/commodity/commoditySystem/addComponent.vue
  24. 15
      src/views/commodity/commoditySystem/index.vue
  25. 2
      src/views/customer/addClustering.vue
  26. 2
      src/views/customer/addOperate.vue
  27. 6
      src/views/customer/clusteringList/index.vue
  28. 1
      src/views/customer/customerList/customerDetail.vue
  29. 5
      src/views/customer/customerList/index.vue
  30. 4
      src/views/customer/operate/index.vue
  31. 7
      src/views/customer/tagList.vue
  32. 2
      src/views/customerService/service/index.vue
  33. 4
      src/views/customerService/setting/index.vue
  34. 4
      src/views/distributor/achievement/humens.vue
  35. 6
      src/views/distributor/achievement/order.vue
  36. 16
      src/views/distributor/achievement/programme.vue
  37. 8
      src/views/distributor/customer/popSearch.vue
  38. 4
      src/views/distributor/customer/popSys.vue
  39. 6
      src/views/distributor/personnel/list.vue
  40. 4
      src/views/distributor/personnel/msg.vue
  41. 4
      src/views/distributor/personnel/sys.vue
  42. 4
      src/views/finance/account/index.vue
  43. 2
      src/views/finance/list/index.vue
  44. 16
      src/views/liveMenu/liveProduct/index.vue
  45. 5
      src/views/liveMenu/liveRoom/index.vue
  46. 3
      src/views/login/index.vue
  47. 6
      src/views/marketing/channelActivity/form.vue
  48. 1
      src/views/marketing/channelActivity/selectChannelCoupons.vue
  49. 2
      src/views/marketing/channelCoupons/components/couponSelect.vue
  50. 2
      src/views/marketing/channelCoupons/components/productSelect.vue
  51. 2
      src/views/marketing/channelCoupons/index.vue
  52. 152
      src/views/marketing/channelManage/add.vue
  53. 10
      src/views/marketing/channelManage/index.vue
  54. 3
      src/views/marketing/compose/add.vue
  55. 136
      src/views/marketing/coupon/add.vue
  56. 6
      src/views/marketing/coupon/index.vue
  57. 46
      src/views/marketing/discount/add.vue
  58. 8
      src/views/marketing/discount/index.vue
  59. 42
      src/views/marketing/group/add.vue
  60. 6
      src/views/marketing/group/index.vue
  61. 13
      src/views/marketing/mixin/index.js
  62. 3
      src/views/marketing/price/add.vue
  63. 4
      src/views/marketing/scene/add.vue
  64. 38
      src/views/marketing/spike/add.vue
  65. 6
      src/views/marketing/spike/index.vue
  66. 4
      src/views/order/aftersale/afterDetails.vue
  67. 2
      src/views/order/aftersale/index.vue
  68. 1
      src/views/order/pending/components/changePrice.vue
  69. 2
      src/views/order/pending/index.vue
  70. 1
      src/views/order/pending/pendDetails.vue
  71. 2
      src/views/setup/phone/index.vue
  72. 1
      src/views/setup/privacy/index.vue
  73. 6
      src/views/setup/role/index.vue
  74. 10
      src/views/setup/tabs/index.vue
  75. 13
      src/views/setup/user/index.vue
  76. 37
      src/views/system/logistics/Edit.vue
  77. 2
      src/views/system/logistics/index.vue
  78. 8
      src/views/system/shopCrossDetail/index.vue
  79. 14
      src/views/system/shopSys/edit.vue
  80. 14
      src/views/system/shopSys/index.vue
  81. 2
      src/views/tree/index.vue

2
README.md

@ -18,7 +18,7 @@ npm install
# 启动服务 localhost:8013
npm run dev
```
#### 常见问题

1
canvas-container/components/toolBar/BasicsComp/assistDiv.vue

@ -21,6 +21,7 @@
:show-input-controls=false
input-size="mini"
v-model="activeComponent.componentContent.height"
:max="1000"
show-input>
</el-slider>
</div>

4
canvas-container/components/toolBar/BasicsComp/brandList.vue

@ -4,7 +4,7 @@
<div class="toolBox">
<div class="itemBox">
<label>标题</label>
<el-input v-model="activeComponent.componentContent.title" placeholder="请输入内容"></el-input>
<el-input v-model="activeComponent.componentContent.title" maxlength="20" placeholder="请输入内容"></el-input>
</div>
<div class="itemBox">
<label>文字对齐方式</label>
@ -39,7 +39,7 @@
<tool-select-link :linkObj.sync='item.linkObj'></tool-select-link>
<div class="itemImgTit itemBox">
<label>标题</label>
<el-input v-model="item.title" placeholder="请输入内容"></el-input>
<el-input v-model="item.title" maxlength="20" placeholder="请输入内容"></el-input>
</div>
</div>
<div @click="deleteItem(item, index)" class="deleteItem"><span class="iconfont">&#xe633;</span>删除内容</div>

2
canvas-container/components/toolBar/BasicsComp/customTool.vue

@ -15,6 +15,7 @@
:show-input-controls=false
input-size="mini"
v-model="activeComponent.componentContent.imgClearance"
:max="1000"
show-input>
</el-slider>
</div>
@ -26,6 +27,7 @@
:show-input-controls=false
input-size="mini"
v-model="activeComponent.componentContent.pageSpacing"
:max="1000"
show-input>
</el-slider>
</div>

2
canvas-container/components/toolBar/BasicsComp/imageText.vue

@ -8,7 +8,7 @@
<div class="textTit">文本设置</div>
<div class="itemBox">
<label>标题</label>
<el-input v-model="activeComponent.componentContent.title" placeholder="请输入内容"></el-input>
<el-input v-model="activeComponent.componentContent.title" maxlength="20" placeholder="请输入内容"></el-input>
</div>
<div class="itemBox">
<label>正文</label>

7
canvas-container/components/toolBar/BasicsComp/imageTextList.vue

@ -4,7 +4,7 @@
<div class="toolBox">
<div class="itemBox">
<label>标题</label>
<el-input v-model="activeComponent.componentContent.title" placeholder="请输入内容"></el-input>
<el-input v-model="activeComponent.componentContent.title" maxlength="20" placeholder="请输入内容"></el-input>
</div>
<div class="itemBox">
<label>文字对齐方式</label>
@ -46,7 +46,7 @@
<tool-single-img :imageUrl.sync='item.imgData' tip='建议尺寸5:4等比例图片'></tool-single-img>
<div class="itemImgTit itemBox">
<label>标题</label>
<el-input v-model="item.title" placeholder="请输入内容"></el-input>
<el-input v-model="item.title" maxlength="20" placeholder="请输入内容"></el-input>
</div>
<div class="itemBox">
<label>描述内容</label>
@ -55,7 +55,8 @@
:rows="2"
placeholder="请输入内容"
resize="none"
v-model="item.describe">
v-model="item.describe"
maxlength="200">
</el-input>
</div>
<tool-select-link :linkObj.sync='item.linkObj'></tool-select-link>

2
canvas-container/components/toolBar/BasicsComp/imageTextNav.vue

@ -22,7 +22,7 @@
<tool-single-img :imageUrl.sync='item.img' tip="建议尺寸: 100*100px"></tool-single-img>
<div class="itemImgTit itemBox">
<label>标题</label>
<el-input v-model="item.title" placeholder="请输入内容"></el-input>
<el-input v-model="item.title" maxlength="20" placeholder="请输入内容"></el-input>
</div>
<tool-select-link :linkObj.sync='item.linkObj'></tool-select-link>
</div>

2
canvas-container/components/toolBar/BasicsComp/shopTop.vue

@ -71,7 +71,7 @@
<div class="addLabelBox" v-show="labelCurrent === index">
<div class="itemBox">
<label>名称</label>
<el-input v-model="item.name" placeholder="请输入内容"></el-input>
<el-input v-model="item.name" maxlength="20" placeholder="请输入内容"></el-input>
</div>
<tool-select-link :linkObj.sync='item.linkObj' title="图片链接"></tool-select-link>
</div>

5
canvas-container/components/toolBar/BasicsComp/textTool.vue

@ -4,7 +4,7 @@
<div class="toolBox">
<div class="itemBox">
<label>标题内容</label>
<el-input v-model="activeComponent.componentContent.title" placeholder="请输入内容"></el-input>
<el-input v-model="activeComponent.componentContent.title" maxlength="20" placeholder="请输入内容"></el-input>
</div>
<div class="itemBox">
<label>描述内容</label>
@ -13,7 +13,8 @@
:rows="2"
placeholder="请输入内容"
resize="none"
v-model="activeComponent.componentContent.describe">
v-model="activeComponent.componentContent.describe"
maxlength="200">
</el-input>
</div>
</div>

4
canvas-container/components/toolBar/BasicsComp/videoTool.vue

@ -4,7 +4,7 @@
<div class="toolBox">
<div class="itemBox">
<label>视频地址</label>
<el-input v-model="activeComponent.componentContent.videoUrl" placeholder="请输入内容"></el-input>
<el-input v-model="activeComponent.componentContent.videoUrl" maxlength="60" placeholder="请输入内容"></el-input>
</div>
<!-- <div class="itemBox">-->
<!-- <label>文本</label>-->
@ -18,7 +18,7 @@
<!-- </div>-->
<div class="itemBox">
<label>标题</label>
<el-input v-model="activeComponent.componentContent.title" placeholder="请输入内容"></el-input>
<el-input v-model="activeComponent.componentContent.title" maxlength="20" placeholder="请输入内容"></el-input>
</div>
<div class="itemBox">
<label>正文</label>

2
canvas-container/components/toolBar/goodsComp/categoryTool.vue

@ -4,7 +4,7 @@
<div class="toolBox">
<div class="itemBox">
<label>标题</label>
<el-input v-model="activeComponent.componentContent.title" placeholder="请输入内容"></el-input>
<el-input v-model="activeComponent.componentContent.title" maxlength="20" placeholder="请输入内容"></el-input>
</div>
<tool-select :linkValue.sync='activeComponent.componentContent.textAlign' title="文字对齐方式" :options="alignList"></tool-select>
<div class="textTit">添加类别</div>

2
canvas-container/components/toolBar/toolModule/coupon-select.vue

@ -2,7 +2,7 @@
<div class="product-select">
<el-form :inline="true" :model="formData" class="demo-form-inline">
<el-form-item label="">
<el-input v-model="formData.keyword" placeholder="请输入优惠券名称"></el-input>
<el-input v-model="formData.keyword" maxlength="20" placeholder="请输入优惠券名称"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">查询</el-button>

2
canvas-container/components/toolBar/toolModule/custom-page-select.vue

@ -2,7 +2,7 @@
<div class="product-select">
<el-form :inline="true" :model="formData" class="demo-form-inline">
<el-form-item label="">
<el-input v-model="formData.keyword" placeholder="页面名称"></el-input>
<el-input v-model="formData.keyword" maxlength="20" placeholder="页面名称"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">查询</el-button>

2
canvas-container/components/toolBar/toolModule/product-select.vue

@ -2,7 +2,7 @@
<div class="product-select">
<el-form :inline="true" :model="formData" class="demo-form-inline">
<el-form-item label="">
<el-input v-model="formData.keyword" placeholder="店铺名称/商品ID/商品分组"></el-input>
<el-input v-model="formData.keyword" maxlength="20" placeholder="店铺名称/商品ID/商品分组"></el-input>
</el-form-item>
<!-- <el-form-item label="上架状态">-->
<!-- <el-select v-model="formData.status" placeholder="请选择">-->

2
canvas-container/components/toolBar/toolModule/shop-select.vue

@ -2,7 +2,7 @@
<div class="product-select">
<el-form :inline="true" :model="formData" class="demo-form-inline">
<el-form-item label="">
<el-input v-model="formData.keyword" placeholder="店铺名称"></el-input>
<el-input v-model="formData.keyword" maxlength="20" placeholder="店铺名称"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">查询</el-button>

7
package.json

@ -15,7 +15,7 @@
},
"dependencies": {
"axios": "0.18.1",
"core-js": "^3.28.0",
"core-js": "3.6.5",
"echarts": "^4.8.0",
"element-ui": "2.13.2",
"es6-promise": "^4.2.8",
@ -24,17 +24,13 @@
"normalize.css": "7.0.0",
"nprogress": "0.2.0",
"path-to-regexp": "2.4.0",
"quill": "^1.3.7",
"regenerator-runtime": "^0.13.11",
"screenfull": "^5.0.2",
"svg-baker-runtime": "^1.4.7",
"swiper": "^5.4.5",
"vue": "2.6.10",
"vue-awesome-swiper": "^4.1.0",
"vue-lang": "^0.2.5",
"vue-quill-editor": "^3.0.6",
"vue-router": "3.0.6",
"vue-style-loader": "^4.1.3",
"vuedraggable": "^2.24.3",
"vuex": "3.1.0"
},
@ -60,7 +56,6 @@
"serve-static": "1.13.2",
"svg-sprite-loader": "4.1.3",
"svgo": "1.2.2",
"vue-quill-editor": "^3.0.6",
"vue-template-compiler": "2.6.10"
},
"browserslist": [

6
src/layout/components/Navbar.vue

@ -65,13 +65,13 @@
>
<el-form ref="ruleForm" :model="ruleForm" status-icon :rules="rules" label-width="100px" class="demo-ruleForm">
<el-form-item label="密码" prop="password">
<el-input v-model="ruleForm.password" type="password" autocomplete="off" />
<el-input v-model="ruleForm.password" maxlength="16" type="password" autocomplete="off" />
</el-form-item>
<el-form-item label="新密码" prop="newPassword">
<el-input v-model="ruleForm.newPassword" type="password" autocomplete="off" />
<el-input v-model="ruleForm.newPassword" maxlength="16" type="password" autocomplete="off" />
</el-form-item>
<el-form-item label="确认密码" prop="confirmPass">
<el-input v-model="ruleForm.confirmPass" type="password" autocomplete="off" />
<el-input v-model="ruleForm.confirmPass" maxlength="16" type="password" autocomplete="off" />
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">

5
src/views/active/getActive.vue

@ -40,6 +40,7 @@
<nav class="formSearch">
<el-input
v-model="formInline.search"
maxlength="20"
class="searchInput"
placeholder="请输入内容"
>
@ -63,6 +64,7 @@
<span>官方分类</span>
<el-cascader
v-model="formInline.classifyId"
maxlength="20"
:options="categoryList"
clearable
:props="{
@ -203,8 +205,9 @@
<template slot-scope="scope">
<el-input
v-model="scope.row.number"
maxlength="9"
value="$page"
type="number"
oninput="value=value.replace(/[^\d]/g,'')"
@blur="BlurNumber(scope.row)"
/>
</template>

2
src/views/active/index.vue

@ -19,7 +19,7 @@
>
<div class="searchItem">
<span>活动名称</span>
<el-input v-model="formInline.activityName" placeholder="请输入活动名称" />
<el-input v-model="formInline.activityName" maxlength="15" placeholder="请输入活动名称" />
</div>
<div class="searchItem">
<span>活动状态</span>

11
src/views/commodity/commodityList/commodityGroup.vue

@ -5,11 +5,12 @@
<div class="newGroupBox">
<el-form class="formBox" :model="groupData" label-width="150px" :rules="groupBuyRules">
<el-form-item label="分组名称" prop="groupName">
<el-input v-model="groupData.groupName" placeholder="请输入分组名称" onblur="value=value.replace(/(^\s*)|(\s*$)/g, '')" />
<el-input v-model="groupData.groupName" maxlength="20" placeholder="请输入分组名称" onblur="value=value.replace(/(^\s*)|(\s*$)/g, '')" />
</el-form-item>
<el-form-item label="分组描述">
<el-input
v-model="groupData.groupDescribe"
maxlength="200"
type="textarea"
:rows="4"
placeholder="请输入分组描述"
@ -94,13 +95,13 @@
<div class="formSearch">
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item label="商品名称">
<el-input v-model="formInline.search" placeholder="搜索商品名称或商品ID" />
<el-input v-model="formInline.search" maxlength="20" placeholder="搜索商品名称或商品ID" />
</el-form-item>
<el-form-item class="tagCustomer" label="库存数量">
<el-input v-model="formInline.minStock" /><span></span><el-input v-model="formInline.maxStock" />
<el-input v-model="formInline.minStock" maxlength="9" /><span></span><el-input v-model="formInline.maxStock" maxlength="9" />
</el-form-item>
<el-form-item class="tagCustomer" label="价格">
<el-input v-model="formInline.minPrice" /><span></span><el-input v-model="formInline.maxPrice" />
<el-input v-model="formInline.minPrice" maxlength="9" /><span></span><el-input v-model="formInline.maxPrice" maxlength="9" />
</el-form-item>
<el-form-item>
<el-button type="primary" plain @click="search">查询</el-button>
@ -193,7 +194,7 @@
</el-select>
</div>
<div class="valueBox">
<el-input v-model="item.number" />
<el-input v-model="item.number" maxlength="9" />
</div>
<div v-if="selectConditions.length !== 1" class="deleteIcon" @click="deleteOptions(item, index)"><i class="el-icon-remove" /></div>
</div>

2
src/views/commodity/commodityList/index.vue

@ -6,7 +6,7 @@
<div class="formSearch">
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item label="分组名称">
<el-input v-model="formInline.search" placeholder="请输入分组名称" />
<el-input v-model="formInline.search" maxlength="20" placeholder="请输入分组名称" />
</el-form-item>
<el-form-item>
<el-button type="primary" plain @click="search">查询</el-button>

6
src/views/commodity/commoditySystem/addCommodity.vue

@ -28,7 +28,7 @@
<el-form ref="form" :model="form" :rules="rules" label-width="80px" style="padding: 40px 40px;">
<div class="leftCom">
<el-form-item label="商品名称" prop="productName">
<el-input v-model="form.productName" maxlength="50" show-word-limit />
<el-input v-model="form.productName" maxlength="20" show-word-limit />
</el-form-item>
<el-form-item label="卖点简介">
<el-input v-model="form.productBrief" maxlength="50" show-word-limit />
@ -78,7 +78,7 @@
</el-select>
</el-form-item>
<el-form-item class="form-item-long" label="供应商">
<el-input v-model="form.supplierName" maxlength="30" show-word-limit placeholder="请输入供应商名称" />
<el-input v-model="form.supplierName" maxlength="20" show-word-limit placeholder="请输入供应商名称" />
</el-form-item>
<el-form-item label="需要物流" prop="ifLogistics">
<el-radio-group v-model="form.ifLogistics">
@ -107,7 +107,7 @@
</el-form-item>
<el-form-item v-if="form.ifCredit" class="form-item-long" label="单笔最大抵扣" prop="creditLimit">
<!-- <el-input v-model="form.creditLimit" type="number" placeholder="请输入单笔最大抵扣" /> -->
<el-input-number v-model="form.creditLimit" :controls="false" :min="0" :precision="0" placeholder="请输入单笔最大抵扣" />
<el-input-number v-model="form.creditLimit" :controls="false" :max="999999999" :min="0" :precision="0" placeholder="请输入单笔最大抵扣" />
<p style="color: #cf0f0f; height: 25px; line-height: 25px;margin-top: 10px">限制一笔订单中该商品最多抵扣多少积分</p>
<p style="color: #cf0f0f; height: 25px; line-height: 25px">( 1积分 = {{ integralProportion }} 请输入整数 )</p>
</el-form-item>

22
src/views/commodity/commoditySystem/addComponent.vue

@ -42,19 +42,19 @@
>
<el-table-column label="规格">
<template slot-scope="scope">
<el-input v-model="singleStyle.skuValue" :sss="scope" maxlength="40" />
<el-input v-model="singleStyle.skuValue" :sss="scope" maxlength="10" />
</template>
</el-table-column>
<el-table-column label="售价">
<template slot-scope="scope">
<!-- <el-input v-model="scope.row.price" type="number" oninput="value=value.replace(/-/, '')" /> -->
<el-input-number v-model="scope.row.price" :controls="false" :min="0" :precision="2" :step="0.01" />
<el-input-number v-model="scope.row.price" :controls="false" :max="999999999" :min="0" :precision="2" :step="0.01" />
</template>
</el-table-column>
<el-table-column label="原价">
<template slot-scope="scope">
<!-- <el-input v-model="scope.row.originalPrice" type="number" oninput="value=value.replace(/-/, '')" /> -->
<el-input-number v-model="scope.row.originalPrice" :controls="false" :min="0" :precision="2" :step="0.01" />
<el-input-number v-model="scope.row.originalPrice" :controls="false" :max="999999999" :min="0" :precision="2" :step="0.01" />
</template>
</el-table-column>
<el-table-column label="税率">
@ -86,18 +86,18 @@
<el-table-column label="库存">
<template slot-scope="scope">
<!-- <el-input v-model="scope.row.stockNumber" type="number" oninput="value=value.replace(/[^\d]/g,'')" /> -->
<el-input-number v-model="scope.row.stockNumber" :controls="false" :min="0" :precision="0" />
<el-input-number v-model="scope.row.stockNumber" :controls="false" :max="999999999" :min="0" :precision="0" />
</template>
</el-table-column>
<el-table-column label="重量(KG)">
<template slot-scope="scope">
<!-- <el-input v-model="scope.row.weight" type="number" oninput="value=value.replace(/-/, '')" /> -->
<el-input-number v-model="scope.row.weight" :controls="false" :min="0" :precision="2" :step="0.01" />
<el-input-number v-model="scope.row.weight" :controls="false" :max="999" :min="0" :precision="2" :step="0.01" />
</template>
</el-table-column>
<el-table-column label="国际条码">
<template slot-scope="scope">
<el-input v-model="scope.row.sku" />
<el-input v-model="scope.row.sku" maxlength="20" />
</template>
</el-table-column>
</el-table>
@ -182,13 +182,13 @@
<el-table-column label="售价">
<template slot-scope="scope">
<!-- <el-input v-model="scope.row.price" type="number" oninput="value=value.replace(/-/, '')" /> -->
<el-input-number v-model="scope.row.price" :controls="false" :min="0" :precision="2" :step="0.01" />
<el-input-number v-model="scope.row.price" :controls="false" :max="999999999" :min="0" :precision="2" :step="0.01" />
</template>
</el-table-column>
<el-table-column label="原价">
<template slot-scope="scope">
<!-- <el-input v-model="scope.row.originalPrice" type="number" oninput="value=value.replace(/-/, '')" /> -->
<el-input-number v-model="scope.row.originalPrice" :controls="false" :min="0" :precision="2" :step="0.01" />
<el-input-number v-model="scope.row.originalPrice" :controls="false" :max="999999999" :min="0" :precision="2" :step="0.01" />
</template>
</el-table-column>
<el-table-column label="税率">
@ -219,18 +219,18 @@
<el-table-column label="库存">
<template slot-scope="scope">
<!-- <el-input v-model="scope.row.stockNumber" type="number" oninput="value=value.replace(/[^\d]/g,'')" /> -->
<el-input-number v-model="scope.row.stockNumber" :controls="false" :min="0" :precision="0" />
<el-input-number v-model="scope.row.stockNumber" :controls="false" :max="999999999" :min="0" :precision="0" />
</template>
</el-table-column>
<el-table-column label="重量(KG)">
<template slot-scope="scope">
<!-- <el-input v-model="scope.row.weight" type="number" oninput="value=value.replace(/-/, '')" /> -->
<el-input-number v-model="scope.row.weight" :controls="false" :min="0" :precision="6" :step="0.01" />
<el-input-number v-model="scope.row.weight" :controls="false" :max="999" :min="0" :precision="6" :step="0.01" />
</template>
</el-table-column>
<el-table-column label="国际条码">
<template slot-scope="scope">
<el-input v-model="scope.row.sku" />
<el-input v-model="scope.row.sku" maxlength="20" />
</template>
</el-table-column>
<!-- <el-table-column label="操作">

15
src/views/commodity/commoditySystem/index.vue

@ -6,7 +6,7 @@
<div class="formSearch">
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item label="商品名称">
<el-input v-model="formInline.search" placeholder="请输入商品名称" />
<el-input v-model="formInline.search" maxlength="20" placeholder="请输入商品名称" />
</el-form-item>
<el-form-item label="上架状态">
<el-select v-model="formInline.shelveState" placeholder="请选择上架状态">
@ -173,7 +173,7 @@
{{ item.price }}
</td>
<td v-for="(itemJ,indexJ) in item.memberPrices" :key="indexJ" class="td-input">
<el-input v-model="itemJ.price" oninput="value=value.replace(/([^\d|\.])/g, '')" /> {{ mode==1?'折':'元' }}
<el-input v-model="itemJ.price" maxlength="9" oninput="value=value.replace(/([^\d|\.])/g, '')" /> {{ mode==1?'折':'元' }}
</td>
</tr>
</table>
@ -534,6 +534,17 @@ export default {
async queryAllCategory() {
const res = await getClassify()
this.categoryList = res.data
this.handleRemoveEmptyChild(this.categoryList)
},
handleRemoveEmptyChild(arr) {
for (let i = 0; i < arr.length; i++) {
if (arr[i].childs && Array.isArray(arr[i].childs)) {
this.handleRemoveEmptyChild(arr[i].childs)
}
if (arr[i].childs && Array.isArray(arr[i].childs) && arr[i].childs.length === 0) {
delete arr[i].childs
}
}
},
// *********************
UploadUrls: function() {

2
src/views/customer/addClustering.vue

@ -50,7 +50,7 @@
</div>
<div v-if="item.type !== 11" class="valueBox">
<span v-if="item.type !== 9 && item.type !== 10">最近</span>
<el-input v-model="item.number" oninput="value=value.replace(/[^\d]/g,'')" type="number" :placeholder="item.type !== 9 && item.type !== 10 ? '请输入1-365' : ''" />
<el-input v-model="item.number" maxlength="3" oninput="value=value.replace(/[^\d]/g,'')" :placeholder="item.type !== 9 && item.type !== 10 ? '请输入1-365' : ''" />
<span v-if="item.type !== 9 && item.type !== 10"></span>
<span v-if="item.type === 9"></span>
<span v-if="item.type === 10"></span>

2
src/views/customer/addOperate.vue

@ -90,7 +90,7 @@
<div class="formSearch">
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item label="分组名称">
<el-input v-model="formInline.search" placeholder="请输入人群名称" />
<el-input v-model="formInline.search" maxlength="20" placeholder="请输入人群名称" />
</el-form-item>
<el-form-item>
<el-button type="primary" plain @click="search">查询</el-button>

6
src/views/customer/clusteringList/index.vue

@ -3,13 +3,13 @@
<div class="formSearch">
<div class="searchItem">
<span>人群名称</span>
<el-input v-model="formInline.crowdName" placeholder="请输入内容" />
<el-input v-model="formInline.crowdName" maxlength="20" placeholder="请输入内容" />
</div>
<div class="searchItem">
<span>客户数量:</span>
<el-input v-model="formInline.min" />
<el-input v-model="formInline.min" maxlength="9" />
<span></span>
<el-input v-model="formInline.max" />
<el-input v-model="formInline.max" maxlength="9" />
</div>
<div class="btns">
<el-button type="primary" plain @click="search">查询</el-button>

1
src/views/customer/customerList/customerDetail.vue

@ -92,6 +92,7 @@
<el-form-item class="inputWide" label="备注">
<el-input
v-model="basicInfo.remark"
maxlength="200"
type="textarea"
:rows="4"
placeholder="请输入内容"

5
src/views/customer/customerList/index.vue

@ -31,7 +31,7 @@
</div>
</el-form-item>
<el-form-item class="inputWide" label="手机号">
<el-input v-model="formInline.phone" placeholder="请输入内容" />
<el-input v-model="formInline.phone" maxlength="11" placeholder="请输入内容" />
</el-form-item>
<el-form-item class="inputWide" label="客户标签">
<el-select v-model="formInline.labelId" placeholder="客户标签" clearable>
@ -112,7 +112,7 @@
<div class="changeCustomer">
<el-form ref="ruleForm" :model="basicInfo" label-width="150px" :rules="basicInfoRules">
<el-form-item class="inputWide" label="客户手机号" prop="phone">
<el-input v-model="basicInfo.phone" placeholder="请输入客户手机号" type="number" maxlength="11" show-word-limit />
<el-input v-model="basicInfo.phone" placeholder="请输入客户手机号" maxlength="11" show-word-limit oninput="value=value.replace(/[^\d]/g,'')" />
</el-form-item>
<el-form-item class="inputWide" label="客户昵称">
<el-input v-model="basicInfo.name" placeholder="请输入客户昵称" maxlength="10" onblur="value=value.replace(/(^\s*)|(\s*$)/g, '')" show-word-limit />
@ -147,6 +147,7 @@
<el-form-item class="inputWide" label="备注">
<el-input
v-model="basicInfo.remark"
maxlength="200"
type="textarea"
:rows="4"
placeholder="请输入内容"

4
src/views/customer/operate/index.vue

@ -3,10 +3,10 @@
<div class="formSearch">
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item label="计划名称">
<el-input v-model="formInline.operateName" />
<el-input v-model="formInline.operateName" maxlength="20" />
</el-form-item>
<el-form-item label="运营人群">
<el-input v-model="formInline.crowdName" />
<el-input v-model="formInline.crowdName" maxlength="20" />
</el-form-item>
<el-form-item label="计划方式">
<el-select v-model="formInline.planMode" placeholder="请选择">

7
src/views/customer/tagList.vue

@ -3,13 +3,13 @@
<div class="formSearch">
<div class="searchItem">
<span>标签名称</span>
<el-input v-model="formInline.tagName" class="label" placeholder="请输入内容" />
<el-input v-model="formInline.tagName" maxlength="20" class="label" placeholder="请输入内容" />
</div>
<div class="searchItem">
<span>客户数量</span>
<el-input v-model="formInline.minPerson" class="nums" />
<el-input v-model="formInline.minPerson" maxlength="9" class="nums" />
<span></span>
<el-input v-model="formInline.maxPerson" class="nums" />
<el-input v-model="formInline.maxPerson" maxlength="9" class="nums" />
</div>
<div class="btns">
<el-button type="primary" plain @click="search">查询</el-button>
@ -76,6 +76,7 @@
<el-form-item label="备注信息">
<el-input
v-model="addForm.remark"
maxlength="200"
type="textarea"
:rows="5"
placeholder="请输入内容"

2
src/views/customerService/service/index.vue

@ -89,7 +89,7 @@
</div>
</el-form-item>
<el-form-item label="客服名称" prop="name">
<el-input v-model="addForm.name" placeholder="请输入客服名称" />
<el-input v-model="addForm.name" maxlength="20" placeholder="请输入客服名称" />
</el-form-item>
</el-form>
</div>

4
src/views/customerService/setting/index.vue

@ -9,10 +9,10 @@
class="demo-ruleForm"
>
<el-form-item label="服务ID" prop="appId">
<el-input v-model="ruleForm.appId" />
<el-input v-model="ruleForm.appId" maxlength="20" />
</el-form-item>
<el-form-item label="Secret" prop="secret">
<el-input v-model="ruleForm.secret" />
<el-input v-model="ruleForm.secret" maxlength="20" />
</el-form-item>
<el-form-item>
<el-button

4
src/views/distributor/achievement/humens.vue

@ -6,10 +6,10 @@
<!-- 顶部搜索 -->
<el-form :inline="true" :model="formInline">
<el-form-item label="分销员昵称">
<el-input v-model="formInline.distributorName" placeholder="请输入分销员昵称" />
<el-input v-model="formInline.distributorName" maxlength="20" placeholder="请输入分销员昵称" />
</el-form-item>
<el-form-item label="分销员手机号">
<el-input v-model="formInline.distributorPhone" placeholder="请输入手机号" />
<el-input v-model="formInline.distributorPhone" maxlength="11" placeholder="请输入手机号" />
</el-form-item>
<el-form-item label="起止时间">
<el-date-picker

6
src/views/distributor/achievement/order.vue

@ -6,13 +6,13 @@
<!-- 顶部搜索 -->
<el-form :inline="true" :model="formInline">
<el-form-item label="订单号">
<el-input v-model="formInline.orderFormid" placeholder="请输入订单号" />
<el-input v-model="formInline.orderFormid" maxlength="20" placeholder="请输入订单号" />
</el-form-item>
<el-form-item label="分销员昵称">
<el-input v-model="formInline.distributorName" placeholder="请输入分销员昵称" />
<el-input v-model="formInline.distributorName" maxlength="20" placeholder="请输入分销员昵称" />
</el-form-item>
<el-form-item label="分销员手机号">
<el-input v-model="formInline.distributorPhone" placeholder="请输入手机号" />
<el-input v-model="formInline.distributorPhone" maxlength="11" placeholder="请输入手机号" />
</el-form-item>
<el-form-item label="交易时间">
<el-date-picker

16
src/views/distributor/achievement/programme.vue

@ -19,13 +19,13 @@
<el-table :data="tableData" border style="width: 100%">
<el-table-column prop="levelNum" label="等级编号" width="150">
<template slot-scope="scope">
<el-input v-if="scope.row.add || scope.row.edit" v-model="scope.row.levelNum" />
<el-input v-if="scope.row.add || scope.row.edit" v-model="scope.row.levelNum" maxlength="20" />
<span v-else>{{ scope.row.levelNum }}</span>
</template>
</el-table-column>
<el-table-column prop="levelName" label="等级名称">
<template slot-scope="scope">
<el-input v-if="scope.row.add || scope.row.edit" v-model="scope.row.levelName" />
<el-input v-if="scope.row.add || scope.row.edit" v-model="scope.row.levelName" maxlength="20" />
<span v-else>{{ scope.row.levelName }}</span>
</template>
</el-table-column>
@ -64,7 +64,7 @@
<el-col :span="14">累计直接分销金额满</el-col>
<el-col :span="8">
<el-col :span="20">
<el-input v-model="scope.row.conditionMoney" />
<el-input v-model="scope.row.conditionMoney" maxlength="9" />
</el-col>
<el-col :span="4">
<span style="font-size:14px;"></span>
@ -77,7 +77,7 @@
<el-col :span="14">邀请下级满</el-col>
<el-col :span="8">
<el-col :span="20">
<el-input v-model="scope.row.conditionInvitation" />
<el-input v-model="scope.row.conditionInvitation" maxlength="9" />
</el-col>
<el-col :span="4">
<span style="font-size:14px;"></span>
@ -90,7 +90,7 @@
<el-col :span="14">客户满</el-col>
<el-col :span="8">
<el-col :span="20">
<el-input v-model="scope.row.conditionCustomer" />
<el-input v-model="scope.row.conditionCustomer" maxlength="9" />
</el-col>
<el-col :span="4">
<span style="font-size:14px;"></span>
@ -187,7 +187,7 @@ export default {
'Authorization-business': getToken()
},
form: {
ifSelf: '',
ifSelf: 0,
type: [],
levelName: '',
levelNum: 1,
@ -216,7 +216,7 @@ export default {
})
if (res.code === '') {
this.tableData = res.data
this.form.ifSelf = res.data.length > 0 && res.data[0].ifSelf
this.form.ifSelf = res.data && res.data.length > 0 ? res.data[0].ifSelf : 0
}
},
async ruty(index) {
@ -305,7 +305,7 @@ export default {
},
reset() {
this.form = {
ifSelf: '',
ifSelf: 0,
type: [],
levelName: '',
conditionMoney: '',

8
src/views/distributor/customer/popSearch.vue

@ -6,13 +6,13 @@
<!-- 顶部搜索 -->
<el-form :inline="true" :model="formInline">
<el-form-item label="客户昵称">
<el-input v-model="formInline.name" placeholder="请输入客户昵称" />
<el-input v-model="formInline.name" maxlength="20" placeholder="请输入客户昵称" />
</el-form-item>
<el-form-item label="客户手机号">
<el-input v-model="formInline.phone" placeholder="请输入客户手机号" />
<el-input v-model="formInline.phone" maxlength="11" placeholder="请输入客户手机号" />
</el-form-item>
<el-form-item label="分销员昵称">
<el-input v-model="formInline.distributorName" placeholder="请输入分销员昵称" />
<el-input v-model="formInline.distributorName" maxlength="20" placeholder="请输入分销员昵称" />
</el-form-item>
<el-form-item label="绑定状态">
<el-select v-model="formInline.ifBind" placeholder="请选择绑定状态">
@ -101,7 +101,7 @@
>
<div style="text-align: center;">
<div style="display: flex" class="diaoCen">
<el-input v-model="searchs" style="width:200px" clearable placeholder="请输入分销员名称" />
<el-input v-model="searchs" maxlength="20" style="width:200px" clearable placeholder="请输入分销员名称" />
<el-button type="primary" @click="searchDis">查询</el-button>
</div>
<el-radio-group v-model="distributorId">

4
src/views/distributor/customer/popSys.vue

@ -21,7 +21,7 @@
<el-radio-group v-model="updataQuery.bindValidity" @change="change">
<el-radio :label="1">永久有效</el-radio>
<el-radio :label="2" style="margin-left:60px;">
<el-input v-model="updataQuery.validityDay" :disabled="disabled" class="input" />&nbsp;天有效
<el-input v-model="updataQuery.validityDay" maxlength="9" :disabled="disabled" class="input" />&nbsp;天有效
</el-radio>
</el-radio-group>
</el-col>
@ -37,7 +37,7 @@
<el-radio :label="2" style="margin-left:60px;">不允许抢客</el-radio>
<el-radio :label="3" style="margin-left:60px;">
保护期&nbsp;&nbsp;
<el-input v-model="updataQuery.robbingDay" :disabled="disabled1" class="input" />&nbsp;天不允许抢
<el-input v-model="updataQuery.robbingDay" maxlength="9" :disabled="disabled1" class="input" />&nbsp;天不允许抢
</el-radio>
</el-radio-group>
</el-col>

6
src/views/distributor/personnel/list.vue

@ -6,10 +6,10 @@
<!-- 顶部搜索 -->
<el-form :inline="true" :model="formInline">
<el-form-item label="分销员昵称">
<el-input v-model="formInline.distributorName" placeholder="请输入分销员昵称" />
<el-input v-model="formInline.distributorName" maxlength="20" placeholder="请输入分销员昵称" />
</el-form-item>
<el-form-item label="分销员手机号">
<el-input v-model="formInline.distributorPhone" placeholder="请输入手机号" />
<el-input v-model="formInline.distributorPhone" maxlength="11" placeholder="请输入手机号" />
</el-form-item>
<el-form-item label="加入时间">
<el-date-picker
@ -89,7 +89,7 @@
<div>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form-item label="分销员昵称" prop="distributorName">
<el-input v-model="form.distributorName" :disabled="isVisible.index ===2" />
<el-input v-model="form.distributorName" maxlength="20" :disabled="isVisible.index ===2" />
</el-form-item>
<el-form-item label="分销员手机号" prop="distributorPhone">
<el-input

4
src/views/distributor/personnel/msg.vue

@ -6,10 +6,10 @@
<!-- 顶部搜索 -->
<el-form :inline="true" :model="formInline">
<el-form-item label="分销员昵称">
<el-input v-model="formInline.distributorName" placeholder="请输入分销员昵称" />
<el-input v-model="formInline.distributorName" maxlength="20" placeholder="请输入分销员昵称" />
</el-form-item>
<el-form-item label="分销员手机号">
<el-input v-model="formInline.distributorPhone" placeholder="请输入手机号" />
<el-input v-model="formInline.distributorPhone" maxlength="11" placeholder="请输入手机号" />
</el-form-item>
<el-form-item label="申请时间">
<el-date-picker

4
src/views/distributor/personnel/sys.vue

@ -9,13 +9,13 @@
<p class="radiop">
<el-radio :label="2">
至少下单满
<el-input v-model="text" :disabled="disabled" />
<el-input v-model="text" maxlength="9" :disabled="disabled" />
</el-radio>
</p>
<p class="radiop">
<el-radio :label="3">
消费金额满
<el-input v-model="text1" :disabled="disabled1" />
<el-input v-model="text1" maxlength="9" :disabled="disabled1" />
</el-radio>
</p>
</el-radio-group>

4
src/views/finance/account/index.vue

@ -74,7 +74,7 @@
label-width="120px"
>
<el-form-item label="持卡人姓名" prop="cardName">
<el-input v-model="form.cardName" @onblur="btKeyUp" />
<el-input v-model="form.cardName" maxlength="20" @onblur="btKeyUp" />
</el-form-item>
<el-form-item label="卡号" prop="cardNumber">
<el-input v-model="form.cardNumber" maxlength="19" oninput="value=value.replace(/[^\d]/g,'')" />
@ -146,7 +146,7 @@
</el-form-item>
<p class="card">新绑定信息</p>-->
<el-form-item label="持卡人姓名" prop="cardName">
<el-input v-model="card.cardName" @onblur="btKeyUp" />
<el-input v-model="card.cardName" maxlength="20" @onblur="btKeyUp" />
</el-form-item>
<el-form-item label="卡号" prop="cardNumber">
<el-input v-if="cardNumberShow" :value="hidden(card.cardNumber, 3, 4)" @focus="focusCardNunberInput" oninput="value=value.replace(/[^\d]/g,'')" maxlength="19" />

2
src/views/finance/list/index.vue

@ -72,7 +72,7 @@
</p>
<el-form-item label="提现金额" prop="amount">
<el-col :span="16">
<el-input v-model="form.amount" :placeholder="'可提现金额:' + cardList[2].money" />
<el-input v-model="form.amount" maxlength="9" :placeholder="'可提现金额:' + cardList[2].money" />
</el-col>
<el-col :span="6" style="text-align:center">
<span class="sub_text" @click="getAllAmount">全部提现</span>

16
src/views/liveMenu/liveProduct/index.vue

@ -17,6 +17,7 @@
<el-form-item label="关键字:" label-width="100px">
<el-input
v-model="listQuery.search"
maxlength="20"
placeholder="请输入商品名称/ID"
class="inputKeyWord"
style="width:400px;"
@ -203,7 +204,7 @@
<div v-if="proShowState == 1">
<el-form :inline="true" :model="productForm" class="demo-form-inline">
<el-form-item class="inputWide" label="关键字:">
<el-input v-model="productForm.search" placeholder="请输入内容" />
<el-input v-model="productForm.search" maxlength="20" placeholder="请输入内容" />
</el-form-item>
<el-form-item>
<el-button
@ -298,13 +299,14 @@
<el-form-item label="商品库存" prop="stockNumber">
<el-input
v-model="form.stockNumber"
type="number"
maxlength="9"
style="width: 60%"
oninput="value=value.replace(/[^\d]/g,'')"
/>
</el-form-item>
<!-- <el-form-item v-if="proShowState!=2 || form.wxAuditStatus == -1" label="商品名称" prop="productName"> -->
<el-form-item label="商品名称" prop="productName">
<el-input v-model="form.productName" style="width: 60%" />
<el-input v-model="form.productName" maxlength="20" style="width: 60%" />
</el-form-item>
<el-form-item label="价格类型" prop="priceType">
<el-radio-group v-model="form.priceType">
@ -314,10 +316,10 @@
</el-radio-group>
</el-form-item>
<el-form-item label="价格" prop="title">
<el-input-number v-if="form.priceType == 1" v-model="form.fixedPrice" :min="0" :precision="2" :step="1" placeholder="一口价" style="width:250px" />
<el-input-number v-if="form.priceType == 2" v-model="form.minPrice" :min="0" :precision="2" :step="1" placeholder="最低价" style="width:250px" />
<el-input-number v-if="form.priceType == 2" v-model="form.maxPrice" :min="0" :precision="2" :step="1" placeholder="最高价" style="margin-left:20px;width:250px" />
<el-input-number v-if="form.priceType == 3" v-model="form.marketPrice" :min="0" :precision="2" :step="1" placeholder="折扣价" style="width:250px" />
<el-input-number v-if="form.priceType == 1" v-model="form.fixedPrice" :max="999999999" :min="0" :precision="2" :step="1" placeholder="一口价" style="width:250px" />
<el-input-number v-if="form.priceType == 2" v-model="form.minPrice" :max="999999999" :min="0" :precision="2" :step="1" placeholder="最低价" style="width:250px" />
<el-input-number v-if="form.priceType == 2" v-model="form.maxPrice" :max="999999999" :min="0" :precision="2" :step="1" placeholder="最高价" style="margin-left:20px;width:250px" />
<el-input-number v-if="form.priceType == 3" v-model="form.marketPrice" :max="999999999" :min="0" :precision="2" :step="1" placeholder="折扣价" style="width:250px" />
<!-- <el-input
v-if="form.priceType == 1"
v-model="form.fixedPrice"

5
src/views/liveMenu/liveRoom/index.vue

@ -17,6 +17,7 @@
<el-form-item label="关键字:" label-width="100px">
<el-input
v-model="listQuery.search"
maxlength="20"
placeholder="请输入直播间名称/ID/主播昵称/微信号"
class="inputKeyWord"
style="width:400px;"
@ -227,6 +228,7 @@
<el-form-item label="直播间标题" prop="title">
<el-input
v-model="form.title"
maxlength="20"
style="width: 370px"
:disabled="isDisabled"
/>
@ -313,6 +315,7 @@
>
<el-input
v-model="form.anchorNickname"
maxlength="20"
style="width: 370px"
:disabled="isDisabled"
/>
@ -324,6 +327,7 @@
>
<el-input
v-model="form.anchorWechat"
maxlength="20"
style="width: 370px"
:disabled="isDisabled"
/>
@ -441,6 +445,7 @@
<el-form-item class="inputWide" label="关键字">
<el-input
v-model="proListPassQuery.search"
maxlength="20"
placeholder="请输入关键字搜索"
/>
</el-form-item>

3
src/views/login/index.vue

@ -38,6 +38,7 @@
<el-form-item prop="password">
<el-input
v-model="loginForm.password"
maxlength="16"
type="password"
class="iptHeight"
auto-complete="off"
@ -91,6 +92,7 @@
<el-form-item prop="code">
<el-input
v-model="anthorForm.code"
maxlength="6"
type="text"
class="iptHeight"
auto-complete="off"
@ -166,6 +168,7 @@
<el-form-item prop="code">
<el-input
v-model="retrievePwdForm.code"
maxlength="6"
type="text"
class="iptHeight"
auto-complete="off"

6
src/views/marketing/channelActivity/form.vue

@ -27,7 +27,7 @@
<el-input
v-model="form.activityName"
show-word-limit
:maxlength="10"
maxlength="15"
:disabled="form.isLook"
clearable
type="text"
@ -40,6 +40,7 @@
>
<el-input
v-model="form.remark"
maxlength="200"
:disabled="form.isLook"
clearable
type="text"
@ -68,6 +69,7 @@
v-model="form.publishCount"
:disabled="form.isLook"
:controls="false"
:max="999999999"
:min="1"
/>
@ -217,7 +219,7 @@ export default {
formRules: {
activityName: [
{ required: true, message: '请输入活动名称', trigger: 'blur' },
{ min: 1, max: 20, message: '活动名称长度在1-20个字符', trigger: 'blur' }
{ min: 1, max: 15, message: '活动名称长度在1-15个字符', trigger: 'blur' }
],
startTime: [
{ required: true, message: '请选择活动时间', trigger: 'blur' }

1
src/views/marketing/channelActivity/selectChannelCoupons.vue

@ -25,6 +25,7 @@
<el-form-item label="优惠券名称">
<el-input
v-model="formInline.couponName"
maxlength="20"
clearable
placeholder="请输入内容"
@blur="search"

2
src/views/marketing/channelCoupons/components/couponSelect.vue

@ -2,7 +2,7 @@
<div class="product-select">
<el-form :inline="true" :model="params" class="demo-form-inline">
<el-form-item label="">
<el-input v-model="params.search" placeholder="请输入优惠券名称" />
<el-input v-model="params.search" maxlength="20" placeholder="请输入优惠券名称" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="getTableData">查询</el-button>

2
src/views/marketing/channelCoupons/components/productSelect.vue

@ -2,7 +2,7 @@
<div v-show="visible" class="product-select">
<el-form :inline="true" :model="params" class="demo-form-inline">
<el-form-item label="">
<el-input v-model="params.search" placeholder="店铺名称/商品ID/商品分组" />
<el-input v-model="params.search" maxlength="20" placeholder="店铺名称/商品ID/商品分组" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">查询</el-button>

2
src/views/marketing/channelCoupons/index.vue

@ -6,7 +6,7 @@
<div class="formSearch">
<el-form :inline="true" :model="formInline">
<el-form-item label="渠道券名称">
<el-input v-model="formInline.search" clearable placeholder="请输入渠道券名称" style="width: 200px;" class="filter-item" @keyup.enter.native="search" />
<el-input v-model="formInline.search" maxlength="20" clearable placeholder="请输入渠道券名称" style="width: 200px;" class="filter-item" @keyup.enter.native="search" />
</el-form-item>
<el-form-item>
<el-button type="primary" plain @click="search">查询</el-button>

152
src/views/marketing/channelManage/add.vue

@ -8,16 +8,17 @@
:model="addForm"
label-width="150px"
:rules="couponRules"
:disabled="visitDetail"
>
<el-form-item label="优惠券类型">
<el-radio
v-model="addForm.couponType"
label="1"
:label="1"
>满减券
</el-radio>
<el-radio
v-model="addForm.couponType"
label="2"
:label="2"
>折扣券
</el-radio>
</el-form-item>
@ -27,7 +28,7 @@
>
<el-input
v-model="addForm.couponName"
maxlength="10"
maxlength="20"
show-word-limit
placeholder="请输入优惠券名称"
onblur="value=value.replace(/(^\s*)|(\s*$)/g, '')"
@ -36,53 +37,45 @@
<el-form-item label="备注">
<el-input
v-model="addForm.remark"
maxlength="200"
placeholder="请输入备注"
/>
</el-form-item>
<el-form-item
class="applyType"
label="适用商品"
prop="applyType"
>
<el-form-item class="applyType" label="适用商品" prop="applyType">
<el-radio v-model="addForm.applyType" :label="1">全部商品</el-radio>
<el-radio
v-model="addForm.applyType"
label="1"
>全部商品
</el-radio>
<el-radio v-model="addForm.applyType" label="1">全部商品</el-radio>
<el-radio
v-model="addForm.applyType"
label="2"
@change="chooseProduct(type = '2')"
:label="2"
@change="chooseProduct(type = 2)"
>指定商品可用
</el-radio>
<span
class="selectBtn"
@click="chooseProduct(type = '2')"
>
<span v-if="!visitDetail" class="selectBtn" @click="chooseProduct(type = 2)">
请选择
<i
v-if="addForm.applyType === '2' && idList.length !== 0"
class="selectNum"
>
<i v-if="addForm.applyType === 2 && idList.length !== 0" class="selectNum">
{{ idList.length }}
</i>
</span>
<span v-if="visitDetail && addForm.applyType === 2" class="selectBtn" @click="chooseProduct(type = 2)">
查看商品
<i v-if="addForm.applyType === 2 && idList.length !== 0" class="selectNum">
{{ idList.length }}
</i>
</span>
<el-radio
v-model="addForm.applyType"
label="3"
@change="chooseProduct(type = '3')"
:label="3"
@change="chooseProduct(type = 3)"
>指定商品不可用
</el-radio>
<span
class="selectBtn"
@click="chooseProduct(type = '3')"
>
<span v-if="!visitDetail" class="selectBtn" @click="chooseProduct(type = 3)">
请选择
<i
v-if="addForm.applyType === '3' && idList.length !== 0"
class="selectNum"
>
<i v-if="addForm.applyType === 3 && idList.length !== 0" class="selectNum">
{{ idList.length }}
</i>
</span>
<span v-if="visitDetail && addForm.applyType === 3" class="selectBtn" @click="chooseProduct(type = 3)">
查看商品
<i v-if="addForm.applyType === 3 && idList.length !== 0" class="selectNum">
{{ idList.length }}
</i>
</span>
@ -98,6 +91,7 @@
v-model="addForm.threshold"
:disabled="isThreshold"
:controls="false"
:max="999999999"
:min="0"
:precision="2"
:step="0.01"
@ -110,7 +104,7 @@
</el-checkbox>
</el-form-item>
<el-form-item
v-if="addForm.couponType === '1'"
v-if="addForm.couponType === 1"
class="inputW"
label="优惠内容"
prop="couponContent"
@ -120,6 +114,7 @@
<el-input-number
v-model="addForm.couponContent"
:controls="false"
:max="999999999"
:min="0"
:precision="2"
:step="0.01"
@ -166,17 +161,17 @@
>
<el-radio
v-model="addForm.timeType"
label="1"
:label="1"
>固定时间
</el-radio>
<div class="dateBox">
<el-form-item
prop="effectiveStart"
:rules="addForm.timeType === '1'?{required: true, message: '请选择用券时间', trigger: 'blur'}:{}"
:rules="addForm.timeType === 1 ? {required: true, message: '请选择用券时间', trigger: 'blur'}:{}"
>
<el-date-picker
v-model="getEffectTime"
:disabled="addForm.timeType === '2'"
:disabled="addForm.timeType === 2"
type="datetimerange"
range-separator="至"
start-placeholder="开始日期"
@ -189,14 +184,14 @@
<el-form-item class="boxWidth">
<el-radio
v-model="addForm.timeType"
label="2"
:label="2"
>领券当日起
</el-radio>
<el-input
v-model="addForm.effectiveDay"
:disabled="addForm.timeType !== '2'"
max="9"
:disabled="addForm.timeType !== 2"
oninput="value=value.replace(/[^\d]/g,'')"
type="number"
/>
天内可用
</el-form-item>
@ -207,7 +202,7 @@
>
<el-input
v-model="addForm.number"
type="number"
maxlength="9"
oninput="value=value.replace(/[^\d]/g,'')"
/>
@ -218,26 +213,26 @@
>
<el-radio
v-model="addForm.receiveType"
label="1"
:label="1"
>无限制
</el-radio>
<el-radio
v-model="addForm.receiveType"
label="2"
:label="2"
>限制
</el-radio>
<el-input
v-model="addForm.frequency"
:disabled="addForm.receiveType === '1'"
maxlength="9"
:disabled="addForm.receiveType === 1"
oninput="value=value.replace(/[^\d]/g,'')"
type="number"
/>
</el-form-item>
<el-form-item label="叠加平台优惠">
<el-radio-group v-model="addForm.ifAdd">
<el-radio label="0">不叠加</el-radio>
<el-radio label="1">叠加</el-radio>
<el-radio :label="0">不叠加</el-radio>
<el-radio :label="1">叠加</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
@ -247,14 +242,16 @@
class="dialog-footer"
>
<el-button
v-show="!visitDetail"
type="primary"
@click="addCouponFn('ruleForm')"
> </el-button>
<el-button @click="goToCoupon"> </el-button>
<el-button v-if="visitDetail" type="primary" @click="goToCoupon"> </el-button>
<el-button v-else @click="goToCoupon"> </el-button>
</span>
<!-- 新建分组弹框 -->
<el-dialog
title="选择商品"
:title="visitDetail ? '查看商品' : '选择商品'"
:visible.sync="isVisible"
width="70%"
top="50px"
@ -290,7 +287,7 @@
<img
height="80"
width="80"
:src="scope.row.image "
:src="scope.row.image"
alt
srcset
>
@ -332,10 +329,7 @@
</div>
<div class="footBtnBox">
<span slot="footer">
<el-button
type="primary"
@click="saveIdList"
> </el-button>
<el-button v-if="!visitDetail" type="primary" @click="saveIdList"> </el-button>
<el-button @click="closeSelect"> </el-button>
</span>
</div>
@ -349,10 +343,10 @@ import { addCoupon, getProducts, couponDetail, updateCoupon } from '@/api/market
function InitCouponForm() {
this.type = 2 // 12
this.applyType = '1' // 1- 2- 3-
this.applyType = 1 // 1- 2- 3-
this.couponContent = null //
this.couponName = '' //
this.couponType = '1' // 1- 2-
this.couponType = 1 // 1- 2-
this.effectiveDay = null //
this.effectiveStart = null //
this.effectiveEnd = null //
@ -360,13 +354,13 @@ function InitCouponForm() {
this.takeEnd = null //
this.frequency = null //
this.ids = [] // id
this.ifAdd = '0' // 1- 0-
this.ifAdd = 0 // 1- 0-
this.number = null //
this.receiveType = '1' // 1- 2-
this.receiveType = 1 // 1- 2-
this.remark = '' //
this.shopCouponId = null // id
this.threshold = '0' // 使0
this.timeType = '1' // 1- 2-
this.threshold = 0 // 使0
this.timeType = 1 // 1- 2-
}
export default {
@ -375,6 +369,10 @@ export default {
couponId: {
type: Number,
default: 0
},
visitDetail: {
type: Boolean,
default: false
}
},
data() {
@ -390,7 +388,7 @@ export default {
callback()
}
const validatorEffectTime = (rule, value, callback) => {
if (this.addForm.timeType === '1') {
if (this.addForm.timeType === 1) {
if (!this.addForm.effectiveStart) return callback(new Error('请选择用券时间'))
if (this.addForm.effectiveStart < this.addForm.takeStart) {
callback(new Error('用券时间不得小于发券时间'))
@ -414,7 +412,7 @@ export default {
isThreshold: true,
total: 0,
tableData: [],
currentType: '1',
currentType: 1,
shopCouponId: '', // ID
couponRules: {
couponName: [
@ -519,21 +517,21 @@ export default {
// })
// return false
// }
if (this.addForm.timeType === '2' && this.addForm.effectiveDay === null) {
if (this.addForm.timeType === 2 && this.addForm.effectiveDay === null) {
this.$message({
message: '请填写领券多久内可以使用时间',
type: 'warning'
})
return false
}
if (this.addForm.receiveType === ' 2' && this.addForm.frequency === null) {
if (this.addForm.receiveType === 2 && this.addForm.frequency === null) {
this.$message({
message: '请填写每人限领次数',
type: 'warning'
})
return false
}
if (this.addForm.couponType === '2') {
if (this.addForm.couponType === 2) {
var regExp = /^([1-9]{1})(.\d{1})?$/
if (!regExp.test(this.addForm.couponContent)) {
this.$message({
@ -588,6 +586,14 @@ export default {
}
}
this.currentType = type
if (this.visitDetail) {
this.proOption.activityId = this.shopCouponId
this.proOption.queryType = this.addForm.applyType
} else {
this.proOption.activityId = null
this.proOption.queryType = null
}
this.getProList()
},
getProList() {
getProducts(this.proOption).then(res => {
@ -634,8 +640,9 @@ export default {
},
async getCouponInfo() {
const res = await couponDetail({ shopCouponId: this.shopCouponId })
this.addForm = res.data
this.addForm.applyType = res.data.applyType.toString()
this.addForm = Object.assign(this.addForm, res.data)
/*
this.addForm.applyType = res.data.applyType
this.addForm.couponContent = res.data.couponContent
this.addForm.couponName = res.data.couponName
this.addForm.couponType = res.data.couponType.toString()
@ -651,11 +658,12 @@ export default {
this.addForm.shopCouponId = res.data.shopCouponId
this.addForm.threshold = res.data.threshold.toString()
this.addForm.timeType = res.data.timeType.toString()
*/
this.dateInfo = [this.addForm.effectiveStart, this.addForm.effectiveEnd]
this.addForm.products.forEach(item => {
this.idList.push(item.productId)
})
this.currentType = res.data.applyType.toString()
this.currentType = res.data.applyType
},
changeThreshold(val) { //
if (val) {
@ -676,7 +684,11 @@ export default {
background: #FFFFFF;
.dialog-footer {
margin-left: 300px;
display: flex;
justify-content: center;
.el-button {
margin: 0px 16px;
}
}
.formBox {

10
src/views/marketing/channelManage/index.vue

@ -16,6 +16,7 @@
<el-form-item label="优惠券名称">
<el-input
v-model="formInline.couponName"
maxlength="20"
placeholder="请输入内容"
/>
</el-form-item>
@ -165,6 +166,12 @@
<el-button
v-if="scope.row.state !== 0"
type="text"
@click="visitActivity(scope.row.shopCouponId)"
>详情
</el-button>
<el-button
v-if="scope.row.state !== 0"
type="text"
@click="showData(scope.row.shopCouponId)"
>数据
</el-button>
@ -211,7 +218,7 @@
<!-- 新增活动 -->
<el-dialog
:title="activityId ? '修改优惠券' : '新增优惠券'"
:title="activityId ? (visitDetail ? '查看优惠券' : '修改优惠券') : '新增优惠券'"
:visible.sync="activityVisible"
width="900px"
center
@ -222,6 +229,7 @@
<AddCoupon
ref="addCoupon"
:coupon-id="activityId"
:visit-detail="visitDetail"
@reset="reset"
/>
</el-dialog>

3
src/views/marketing/compose/add.vue

@ -13,6 +13,7 @@
<el-form-item label="活动名称" prop="composeName">
<el-input
v-model="addForm.composeName"
maxlength="15"
placeholder="请输入活动名称"
oninput="value=value.replace(/\s+/g, '')"
/>
@ -59,7 +60,6 @@
>固定减价</el-radio>
<el-input-number
v-model="promote2"
type="number"
:controls="false"
:max="10000000"
:min="0.01"
@ -170,6 +170,7 @@
<el-form-item label="商品名称">
<el-input
v-model="proOption.search"
maxlength="20"
placeholder="请输入商品名称"
/>
</el-form-item>

136
src/views/marketing/coupon/add.vue

@ -2,50 +2,62 @@
<div class="addCoupon">
<!-- 新增用户 -->
<div class="addCouponBox">
<el-form ref="ruleForm" class="formBox" :model="addForm" label-width="150px" :rules="couponRules">
<el-form ref="ruleForm" class="formBox" :model="addForm" label-width="150px" :rules="couponRules" :disabled="visitDetail">
<el-form-item label="优惠券类型">
<el-radio v-model="addForm.couponType" label="1">满减券</el-radio>
<el-radio v-model="addForm.couponType" label="2">折扣券</el-radio>
<el-radio v-model="addForm.couponType" :label="1">满减券</el-radio>
<el-radio v-model="addForm.couponType" :label="2">折扣券</el-radio>
</el-form-item>
<el-form-item label="优惠券名称" prop="couponName">
<el-input v-model="addForm.couponName" placeholder="请输入优惠券名称" onblur="value=value.replace(/(^\s*)|(\s*$)/g, '')" />
<el-input v-model="addForm.couponName" maxlength="20" placeholder="请输入优惠券名称" onblur="value=value.replace(/(^\s*)|(\s*$)/g, '')" />
</el-form-item>
<el-form-item label="备注">
<el-input v-model="addForm.remark" placeholder="请输入备注" />
<el-input v-model="addForm.remark" maxlength="200" placeholder="请输入备注" />
</el-form-item>
<el-form-item class="applyType" label="适用商品" prop="applyType">
<el-radio v-model="addForm.applyType" label="1">全部商品</el-radio>
<el-radio v-model="addForm.applyType" :label="1">全部商品</el-radio>
<el-radio
v-model="addForm.applyType"
label="2"
@change="chooseProduct(type = '2')"
:label="2"
@change="chooseProduct(type = 2)"
>指定商品可用</el-radio>
<span class="selectBtn" @click="chooseProduct(type = '2')">
<span v-if="!visitDetail" class="selectBtn" @click="chooseProduct(type = 2)">
请选择
<i v-if="addForm.applyType === '2' && idList.length !== 0" class="selectNum">
<i v-if="addForm.applyType === 2 && idList.length !== 0" class="selectNum">
{{ idList.length }}
</i>
</span>
<span v-if="visitDetail && addForm.applyType === 2" class="selectBtn" @click="chooseProduct(type = 2)">
查看商品
<i v-if="addForm.applyType === 2 && idList.length !== 0" class="selectNum">
{{ idList.length }}
</i>
</span>
<el-radio
v-model="addForm.applyType"
label="3"
@change="chooseProduct(type = '3')"
:label="3"
@change="chooseProduct(type = 3)"
>指定商品不可用</el-radio>
<span class="selectBtn" @click="chooseProduct(type = '3')">
<span v-if="!visitDetail" class="selectBtn" @click="chooseProduct(type = 3)">
请选择
<i v-if="addForm.applyType === '3' && idList.length !== 0" class="selectNum">
<i v-if="addForm.applyType === 3 && idList.length !== 0" class="selectNum">
{{ idList.length }}
</i>
</span>
<span v-if="visitDetail && addForm.applyType === 3" class="selectBtn" @click="chooseProduct(type = 3)">
查看商品
<i v-if="addForm.applyType === 3 && idList.length !== 0" class="selectNum">
{{ idList.length }}
</i>
</span>
</el-form-item>
<el-form-item class="inputW" label="使用门槛" prop="threshold">
<!-- 订单满<el-input v-model="addForm.threshold" :disabled="isThreshold" type="number" oninput="value=value.replace(/-/, '')" /> -->
订单满 <el-input-number v-model="addForm.threshold" :disabled="isThreshold" :controls="false" :min="0" :precision="2" :step="0.01" />
订单满 <el-input-number v-model="addForm.threshold" :disabled="isThreshold" :controls="false" :max="999999999" :min="0" :precision="2" :step="0.01" />
<el-checkbox v-model="isThreshold" @change="changeThreshold">无门槛</el-checkbox>
</el-form-item>
<el-form-item v-if="addForm.couponType === '1'" class="inputW" label="优惠内容" prop="couponContent">
<el-form-item v-if="addForm.couponType === 1" class="inputW" label="优惠内容" prop="couponContent">
<!-- <el-input v-model="addForm.couponContent" type="number" /> -->
<el-input-number v-model="addForm.couponContent" :controls="false" :min="0" :precision="2" :step="0.01" />
<el-input-number v-model="addForm.couponContent" :controls="false" :max="999999999" :min="0" :precision="2" :step="0.01" />
</el-form-item>
<el-form-item v-else class="inputW discount" label="优惠内容" prop="couponContent">
<!-- <el-input v-model="addForm.couponContent" type="number" /> -->
@ -53,12 +65,12 @@
<label>输入值要大于0 小于10可保留一位小数</label>
</el-form-item>
<el-form-item class="timeDataBox" label="用券时间">
<el-radio v-model="addForm.timeType" label="1">固定时间</el-radio>
<el-radio v-model="addForm.timeType" :label="1">固定时间</el-radio>
<div class="dateBox">
<el-form-item>
<el-date-picker
v-model="dateInfo"
:disabled="addForm.timeType === '2'"
:disabled="addForm.timeType === 2"
type="datetimerange"
range-separator="至"
start-placeholder="开始日期"
@ -69,32 +81,33 @@
</div>
</el-form-item>
<el-form-item class="boxWidth">
<el-radio v-model="addForm.timeType" label="2">领券当日起</el-radio>
<el-input v-model="addForm.effectiveDay" :disabled="addForm.timeType !== '2'" oninput="value=value.replace(/[^\d]/g,'')" type="number" />天内可用
<el-radio v-model="addForm.timeType" :label="2">领券当日起</el-radio>
<el-input v-model="addForm.effectiveDay" maxlength="9" :disabled="addForm.timeType !== 2" oninput="value=value.replace(/[^\d]/g,'')" />天内可用
</el-form-item>
<el-form-item class="boxWidth" label="发放数量" prop="number">
<el-input v-model="addForm.number" type="number" oninput="value=value.replace(/[^\d]/g,'')" />
<el-input v-model="addForm.number" maxlength="9" oninput="value=value.replace(/[^\d]/g,'')" />
</el-form-item>
<el-form-item class="boxWidth" label="每人限领次数">
<el-radio v-model="addForm.receiveType" label="1">无限制</el-radio>
<el-radio v-model="addForm.receiveType" label="2">限制</el-radio>
<el-input v-model="addForm.frequency" :disabled="addForm.receiveType === '1'" oninput="value=value.replace(/[^\d]/g,'')" type="number" />
<el-radio v-model="addForm.receiveType" :label="1">无限制</el-radio>
<el-radio v-model="addForm.receiveType" :label="2">限制</el-radio>
<el-input v-model="addForm.frequency" maxlength="9" :disabled="addForm.receiveType === 1" oninput="value=value.replace(/[^\d]/g,'')" />
</el-form-item>
<el-form-item label="叠加平台优惠">
<el-radio-group v-model="addForm.ifAdd">
<el-radio label="0">不叠加</el-radio>
<el-radio label="1">叠加</el-radio>
<el-radio :label="0">不叠加</el-radio>
<el-radio :label="1">叠加</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="addCouponFn('ruleForm')"> </el-button>
<el-button @click="goToCoupon"> </el-button>
<el-button v-show="!visitDetail" type="primary" @click="addCouponFn('ruleForm')"> </el-button>
<el-button v-if="visitDetail" type="primary" @click="goToCoupon"> </el-button>
<el-button v-else @click="goToCoupon"> </el-button>
</span>
<!-- 新建分组弹框 -->
<el-dialog
title="选择商品"
:title="visitDetail ? '查看商品' : '选择商品'"
:visible.sync="isVisible"
width="70%"
top="50px"
@ -117,13 +130,14 @@
@selection-change="handleSelectionChange"
>
<el-table-column
v-if="!visitDetail"
type="selection"
:reserve-selection="true"
width="55"
/>
<el-table-column label="产品主图" width="220" align="center">
<template slot-scope="scope">
<img height="80" width="80" :src="scope.row.image " alt srcset>
<img height="80" width="80" :src="scope.row.image" alt srcset>
</template>
</el-table-column>
<el-table-column prop="productName" label="产品名称" width="220" />
@ -146,7 +160,7 @@
</div>
<div class="footBtnBox">
<span slot="footer">
<el-button type="primary" @click="saveIdList"> </el-button>
<el-button v-if="!visitDetail" type="primary" @click="saveIdList"> </el-button>
<el-button @click="closeSelect"> </el-button>
</span>
</div>
@ -160,22 +174,23 @@ import { addCoupon, getProducts, couponDetail, updateCoupon } from '@/api/market
function InitCouponForm() {
this.type = 1
this.applyType = '1' // 1- 2- 3-
this.applyType = 1 // 1- 2- 3-
this.couponContent = null //
this.couponName = '' //
this.couponType = '1' // 1- 2-
this.couponType = 1 // 1- 2-
this.effectiveDay = null //
this.effectiveStart = '' //
this.effectiveEnd = '' //
this.frequency = null //
this.ids = [] // id
this.ifAdd = '0' // 1- 0-
this.excludeIds = [] // id
this.ifAdd = 0 // 1- 0-
this.number = null //
this.receiveType = '1' // 1- 2-
this.receiveType = 1 // 1- 2-
this.remark = '' //
this.shopCouponId = null // id
this.threshold = '0' // 使0
this.timeType = '1' // 1- 2-
this.threshold = 0 // 使0
this.timeType = 1 // 1- 2-
}
export default {
name: 'AddCoupon',
@ -183,6 +198,10 @@ export default {
couponId: {
type: Number,
default: 0
},
visitDetail: {
type: Boolean,
default: false
}
},
data() {
@ -201,7 +220,7 @@ export default {
isThreshold: true,
total: 0,
tableData: [],
currentType: '1',
currentType: 1,
shopCouponId: '', // ID
couponRules: {
couponName: [
@ -264,28 +283,28 @@ export default {
addCouponFn(ruleForm) {
this.$refs[ruleForm].validate(valid => {
if (valid) {
if (this.addForm.timeType === '1' && this.dateInfo.length === 0) {
if (this.addForm.timeType === 1 && this.dateInfo.length === 0) {
this.$message({
message: '请选择用券时间开始和结束日期',
type: 'warning'
})
return false
}
if (this.addForm.timeType === '2' && this.addForm.effectiveDay === null) {
if (this.addForm.timeType === 2 && this.addForm.effectiveDay === null) {
this.$message({
message: '请填写领券多久内可以使用时间',
type: 'warning'
})
return false
}
if (this.addForm.receiveType === ' 2' && this.addForm.frequency === null) {
if (this.addForm.receiveType === 2 && this.addForm.frequency === null) {
this.$message({
message: '请填写每人限领次数',
type: 'warning'
})
return false
}
if (this.addForm.couponType === '2') {
if (this.addForm.couponType === 2) {
var regExp = /^([1-9]{1})(.\d{1})?$/
if (!regExp.test(this.addForm.couponContent)) {
this.$message({
@ -351,6 +370,13 @@ export default {
}
}
this.currentType = type
if (this.visitDetail) {
this.proOption.activityId = this.shopCouponId
this.proOption.queryType = this.addForm.applyType
} else {
this.proOption.activityId = null
this.proOption.queryType = null
}
this.getProList()
},
getProList() {
@ -380,7 +406,7 @@ export default {
idList.push(i.productId)
})
this.idList = idList
console.log('idList.length', idList.length)
// console.log('idList.length', idList.length)
this.addForm.ids = idList
this.addForm.applyType = this.currentType
this.isVisible = false
@ -395,11 +421,14 @@ export default {
},
async getCouponInfo() {
const res = await couponDetail({ shopCouponId: this.shopCouponId })
this.addForm = res.data
this.addForm.applyType = res.data.applyType.toString()
this.addForm = Object.assign(this.addForm, res.data)
// console.log('--')
console.dir(res.data)
/*
this.addForm.applyType = res.data.applyType
this.addForm.couponContent = res.data.couponContent
this.addForm.couponName = res.data.couponName
this.addForm.couponType = res.data.couponType.toString()
this.addForm.couponType = res.data.couponType
this.addForm.effectiveDay = res.data.effectiveDay
this.addForm.effectiveStart = res.data.effectiveStart
this.addForm.effectiveEnd = res.data.effectiveEnd
@ -412,19 +441,20 @@ export default {
this.addForm.shopCouponId = res.data.shopCouponId
this.addForm.threshold = res.data.threshold.toString()
this.addForm.timeType = res.data.timeType.toString()
*/
this.dateInfo = [this.addForm.effectiveStart, this.addForm.effectiveEnd]
if (this.addForm.applyType === '2') {
if (this.addForm.applyType === 2) {
this.addForm.products.forEach(item => {
this.idList.push(item.productId)
})
} else if (this.addForm.applyType === '3') {
} else if (this.addForm.applyType === 3) {
this.addForm.excludeIds.forEach(item => {
this.idList.push(item)
})
} else {
this.idList = []
}
this.currentType = res.data.applyType.toString()
this.currentType = res.data.applyType
},
changeThreshold(val) { //
if (val) {
@ -440,7 +470,11 @@ export default {
.addCoupon {
background: #FFFFFF;
.dialog-footer {
margin-left: 300px;
display: flex;
justify-content: center;
.el-button {
margin: 0px 16px;
}
}
.formBox {
.flexBox {

6
src/views/marketing/coupon/index.vue

@ -3,7 +3,7 @@
<div class="formSearch">
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item label="优惠券名称">
<el-input v-model="formInline.couponName" placeholder="请输入内容" />
<el-input v-model="formInline.couponName" maxlength="20" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="优惠券类型">
<el-select v-model="formInline.couponType" placeholder="请选择优惠券类型">
@ -69,6 +69,7 @@
<template slot-scope="scope">
<div class="btnList">
<el-button v-if="scope.row.state === 0" type="text" @click="editActivity(scope.row.shopCouponId)">编辑</el-button>
<el-button v-if="scope.row.state !== 0" type="text" @click="visitActivity(scope.row.shopCouponId)">详情</el-button>
<el-button v-if="scope.row.state !== 0" type="text" @click="showData(scope.row.shopCouponId)">数据</el-button>
<el-popconfirm v-if="scope.row.state === 0 || scope.row.state === 2" title="确定删除此券?" @onConfirm="delCouponFn(scope.row)">
<el-button slot="reference" class="delCls" type="text">删除</el-button>
@ -95,7 +96,7 @@
<!-- 新增活动 -->
<el-dialog
:title="activityId ? '修改优惠券' : '新增优惠券'"
:title="activityId ? (visitDetail ? '查看优惠券' : '修改优惠券') : '新增优惠券'"
:visible.sync="activityVisible"
width="900px"
center
@ -106,6 +107,7 @@
<AddCoupon
ref="addCoupon"
:coupon-id="activityId"
:visit-detail="visitDetail"
@reset="reset"
/>
</el-dialog>

46
src/views/marketing/discount/add.vue

@ -2,15 +2,15 @@
<div class="addGroupBuy">
<!-- 新增用户 -->
<div class="addGroupBuyBox">
<el-form ref="ruleForm" class="formBox" :model="addForm" label-width="150px" :rules="discountRules">
<el-form ref="ruleForm" class="formBox" :model="addForm" label-width="150px" :rules="discountRules" :disabled="visitDetail">
<div class="flexBox">
<el-form-item label="活动名称" prop="discountName">
<el-input v-model="addForm.discountName" placeholder="请输入活动名称" />
<el-input v-model="addForm.discountName" maxlength="15" placeholder="请输入活动名称" />
</el-form-item>
</div>
<div class="flexBox">
<el-form-item label="备注">
<el-input v-model="addForm.remark" placeholder="请输入备注" />
<el-input v-model="addForm.remark" maxlength="200" placeholder="请输入备注" />
</el-form-item>
</div>
<el-form-item class="timeDataBox" label="活动时间">
@ -30,34 +30,35 @@
<el-form-item class="boxWidth" label="商品限购" prop="proQuota">
<el-radio v-model="addForm.ifLimit" label="1">不限购</el-radio>
<el-radio v-model="addForm.ifLimit" label="2">限购</el-radio>
<el-input v-model="addForm.limitNumber" :disabled="addForm.ifLimit === '1'" type="number" oninput="value=value.replace(/[^\d]/g,'')" />/
<el-input v-model="addForm.limitNumber" maxlength="9" :disabled="addForm.ifLimit === '1'" oninput="value=value.replace(/[^\d]/g,'')" />/
</el-form-item>
<el-form-item class="boxWidth" label="活动商品限量" prop="proQuota">
<el-radio v-model="addForm.ifNumber" label="0">不限量</el-radio>
<el-radio v-model="addForm.ifNumber" label="1">限量</el-radio>
<el-input v-model="addForm.number" :disabled="addForm.ifNumber === '0'" type="number" oninput="value=value.replace(/[^\d]/g,'')" />
<el-input v-model="addForm.number" maxlength="9" :disabled="addForm.ifNumber === '0'" oninput="value=value.replace(/[^\d]/g,'')" />
</el-form-item>
<el-form-item class="boxWidth" label="活动预热" prop="enableTime">
<el-radio v-model="addForm.ifEnable" label="1">停用</el-radio>
<el-radio v-model="addForm.ifEnable" label="2">启用</el-radio>
<el-input v-model="addForm.enableTime" :disabled="addForm.ifEnable === '1'" type="number" oninput="value=value.replace(/[^\d]/g,'')" />小时前
<el-input v-model="addForm.enableTime" maxlength="9" :disabled="addForm.ifEnable === '1'" oninput="value=value.replace(/[^\d]/g,'')" />小时前
</el-form-item>
<el-form-item label="优惠券叠加" prop="overlying">
<el-radio v-model="addForm.ifAdd" label="1">叠加</el-radio>
<el-radio v-model="addForm.ifAdd" label="0">不叠加</el-radio>
</el-form-item>
<el-form-item class="applyType" label="活动商品" prop="commodity">
<span class="selectBtn" @click="chooseProduct">请选择<i v-if="addForm.details.length !== 0" class="selectNum">{{ addForm.details.length }}</i></span>
<span class="selectBtn" @click="chooseProduct"><span v-if="!visitDetail">请选择</span><span v-else>查看商品</span><i v-if="addForm.details.length !== 0" class="selectNum">{{ addForm.details.length }}</i></span>
</el-form-item>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="addSeckillFn('ruleForm')"> </el-button>
<el-button type="danger" @click="goToDiscount"> </el-button>
<el-button v-show="!visitDetail" type="primary" @click="addSeckillFn('ruleForm')"> </el-button>
<el-button v-if="visitDetail" type="primary" @click="goToDiscount"> </el-button>
<el-button v-else type="danger" @click="goToDiscount"> </el-button>
</span>
<!-- 新建分组弹框 -->
<el-dialog
title="选择商品"
:title="visitDetail ? '查看商品' : '选择商品'"
:visible.sync="isVisible"
width="55%"
top="50px"
@ -80,6 +81,7 @@
@selection-change="handleSelectionChange"
>
<el-table-column
v-if="!visitDetail"
type="selection"
:reserve-selection="true"
width="55"
@ -94,7 +96,7 @@
<el-table-column prop="value" label="规格" width="120" />
<el-table-column label="折扣" width="155">
<template scope="scope">
<el-input-number v-model="scope.row.discount" size="small" :controls="false" :precision="1" :max="9.9" :min="0.1" maxlength="2" @blur="blurInput(scope.row)" />
<el-input-number v-model="scope.row.discount" :disabled="visitDetail" size="small" :controls="false" :precision="1" :max="9.9" :min="0.1" maxlength="2" @blur="blurInput(scope.row)" />
</template>
</el-table-column>
<el-table-column label="活动价(元)">
@ -126,7 +128,7 @@
</div>
<div class="footBtnBox">
<span slot="footer">
<el-button type="primary" @click="saveIdList"> </el-button>
<el-button v-if="!visitDetail" type="primary" @click="saveIdList"> </el-button>
<el-button @click="closeSelect"> </el-button>
</span>
</div>
@ -155,9 +157,13 @@ function InitDiscountForm() {
export default {
name: 'AddGroupBuy',
props: {
discoutId: {
discountId: {
type: Number,
default: 0
},
visitDetail: {
type: Boolean,
default: false
}
},
data() {
@ -190,7 +196,7 @@ export default {
}
},
watch: {
discoutId: {
discountId: {
handler(nVal, oVal) {
this.shopDiscountId = nVal
if (!nVal) {
@ -204,7 +210,7 @@ export default {
},
mounted() {
this.getProList()
this.shopDiscountId = this.discoutId
this.shopDiscountId = this.discountId
if (this.shopDiscountId) {
this.getDiscountInfo()
}
@ -283,6 +289,11 @@ export default {
//
chooseProduct(type) {
this.isVisible = true
if (this.visitDetail) {
this.proOption.activityId = this.shopDiscountId
} else {
this.proOption.activityId = null
}
this.getProList()
},
getProList() {
@ -401,7 +412,10 @@ export default {
background: #FFFFFF;
.dialog-footer {
display: flex;
justify-content: space-around;
justify-content: center;
.el-button {
margin: 0px 16px;
}
}
.formBox {
margin-top: 20px;

8
src/views/marketing/discount/index.vue

@ -3,7 +3,7 @@
<div class="formSearch">
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item label="活动名称">
<el-input v-model="formInline.discountName" placeholder="请输入内容" />
<el-input v-model="formInline.discountName" maxlength="15" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="状态">
<el-select v-model="formInline.state" placeholder="请选择状态">
@ -47,6 +47,7 @@
<template slot-scope="scope">
<div class="btnList">
<el-button v-if="scope.row.state === 0" type="text" @click="editActivity(scope.row.shopDiscountId)">编辑</el-button>
<el-button v-if="scope.row.state !== 0" type="text" @click="visitActivity(scope.row.shopDiscountId)">详情</el-button>
<el-button v-if="scope.row.state !== 0" type="text" @click="showData(scope.row.shopDiscountId)">数据</el-button>
<el-popconfirm v-if="scope.row.state === 0 || scope.row.state === 2" title="确定删除此活动?" @onConfirm="delDiscountFn(scope.row.shopDiscountId)">
<el-button slot="reference" class="delCls" type="text">删除</el-button>
@ -73,7 +74,7 @@
<!-- 新增活动 -->
<el-dialog
:title="activityId ? '修改折扣活动' : '新增折扣活动'"
:title="activityId ? (visitDetail ? '查看折扣活动' : '修改折扣活动') : '新增折扣活动'"
:visible.sync="activityVisible"
width="700px"
center
@ -83,7 +84,8 @@
>
<AddDiscount
ref="addDiscountData"
:discout-id="activityId"
:discount-id="activityId"
:visit-detail="visitDetail"
@cancel="activityVisible = false"
@reset="reset"
/>

42
src/views/marketing/group/add.vue

@ -2,15 +2,15 @@
<div class="addGroupBuy">
<!-- 新增用户 -->
<div class="addGroupBuyBox">
<el-form ref="ruleForm" class="formBox" :model="addForm" label-width="150px" :rules="groupBuyRules">
<el-form ref="ruleForm" class="formBox" :model="addForm" label-width="150px" :rules="groupBuyRules" :disabled="visitDetail">
<div class="flexBox">
<el-form-item label="活动名称" prop="groupName">
<el-input v-model="addForm.groupName" placeholder="请输入活动名称" oninput="value=value.replace(/\s+/g, '')" />
<el-input v-model="addForm.groupName" maxlength="15" placeholder="请输入活动名称" oninput="value=value.replace(/\s+/g, '')" />
</el-form-item>
</div>
<div class="flexBox">
<el-form-item label="备注">
<el-input v-model="addForm.remark" placeholder="请输入备注" />
<el-input v-model="addForm.remark" maxlength="200" placeholder="请输入备注" />
</el-form-item>
</div>
<el-form-item class="timeDataBox" label="拼团使用时间">
@ -28,37 +28,38 @@
</div>
</el-form-item>
<el-form-item class="inputW" label="成团人数" prop="person">
<el-input v-model="addForm.person" type="number" oninput="value=value.replace(/[^\d]/g,'')" />
<el-input v-model="addForm.person" maxlength="9" oninput="value=value.replace(/[^\d]/g,'')" />
</el-form-item>
<el-form-item class="inputW" label="成团有效时间" prop="effectiveTime">
<el-input v-model="addForm.effectiveTime" type="number" oninput="value=value.replace(/[^\d]/g,'')" />小时
<el-input v-model="addForm.effectiveTime" maxlength="9" oninput="value=value.replace(/[^\d]/g,'')" />小时
</el-form-item>
<el-form-item class="boxWidth" label="商品限购" prop="proQuota">
<el-radio v-model="addForm.ifLimit" label="1">不限购</el-radio>
<el-radio v-model="addForm.ifLimit" label="2">限购</el-radio>
<el-input v-model="addForm.limitNumber" :disabled="addForm.ifLimit === '1'" type="number" oninput="value=value.replace(/[^\d]/g,'')" />/
<el-input v-model="addForm.limitNumber" maxlength="9" :disabled="addForm.ifLimit === '1'" oninput="value=value.replace(/[^\d]/g,'')" />/
</el-form-item>
<el-form-item class="boxWidth" label="活动预热" prop="preheat">
<el-radio v-model="addForm.ifEnable" label="1">停用</el-radio>
<el-radio v-model="addForm.ifEnable" label="2">启用</el-radio>
<el-input v-model="addForm.enableTime" :disabled="addForm.ifEnable === '1'" type="number" oninput="value=value.replace(/[^\d]/g,'')" />小时前
<el-input v-model="addForm.enableTime" maxlength="9" :disabled="addForm.ifEnable === '1'" oninput="value=value.replace(/[^\d]/g,'')" />小时前
</el-form-item>
<el-form-item label="优惠券叠加" prop="overlying">
<el-radio v-model="addForm.ifAdd" label="1">叠加</el-radio>
<el-radio v-model="addForm.ifAdd" label="0">不叠加</el-radio>
</el-form-item>
<el-form-item class="applyType" label="活动商品" prop="commodity">
<span class="selectBtn" @click="chooseProduct">请选择<i v-if="addForm.details.length !== 0" class="selectNum">{{ addForm.details.length }}</i></span>
<span class="selectBtn" @click="chooseProduct"><span v-if="!visitDetail">请选择</span><span v-else>查看商品</span><i v-if="addForm.details.length !== 0" class="selectNum">{{ addForm.details.length }}</i></span>
</el-form-item>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="addGroupBuyFn('ruleForm')"> </el-button>
<el-button type="danger" @click="goToGroupBuy"> </el-button>
<el-button v-show="!visitDetail" type="primary" @click="addGroupBuyFn('ruleForm')"> </el-button>
<el-button v-if="visitDetail" type="primary" @click="goToGroupBuy"> </el-button>
<el-button v-else type="danger" @click="goToGroupBuy"> </el-button>
</span>
<!-- 新建分组弹框 -->
<el-dialog
title="选择商品"
:title="visitDetail ? '查看商品' : '选择商品'"
:visible.sync="isVisible"
width="55%"
top="50px"
@ -81,6 +82,7 @@
@selection-change="handleSelectionChange"
>
<el-table-column
v-if="!visitDetail"
type="selection"
:reserve-selection="true"
width="55"
@ -95,7 +97,7 @@
<el-table-column prop="value" label="规格" width="120" />
<el-table-column prop="workPrice" label="拼团价(元)" width="153">
<template slot-scope="scope">
<el-input-number v-model="scope.row.workPrice" size="small" :controls="false" type="number" :max="10000000" :min="0.01" :precision="2" @change="changeInput(scope.row)" />
<el-input-number v-model="scope.row.workPrice" :disabled="visitDetail" size="small" :controls="false" :max="10000000" :min="0.01" :precision="2" @change="changeInput(scope.row)" />
<!-- <el-input v-model="scope.row.workPrice" size="small" type="number" oninput="value=value.replace(/-/, '')" /> -->
</template>
</el-table-column>
@ -123,7 +125,7 @@
</div>
<div class="footBtnBox">
<span slot="footer">
<el-button type="primary" @click="saveIdList"> </el-button>
<el-button v-if="!visitDetail" type="primary" @click="saveIdList"> </el-button>
<el-button @click="closeSelect"> </el-button>
</span>
</div>
@ -155,6 +157,10 @@ export default {
groupId: {
type: Number,
default: 0
},
visitDetail: {
type: Boolean,
default: false
}
},
data() {
@ -285,6 +291,11 @@ export default {
//
chooseProduct(type) {
this.isVisible = true
if (this.visitDetail) {
this.proOption.activityId = this.shopGroupWorkId
} else {
this.proOption.activityId = null
}
this.getProList()
},
getProList() {
@ -388,7 +399,10 @@ export default {
background: #FFFFFF;
.dialog-footer {
display: flex;
justify-content: space-around;
justify-content: center;
.el-button {
margin: 0px 16px;
}
}
.formBox {
margin-top: 20px;

6
src/views/marketing/group/index.vue

@ -3,7 +3,7 @@
<div class="formSearch">
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item label="活动名称">
<el-input v-model="formInline.groupName" placeholder="请输入内容" />
<el-input v-model="formInline.groupName" maxlength="15" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="状态">
<el-select v-model="formInline.state" placeholder="请选择状态">
@ -47,6 +47,7 @@
<template slot-scope="scope">
<div class="btnList">
<el-button v-if="scope.row.state === 0" type="text" @click="editActivity(scope.row.shopGroupWorkId)">编辑</el-button>
<el-button v-if="scope.row.state !== 0" type="text" @click="visitActivity(scope.row.shopGroupWorkId)">详情</el-button>
<el-button v-if="scope.row.state !== 0" type="text" @click="showData(scope.row.shopGroupWorkId)">数据</el-button>
<el-popconfirm v-if="scope.row.state === 0 || scope.row.state === 2" title="确定删除此活动?" @onConfirm="delGroupBuyFn(scope.row)">
<el-button slot="reference" class="delCls" type="text">删除</el-button>
@ -73,7 +74,7 @@
<!-- 新增活动 -->
<el-dialog
:title="activityId ? '修改拼团活动' : '新增拼团活动'"
:title="activityId ? (visitDetail ? '查看拼团活动' : '修改拼团活动') : '新增拼团活动'"
:visible.sync="activityVisible"
width="700px"
center
@ -84,6 +85,7 @@
<AddGroup
ref="addGroundData"
:group-id="activityId"
:visit-detail="visitDetail"
@cancel="activityVisible = false"
@reset="reset"
/>

13
src/views/marketing/mixin/index.js

@ -2,17 +2,28 @@ export default {
data() {
return {
activityVisible: false,
activityId: 0
activityId: 0,
visitDetail: false
}
},
methods: {
addActivity() {
this.activityId = 0
this.activityVisible = true
this.visitDetail = false
},
editActivity(id) {
this.activityId = id
this.activityVisible = true
this.visitDetail = false
if (this.$refs.addCoupon) {
this.$refs.addCoupon.getCouponInfo()
}
},
visitActivity(id) {
this.activityId = id
this.activityVisible = true
this.visitDetail = true
if (this.$refs.addCoupon) {
this.$refs.addCoupon.getCouponInfo()
}

3
src/views/marketing/price/add.vue

@ -13,6 +13,7 @@
<el-form-item label="活动名称" prop="composeName">
<el-input
v-model="addForm.composeName"
maxlength="15"
placeholder="请输入活动名称"
oninput="value=value.replace(/\s+/g, '')"
/>
@ -156,7 +157,7 @@
<div class="formSearch">
<el-form :inline="true" :model="proOption" class="demo-form-inline">
<el-form-item label="商品名称">
<el-input v-model="proOption.search" placeholder="请输入商品名称" />
<el-input v-model="proOption.search" maxlength="20" placeholder="请输入商品名称" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="getProList">查询</el-button>

4
src/views/marketing/scene/add.vue

@ -9,7 +9,7 @@
<el-radio v-model="addForm.sceneType" :label="3">生日营销</el-radio>
</el-form-item>
<el-form-item label="营销名称" prop="sceneName">
<el-input v-model="addForm.sceneName" placeholder="请输入营销名称" onblur="value=value.replace(/(^\s*)|(\s*$)/g, '')" />
<el-input v-model="addForm.sceneName" maxlength="20" placeholder="请输入营销名称" onblur="value=value.replace(/(^\s*)|(\s*$)/g, '')" />
</el-form-item>
<el-form-item class="item-time" label="营销时间" prop="sceneTime">
<div v-if="addForm.sceneType === 1">
@ -27,7 +27,7 @@
<dl class="dl-month">
<dt><el-radio v-model="addForm.sceneTimeType" :label="1">每月</el-radio></dt>
<dd>
每月<el-input v-model="monthStart" type="number" oninput="value=value.replace(/[^\d]/g,'')" /> 每月<el-input v-model="monthEnd" type="number" oninput="value=value.replace(/[^\d]/g,'')" />
每月<el-input v-model="monthStart" maxlength="9" oninput="value=value.replace(/[^\d]/g,'')" /> 每月<el-input v-model="monthEnd" maxlength="9" oninput="value=value.replace(/[^\d]/g,'')" />
</dd>
</dl>
<dl>

38
src/views/marketing/spike/add.vue

@ -2,15 +2,15 @@
<div class="addGroupBuy">
<!-- 新增用户 -->
<div class="addGroupBuyBox">
<el-form ref="ruleForm" class="formBox" :model="addForm" label-width="150px" :rules="seckillBuyRules">
<el-form ref="ruleForm" class="formBox" :model="addForm" label-width="150px" :rules="seckillBuyRules" :disabled="visitDetail">
<div class="flexBox">
<el-form-item label="活动名称" prop="seckillName">
<el-input v-model="addForm.seckillName" placeholder="请输入活动名称" />
<el-input v-model="addForm.seckillName" maxlength="15" placeholder="请输入活动名称" />
</el-form-item>
</div>
<div class="flexBox">
<el-form-item label="备注">
<el-input v-model="addForm.remark" placeholder="请输入备注" />
<el-input v-model="addForm.remark" maxlength="200" placeholder="请输入备注" />
</el-form-item>
</div>
<el-form-item class="timeDataBox" label="活动时间">
@ -30,34 +30,35 @@
<el-form-item class="boxWidth" label="商品限购" prop="proQuota">
<el-radio v-model="addForm.ifLimit" label="1">不限购</el-radio>
<el-radio v-model="addForm.ifLimit" label="2">限购</el-radio>
<el-input v-model="addForm.limitNumber" :disabled="addForm.ifLimit === '1'" type="number" oninput="value=value.replace(/[^\d]/g,'')" />/
<el-input v-model="addForm.limitNumber" maxlength="9" :disabled="addForm.ifLimit === '1'" oninput="value=value.replace(/[^\d]/g,'')" />/
</el-form-item>
<el-form-item class="boxWidth" label="活动商品限量" prop="proQuota">
<el-radio v-model="addForm.ifNumber" label="0">不限量</el-radio>
<el-radio v-model="addForm.ifNumber" label="1">限量</el-radio>
<el-input v-model="addForm.number" :disabled="addForm.ifNumber === '0'" type="number" oninput="value=value.replace(/[^\d]/g,'')" />
<el-input v-model="addForm.number" maxlength="9" :disabled="addForm.ifNumber === '0'" oninput="value=value.replace(/[^\d]/g,'')" />
</el-form-item>
<el-form-item class="boxWidth" label="活动预热" prop="preheat">
<el-radio v-model="addForm.ifEnable" label="1">停用</el-radio>
<el-radio v-model="addForm.ifEnable" label="2">启用</el-radio>
<el-input v-model="addForm.enableTime" :disabled="addForm.ifEnable === '1'" type="number" oninput="value=value.replace(/[^\d]/g,'')" />小时前
<el-input v-model="addForm.enableTime" maxlength="9" :disabled="addForm.ifEnable === '1'" oninput="value=value.replace(/[^\d]/g,'')" />小时前
</el-form-item>
<el-form-item label="优惠券叠加" prop="overlying">
<el-radio v-model="addForm.ifAdd" label="1">叠加</el-radio>
<el-radio v-model="addForm.ifAdd" label="0">不叠加</el-radio>
</el-form-item>
<el-form-item class="applyType" label="活动商品" prop="commodity">
<span class="selectBtn" @click="chooseProduct">请选择<i v-if="addForm.details.length !== 0" class="selectNum">{{ addForm.details.length }}</i></span>
<span class="selectBtn" @click="chooseProduct"><span v-if="!visitDetail">请选择</span><span v-else>查看商品</span><i v-if="addForm.details.length !== 0" class="selectNum">{{ addForm.details.length }}</i></span>
</el-form-item>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="addSeckillFn('ruleForm')"> </el-button>
<el-button v-show="!visitDetail" type="primary" @click="addSeckillFn('ruleForm')"> </el-button>
<!-- <el-button v-if="visitDetail" type="primary" @click="goToSpike"> </el-button>-->
<el-button type="danger" @click="goToSpike"> </el-button>
</span>
<!-- 新建分组弹框 -->
<el-dialog
title="选择商品"
:title="visitDetail ? '查看商品' : '选择商品'"
:visible.sync="isVisible"
width="58%"
top="50px"
@ -80,6 +81,7 @@
@selection-change="handleSelectionChange"
>
<el-table-column
v-if="!visitDetail"
type="selection"
:reserve-selection="true"
width="55"
@ -94,7 +96,7 @@
<el-table-column prop="value" label="规格" width="120" />
<el-table-column label="直降(元)" width="153">
<template scope="scope">
<el-input-number v-model="scope.row.downPrice" size="small" :controls="false" :max="scope.row.originalPrice-0.01" :min="0.01" :precision="2" @input.native="changeCode(scope.row)" @blur="blurInput(scope.row)" />
<el-input-number v-model="scope.row.downPrice" :disabled="visitDetail" size="small" :controls="false" :max="scope.row.originalPrice-0.01" :min="0.01" :precision="2" @input.native="changeCode(scope.row)" @blur="blurInput(scope.row)" />
</template>
</el-table-column>
<el-table-column label="秒杀价(元)" width="150">
@ -126,7 +128,7 @@
</div>
<div class="footBtnBox">
<span slot="footer">
<el-button type="primary" @click="saveIdList"> </el-button>
<el-button v-if="!visitDetail" type="primary" @click="saveIdList"> </el-button>
<el-button @click="closeSelect"> </el-button>
</span>
</div>
@ -159,6 +161,10 @@ export default {
spikeId: {
type: Number,
default: 0
},
visitDetail: {
type: Boolean,
default: false
}
},
data() {
@ -298,6 +304,11 @@ export default {
//
chooseProduct(type) {
this.isVisible = true
if (this.visitDetail) {
this.proOption.activityId = this.shopSeckillId
} else {
this.proOption.activityId = null
}
this.getProList()
},
getProList() {
@ -401,7 +412,10 @@ export default {
background: #FFFFFF;
.dialog-footer {
display: flex;
justify-content: space-around;
justify-content: center;
.el-button {
margin: 0px 16px;
}
}
.formBox {
margin-top: 20px;

6
src/views/marketing/spike/index.vue

@ -3,7 +3,7 @@
<div class="formSearch">
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item label="活动名称">
<el-input v-model="formInline.seckillName" placeholder="请输入内容" />
<el-input v-model="formInline.seckillName" maxlength="15" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="状态">
<el-select v-model="formInline.state" placeholder="请选择状态">
@ -47,6 +47,7 @@
<template slot-scope="scope">
<div class="btnList">
<el-button v-if="scope.row.state === 0" type="text" @click="editActivity(scope.row.shopSeckillId)">编辑</el-button>
<el-button v-if="scope.row.state !== 0" type="text" @click="visitActivity(scope.row.shopSeckillId)">详情</el-button>
<el-button v-if="scope.row.state !== 0" type="text" @click="showData(scope.row)">数据</el-button>
<el-popconfirm v-if="scope.row.state === 0 || scope.row.state === 2" title="确定删除此活动?" @onConfirm="deleteSeckillFn(scope.row)">
<el-button slot="reference" class="delCls" type="text">删除</el-button>
@ -73,7 +74,7 @@
<!-- 新增活动 -->
<el-dialog
:title="activityId ? '修改秒杀活动' : '新增秒杀活动'"
:title="activityId ? (visitDetail ? '查看秒杀活动' : '修改秒杀活动') : '新增秒杀活动'"
:visible.sync="activityVisible"
width="700px"
center
@ -84,6 +85,7 @@
<AddSpike
ref="AddSpikeData"
:spike-id="activityId"
:visit-detail="visitDetail"
@reset="reset"
/>
</el-dialog>

4
src/views/order/aftersale/afterDetails.vue

@ -217,6 +217,7 @@
</div>
<el-input
v-model="textarea"
maxlength="200"
type="textarea"
:autosize="{ minRows: 2, maxRows: 4 }"
placeholder="请输入留言"
@ -229,6 +230,7 @@
<div class="tiTop">我已确认货物有损不予退款</div>
<el-input
v-model="textarea"
maxlength="200"
type="textarea"
:autosize="{ minRows: 2, maxRows: 4 }"
placeholder="请输入留言"
@ -290,7 +292,7 @@
</el-select>
</el-form-item>
<el-form-item label="快递单号" prop="deliverFormid">
<el-input v-model="form.deliverFormid" />
<el-input v-model="form.deliverFormid" maxlength="20" />
</el-form-item>
<!--
<el-form-item label="快递公司编号" prop="shipperCode" v-if="false">

2
src/views/order/aftersale/index.vue

@ -12,7 +12,7 @@
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item>
<div>
<el-input v-model="formInline.search" placeholder="请输入内容">
<el-input v-model="formInline.search" maxlength="20" placeholder="请输入内容">
<el-select
slot="prepend"
v-model="formInline.searchType"

1
src/views/order/pending/components/changePrice.vue

@ -18,6 +18,7 @@
<el-form-item label="修改价格" prop="newPrice">
<el-input
v-model="ruleForm.newPrice"
maxlength="9"
@change="
(val) => {
scope.row.newPrice = parseFloat(val) ? parseFloat(val) : 1;

2
src/views/order/pending/index.vue

@ -14,7 +14,7 @@
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item>
<div>
<el-input v-model="formInline.search" placeholder="请输入内容">
<el-input v-model="formInline.search" maxlength="20" placeholder="请输入内容">
<el-select
slot="prepend"
v-model="formInline.searchType"

1
src/views/order/pending/pendDetails.vue

@ -177,6 +177,7 @@
<el-form-item label="快递单号" prop="deliverFormid">
<el-input
v-model="form.deliverFormid"
maxlength="20"
oninput="value = value.replace(/[^\a-\z\A-\Z0-9]/g,'')"
/>
</el-form-item>

2
src/views/setup/phone/index.vue

@ -27,6 +27,7 @@
<el-form-item label="新手机号" prop="newPhone">
<el-input
v-model="ruleForm.newPhone"
maxlength="11"
style="width: 70%"
placeholder="请输入新手机号"
/>
@ -34,6 +35,7 @@
<el-form-item label="验证码" prop="code">
<el-input
v-model="ruleForm.code"
maxlength="6"
style="width: 40%; margin-right: 38px"
placeholder="请输入验证码"
/>

1
src/views/setup/privacy/index.vue

@ -30,6 +30,7 @@
<el-form-item label="验证码" prop="code">
<el-input
v-model="ruleForm.code"
maxlength="6"
style="width: 40%; margin-right: 38px"
placeholder="请输入验证码"
/>

6
src/views/setup/role/index.vue

@ -5,7 +5,7 @@
<div class="formSearch">
<el-form :inline="true" :model="formInline">
<el-form-item label="角色名">
<el-input v-model="formInline.search" placeholder="请输入角色名" />
<el-input v-model="formInline.search" maxlength="20" placeholder="请输入角色名" />
</el-form-item>
<el-form-item>
<el-button type="primary" plain @click="search">查询</el-button>
@ -67,10 +67,10 @@
<div>
<el-form ref="ruleForm" :model="addForm" label-width="80px" :rules="userRules">
<el-form-item label="角色名称" prop="roleName">
<el-input v-model="addForm.roleName" placeholder="请输入角色名称" />
<el-input v-model="addForm.roleName" maxlength="20" placeholder="请输入角色名称" />
</el-form-item>
<el-form-item label="角色描述">
<el-input v-model="addForm.roleDescribe" placeholder="请输入角色描述" />
<el-input v-model="addForm.roleDescribe" maxlength="60" placeholder="请输入角色描述" />
</el-form-item>
</el-form>
</div>

10
src/views/setup/tabs/index.vue

@ -8,7 +8,7 @@
>
<div class="searchInput">
<span>菜单名:</span>
<el-input v-model="formInline.permissionName" placeholder="请输入菜单名" />
<el-input v-model="formInline.permissionName" maxlength="20" placeholder="请输入菜单名" />
</div>
<el-button type="primary" plain @click="search">查询</el-button>
<el-button type="info" size="medium" plain @click="clear">重置</el-button>
@ -75,10 +75,10 @@
<el-input v-model="addForm.permissionPid" :disabled="true" placeholder="请输入角色名称" />
</el-form-item>
<el-form-item label="菜单名称" prop="permissionName">
<el-input v-model="addForm.permissionName" placeholder="请输入菜单名称" />
<el-input v-model="addForm.permissionName" maxlength="20" placeholder="请输入菜单名称" />
</el-form-item>
<el-form-item label="菜单路径" prop="permission">
<el-input v-model="addForm.permission" placeholder="请输入菜单路径" />
<el-input v-model="addForm.permission" maxlength="100" placeholder="请输入菜单路径" />
</el-form-item>
<el-form-item label="图标地址" prop="icon">
<el-input
@ -92,10 +92,10 @@
</el-input>
</el-form-item>
<el-form-item label="菜单描述">
<el-input v-model="addForm.describe" placeholder="请输入菜单描述" />
<el-input v-model="addForm.describe" maxlength="60" placeholder="请输入菜单描述" />
</el-form-item>
<el-form-item label="排序值" prop="sort">
<el-input v-model="addForm.sort" type="number" placeholder="请输入排序值" />
<el-input v-model="addForm.sort" maxlength="9" placeholder="请输入排序值" oninput="value=value.replace(/[^\d]/g,'')" />
</el-form-item>
<el-form-item label="权限类型" prop="resourceType">
<el-select v-model="addForm.resourceType" placeholder="请选择活动区域">

13
src/views/setup/user/index.vue

@ -5,7 +5,7 @@
<div class="formSearch">
<el-form :inline="true" :model="formInline">
<el-form-item label="用户名">
<el-input v-model="formInline.search" placeholder="请输入用户名" />
<el-input v-model="formInline.search" maxlength="20" placeholder="请输入用户名" />
</el-form-item>
<el-form-item label="是否启用">
<el-select v-model="formInline.state" placeholder="请选择">
@ -83,24 +83,25 @@
:rules="userRules"
>
<el-form-item label="用户名" prop="username">
<el-input v-model="addForm.username" placeholder="请输入用户名" />
<el-input v-model="addForm.username" maxlength="20" placeholder="请输入用户名" />
</el-form-item>
<el-form-item label="姓名" prop="name">
<el-input v-model="addForm.name" placeholder="请输入姓名" />
<el-input v-model="addForm.name" maxlength="20" placeholder="请输入姓名" />
</el-form-item>
<el-form-item label="密码">
<el-input
v-model="addForm.password"
maxlength="16"
placeholder="请输入密码"
show-password
/>
</el-form-item>
<el-form-item label="邮箱">
<el-input v-model="addForm.email" placeholder="请输入邮箱" />
<el-input v-model="addForm.email" maxlength="40" placeholder="请输入邮箱" />
</el-form-item>
<el-form-item label="手机号" prop="phone">
<el-input v-if="phoneShow" @focus="focusPhoneInput" :value="hidden(addForm.phone, 3, 4)" />
<el-input v-else v-model="addForm.phone" />
<el-input v-if="phoneShow" @focus="focusPhoneInput" maxlength="11" :value="hidden(addForm.phone, 3, 4)" />
<el-input v-else v-model="addForm.phone" maxlength="11" />
</el-form-item>
<el-form-item label="性别">
<el-radio-group v-model="addForm.sex">

37
src/views/system/logistics/Edit.vue

@ -66,40 +66,45 @@
<div class="form-item-row">
<div class="el-row" style="margin-bottom: 10px;">
首重/件费用 &nbsp;&nbsp;&nbsp;&nbsp;
<el-input
<el-input-number v-model="logisticsDetail.weight" :disabled="isDisabled" :controls="false" :max="999" :min="0" :precision="2" :step="0.01" />
<!-- <el-input
v-model="logisticsDetail.weight"
type="number"
maxlength="9"
:readonly="isDisabled"
placeholder="请输入内容"
oninput="value=value.replace(/-/, '')"
/>
oninput="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')"
/> -->
KG/
<el-input
<el-input-number v-model="logisticsDetail.price" :disabled="isDisabled" :controls="false" :max="999999999" :min="0" :precision="2" :step="0.01" />
<!-- <el-input
v-model="logisticsDetail.price"
maxlength="9"
type="text"
:readonly="isDisabled"
placeholder="请输入内容"
oninput="value=value.replace(/-/, '')"
/>
oninput="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')"
/> -->
</div>
<div class="el-row">
续重/件费用
<el-input
<el-input-number v-model="logisticsDetail.secondWeight" :disabled="isDisabled" :controls="false" :max="999" :min="0" :precision="2" :step="0.01" />
<!-- <el-input
v-model="logisticsDetail.secondWeight"
type="number"
maxlength="9"
:readonly="isDisabled"
placeholder="请输入内容"
oninput="value=value.replace(/-/, '')"
/>
oninput="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')"
/> -->
KG/
<el-input
<el-input-number v-model="logisticsDetail.secondPrice" :disabled="isDisabled" :controls="false" :max="999999999" :min="0" :precision="2" :step="0.01" />
<!-- <el-input
v-model="logisticsDetail.secondPrice"
type="number"
maxlength="9"
:readonly="isDisabled"
placeholder="请输入内容"
oninput="value=value.replace(/-/, '')"
/>
oninput="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')"
/> -->
</div>
</div>
@ -533,7 +538,7 @@ export default {
.form-item-row {
// padding-top: 40px;
::v-deep .el-input {
::v-deep .el-input,.el-input-number {
width: 100px;
margin: 0 5px;
}

2
src/views/system/logistics/index.vue

@ -6,7 +6,7 @@
<div class="formSearch">
<el-form :inline="true" :model="formParams" class="demo-form-inline">
<el-form-item label="方案名称">
<el-input v-model="formParams.logisticsName" placeholder="请输入方案名称" />
<el-input v-model="formParams.logisticsName" maxlength="20" placeholder="请输入方案名称" />
</el-form-item>
<el-form-item>
<el-button type="success" plain @click="add">新增物流方案</el-button>

8
src/views/system/shopCrossDetail/index.vue

@ -16,10 +16,10 @@
>保存</el-button>
</div>
<div class="shop-details">
<el-form-item label="电商平台名称" prop="ebpname">
<el-form-item label="电商企业名称" prop="ebpname">
<el-input v-model="crossDetail.ebpname" :disabled="disabled1" />
</el-form-item>
<el-form-item label="电商平台代码" prop="ebpcode">
<el-form-item label="电商企业代码" prop="ebpcode">
<el-input v-model="crossDetail.ebpcode" :disabled="disabled1" />
</el-form-item>
</div>
@ -39,11 +39,11 @@ export default {
},
rules: {
ebpname: [
{ required: true, message: '请输入电商平台名称', trigger: 'blur' },
{ required: true, message: '请输入电商企业名称', trigger: 'blur' },
{ min:1, max:100, message: '长度不超过100个字符', trigger: 'blur'}
],
ebpcode: [
{ required: true, message: '请输入电商平台代码', trigger: 'blur' },
{ required: true, message: '请输入电商企业代码', trigger: 'blur' },
{ min:1, max:10, message: '长度不超过10个字符', trigger: 'blur'}
],
}

14
src/views/system/shopSys/edit.vue

@ -40,34 +40,34 @@
</div>
<div class="common">
<div class="span_1">店铺名称</div>
<el-input v-model="shopObj.name" placeholder="请输入店铺名称" />
<el-input v-model="shopObj.name" maxlength="20" placeholder="请输入店铺名称" />
</div>
<div class="common">
<div class="span_1">发货地址</div>
<el-input v-model="shopObj.address" placeholder="请输入发货地址" />
<el-input v-model="shopObj.address" maxlength="60" placeholder="请输入发货地址" />
</div>
<div class="common">
<div class="span_1">店铺简介</div>
<el-input v-model="shopObj.det" placeholder="请输入店铺简介" />
<el-input v-model="shopObj.det" maxlength="50" placeholder="请输入店铺简介" />
</div>
<div class="common">
<div class="span_1">注册手机号</div>
<el-input v-model="shopObj.phone" placeholder="请输入注册手机号" />
<el-input v-model="shopObj.phone" maxlength="11" placeholder="请输入注册手机号" />
</div>
</div>
<div class="shopDetail_r">
<div class="shopMsg">退货地址</div>
<div class="common">
<div class="span_1">退货地址</div>
<el-input v-model="shopObj.phone" placeholder="请输入退货地址" />
<el-input v-model="shopObj.phone" maxlength="60" placeholder="请输入退货地址" />
</div>
<div class="common">
<div class="span_1">联系人</div>
<el-input v-model="shopObj.phone" placeholder="请输入联系人" />
<el-input v-model="shopObj.phone" maxlength="20" placeholder="请输入联系人" />
</div>
<div class="common">
<div class="span_1">联系电话</div>
<el-input v-model="shopObj.phone" placeholder="请输入联系电话" />
<el-input v-model="shopObj.phone" maxlength="11" placeholder="请输入联系电话" />
</div>
</div>
</div>

14
src/views/system/shopSys/index.vue

@ -37,11 +37,12 @@
</el-upload>
</el-form-item>
<el-form-item label="店铺名称">
<el-input v-model="storeDetails.shopName" :disabled="disabled1" />
<el-input v-model="storeDetails.shopName" maxlength="20" :disabled="disabled1" />
</el-form-item>
<el-form-item label="发货地址">
<el-input
v-model="storeDetails.shopAdress"
maxlength="60"
:disabled="disabled1"
:resize="`${disabled1 ? 'none' : ''}`"
type="textarea"
@ -50,6 +51,7 @@
<el-form-item label="店铺简介">
<el-input
v-model="storeDetails.shopBrief"
maxlength="50"
:disabled="disabled1"
:resize="`${disabled1 ? 'none' : ''}`"
type="textarea"
@ -59,6 +61,7 @@
<el-input
v-if="shopPhoneShow"
:value="hidden(storeDetails.shopPhone,3,4)"
maxlength="11"
:disabled="disabled1"
@focus="focusShopPhoneInput"
/>
@ -66,6 +69,7 @@
v-else
ref="userPhoneCls"
v-model="storeDetails.shopPhone"
maxlength="11"
:disabled="disabled1"
/>
</el-form-item>
@ -84,12 +88,14 @@
<el-form-item label="地址">
<el-input
v-model="storeDetails.shopReturn.returnAdress"
maxlength="60"
:disabled="disabled1"
/>
</el-form-item>
<el-form-item label="联系人">
<el-input
v-model="storeDetails.shopReturn.returnPerson"
maxlength="20"
:disabled="disabled1"
/>
</el-form-item>
@ -97,6 +103,7 @@
<el-input
v-if="returnPhoneShow"
:value="hidden(storeDetails.shopReturn.returnPhone,3,4)"
maxlength="11"
:disabled="disabled1"
@focus="focusReturnPhoneInput"
/>
@ -104,6 +111,7 @@
v-else
ref="returnPhoneCls"
v-model="storeDetails.shopReturn.returnPhone"
maxlength="11"
:disabled="disabled1"
/>
</el-form-item>
@ -153,14 +161,14 @@ export default {
shopPhone: [
{ required: true, message: '请输入注册手机号', trigger: 'blur' },
{
pattern: /^1[34578]\d{9}$/,
pattern: /^1[3456789]\d{9}$/,
message: '目前只支持中国大陆的手机号码'
}
],
returnPhone: [
{ required: true, message: '请输入联系电话', trigger: 'blur' },
{
pattern: /^1[34578]\d{9}$/,
pattern: /^1[3456789]\d{9}$/,
message: '目前只支持中国大陆的手机号码'
}
],

2
src/views/tree/index.vue

@ -1,6 +1,6 @@
<template>
<div class="app-container">
<el-input v-model="filterText" placeholder="Filter keyword" style="margin-bottom:30px;" />
<el-input v-model="filterText" maxlength="20" placeholder="Filter keyword" style="margin-bottom:30px;" />
<el-tree
ref="tree2"

Loading…
Cancel
Save