Explorar el Código

小版本上测试

喻文俊 hace 3 años
padre
commit
4c6aaa677c

+ 10 - 10
src/main/resources/config/dev/application-dev.yml

@@ -4,14 +4,14 @@ spring:
   #数据源连接--start
   datasource:
     #本地连接数据库
-    #url: jdbc:mysql://192.168.2.100:3306/caimei?characterEncoding=UTF8&serverTimezone=Asia/Shanghai
-    #username: developer
-    #password: 05bZ/OxTB:X+yd%1
-    #测试连接数据库
-    url: jdbc:mysql://120.79.25.27:3306/caimei?characterEncoding=UTF8&serverTimezone=Asia/Shanghai
+    url: jdbc:mysql://192.168.2.100:3306/caimei?characterEncoding=UTF8&serverTimezone=Asia/Shanghai
     username: developer
-    password: J5p3tgOVazNl4ydf
-    type: com.zaxxer.hikari.HikariDataSource
+    password: 05bZ/OxTB:X+yd%1
+    #测试连接数据库
+    #url: jdbc:mysql://120.79.25.27:3306/caimei?characterEncoding=UTF8&serverTimezone=Asia/Shanghai
+    #username: developer
+    #password: J5p3tgOVazNl4ydf
+    #type: com.zaxxer.hikari.HikariDataSource
     hikari:
       minimum-idle: 5
       maximum-pool-size: 15
@@ -54,11 +54,11 @@ logging:
 caimei:
   siteEnv: 0 #网站环境,(2:正式环境,1:测试环境,0:开发环境)
   #spiServer: http://192.168.2.68:8008
-  coreServer: https://core-b.caimei365.com
-#  coreServer: http://192.168.2.67:18002
+  #coreServer: https://core-b.caimei365.com
+  coreServer: http://192.168.2.68:18002
   #coreServer: http://192.168.2.75:18002
   imageDomain: https://img-b.caimei365.com
-  wwwDomain: http:localhost:8009
+  wwwDomain: http://localhost:8009
   destPath: classpath:/
   # 正品联盟(临时配置)
   zplmDomain: https://zp-b.caimei365.com

+ 2 - 0
src/main/resources/static/js/supplier-center/article/article-list.js

