Jelajahi Sumber

新增客服消息撤回功能,商品列表新增是否为会员立减商品功能,修改bug

hzj18279462576@163.com 6 bulan lalu
induk
melakukan
8c2b451c08

+ 42 - 36
config/index.js

@@ -1,43 +1,49 @@
-'use strict'
+"use strict";
 // Template version: 1.2.5
 // see http://vuejs-templates.github.io/webpack for documentation.
 
-const path = require('path')
-const devEnv = require('./dev.env')
+const path = require("path");
+const devEnv = require("./dev.env");
 
 module.exports = {
   configureWebpack: {
     module: {
-      rules: [{
-        test: /\.mjs$/,
-        include: /node_modules/,
-        type: 'javascript/auto'
-      }]
+      rules: [
+        {
+          test: /\.mjs$/,
+          include: /node_modules/,
+          type: "javascript/auto"
+        }
+      ]
     }
   },
   dev: {
-
     // Paths
-    assetsSubDirectory: 'static',
-    assetsPublicPath: '/',
+    assetsSubDirectory: "static",
+    assetsPublicPath: "/",
     // 代理列表, 是否开启代理通过[./dev.env.js]配置
-    proxyTable: devEnv.OPEN_PROXY === false ? {} : {
-      '/proxyApi': {
-        // target: 'http://192.168.161.190:8171/sqx_fast/', // 线上
-
-        target: 'https://mxys.chuanghai-tech.com/wm-test/wm-api',// 测试
-        // target: 'https://mxys.chuanghai-tech.com/sqx_fast/', // 线上
-
-        // target: 'http://iyfpk3.natappfree.cc/sqx_fast',// 开发
-        changeOrigin: true,
-        pathRewrite: {
-          '^/proxyApi': ''
-        }
-      },
-    },
+    proxyTable:
+      devEnv.OPEN_PROXY === false
+        ? {}
+        : {
+            "/proxyApi": {
+              // target: 'http://192.168.161.190:8171/sqx_fast/', // 线上
+              // target: 'http://192.168.161.225:8171/sqx_fast/', // 线上
+
+              // target: "https://mxys.meiyishuo.cn/sqx_fast/", // 新部署地址
+              // target: "https://mxys.chuanghai-tech.com/sqx_fast/", // 线上
+               target: 'https://mxys.chuanghai-tech.com/wm-test/wm-api',// 测试
+
+              // target: 'http://iyfpk3.natappfree.cc/sqx_fast',// 开发
+              changeOrigin: true,
+              pathRewrite: {
+                "^/proxyApi": ""
+              }
+            }
+          },
 
     // Various Dev Server settings
-    host: '127.0.0.1', // can be overwritten by process.env.HOST
+    host: "127.0.0.1", // can be overwritten by process.env.HOST
     port: 8001, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
     autoOpenBrowser: true,
     errorOverlay: true,
@@ -57,7 +63,7 @@ module.exports = {
      */
 
     // https://webpack.js.org/configuration/devtool/#development
-    devtool: 'eval-source-map',
+    devtool: "eval-source-map",
 
     // If you have problems debugging vue-files in devtools,
     // set this to false - it *may* help
@@ -69,32 +75,32 @@ module.exports = {
     // (https://github.com/webpack/css-loader#sourcemaps)
     // In our experience, they generally work as expected,
     // just be aware of this issue when enabling this option.
-    cssSourceMap: false,
+    cssSourceMap: false
   },
 
   build: {
     // Template for index.html
-    index: path.resolve(__dirname, '../dist/index.html'),
+    index: path.resolve(__dirname, "../dist/index.html"),
 
     // Paths
-    assetsRoot: path.resolve(__dirname, '../dist'),
-    assetsSubDirectory: 'static',
-    assetsPublicPath: '/wm-admin',
+    assetsRoot: path.resolve(__dirname, "../dist"),
+    assetsSubDirectory: "static",
+    assetsPublicPath: "/wm-admin",
 
     /**
      * Source Maps
      */
 
-    productionSourceMap: false,//隐藏源码
+    productionSourceMap: false, //隐藏源码
     // https://webpack.js.org/configuration/devtool/#production
-    devtool: '#source-map',
+    devtool: "#source-map",
 
     // Gzip off by default as many popular static hosts such as
     // Surge or Netlify already gzip all static assets for you.
     // Before setting to `true`, make sure to:
     // npm install --save-dev compression-webpack-plugin
     productionGzip: false,
-    productionGzipExtensions: ['js', 'css'],
+    productionGzipExtensions: ["js", "css"],
 
     // Run the build command with an extra argument to
     // View the bundle analyzer report after build finishes:
@@ -102,4 +108,4 @@ module.exports = {
     // Set to `true` or `false` to always turn it on or off
     bundleAnalyzerReport: process.env.npm_config_report
   }
-}
+};

TEMPAT SAMPAH
src/assets/img/revocation.png


+ 8 - 3
src/main.js

@@ -32,8 +32,13 @@ Vue.use(Viewer, {
   }
 });
 // Vue.prototype.Tupiantou ='https://mxys.chuanghai-tech.com/sqx_fast/alioss/upload'//线上
+
+// Vue.prototype.Tupiantou ='http://192.168.161.225:8171/sqx_fast/admin/new-file/upload'//线上
+
 // Vue.prototype.Tupiantou ='http://192.168.161.190:8171/sqx_fast/admin/new-file/upload'//线上
-// Vue.prototype.Tupiantou ="https://mxys.chuanghai-tech.com/wm-test/wm-api/sqx_fast/alioss/upload"; //线下
+// Vue.prototype.Tupiantou ="https://mxys.chuanghai-tech.com/wm-test/wm-api/sqx_t/alioss/upload"; //线下
+
+// Vue.prototype.Tupiantou ='https://mxys.meiyishuo.cn/sqx_fast/admin/new-file/upload'// 新部署地址
 // Vue.prototype.Tupiantou ='https://mxys.chuanghai-tech.com/sqx_fast/admin/new-file/upload'//线上
 Vue.prototype.Tupiantou ="https://mxys.chuanghai-tech.com/wm-test/wm-api/sqx_fast/admin/new-file/upload"; //线下
 Vue.prototype.Tupian = function(img) {
@@ -102,9 +107,9 @@ Viewer.setDefaults({
     zoomOut: 1, // 缩小
     oneToOne: 1, // 100%大小
     reset: 1, // 还原
-    prev: 0, // 上一张
+    prev: 1, // 上一张
     play: 1, // 全屏显示
-    next: 0, // 下一张
+    next: 1, // 下一张
     rotateLeft: 1, // 逆时针旋转
     rotateRight: 1, // 顺时针旋转
     flipHorizontal: 1, // 水平翻转

+ 12 - 4
src/utils/httpRequest.js

@@ -46,7 +46,7 @@ http.interceptors.response.use(
     }
     // console.log(
     //   decrypt(
-    //     urlSafeBase64Decode("j7U0dMykaHkCmLYvoTJ0DQ==")
+    //     urlSafeBase64Decode("i2_3-5ONfld2BzGYnhAxI5vaDwEoXflZSX0Yw10qrxzI2rREfpZFWUH4tA_TwUp_")
     //   ),
     //   "11111111111111111111111111"
     // );
@@ -56,9 +56,13 @@ http.interceptors.response.use(
       if (response.data.type) {
       } else {
         const decryptData = decrypt(urlSafeBase64Decode(response.data));
+        // console.log(decryptData, "解密成字符");
+
         response.data = JSON.parse(decryptData);
+        // console.log(JSON.parse(decryptData), "解密转换成对象");
       }
     }
+
     // console.log('解密',response.data)
     return response;
   },
@@ -77,8 +81,11 @@ http.adornUrl = actionName => {
   // return 'http://iyfpk3.natappfree.cc/sqx_fast/' + actionName; // 开发
   // return 'https://www.daweilinli.com/sqx_fast/' + actionName
 
+  // return "http://192.168.161.225:8171/sqx_fast/" + actionName;
+
   // return 'http://192.168.161.190:8171/sqx_fast/' + actionName
-  // return 'https://mxys.chuanghai-tech.com/sqx_fast/' + actionName; //  线上
+  // return "https://mxys.meiyishuo.cn/sqx_fast/" + actionName; //  新部署地址
+  // return "https://mxys.chuanghai-tech.com/sqx_fast/" + actionName; //  线上
   return "https://mxys.chuanghai-tech.com/wm-test/wm-api/sqx_fast/" + actionName; // 测试
 };
 
@@ -91,8 +98,9 @@ http.adornWss = actionName => {
   // 非生产环境 && 开启代理, 接口前缀统一使用[/proxyApi/]前缀做代理拦截!
   // return (process.env.NODE_ENV !== 'production' && process.env.OPEN_PROXY ? '/proxyApi/' : window.SITE_CONFIG.baseUrl) + actionName
   // return 'wss://www.daweilinli.com/wss/' + actionName
-  // return 'wss://mxys.chuanghai-tech.com/wss/' + actionName
-  return "wss://mxys.chuanghai-tech.com/wss-test/" + actionName;
+  // return "wss://mxys.meiyishuo.cn/wss/" + actionName; // 新部署地址
+  // return "wss://mxys.chuanghai-tech.com/wss/" + actionName; //  线上
+   return "wss://mxys.chuanghai-tech.com/wss-test/" + actionName;  //  测试
 };
 /**
  * get请求参数处理

+ 4 - 4
src/views/banner/bannerList.vue

@@ -17,7 +17,7 @@
         </el-table-column>
         <el-table-column prop="imageUrl" label="头像">
           <template slot-scope="scope">
-            <img :src="scope.row.imageUrl" width="60" height="60" />
+            <img v-viewer :src="scope.row.imageUrl" width="60" height="60" />
           </template>
         </el-table-column>
         <el-table-column prop="name" label="轮播图名称"> </el-table-column>
@@ -170,7 +170,7 @@
         </el-table-column>
         <el-table-column prop="imageUrl" label="头像">
           <template slot-scope="scope">
-            <img :src="scope.row.imageUrl" width="60" height="60" />
+            <img v-viewer :src="scope.row.imageUrl" width="60" height="60" />
           </template>
         </el-table-column>
         <el-table-column prop="name" label="分类名称"> </el-table-column>
@@ -319,7 +319,7 @@
         </el-table-column>
         <el-table-column prop="imageUrl" label="头像">
           <template slot-scope="scope">
-            <img :src="scope.row.imageUrl" width="60" height="60" />
+            <img v-viewer :src="scope.row.imageUrl" width="60" height="60" />
           </template>
         </el-table-column>
         <el-table-column prop="name" label="背景图名称"> </el-table-column>
@@ -433,7 +433,7 @@
         </el-table-column>
         <el-table-column prop="imageUrl" label="图片">
           <template slot-scope="scope">
-            <img :src="scope.row.imageUrl" width="60" height="60" />
+            <img v-viewer :src="scope.row.imageUrl" width="60" height="60" />
           </template>
         </el-table-column>
         <el-table-column prop="name" label="名称"> </el-table-column>

+ 159 - 4
src/views/mission/mission.vue

@@ -364,7 +364,9 @@
           <template slot-scope="scope">
             <div>
               {{
-                scope.row.orderTypeExtra == 1
+                scope.row.orderTypeExtra == 0
+                  ? "店内就餐"
+                  : scope.row.orderTypeExtra == 1
                   ? "到店取餐"
                   : scope.row.orderTypeExtra == 2
                   ? "骑手配送"
@@ -513,10 +515,16 @@
             </div>
           </template>
         </el-table-column>
-        <el-table-column prop="insideDeliveryFee" label="特殊地址跑腿费(元)" width="100">
+        <el-table-column
+          prop="insideDeliveryFee"
+          label="特殊地址跑腿费(元)"
+          width="100"
+        >
           <template slot-scope="scope">
             <div>
-              {{ scope.row.insideDeliveryFee?scope.row.insideDeliveryFee:0 }}元
+              {{
+                scope.row.insideDeliveryFee ? scope.row.insideDeliveryFee : 0
+              }}元
             </div>
           </template>
         </el-table-column>
@@ -569,7 +577,7 @@
           prop="shopReceivingTime"
           label="首次接单时间"
         ></el-table-column> -->
-        <el-table-column fixed="right" prop="status" label="状态" width="100">
+        <!-- <el-table-column fixed="right" prop="status" label="状态" width="100">
           <template slot-scope="scope">
             <span v-if="scope.row.indentState == 2">
               <span style="color: #4f9dec;" v-if="scope.row.status === 3">
@@ -625,6 +633,127 @@
               >
             </span>
 
+          </template>
+        </el-table-column> -->
+
+        <el-table-column fixed="right" prop="status" label="状态" width="100">
+          <template slot-scope="scope">
+            <span v-if="scope.row.orderTypeExtra == 0">
+              <span style="color: #4f9dec;" v-if="scope.row.status === 0"
+                >待结算</span
+              >
+              <span
+                style="color: #4f9dec;"
+                v-if="scope.row.status === 1 || scope.row.status === 2"
+                >待支付</span
+              >
+
+              <span style="color: #4f9dec;" v-if="scope.row.status === 3">
+                {{ scope.row.orderType == 1 ? "待取餐" : "待配送" }}
+              </span>
+
+              <span style="color: #4f9dec;" v-if="scope.row.status === 4"
+                >已完成</span
+              >
+              <span style="color: #999;" v-if="scope.row.status === 5"
+                >已取消</span
+              >
+              <span style="color: #999;" v-if="scope.row.status === 6"
+                >制作中</span
+              >
+              <span style="color: #999;" v-if="scope.row.status === 7"
+                >商家待接单</span
+              >
+              <span style="color: #999;" v-if="scope.row.status === 8"
+                >商家已拒单</span
+              >
+            </span>
+            <span v-else-if="scope.row.orderTypeExtra == 3 || scope.row.orderTypeExtra == 1">
+              <span style="color: #4f9dec;" v-if="scope.row.status === 0"
+                >待结算</span
+              >
+              <span
+                style="color: #4f9dec;"
+                v-if="scope.row.status === 1 || scope.row.status === 2"
+                >待支付</span
+              >
+
+              <span style="color: #4f9dec;" v-if="scope.row.status === 3">
+                {{ scope.row.orderType == 1 ? "待取餐" : "待配送" }}
+              </span>
+
+              <span style="color: #4f9dec;" v-if="scope.row.status === 4"
+                >已完成</span
+              >
+              <span style="color: #999;" v-if="scope.row.status === 5"
+                >已取消</span
+              >
+              <span style="color: #999;" v-if="scope.row.status === 6"
+                >制作中</span
+              >
+              <span style="color: #999;" v-if="scope.row.status === 7"
+                >商家待接单</span
+              >
+              <span style="color: #999;" v-if="scope.row.status === 8"
+                >商家已拒单</span
+              >
+            </span>
+            <span v-else>
+              <span v-if="scope.row.indentState == 2">
+                <span style="color: #4f9dec;" v-if="scope.row.status === 3">
+                  待骑手接单
+                </span>
+                <span style="color: #4f9dec;" v-if="scope.row.status === 6">
+                  制作中
+                </span>
+              </span>
+
+              <span
+                style="color: #4f9dec;"
+                v-else-if="
+                  scope.row.indentState == 3 || scope.row.indentState == 4
+                "
+              >
+                <span v-if="scope.row.indentState == 3">
+                  骑手已接单
+                </span>
+                <span v-if="scope.row.indentState == 4">
+                  骑手配送中
+                </span>
+              </span>
+
+              <span v-else>
+                <span style="color: #4f9dec;" v-if="scope.row.status === 0"
+                  >待结算</span
+                >
+                <span
+                  style="color: #4f9dec;"
+                  v-if="scope.row.status === 1 || scope.row.status === 2"
+                  >待支付</span
+                >
+
+                <span style="color: #4f9dec;" v-if="scope.row.status === 3">
+                  {{ scope.row.orderType == 1 ? "待取餐" : "待配送" }}
+                </span>
+
+                <span style="color: #4f9dec;" v-if="scope.row.status === 4"
+                  >已完成</span
+                >
+                <span style="color: #999;" v-if="scope.row.status === 5"
+                  >已取消</span
+                >
+                <span style="color: #999;" v-if="scope.row.status === 6"
+                  >制作中</span
+                >
+                <span style="color: #999;" v-if="scope.row.status === 7"
+                  >商家待接单</span
+                >
+                <span style="color: #999;" v-if="scope.row.status === 8"
+                  >商家已拒单</span
+                >
+              </span>
+            </span>
+
             <!-- <span style="color: #4f9dec;" v-if="scope.row.status === 0"
               >待结算</span
             >
@@ -686,6 +815,28 @@
             > -->
           </template>
         </el-table-column>
+
+        <!-- <el-table-column
+          fixed="right"
+          prop="indentState"
+          label="订单类型"
+          width="100"
+        >
+          <template slot-scope="scope">
+            <span v-if="scope.row.orderTypeExtra === 0"
+              >上门食堂</span
+            >
+            <span v-if="scope.row.orderTypeExtra === 1"
+              >上门打包</span
+            >
+            <span v-if="scope.row.orderTypeExtra === 2"
+              >骑手配送</span
+            >
+            <span v-if="scope.row.orderTypeExtra === 3">
+              商家配送
+            </span>
+          </template>
+        </el-table-column> -->
         <el-table-column
           fixed="right"
           prop="isPrint"
@@ -1372,6 +1523,10 @@ export default {
           value: ""
         },
         {
+          label: "店内就餐",
+          value: 0
+        },
+        {
           label: "到店取餐",
           value: 1
         },

+ 9 - 2
src/views/runErrands/duanxinlist.vue

@@ -50,13 +50,20 @@
 		  </el-table-column>
 		  <el-table-column prop="goodsCover" label="图片" width="150">
             <template slot-scope="scope">
-              <div v-for="(item,index) in scope.row.imgs" :key="index"
+              <div v-viewer style="display: inline-block; margin: 3px;">
+                <div v-for="(item,index) in scope.row.imgs" :key="index"
+                  style="display: inline-block; margin: 3px;">
+                    <img style="width: 50px; height: 50px" :src="item" alt="" slot="reference">
+                </div>
+              </div>
+
+              <!-- <div v-for="(item,index) in scope.row.imgs" :key="index"
                 style="display: inline-block; margin: 3px;">
                 <el-popover placement="top-start" title="" trigger="hover">
                   <img style="width: 50px; height: 50px" :src="item" alt="" slot="reference">
                   <img style="width: 300px; height: auto" :src="item" alt="">
                 </el-popover>
-              </div>
+              </div> -->
             </template>
           </el-table-column>
 		  <el-table-column prop="successFlag" label="发送状态" width="150">

+ 18 - 4
src/views/selfShop/shopAdmin.vue

@@ -113,13 +113,27 @@
       </el-table-column>
       <el-table-column fixed prop="goodsCover" label="商品封面图">
         <template slot-scope="scope">
-          <img :src="scope.row.goodsCover" alt="" width="60" height="60" />
+          <img v-viewer :src="scope.row.goodsCover" alt="" width="60" height="60" />
         </template>
       </el-table-column>
       <el-table-column prop="goodsCover" label="商品图" width="150">
         <template slot-scope="scope">
-          <!-- <img :src="scope.row.goodsCover" alt="" width="60" height="60"> -->
-          <div
+          <div v-viewer style="display:flex;flex-wrap: wrap; margin: 3px;">
+            <div
+              v-for="(item, index) in scope.row.goodsPicture"
+              :key="index"
+              style="display: inline-block; margin: 3px;"
+            >
+              <img
+                style="width: 50px; height: 50px"
+                :src="item"
+                alt=""
+                slot="reference"
+              />
+            </div>
+          </div>
+
+          <!-- <div
             v-for="(item, index) in scope.row.goodsPicture"
             :key="index"
             style="display: inline-block; margin: 3px;"
@@ -133,7 +147,7 @@
               />
               <img style="width: 300px; height: auto" :src="item" alt="" />
             </el-popover>
-          </div>
+          </div> -->
         </template>
       </el-table-column>
       <el-table-column prop="goodsName" label="商品类型">

+ 21 - 15
src/views/shopAutonym/shopAutonym.vue

@@ -82,6 +82,7 @@
           >
             <div
               v-for="item in scope.row.shopCover.split(',')"
+              :key="item"
               style="margin: 2px;"
             >
               <!-- <el-popover placement="top-start" title="" trigger="hover"> -->
@@ -128,6 +129,7 @@
           >
             <div
               v-for="item in scope.row.identitycardPro.split(',')"
+              :key="item"
               style="margin: 2px;"
             >
               <!-- <el-popover placement="top-start" title="" trigger="hover"> -->
@@ -172,6 +174,7 @@
           >
             <div
               v-for="item in scope.row.identitycardCon.split(',')"
+              :key="item"
               style="margin: 2px;"
             >
               <!-- <el-popover placement="top-start" title="" trigger="hover"> -->
@@ -203,7 +206,7 @@
       <el-table-column
         prop="businessLicense"
         label="营业执照和健康证"
-        width="150"
+        width="190"
       >
         <template slot-scope="scope">
           <div
@@ -218,21 +221,24 @@
             v-else-if="scope.row.businessLicense.includes(',')"
             style="display:flex;flex-wrap: wrap;"
           >
-            <div
-              v-for="item in scope.row.businessLicense.split(',')"
-              style="margin: 2px;"
-            >
-              <!-- <el-popover placement="top-start" title="" trigger="hover"> -->
-              <img
-                style="width: 50px; height: 50px"
-                :src="item"
-                alt=""
-                slot="reference"
-                v-viewer
-              />
-              <!-- <img style="width: 100%; height: 100%" :src="item" alt="">
-              </el-popover> -->
+            <div v-viewer style="display:flex;flex-wrap: wrap; margin: 3px;">
+              <div
+                v-for="item in scope.row.businessLicense.split(',')"
+                :key="item"
+                style="margin: 2px;"
+              >
+                <!-- <el-popover placement="top-start" title="" trigger="hover"> -->
+                <img
+                  style="width: 50px; height: 50px"
+                  :src="item"
+                  alt=""
+                  slot="reference"
+                />
+                <!-- <img style="width: 100%; height: 100%" :src="item" alt="">
+                </el-popover> -->
+              </div>
             </div>
+
           </div>
           <div v-else>
             <!-- <el-popover placement="top-start" title="" trigger="hover"> -->

+ 69 - 4
src/views/shopsList/shopAdmin.vue

@@ -139,13 +139,28 @@
           </el-table-column>
           <el-table-column fixed prop="goodsCover" label="商品封面图">
             <template slot-scope="scope">
-              <img :src="scope.row.goodsCover" alt="" width="60" height="60" />
+              <img v-viewer :src="scope.row.goodsCover" alt="" width="60" height="60" />
             </template>
           </el-table-column>
           <el-table-column prop="goodsCover" label="商品图" width="150">
             <template slot-scope="scope">
               <!-- <img :src="scope.row.goodsCover" alt="" width="60" height="60"> -->
-              <div
+              <div v-viewer style="display:flex;flex-wrap: wrap; margin: 3px;">
+                <div
+                  v-for="(item, index) in scope.row.goodsPicture"
+                  :key="index"
+                  style="display: inline-block; margin: 3px;"
+                >
+                  <img
+                    style="width: 50px; height: 50px"
+                    :src="item"
+                    alt=""
+                    slot="reference"
+                  />
+                </div>
+              </div>
+
+              <!-- <div
                 v-for="(item, index) in scope.row.goodsPicture"
                 :key="index"
                 style="display: inline-block; margin: 3px;"
@@ -159,7 +174,7 @@
                   />
                   <img style="width: 300px; height: auto" :src="item" alt="" />
                 </el-popover>
-              </div>
+              </div> -->
             </template>
           </el-table-column>
           <el-table-column prop="goodsName" label="商品类型">
@@ -172,6 +187,20 @@
           </el-table-column>
           <el-table-column prop="goodsDescribe" label="商品描述" width="300">
           </el-table-column>
+          <el-table-column label="是否为会员立减商品" width="100" v-if="shopVipPromotion==1">
+            <template slot-scope="scope">
+              <!-- <div v-if="scope.row.vipPromotion == 1">是</div>
+              <div v-else>否</div> -->
+              <el-switch
+                v-model="scope.row.vipPromotion"
+                @change="changeLJ(scope.row)"
+                active-value="1"
+                inactive-value="0"
+                active-color="#13ce66"
+              >
+              </el-switch>
+            </template>
+          </el-table-column>
           <el-table-column prop="originalMoney" label="商品原价">
             <template slot-scope="scope">
               <span>{{ scope.row.originalMoney | numFilter }}</span>
@@ -1014,6 +1043,7 @@ export default {
       tableData: [],
       tableData1: [],
       shopId: "",
+      shopVipPromotion:"",// 判断商品商家是否为立减会员
       xuanze: [],
       kucun: "",
       // 分类
@@ -1080,7 +1110,7 @@ export default {
       typeDatas4: {
         records: [],
         total: 10
-      }
+      },
     };
   },
   filters: {
@@ -1398,6 +1428,8 @@ export default {
           shopName: this.shopName
         })
       }).then(({ data }) => {
+        console.log("获取商铺商品数据", data);
+
         this.tableDataLoading = false;
         for (var i in data.data.list) {
           if (data.data.list[i].goodsPicture) {
@@ -1573,6 +1605,38 @@ export default {
         this.classDatas = returnData.records;
       });
     },
+    changeLJ(row) {
+      console.log(row);
+      this.$http({
+        url: this.$http.adornUrl(
+          `admin/goods/vip-promotion/${row.goodsId}/${row.vipPromotion}`
+        ),
+        method: "put",
+        data: this.$http.adornData({})
+      }).then(({ data }) => {
+        console.log(data, "是否为会员立减商品");
+       
+        if (data.code == 0) {
+          this.$message({
+            message: "操作成功",
+            type: "success",
+            duration: 1500,
+            onClose: () => {
+              this.dataSelect();
+            }
+          });
+        } else {
+          this.$message({
+            message: data.msg,
+            type: "warning",
+            duration: 1500,
+            onClose: () => {
+              this.dataSelect();
+            }
+          });
+        }
+      });
+    },
     // ··规格··············································
 
     deleterule(index) {
@@ -2114,6 +2178,7 @@ export default {
   },
   mounted() {
     this.shopId = this.$route.query.shopId;
+    this.shopVipPromotion = this.$route.query.shopVipPromotion;
     this.shopSelect();
     this.dataSelect();
   },

+ 39 - 15
src/views/shopsList/shopsList.vue

@@ -50,8 +50,8 @@
             @change="shopSelect()"
           >
             <el-option label="是" :value="1"></el-option>
-            <el-option label="否" :value="0"></el-option>
-          </el-select>&nbsp;&nbsp;&nbsp;&nbsp;
+            <el-option label="否" :value="0"></el-option> </el-select
+          >&nbsp;&nbsp;&nbsp;&nbsp;
         </div>
         <el-button
           style="margin-left:15px;"
@@ -98,7 +98,14 @@
         <el-table-column prop="shopCover" label="封面图" width="150">
           <template slot-scope="scope">
             <div style="display: inline-block; margin: 3px;">
-              <el-popover placement="top-start" title="" trigger="hover">
+              <img
+                v-viewer
+                style="width: 50px; height: 50px"
+                :src="scope.row.shopCover"
+                alt=""
+                slot="reference"
+              />
+              <!-- <el-popover placement="top-start" title="" trigger="hover">
                 <img
                   style="width: 50px; height: 50px"
                   :src="scope.row.shopCover"
@@ -110,13 +117,27 @@
                   :src="scope.row.shopCover"
                   alt=""
                 />
-              </el-popover>
+              </el-popover> -->
             </div>
           </template>
         </el-table-column>
         <el-table-column prop="shopBanner" label="轮播图" width="150">
           <template slot-scope="scope">
-            <div
+            <div v-viewer style="display: inline-block; margin: 3px;">
+              <div
+                v-for="(item, index) in scope.row.shopBanner"
+                :key="index"
+                style="display: inline-block; margin: 3px;"
+              >
+                <img
+                  style="width: 50px; height: 50px"
+                  :src="item"
+                  alt=""
+                />
+              </div>
+            </div>
+
+            <!-- <div
               v-for="(item, index) in scope.row.shopBanner"
               :key="index"
               style="display: inline-block; margin: 3px;"
@@ -130,7 +151,7 @@
                 />
                 <img style="width: 300px; height: auto" :src="item" alt="" />
               </el-popover>
-            </div>
+            </div> -->
           </template>
         </el-table-column>
         <el-table-column label="商铺佣金比例" prop="shopTypeName" width="150">
@@ -1599,7 +1620,7 @@ export default {
       page11: 1,
       shopName1: "",
       isActivity: "",
-      vipPromotion:"",
+      vipPromotion: "",
       region: "",
       shopId: "",
       userIdList: "",
@@ -2286,7 +2307,8 @@ export default {
       this.$router.push({
         path: "/shopsListAdmin",
         query: {
-          shopId: row.shopId
+          shopId: row.shopId,
+          shopVipPromotion:row.vipPromotion
         }
       });
     },
@@ -2357,9 +2379,11 @@ export default {
           shopName: this.shopName1,
           region: this.region,
           isActivity: this.isActivity,
-          vipPromotion:this.vipPromotion
+          vipPromotion: this.vipPromotion
         })
       }).then(({ data }) => {
+        console.log(data, "商户数据");
+
         let canshu = {
           page: this.page,
           limit: this.limit,
@@ -2563,7 +2587,7 @@ export default {
       this.shopName1 = "";
       this.region = "";
       this.isActivity = "";
-      this.vipPromotion="";
+      this.vipPromotion = "";
       this.dataSelect();
     },
     // 获取分类数据
@@ -2822,9 +2846,7 @@ export default {
         //     "&type=" +
         //     this.type
         // ),
-        url: this.$http.adornUrl(
-          `admin/shop/updateShopCashDeposit`
-        ),
+        url: this.$http.adornUrl(`admin/shop/updateShopCashDeposit`),
         method: "get",
         data: this.$http.adornData({}),
         params: this.$http.adornParams({
@@ -3486,11 +3508,13 @@ export default {
     changeLJ(row) {
       console.log(row);
       this.$http({
-        url: this.$http.adornUrl(`/admin/goodsShop/vip-promotion/${row.shopId}/${row.vipPromotion}`),
+        url: this.$http.adornUrl(
+          `admin/goodsShop/vip-promotion/${row.shopId}/${row.vipPromotion}`
+        ),
         method: "put",
         data: this.$http.adornData({})
       }).then(({ data }) => {
-        console.log(data,"是否为会员立减商家");
+        console.log(data, "是否为会员立减商家");
 
         if (data.code == 0) {
           this.$message({

+ 142 - 98
src/views/vueMchat/vueMchat.vue

@@ -153,76 +153,89 @@
             ref="dialogue_box"
           >
             <!-- <div class="item loading">{{loadText}}<span>{{"第" + pageNum + "页"}}</span></div> -->
-            <div
-              v-for="(item, index) in dialogueList"
-              :key="index"
-              :class="
-                item.sendType == '1'
-                  ? center_wrapper_center_item
-                  : center_wrapper_center_item_reserve
-              "
-            >
-              <div class="left-item-head">
-                <img
-                  v-if="item.sendType == '1' && userHead !== null"
-                  :src="userHead"
-                />
-                <img
-                  v-else-if="item.sendType == '1' && userHead == null"
-                  src="~@/assets/img/head.png"
-                />
-                <img v-else src="~@/assets/img/avatar.png" />
-              </div>
-              <!-- 文字 -->
-              <div class="center-item-info_wrapper" v-if="item.type == 1">
-                <div class="center-item-tip">
-                  <div class="center-item-info">
-                    {{ item.content }}
+            <div v-for="(item, index) in dialogueList" :key="index">
+              <div
+                v-if="item.recall==0"
+                :class="
+                  item.sendType == '1'
+                    ? center_wrapper_center_item
+                    : center_wrapper_center_item_reserve
+                "
+              >
+                <div class="left-item-head">
+                  <img
+                    v-if="item.sendType == '1' && userHead !== null"
+                    :src="userHead"
+                  />
+                  <img
+                    v-else-if="item.sendType == '1' && userHead == null"
+                    src="~@/assets/img/head.png"
+                  />
+                  <img v-else src="~@/assets/img/avatar.png" />
+                </div>
+                <!-- 文字 -->
+                <div class="center-item-info_wrapper" v-if="item.type == 1">
+                  <div class="center-item-tip">
+                    <div class="center-item-info">
+                      {{ item.content }}
+                    </div>
                   </div>
+                  <div class="center-item-time">{{ item.createTime }}</div>
                 </div>
-                <div class="center-item-time">{{ item.createTime }}</div>
-              </div>
-              <!-- 图片 -->
-              <div class="center-item-info_wrapper" v-if="item.type == 2">
-                <div class="center-item-tip">
-                  <div v-viewer>
-                    <el-popover placement="top-start" title="" trigger="hover">
-                      <img
-                        style="width: 100px; height: 100px"
-                        :src="item.content"
-                        alt=""
-                        slot="reference"
-                      />
-                      <img
-                        style="width: 300px; height: 300px"
-                        :src="item.content"
-                        alt=""
-                      />
-                    </el-popover>
-                    <!-- <img :src="item.content" alt="" width="100" height="100">					 -->
+                <div v-if="item.sendType == '2'">
+                  <img
+                    src="~@/assets/img/revocation.png"
+                    @click="revocation(item)"
+                    title="撤回"
+                    style="width: 20px; height: 20px;cursor: pointer;"
+                  />
+                </div>
+
+                <!-- 图片 -->
+                <div class="center-item-info_wrapper" v-if="item.type == 2">
+                  <div class="center-item-tip">
+                    <div v-viewer>
+                      <el-popover
+                        placement="top-start"
+                        title=""
+                        trigger="hover"
+                      >
+                        <img
+                          style="width: 100px; height: 100px"
+                          :src="item.content"
+                          alt=""
+                          slot="reference"
+                        />
+                        <img
+                          style="width: 300px; height: 300px"
+                          :src="item.content"
+                          alt=""
+                        />
+                      </el-popover>
+                      <!-- <img :src="item.content" alt="" width="100" height="100">					 -->
+                    </div>
                   </div>
+                  <div class="center-item-time">{{ item.createTime }}</div>
                 </div>
-                <div class="center-item-time">{{ item.createTime }}</div>
-              </div>
-              <!-- 订单 -->
-              <div class="center-item-info_wrapper" v-if="item.type == 3">
-                <div
-                  class="center-item-tip"
-                  style="background-color: #fff;cursor: pointer;padding: 10px;border-radius: 4px;"
-                >
+                <!-- 订单 -->
+                <div class="center-item-info_wrapper" v-if="item.type == 3">
                   <div
-                    class=""
-                    @click="orderDetails(item.content.split(',')[2])"
+                    class="center-item-tip"
+                    style="background-color: #fff;cursor: pointer;padding: 10px;border-radius: 4px;"
                   >
-                    <div style="display: flex">
-                      <img
-                        :src="item.content.split(',')[0]"
-                        alt=""
-                        width="40"
-                        height="40"
-                      />
-                      <div
-                        style="
+                    <div
+                      class=""
+                      @click="orderDetails(item.content.split(',')[2])"
+                    >
+                      <div style="display: flex">
+                        <img
+                          :src="item.content.split(',')[0]"
+                          alt=""
+                          width="40"
+                          height="40"
+                        />
+                        <div
+                          style="
                           width: 145px;
                           font-size: 13px;
                           line-height: 20px;
@@ -233,46 +246,48 @@
                           -webkit-line-clamp: 2;
                           -webkit-box-orient: vertical;
                         "
-                      >
-                        {{ item.content.split(",")[1] }}
+                        >
+                          {{ item.content.split(",")[1] }}
+                        </div>
                       </div>
+                      <p class="hoverp" style="font-size: 13px; color: #999999">
+                        订单编号: {{ item.content.split(",")[3] }}
+                      </p>
+                      <p style="font-size: 13px; color: #999999">
+                        创建时间:{{ item.content.split(",")[4] }}
+                      </p>
                     </div>
-                    <p class="hoverp" style="font-size: 13px; color: #999999">
-                      订单编号: {{ item.content.split(",")[3] }}
-                    </p>
-                    <p style="font-size: 13px; color: #999999">
-                      创建时间:{{ item.content.split(",")[4] }}
-                    </p>
                   </div>
+                  <div class="center-item-time">{{ item.createTime }}</div>
                 </div>
-                <div class="center-item-time">{{ item.createTime }}</div>
-              </div>
-              <!-- 商品 -->
-              <div class="center-item-info_wrapper" v-if="item.type == 4">
-                <div
-                  class="center-item-tip"
-                  style="background-color: #fff; padding: 10px; border-radius: 4px"
-                >
-                  <div class="">
-                    <img
-                      :src="item.content.split(',')[0]"
-                      alt=""
-                      width="160"
-                      height="120"
-                    />
-                    <p
-                      style="width: 160px; line-height: 20px; margin-bottom: 0"
-                    >
-                      {{ item.content.split(",")[1] }}
-                    </p>
-                    <p style="color: #f56c6c; margin-bottom: 0">
-                      ¥{{ item.content.split(",")[2] }}
-                    </p>
+                <!-- 商品 -->
+                <div class="center-item-info_wrapper" v-if="item.type == 4">
+                  <div
+                    class="center-item-tip"
+                    style="background-color: #fff; padding: 10px; border-radius: 4px"
+                  >
+                    <div class="">
+                      <img
+                        :src="item.content.split(',')[0]"
+                        alt=""
+                        width="160"
+                        height="120"
+                      />
+                      <p
+                        style="width: 160px; line-height: 20px; margin-bottom: 0"
+                      >
+                        {{ item.content.split(",")[1] }}
+                      </p>
+                      <p style="color: #f56c6c; margin-bottom: 0">
+                        ¥{{ item.content.split(",")[2] }}
+                      </p>
+                    </div>
                   </div>
+                  <div class="center-item-time">{{ item.createTime }}</div>
                 </div>
-                <div class="center-item-time">{{ item.createTime }}</div>
               </div>
             </div>
+
             <!-- <a id="mao2"></a> -->
           </div>
           <!-- 下面的输入框,发送 -->
@@ -301,7 +316,7 @@
                   :show-file-list="false"
                   :on-success="handleAvatarSuccess"
                   :before-upload="beforeAvatarUpload"
-              :headers="{ token: token }"
+                  :headers="{ token: token }"
                 >
                   <div class="icon-item" title="发送文件">
                     <img
@@ -564,6 +579,35 @@ export default {
 
       this.dataSelect();
     },
+
+    // 聊天撤回
+    revocation(item) {
+      console.log(item, "撤回");
+      this.$confirm(`确定撤回当前聊天记录?`, "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      })
+        .then(() => {
+          this.$http({
+            url: this.$http.adornUrl(
+              `chatsContent/recall/${item.chatContentId}`
+            ),
+            method: "put"
+          }).then(({ data }) => {
+            this.$message({
+              message: "撤回成功",
+              type: "success",
+              duration: 1500,
+              onClose: () => {
+                this.dataSelect();
+              }
+            });
+          });
+        })
+        .catch(() => {});
+    },
+
     // 点击聊天列表的某一项
     clickItem(item, index) {
       console.log(item, index, "点击聊天列表的某一项");
@@ -588,7 +632,7 @@ export default {
         })
       }).then(({ data }) => {
         let returnData = data.data;
-        // console.log(data.data);
+        console.log(data.data, "聊天数据");
 
         this.dialogueList = returnData;
         let ele = document.getElementById("ele");