@@ -14,6 +14,8 @@ var articleList = new Vue({
             title: '',
             publisher: '',
             auditStatus: '',
+            status: '',
+            onlineStatus: '',
             typeId: '',
             pageNum: 1,
             pageSize: 10

+ 66 - 5
src/main/resources/static/js/supplier-center/encyclopedia/instrument-edit.js

@@ -81,7 +81,9 @@ const app = new Vue({
                 // seo关键词
                 seo: '',
                 // 仪器链接
-                link: ''
+                productLink: '',
+                // 空缺数量
+                emptyNum: ''
             },
             rules: {
                 // 仪器名称
@@ -93,7 +95,7 @@ const app = new Vue({
                 // 仪器图片
                 image: [{required: true, message: '请上传仪器图片', trigger: 'change'}],
                 // 产品链接
-                link: [{required: true, message: '产品链接不能为空', trigger: ['change', 'blur']}],
+                productLink: [{required: true, message: '产品链接不能为空', trigger: ['change', 'blur']}],
                 // 产仪器参数
                 paramList: [{required: true, validator: validateParamList, trigger: 'change'}],
                 // // 认证链接
@@ -195,8 +197,45 @@ const app = new Vue({
                     this.socrllToErrorInput()
                     return;
                 }
-                this.saveFormData()
+                this.formData.emptyNum = this.validateEmptyParams(this.formData)
+                if( this.formData.emptyNum> 0){
+                    this.$confirm('您还剩余' + this.formData.emptyNum + '项未完善,将会导致用户对您产品/仪器的认识度不够,确认是否提交?', '提示', {
+                        confirmButtonText: '是',
+                        cancelButtonText: '否'
+                    }).then(() => {
+                        this.saveFormData()
+                    })
+                }
+            })
+        },
+
+        // 校验空参数个数
+        validateEmptyParams(params){
+            const keys = Object.keys(params)
+            console.log(params)
+            let count = 0
+            keys.forEach(key => {
+                if(typeof params[key] === "string"){
+                    if(params[key] === '' || params[key].trim().length <= 0){
+                        count ++
+                    }
+                }else if(typeof params[key] === 'number'){
+                    console.log(key)
+                }else if(typeof params[key] === 'object'){
+                    if(params[key] instanceof  Array){
+                        if(params[key].length <= 0){
+                            count ++
+                        }
+                    }else {
+                        if(params[key] === null){
+                            count ++
+                        }
+                    }
+                }else if(typeof params[key] === 'undefined'){
+                    count ++
+                }
             })
+            return count;
         },
 
         // 保存表单数据
@@ -208,12 +247,34 @@ const app = new Vue({
                 commodityType: this.commodityType,
                 paramList: JSON.stringify(this.paramList),
                 questionList: JSON.stringify(this.questionList),
-                marketTime: dateFormat(this.formData.marketTime, 'yyyy-MM-dd'),
-                nmpaTime: dateFormat(this.formData.nmpaTime, 'yyyy-MM-dd'),
+                // marketTime: dateFormat(this.formData.marketTime, 'yyyy-MM-dd'),
+                // nmpaTime: dateFormat(this.formData.nmpaTime, 'yyyy-MM-dd'),
                 authImageList: this.authImageList.map(image => (image.response ? image.response.data : image.url)),
                 displayImageList: this.displayImageList.map(image => (image.response ? image.response.data : image.url))
             };
 
+            /* 处理时间 */
+            if(this.formData.marketTime){
+                if(this.marketTimeType === 'year'){
+                    params.marketTime = dateFormat(this.formData.marketTime, 'yyyy')
+                }else if(this.marketTimeType === 'month'){
+                    params.marketTime = dateFormat(this.formData.marketTime, 'yyyy-MM')
+                }else{
+                    params.marketTime = dateFormat(this.formData.marketTime, 'yyyy-MM-dd')
+                }
+            }
+
+            /* 处理时间 */
+            if(this.formData.nmpaTimeType){
+                if(this.nmpaTimeType === 'year'){
+                    params.nmpaTime = dateFormat(this.formData.nmpaTime, 'yyyy')
+                }else if(this.marketTimeType === 'month'){
+                    params.nmpaTime = dateFormat(this.formData.nmpaTime, 'yyyy-MM')
+                }else{
+                    params.nmpaTime = dateFormat(this.formData.nmpaTime, 'yyyy-MM-dd')
+                }
+            }
+
             if (this.productId) params.productId = this.productId;
             console.log(params);
             SupplierApi.ShopBaikeProductSave(params, function (res) {

+ 14 - 1
src/main/resources/static/js/supplier-center/encyclopedia/instrument-list.js

@@ -16,6 +16,8 @@ var productList = new Vue({
             productId: '',
             name: '',
             auditStatus: '',
+            onlineStatus: '',
+            status: '',
             typeId: '',
             pageNum: 1,
             pageSize: 10
@@ -125,7 +127,18 @@ var productList = new Vue({
             if (product.status === 1) {
                 newStatus = 0;
             }
-
+            if(product.emptyNum > 0){
+                this.$confirm('您还剩余' + product.emptyNum + '项未完善,将会导致用户对您产品/仪器的认识度不够,确认是否提交?', '提示', {
+                    confirmButtonText: '是',
+                    cancelButtonText: '否'
+                }).then(() => {
+                    this.ShopBaikeProductStatusUpdate(newStatus)
+                })
+            } else{
+                this.ShopBaikeProductStatusUpdate(newStatus)
+            }
+        },
+        ShopBaikeProductStatusUpdate(newStatus){
             SupplierApi.ShopBaikeProductStatusUpdate({
                 productId: product.productId,
                 shopId: this.shopId,

+ 72 - 8
src/main/resources/static/js/supplier-center/encyclopedia/product-edit.js

@@ -80,7 +80,9 @@ const app = new Vue({
                 // seo关键词
                 seo: '',
                 // 产品链接
-                link: ''
+                productLink: '',
+                // 空缺数量
+                emptyNum: ''
             },
             rules: {
                 // 产品名称
@@ -94,7 +96,7 @@ const app = new Vue({
                 // 产品参数
                 paramList: [{required: true, validator: validateParamList, trigger: 'change'}],
                 // 产品链接
-                link: [{required: true, message: '产品链接不能为空', trigger: ['change', 'blur']}]
+                productLink: [{required: true, message: '产品链接不能为空', trigger: ['change', 'blur']}],
                 // // 产品优点
                 // advantage: [{required: true, message: '产品优点不能为空', trigger: 'change'}],
                 // // 产品缺点
@@ -123,8 +125,8 @@ const app = new Vue({
                 // displayImageList: [{required: true, message: '请上传效果展示图片', trigger: 'change'}],
                 // // 常见问题
                 // questionList: [{required: true, validator: validateQuestionList, trigger: 'change'}],
-                // // 产品类别
-                // typeId: [{required: true, message: '请选择产品类别', trigger: 'change'}],
+                // 产品类别
+                typeId: [{required: true, message: '请选择产品类别', trigger: 'change'}],
                 // // 产品状态
                 // status: [{required: true, message: '请选择产品状态', trigger: 'change'}],
             },
@@ -193,25 +195,87 @@ const app = new Vue({
                     this.socrllToErrorInput()
                     return
                 }
-                this.saveFormData()
+                this.formData.emptyNum = this.validateEmptyParams(this.formData)
+                if( this.formData.emptyNum> 0){
+                    this.$confirm('您还剩余' + this.formData.emptyNum + '项未完善,将会导致用户对您产品/仪器的认识度不够,确认是否提交?', '提示', {
+                        confirmButtonText: '是',
+                        cancelButtonText: '否'
+                    }).then(() => {
+                        this.saveFormData()
+                    })
+                }
             })
         },
-
+        // 校验空参数个数
+        validateEmptyParams(params){
+            const keys = Object.keys(params)
+            console.log(params)
+            let count = 0
+            keys.forEach(key => {
+                if(typeof params[key] === "string"){
+                    if(params[key] === '' || params[key].trim().length <= 0){
+                        count ++
+                    }
+                }else if(typeof params[key] === 'number'){
+                    console.log(key)
+                }else if(typeof params[key] === 'object'){
+                    if(params[key] instanceof  Array){
+                        if(params[key].length <= 0){
+                            count ++
+                        }
+                    }else {
+                        if(params[key] === null){
+                            count ++
+                        }
+                    }
+                }else if(typeof params[key] === 'undefined'){
+                    count ++
+                }
+            })
+            return count;
+        },
         // 保存表单数据
         saveFormData() {
             const that = this;
+
             const params = {
                 ...this.formData,
                 shopId: this.shopId,
                 commodityType: this.commodityType,
                 paramList: JSON.stringify(this.paramList),
                 questionList: JSON.stringify(this.questionList),
-                marketTime: dateFormat(this.formData.marketTime, 'yyyy-MM-dd'),
-                nmpaTime: dateFormat(this.formData.nmpaTime, 'yyyy-MM-dd'),
+                // marketTime: dateFormat(this.formData.marketTime, 'yyyy-MM-dd'),
+                // nmpaTime: dateFormat(this.formData.nmpaTime, 'yyyy-MM-dd'),
                 authImageList: this.authImageList.map(image => (image.response ? image.response.data : image.url)),
                 displayImageList: this.displayImageList.map(image => (image.response ? image.response.data : image.url))
             };
 
+            debugger
+
+            console.log(params);
+
+            /* 处理时间 */
+            if(this.formData.marketTime){
+                if(this.marketTimeType === 'year'){
+                    params.marketTime = dateFormat(this.formData.marketTime, 'yyyy')
+                }else if(this.marketTimeType === 'month'){
+                    params.marketTime = dateFormat(this.formData.marketTime, 'yyyy-MM')
+                }else{
+                    params.marketTime = dateFormat(this.formData.marketTime, 'yyyy-MM-dd')
+                }
+            }
+
+            /* 处理时间 */
+            if(this.formData.nmpaTimeType){
+                if(this.nmpaTimeType === 'year'){
+                    params.nmpaTime = dateFormat(this.formData.nmpaTime, 'yyyy')
+                }else if(this.marketTimeType === 'month'){
+                    params.nmpaTime = dateFormat(this.formData.nmpaTime, 'yyyy-MM')
+                }else{
+                    params.nmpaTime = dateFormat(this.formData.nmpaTime, 'yyyy-MM-dd')
+                }
+            }
+
             if (this.productId) params.productId = this.productId;
             console.log(params);
             SupplierApi.ShopBaikeProductSave(params, function (res) {

+ 12 - 1
src/main/resources/static/js/supplier-center/encyclopedia/product-list.js

@@ -125,7 +125,18 @@ var productList = new Vue({
             if (product.status === 1) {
                 newStatus = 0;
             }
-
+            if(product.emptyNum){
+                this.$confirm('您还剩余' + product.emptyNum + '项未完善,将会导致用户对您产品/仪器的认识度不够,确认是否提交?', '提示', {
+                    confirmButtonText: '是',
+                    cancelButtonText: '否'
+                }).then(() => {
+                    this.ShopBaikeProductStatusUpdate(newStatus )
+                })
+            } else{
+                this.ShopBaikeProductStatusUpdate(newStatus )
+            }
+        },
+        ShopBaikeProductStatusUpdate(newStatus){
             SupplierApi.ShopBaikeProductStatusUpdate({
                 productId: product.productId,
                 shopId: this.shopId,

+ 5 - 5
src/main/resources/templates/supplier-center/article/article-list.html

@@ -74,7 +74,7 @@
                         <!--上线状态-->
                         <div class="filter-control">
                             <span class="label">上线状态:</span>
-                            <el-select v-model="listQuery.typeId" @change="getArticleList" clearable>
+                            <el-select v-model="listQuery.onlineStatus" @change="getArticleList" clearable>
                                 <el-option label="全部" value=""></el-option>
                                 <el-option label="待上线" :value="1"></el-option>
                                 <el-option label="已上线" :value="2"></el-option>
@@ -84,7 +84,7 @@
                         <!--状态-->
                         <div class="filter-control">
                             <span class="label">状态:</span>
-                            <el-select v-model="listQuery.typeId" @change="getArticleList" clearable>
+                            <el-select v-model="listQuery.status" @change="getArticleList" clearable>
                                 <el-option label="全部" value=""></el-option>
                                 <el-option label="已发布" :value="1"></el-option>
                                 <el-option label="保存草稿箱" :value="2"></el-option>
@@ -133,9 +133,9 @@
                                     <span class="reason" v-if="articleInfo.auditStatus === 3" :title="'审核失败:' + articleInfo.failReason">?</span>
                                 </td>
                                 <td>
-                                    <span class="state default" v-if="true">待上线</span>
-                                    <span class="state success" v-if="false">已上线</span>
-                                    <span class="state danger" v-if="false">已下线</span>
+                                    <span class="state default" v-if="articleInfo.onlineStatus === 1">待上线</span>
+                                    <span class="state success" v-if="articleInfo.onlineStatus === 2">已上线</span>
+                                    <span class="state danger" v-if="articleInfo.onlineStatus === 3">已下线</span>
                                 </td>
                                 <td class="time">
                                     <div class="time">{{ articleInfo.publishDate | formatDate }}</div>

+ 2 - 2
src/main/resources/templates/supplier-center/encyclopedia/instrument-edit.html

@@ -48,8 +48,8 @@
                                 <el-input v-model="formData.discription" type="textarea" placeholder="请输入仪器概述"
                                           :rows="5"></el-input>
                             </el-form-item>
-                            <el-form-item label="仪器链接(必填)" prop="link">
-                                <el-input v-model="formData.link" placeholder="输入您采美商城的商品链接详情,便于用户精准找到"></el-input>
+                            <el-form-item label="仪器链接(必填)" prop="productLink">
+                                <el-input v-model="formData.productLink" placeholder="输入您采美商城的商品链接详情,便于用户精准找到"></el-input>
                             </el-form-item>
                             <el-form-item label="仪器图片(必传)" prop="image">
                                 <el-input v-model="formData.image" v-show="false"></el-input>

+ 5 - 5
src/main/resources/templates/supplier-center/encyclopedia/instrument-list.html

@@ -68,7 +68,7 @@
                         <!--上线状态-->
                         <div class="filter-control">
                             <span class="label">上线状态:</span>
-                            <el-select v-model="listQuery.typeId" @change="getArticleList" class="mini-width" clearable>
+                            <el-select v-model="listQuery.onlineStatus" @change="getArticleList" class="mini-width" clearable>
                                 <el-option label="全部" value=""></el-option>
                                 <el-option label="待上线" :value="1"></el-option>
                                 <el-option label="已上线" :value="2"></el-option>
@@ -78,7 +78,7 @@
                         <!--状态-->
                         <div class="filter-control">
                             <span class="label">状态:</span>
-                            <el-select v-model="listQuery.typeId" @change="getArticleList" class="mini-width" clearable>
+                            <el-select v-model="listQuery.status" @change="getArticleList" class="mini-width" clearable>
                                 <el-option label="全部" value=""></el-option>
                                 <el-option label="已发布" :value="1"></el-option>
                                 <el-option label="保存草稿箱" :value="2"></el-option>
@@ -121,9 +121,9 @@
                                     <span class="reason" v-if="productInfo.auditStatus === 3" :title="'审核失败:' + productInfo.failReason">?</span>
                                 </td>
                                 <td>
-                                    <span class="state default" v-if="true">待上线</span>
-                                    <span class="state success" v-if="false">已上线</span>
-                                    <span class="state danger" v-if="false">已下线</span>
+                                    <span class="state default" v-if="productInfo.onlineStatus === 1">待上线</span>
+                                    <span class="state success" v-if="productInfo.onlineStatus === 2">已上线</span>
+                                    <span class="state danger" v-if="productInfo.onlineStatus === 3">已下线</span>
                                 </td>
                                 <td class="time">
                                     <div class="time">{{ productInfo.publishTime | formatDate }}</div>

+ 3 - 3
src/main/resources/templates/supplier-center/encyclopedia/product-edit.html

@@ -48,8 +48,8 @@
                                 <el-input v-model="formData.discription" type="textarea" placeholder="请输入产品概述"
                                           :rows="5"></el-input>
                             </el-form-item>
-                            <el-form-item label="产品链接(必填)" prop="link">
-                                <el-input v-model="formData.link" placeholder="输入您采美商城的商品链接详情,便于用户精准找到"></el-input>
+                            <el-form-item label="产品链接(必填)" prop="productLink">
+                                <el-input v-model="formData.productLink" placeholder="输入您采美商城的商品链接详情,便于用户精准找到"></el-input>
                             </el-form-item>
                             <el-form-item label="产品图片(必传)" prop="image">
                                 <el-input v-model="formData.image" v-show="false"></el-input>
@@ -197,7 +197,7 @@
                                 </div>
                             </el-form-item>
 
-                            <el-form-item label="产品类别" prop="typeId" class="cm-big-label-el">
+                            <el-form-item label="产品类别" prop="typeId" class="cm-big-label-el" props="typeId">
                                 <el-select class="max-width" v-model="formData.typeId" placeholder="请选择产品类别">
                                     <el-option v-for="item in typeList" :key="item.typeId" :label="item.typeName"
                                                :value="item.typeId">

+ 5 - 5
src/main/resources/templates/supplier-center/encyclopedia/product-list.html

@@ -68,7 +68,7 @@
                         <!--上线状态-->
                         <div class="filter-control">
                             <span class="label">上线状态:</span>
-                            <el-select v-model="listQuery.typeId"  @change="getArticleList" class="mini-width" clearable>
+                            <el-select v-model="listQuery.onlineStatus"  @change="getArticleList" class="mini-width" clearable>
                                 <el-option label="全部" value=""></el-option>
                                 <el-option label="待上线" :value="1"></el-option>
                                 <el-option label="已上线" :value="2"></el-option>
@@ -78,7 +78,7 @@
                         <!--状态-->
                         <div class="filter-control">
                             <span class="label">状态:</span>
-                            <el-select v-model="listQuery.typeId"  @change="getArticleList" class="mini-width" clearable>
+                            <el-select v-model="listQuery.status"  @change="getArticleList" class="mini-width" clearable>
                                 <el-option label="全部" value=""></el-option>
                                 <el-option label="已发布" :value="1"></el-option>
                                 <el-option label="保存草稿箱" :value="2"></el-option>
@@ -121,9 +121,9 @@
                                     <span class="reason" v-if="productInfo.auditStatus === 3" :title="'审核失败:' + productInfo.failReason">?</span>
                                 </td>
                                 <td>
-                                    <span class="state default" v-if="true">待上线</span>
-                                    <span class="state success" v-if="false">已上线</span>
-                                    <span class="state danger" v-if="false">已下线</span>
+                                    <span class="state default" v-if="productInfo.onlineStatus === 1">待上线</span>
+                                    <span class="state success" v-if="productInfo.onlineStatus === 2">已上线</span>
+                                    <span class="state danger" v-if="productInfo.onlineStatus === 3">已下线</span>
                                 </td>
                                 <td class="time">
                                     <div class="time">{{ productInfo.publishTime | formatDate }}</div>