Ver código fonte

1、工艺预览

huangmp 1 ano atrás
pai
commit
06d26bbd42

+ 289 - 0
src/components/canvas-param-pic-preview/index.vue

@@ -0,0 +1,289 @@
+<template>
+  <el-dialog
+    :visible.sync="visible"
+    :append-to-body="false"
+    :modal="false"
+    title="工艺文件预览"
+    top="5vh"
+    width="90%"
+    @close="closeDialog"
+    v-if="visible">
+    <div>
+      <el-radio v-model="mode" label="view">预览模式</el-radio>
+      <el-radio v-model="mode" label="edit">编辑模式</el-radio>
+    </div>
+    <el-form
+      :model="dataForm"
+      align="center"
+      size="small">
+      <el-row>
+        <el-col :span="5">
+          <el-form-item>
+            <h2>正面四色层</h2>
+            <div v-if="mode === 'view'">
+              <el-image
+                style="width: 295px; height: 452px"
+                :src="dataForm.frontCanvasParamObj.printed.indexOf('https://') !== -1? dataForm.frontCanvasParamObj.printed : resourcesUrl + dataForm.frontCanvasParamObj.printed"
+                v-if="dataForm.frontCanvasParamObj && dataForm.frontCanvasParamObj.printed"/>
+            </div>
+            <el-upload v-else
+                       class="avatar-uploader"
+                       accept="image/jpg"
+                       :before-upload="(file, fileList)=>handleBeforeUpload(file, fileList,item)"
+                       :action="$http.adornUrl('/admin/file/simpleUpload')"
+                       :headers="{Authorization: $cookie.get('Authorization_vp'),locale:lang}"
+                       :on-success="(res,file)=>{onFrontUploadSuccess(item,res,file)}"
+                       :show-file-list="false">
+              <el-image v-if="dataForm.frontCanvasParamObj && dataForm.frontCanvasParamObj.printed" style="width: 295px; height: 452px" :src="resourcesUrl + dataForm.frontCanvasParamObj.printed" class="avatar"/>
+            </el-upload>
+          </el-form-item>
+          <el-button v-if="mode==='edit' && dataForm.backCanvasParamObj && dataForm.backCanvasParamObj.printed" type="primary" size="mini" style="margin-right: 5px" @click="saveOrUpdateCanvasParam(item)">保存</el-button>
+        </el-col>
+        <el-col :span="5">
+          <el-form-item>
+            <h2>正面白墨层</h2>
+            <div v-if="mode === 'view'">
+              <el-image
+                style="width: 295px; height: 452px"
+                :src="dataForm.frontCanvasParamObj.whiteBoard.indexOf('https://') !== -1? dataForm.frontCanvasParamObj.whiteBoard : resourcesUrl + dataForm.frontCanvasParamObj.whiteBoard"
+                v-if="dataForm.frontCanvasParamObj && dataForm.frontCanvasParamObj.whiteBoard"/>
+            </div>
+            <el-upload v-else
+                       class="avatar-uploader"
+                       accept="image/jpg"
+                       :before-upload="(file, fileList)=>handleBeforeUpload(file, fileList,item)"
+                       :action="$http.adornUrl('/admin/file/simpleUpload')"
+                       :headers="{Authorization: $cookie.get('Authorization_vp'),locale:lang}"
+                       :on-success="(res,file)=>{onFrontUploadSuccess(item,res,file)}"
+                       :show-file-list="false">
+              <el-image v-if="dataForm.frontCanvasParamObj && dataForm.frontCanvasParamObj.whiteBoard" style="width: 295px; height: 452px" :src="resourcesUrl + dataForm.frontCanvasParamObj.whiteBoard" class="avatar"/>
+            </el-upload>
+          </el-form-item>
+          <el-button v-if="mode==='edit' && dataForm.backCanvasParamObj && dataForm.backCanvasParamObj.whiteBoard" type="primary" size="mini" style="margin-right: 5px" @click="saveOrUpdateCanvasParam(item)">保存</el-button>
+        </el-col>
+        <el-col :span="5">
+          <el-form-item>
+            <h2>正面烫色层</h2>
+            <div v-if="mode === 'view'">
+              <el-image
+                style="width: 295px; height: 452px"
+                :src="dataForm.frontCanvasParamObj.foilstamping.indexOf('https://') !== -1? dataForm.frontCanvasParamObj.foilstamping : resourcesUrl + dataForm.frontCanvasParamObj.foilstamping"
+                v-if="dataForm.frontCanvasParamObj && dataForm.frontCanvasParamObj.foilstamping"/>
+            </div>
+            <el-upload v-else
+                       class="avatar-uploader"
+                       accept="image/jpg"
+                       :before-upload="(file, fileList)=>handleBeforeUpload(file, fileList,item)"
+                       :action="$http.adornUrl('/admin/file/simpleUpload')"
+                       :headers="{Authorization: $cookie.get('Authorization_vp'),locale:lang}"
+                       :on-success="(res,file)=>{onFrontUploadSuccess(item,res,file)}"
+                       :show-file-list="false">
+              <el-image v-if="dataForm.frontCanvasParamObj && dataForm.frontCanvasParamObj.foilstamping" style="width: 295px; height: 452px" :src="resourcesUrl + dataForm.frontCanvasParamObj.foilstamping" class="avatar"/>
+            </el-upload>
+          </el-form-item>
+          <el-button v-if="mode==='edit' && dataForm.backCanvasParamObj && dataForm.backCanvasParamObj.foilstamping" type="primary" size="mini" style="margin-right: 5px" @click="saveOrUpdateCanvasParam(item)">保存</el-button>
+        </el-col>
+        <el-col :span="5">
+          <el-form-item>
+            <h2>正面逆向层</h2>
+            <div v-if="mode === 'view'">
+              <el-image
+                style="width: 295px; height: 452px"
+                :src="dataForm.frontCanvasParamObj.unWhiteBoard.indexOf('https://') !== -1? dataForm.frontCanvasParamObj.unWhiteBoard : resourcesUrl + dataForm.frontCanvasParamObj.unWhiteBoard"
+                v-if="dataForm.frontCanvasParamObj && dataForm.frontCanvasParamObj.unWhiteBoard"/>
+            </div>
+            <el-upload v-else
+                       class="avatar-uploader"
+                       accept="image/jpg"
+                       :before-upload="(file, fileList)=>handleBeforeUpload(file, fileList,item)"
+                       :action="$http.adornUrl('/admin/file/simpleUpload')"
+                       :headers="{Authorization: $cookie.get('Authorization_vp'),locale:lang}"
+                       :on-success="(res,file)=>{onFrontUploadSuccess(item,res,file)}"
+                       :show-file-list="false">
+              <el-image v-if="dataForm.frontCanvasParamObj && dataForm.frontCanvasParamObj.unWhiteBoard" style="width: 295px; height: 452px" :src="resourcesUrl + dataForm.frontCanvasParamObj.unWhiteBoard" class="avatar"/>
+            </el-upload>
+          </el-form-item>
+          <el-button v-if="mode==='edit' && dataForm.backCanvasParamObj && dataForm.backCanvasParamObj.unWhiteBoard" type="primary" size="mini" style="margin-right: 5px" @click="saveOrUpdateCanvasParam(item)">保存</el-button>
+        </el-col>
+        <el-col :span="4">
+          <el-form-item>
+            <h2>正面光油层</h2>
+            <div v-if="mode === 'view'">
+              <el-image
+                style="width: 295px; height: 452px"
+                :src="dataForm.frontCanvasParamObj.varnish.indexOf('https://') !== -1? dataForm.frontCanvasParamObj.varnish : resourcesUrl + dataForm.frontCanvasParamObj.varnish"
+                v-if="dataForm.frontCanvasParamObj && dataForm.frontCanvasParamObj.varnish"/>
+            </div>
+            <el-upload v-else
+                       class="avatar-uploader"
+                       accept="image/jpg"
+                       :before-upload="(file, fileList)=>handleBeforeUpload(file, fileList,item)"
+                       :action="$http.adornUrl('/admin/file/simpleUpload')"
+                       :headers="{Authorization: $cookie.get('Authorization_vp'),locale:lang}"
+                       :on-success="(res,file)=>{onFrontUploadSuccess(item,res,file)}"
+                       :show-file-list="false">
+              <el-image v-if="dataForm.frontCanvasParamObj && dataForm.frontCanvasParamObj.varnish" style="width: 295px; height: 452px" :src="resourcesUrl + dataForm.frontCanvasParamObj.varnish" class="avatar"/>
+            </el-upload>
+          </el-form-item>
+          <el-button v-if="mode==='edit' && dataForm.backCanvasParamObj && dataForm.backCanvasParamObj.varnish" type="primary" size="mini" style="margin-right: 5px" @click="saveOrUpdateCanvasParam(item)">保存</el-button>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="5">
+          <el-form-item>
+            <h2>背面四色层</h2>
+            <div v-if="mode === 'view'">
+              <el-image
+                style="width: 295px; height: 452px"
+                :src="dataForm.backCanvasParamObj.printed.indexOf('https://') !== -1? dataForm.backCanvasParamObj.printed : resourcesUrl + dataForm.backCanvasParamObj.printed"
+                v-if="dataForm.backCanvasParamObj && dataForm.backCanvasParamObj.printed"/>
+            </div>
+            <el-upload v-else
+                       class="avatar-uploader"
+                       accept="image/jpg"
+                       :before-upload="(file, fileList)=>handleBeforeUpload(file, fileList,item)"
+                       :action="$http.adornUrl('/admin/file/simpleUpload')"
+                       :headers="{Authorization: $cookie.get('Authorization_vp'),locale:lang}"
+                       :on-success="(res,file)=>{onFrontUploadSuccess(item,res,file)}"
+                       :show-file-list="false">
+              <el-image v-if="dataForm.backCanvasParamObj && dataForm.backCanvasParamObj.printed" style="width: 295px; height: 452px" :src="resourcesUrl + dataForm.backCanvasParamObj.printed" class="avatar"/>
+<!--              <i v-if="mode==='edit'  && dataForm.backCanvasParamObj && dataForm.backCanvasParamObj.printed" class="el-icon-plus avatar-uploader-icon"></i>-->
+            </el-upload>
+          </el-form-item>
+          <el-button v-if="mode==='edit' && dataForm.backCanvasParamObj && dataForm.backCanvasParamObj.printed" type="primary" size="mini" style="margin-right: 5px" @click="saveOrUpdateCanvasParam(item)">保存</el-button>
+        </el-col>
+        <el-col :span="5">
+          <el-form-item>
+            <h2>背面白墨层</h2>
+            <div v-if="mode === 'view'">
+              <el-image
+                style="width: 295px; height: 452px"
+                :src="dataForm.backCanvasParamObj.whiteBoard.indexOf('https://') !== -1? dataForm.backCanvasParamObj.whiteBoard : resourcesUrl + dataForm.backCanvasParamObj.whiteBoard"
+                v-if="dataForm.backCanvasParamObj && dataForm.backCanvasParamObj.whiteBoard"/>
+            </div>
+            <el-upload v-else
+                       class="avatar-uploader"
+                       accept="image/jpg"
+                       :before-upload="(file, fileList)=>handleBeforeUpload(file, fileList,item)"
+                       :action="$http.adornUrl('/admin/file/simpleUpload')"
+                       :headers="{Authorization: $cookie.get('Authorization_vp'),locale:lang}"
+                       :on-success="(res,file)=>{onFrontUploadSuccess(item,res,file)}"
+                       :show-file-list="false">
+              <el-image v-if="dataForm.backCanvasParamObj && dataForm.backCanvasParamObj.whiteBoard" style="width: 295px; height: 452px" :src="resourcesUrl + dataForm.backCanvasParamObj.whiteBoard" class="avatar"/>
+<!--              <i v-if="mode==='edit'  && dataForm.backCanvasParamObj && dataForm.backCanvasParamObj.whiteBoard" class="el-icon-plus avatar-uploader-icon"></i>-->
+            </el-upload>
+          </el-form-item>
+          <el-button v-if="mode==='edit' && dataForm.backCanvasParamObj && dataForm.backCanvasParamObj.whiteBoard" type="primary" size="mini" style="margin-right: 5px" @click="saveOrUpdateCanvasParam(item)">保存</el-button>
+        </el-col>
+        <el-col :span="5">
+          <el-form-item>
+            <h2>背面烫色层</h2>
+            <div v-if="mode === 'view'">
+              <el-image
+                style="width: 295px; height: 452px"
+                :src="dataForm.backCanvasParamObj.foilstamping.indexOf('https://') !== -1? dataForm.backCanvasParamObj.foilstamping : resourcesUrl + dataForm.backCanvasParamObj.foilstamping"
+                v-if="dataForm.backCanvasParamObj && dataForm.backCanvasParamObj.foilstamping"/>
+            </div>
+            <el-upload v-else
+                       class="avatar-uploader"
+                       accept="image/jpg"
+                       :before-upload="(file, fileList)=>handleBeforeUpload(file, fileList,item)"
+                       :action="$http.adornUrl('/admin/file/simpleUpload')"
+                       :headers="{Authorization: $cookie.get('Authorization_vp'),locale:lang}"
+                       :on-success="(res,file)=>{onFrontUploadSuccess(item,res,file)}"
+                       :show-file-list="false">
+              <el-image v-if="dataForm.backCanvasParamObj && dataForm.backCanvasParamObj.foilstamping" style="width: 295px; height: 452px" :src="resourcesUrl + dataForm.backCanvasParamObj.foilstamping" class="avatar"/>
+<!--              <i v-if="mode==='edit'  && dataForm.backCanvasParamObj && dataForm.backCanvasParamObj.foilstamping" class="el-icon-plus avatar-uploader-icon"></i>-->
+            </el-upload>
+          </el-form-item>
+          <el-button v-if="mode==='edit' && dataForm.backCanvasParamObj && dataForm.backCanvasParamObj.foilstamping" type="primary" size="mini" style="margin-right: 5px" @click="saveOrUpdateCanvasParam(item)">保存</el-button>
+        </el-col>
+        <el-col :span="5">
+          <el-form-item>
+            <h2>背面逆向层</h2>
+            <div v-if="mode === 'view'">
+              <el-image
+                style="width: 295px; height: 452px"
+                :src="dataForm.backCanvasParamObj.unWhiteBoard.indexOf('https://') !== -1? dataForm.backCanvasParamObj.unWhiteBoard : resourcesUrl + dataForm.backCanvasParamObj.unWhiteBoard"
+                v-if="dataForm.backCanvasParamObj && dataForm.backCanvasParamObj.unWhiteBoard"/>
+            </div>
+            <el-upload v-else
+                       class="avatar-uploader"
+                       accept="image/jpg"
+                       :before-upload="(file, fileList)=>handleBeforeUpload(file, fileList,item)"
+                       :action="$http.adornUrl('/admin/file/simpleUpload')"
+                       :headers="{Authorization: $cookie.get('Authorization_vp'),locale:lang}"
+                       :on-success="(res,file)=>{onFrontUploadSuccess(item,res,file)}"
+                       :show-file-list="false">
+              <el-image v-if="dataForm.backCanvasParamObj && dataForm.backCanvasParamObj.unWhiteBoard" style="width: 295px; height: 452px" :src="resourcesUrl + dataForm.backCanvasParamObj.unWhiteBoard" class="avatar"/>
+<!--              <i v-if="mode==='edit'  && dataForm.backCanvasParamObj && dataForm.backCanvasParamObj.unWhiteBoard" class="el-icon-plus avatar-uploader-icon"></i>-->
+            </el-upload>
+          </el-form-item>
+          <el-button v-if="mode==='edit' && dataForm.backCanvasParamObj && dataForm.backCanvasParamObj.unWhiteBoard" type="primary" size="mini" style="margin-right: 5px" @click="saveOrUpdateCanvasParam(item)">保存</el-button>
+        </el-col>
+        <el-col :span="4">
+          <el-form-item>
+            <h2>背面光油层</h2>
+            <div v-if="mode === 'view'">
+              <el-image
+                style="width: 295px; height: 452px"
+                :src="dataForm.backCanvasParamObj.varnish.indexOf('https://') !== -1? dataForm.backCanvasParamObj.varnish : resourcesUrl + dataForm.backCanvasParamObj.varnish"
+                v-if="dataForm.backCanvasParamObj && dataForm.backCanvasParamObj.varnish"/>
+            </div>
+            <el-upload v-else
+                       class="avatar-uploader"
+                       accept="image/jpg"
+                       :before-upload="(file, fileList)=>handleBeforeUpload(file, fileList,item)"
+                       :action="$http.adornUrl('/admin/file/simpleUpload')"
+                       :headers="{Authorization: $cookie.get('Authorization_vp'),locale:lang}"
+                       :on-success="(res,file)=>{onFrontUploadSuccess(item,res,file)}"
+                       :show-file-list="false">
+              <el-image v-if="dataForm.backCanvasParamObj && dataForm.backCanvasParamObj.varnish" style="width: 295px; height: 452px" :src="resourcesUrl + dataForm.backCanvasParamObj.varnish" class="avatar"/>
+<!--              <i v-if="mode==='edit'  && dataForm.backCanvasParamObj && dataForm.backCanvasParamObj.varnish" class="el-icon-plus avatar-uploader-icon"></i>-->
+            </el-upload>
+          </el-form-item>
+          <el-button v-if="mode==='edit'  && dataForm.backCanvasParamObj && dataForm.backCanvasParamObj.varnish" type="primary" size="mini" style="margin-right: 5px" @click="saveOrUpdateCanvasParam(item)">保存</el-button>
+        </el-col>
+      </el-row>
+    </el-form>
+  </el-dialog>
+
+</template>
+
+<script>
+  export default {
+    name: "YuyinPreview",
+    data() {
+      return {
+        mode: 'view',
+        visible: false,
+        dataForm:{},
+        resourcesUrl: process.env.VUE_APP_RESOURCES_URL,
+      };
+    },
+    mounted() {
+    },
+    methods: {
+      init(cardItem){
+        this.getCardItemById(cardItem)
+        this.visible = true;
+      },
+      closeDialog(){
+        this.visible = false
+        this.dataForm = {}
+      },
+      getCardItemById(cardItem){
+        this.$http({
+          url: this.$http.adornUrl('/prod/orderCardItem/info/' + cardItem.cardItemId),
+          method: 'get',
+        }).then(({data}) => {
+          this.dataForm = data;
+        })
+      }
+    },
+  }
+</script>
+
+<style scoped>
+
+</style>

+ 174 - 0
src/components/choose-buyer-show/index.vue

@@ -0,0 +1,174 @@
+<template>
+  <div class="choose-goods">
+    <!-- <evue-table  :data="list" :option="option" @currentRowChange="currentRowChange"></evue-table> -->
+    <el-table :data="list" style="width: 100%"
+     highlight-current-row
+     @current-change="handleCurrentChange">
+      <el-table-column
+        prop="buyerShowId"
+        label="买家秀ID">
+      </el-table-column>
+       <el-table-column
+         prop="coverUrl"
+         label="评论图片">
+         <template slot-scope="scope">
+           <el-image style="width: 60px; height: 60px" :src="scope.row.coverUrl? ((scope.row.coverUrl.split(',')[0].indexOf('.jpg') > 0)? resourcesUrl + scope.row.coverUrl.split(',')[0]: ''): ''"></el-image>
+         </template>
+      </el-table-column>
+      <el-table-column
+        prop="userAvatarUrl"
+        label="用户头像">
+        <template slot-scope="scope">
+          <el-image style="width: 60px; height: 60px" :src="scope.row.userAvatarUrl"></el-image>
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="userNickName"
+        label="用户昵称">
+      </el-table-column>
+      <el-table-column
+        prop="content"
+        label="评论内容">
+      </el-table-column>
+      <el-table-column
+        prop="likeCount"
+        label="点赞数">
+      </el-table-column>
+      <el-table-column
+        prop="createTime"
+        label="创建时间">
+      </el-table-column>
+    </el-table>
+    <el-pagination
+      @size-change="handleSizeChange"
+      @current-change="handleCurrentPageChange"
+      :current-page="pageIndex"
+      :page-sizes="[10, 20, 50, 100]"
+      :page-size="pageSize"
+      layout="total, sizes, prev, pager, next, jumper"
+      :total="totalPage">
+    </el-pagination>
+  </div>
+</template>
+<script>
+export default {
+  name: 'choose-feature',
+  props: {
+    isGetChooseData: {// 是否开始返回数据
+      type: Boolean,
+      default: false
+    }
+  },
+  watch: {
+    isGetChooseData () {
+      if (!this.currentBuyerShow.buyerShowId) {
+        this.$message.error("请选择买家秀记录")
+        return
+      }
+      this.$emit('chooseBuyerShowFun', {
+        data: this.currentBuyerShow
+      })
+    }
+  },
+  data () {
+    return {
+      defaultAvatarUrl: "https://ecard-oss.58for.com/2023/04/784e3594731c4982a964913acc652e72.png",
+      resourcesUrl: process.env.VUE_APP_RESOURCES_URL,
+      shopId: this.$store.state.user.shopId,
+      list: [],
+      currentBuyerShow: {}, // 当前选择的
+      pageIndex: 1,
+      pageSize: 10,
+      totalPage: 0
+    }
+  },
+  mounted () {
+    this.getBuyerShowPagesList()
+  },
+  methods: {
+    /**
+     * 获取买家秀列表
+     */
+    getBuyerShowPagesList () {
+      this.$http({
+        url: this.$http.adornUrl('/prod/buyerShow/page'),
+        method: 'get',
+        params: this.$http.adornParams(
+          Object.assign(
+            {
+              current: this.pageIndex,
+              size: this.pageSize,
+              shopId: this.shopId
+            }
+          )
+        )
+      }).then(({ data }) => {
+        this.list = data.records
+        this.list.forEach(item =>{
+          if(!item.userAvatarUrl){
+            item.userAvatarUrl = this.defaultAvatarUrl
+          }
+        })
+        this.totalPage = data.total
+      }).catch((error) => {
+        console.log('err', error)
+      })
+    },
+    // 每页数
+    handleSizeChange (val) {
+      this.pageSize = val
+      this.pageIndex = 1
+      this.getMiniPagesList()
+    },
+    // 当前页
+    handleCurrentPageChange (val) {
+      this.pageIndex = val
+      this.getBuyerShowPagesList()
+    },
+    /**
+     * 选择买家秀
+     */
+    handleCurrentChange (ev) {
+      this.currentBuyerShow =
+        {
+          buyerShowId: ev.buyerShowId,
+          userNickName: ev.userNickName,
+          userAvatarUrl: ev.userAvatarUrl,
+          likeCount: ev.likeCount,
+          content: ev.content,
+          coverUrl: ev.coverUrl? (ev.coverUrl.split(',')[0].indexOf('.jpg') > 0 ? ev.coverUrl.split(',')[0] : '') : ''
+        }
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.choose-goods {
+  .goods {
+    display: flex;
+
+    img {
+      width: 60px;
+      height: 60px;
+      object-fit: cover;
+      object-position: center;
+    }
+
+    .goodsName {
+      flex: 1;
+      padding-top: 5px;
+      padding-left: 5px;
+
+      p {
+        color: #38f;
+        cursor: pointer;
+      }
+
+      span {
+        color: #f60;
+      }
+    }
+  }
+}
+</style>

+ 9 - 1
src/components/order-card-item/index.vue

@@ -51,6 +51,7 @@
           <el-button v-if="item.flag==0 && mode=='view'" type="success" size="mini" style="margin-right: 20px" @click="handleFlag(item, index)">待标记</el-button>
           <el-button v-if="item.flag==1 && mode=='view'" type="warning" size="mini" style="margin-right: 5px" @click="handleFlag(item, index)">已标记</el-button>
           <el-button v-if="mode=='view'" type="text" size="mini" @click="openOrgPicForm(item, index)">原图</el-button>
+            <el-button v-if="mode=='view' && (orderItem.prodName.indexOf('简约') !== -1 || orderItem.prodName.indexOf('高阶') !== -1)" type="text" size="mini" @click="openCanvasParamPicForm(item, index)">工艺</el-button>
           <el-button v-if="item.prodName.indexOf('语音') !== -1 && mode=='view'" type="text" size="mini" @click="openYYForm(item, index)">查看语音</el-button>
           <el-button v-if="mode==='edit'" type="primary" size="mini" style="margin-right: 5px" @click="addOrUpdateCardItem(item)">保存</el-button>
           <el-button v-if="mode==='edit' && item.cardItemId" type="danger" size="mini" style="margin-right: 5px" @click="deleteCardItem(item, index)">删除</el-button>
@@ -77,6 +78,7 @@
     <CanvasPreview v-if= "previewPicDialogVisible" ref="canvasPreviewRef"></CanvasPreview>
     <YuyinPreview ref="yuYinPreviewRef"></YuyinPreview>
     <OrgPicPreview ref="orgPicPreviewRef"></OrgPicPreview>
+    <CanvasParamPicPreview ref="canvasParamPicPreviewRef"></CanvasParamPicPreview>
 
   </div>
 </template>
@@ -85,8 +87,9 @@
   import CanvasPreview from "../canvas-preview/index";
   import YuyinPreview from "../yuyin-preview/index";
   import OrgPicPreview from "../org-pic-preview/index";
+  import CanvasParamPicPreview from "../canvas-param-pic-preview/index";
   export default {
-    components: {CanvasPreview, YuyinPreview,OrgPicPreview},
+    components: {CanvasPreview, YuyinPreview,OrgPicPreview, CanvasParamPicPreview},
     data () {
       return {
         shopId: this.$store.state.user.shopId,
@@ -120,6 +123,11 @@
       })
     },
     methods: {
+      openCanvasParamPicForm(item, index){
+        this.$nextTick(() =>{
+          this.$refs.canvasParamPicPreviewRef.init(item)
+        })
+      },
       openYYForm(item, index){
         this.$nextTick(() =>{
           this.$refs.yuYinPreviewRef.init(item)

+ 8 - 0
src/views/modules/shop/feature/create/edit/components/notice/index.vue

@@ -16,6 +16,12 @@
           <p>{{$t('shopFeature.notice.announcementTips2')}}</p>
         </div>
       </div>
+      <div style="display: inline-flex;align-items: center">
+        <span>颜色:</span>
+        <el-input placeholder="255,255,255白色" size="mini" controls-position="right" v-model="formData.bgColor" style="width:100px"></el-input>
+        <span>透明度:</span>
+        <el-input-number placeholder="0透明,1不透明" size="mini" controls-position="right" v-model="formData.bgOpacity" :min="0" style="width:112px" />
+      </div>
     </div>
   </div>
 </template>
@@ -30,6 +36,8 @@ export default {
     return {
       searchimg: searchimg,
       formData: {
+        bgColor: '255,255,255',
+        bgOpacity: 0.5,
         title: this.$i18n.t('shopFeature.notice.announcement')
       },
       commonCheckFieldRules: 'checkData' // 当前组件默认的规则判断函数

+ 71 - 17
src/views/modules/shop/feature/create/edit/components/scroll-tab-nav/index.vue

@@ -23,7 +23,7 @@
                v-for="(item,index) in showNav"
                :key="index">
             <div :class="[{'full-img': item.img}, formData.size==3? 'img-con-three': formData.size==4?'img-con-four': 'img-con-five']">
-              <img :src="item.img || defPic">
+              <el-image style="width: 100px; height: 100px" :src="item.img || defPic"></el-image>
             </div>
             <!--图文模式-->
             <span v-if="formData.set.type !==1"
@@ -191,23 +191,28 @@
                   </div>
                 </div>
                 <div v-if="item.textType === '2'">
-                  <div class="set-item-title" style="margin-top: 10px">
-                    <span style="font-size: 14px">点赞</span>
-                    <el-input-number placeholder="点赞数" size="mini"controls-position="right"  v-model="item.rightLikeNum" :min="0" style="width:80px" />
-                    <div @click="changeImgType(2, index)">
-                      <div class="set-image"
-                           v-if="formData.set.type !==3"
-                           @click="choosePic(index)"
-                           :style="{backgroundImage:'url('+item.leftAvatar+')'}">
-                        <div v-if="item.leftAvatar" class="set-image-add">{{$t('shopFeature.tabNav.changePic')}}</div>
-                        <div v-else class="set-image-empty">
-                          <div><i class="el-icon-plus"></i></div>
-                          <div>{{ $t('shopFeature.tabNav.addPic')}}</div>
+                  <div class="set-item-title" style="margin-top: 10px; align-items: start">
+                    <el-button size="mini" type="text" @click="openBuyerShowPage(index)">选择买家</el-button>
+                    <div style="display: inline-block;">
+                      <span style="font-size: 14px">点赞</span>
+                      <el-input-number placeholder="点赞数" size="mini"controls-position="right"  v-model="item.rightLikeNum" :min="0" style="width:90px" />
+                      <el-input style="width: 80px" maxlength="25" size="mini" v-model="item.leftNickName" placeholder="昵称"></el-input>
+                      <div @click="changeImgType(2, index)">
+                        <div class="set-image"
+                             style="width: 40px; height: 40px"
+                             v-if="formData.set.type !==3"
+                             @click="choosePic(index)"
+                             :style="{backgroundImage:'url('+item.leftAvatar+')'}">
+                          <div v-if="item.leftAvatar" class="set-image-add">{{$t('shopFeature.tabNav.changePic')}}</div>
+                          <div v-else class="set-image-empty">
+                            <div><i class="el-icon-plus"></i></div>
+                            <div>{{ $t('shopFeature.tabNav.addPic')}}</div>
+                          </div>
                         </div>
+                        <!--                      <img-upload v-model="item.leftAvatar" v-if="!item.leftAvatar" @input="changeImg"></img-upload>-->
                       </div>
-<!--                      <img-upload v-model="item.leftAvatar" v-if="!item.leftAvatar" @input="changeImg"></img-upload>-->
+
                     </div>
-                    <el-input style="width: 70px" maxlength="25" size="mini" v-model="item.leftNickName" placeholder="昵称"></el-input>
                   </div>
                 </div>
               </div>
@@ -265,6 +270,26 @@
                      @click="customPathCancel">{{$t('shopFeature.tabNav.cancel')}}</el-button>
         </div>
     </el-dialog>
+    <!--选择买家秀-->
+    <el-dialog custom-class="up-dialog"
+               :close-on-click-modal="false"
+               top="5vh"
+               title="买家秀页面"
+               :visible.sync="buyerShowVisible"
+               width="42%">
+      <div class="choose-goods-compent">
+        <choose-buyer-show :isGetChooseData="isGetBuyerShow"
+                        @chooseBuyerShowFun="chooseBuyerShowFun"></choose-buyer-show>
+        <div slot="footer"
+             style="text-align: right;margin-top: 20px;">
+          <el-button size="mini"
+                     type="primary"
+                     @click="isGetBuyerShow=!isGetBuyerShow">{{$t('shopFeature.tabNav.confirm')}}</el-button>
+          <el-button size="mini"
+                     @click="dialogChoosePages = false">{{$t('shopFeature.tabNav.cancel')}}</el-button>
+        </div>
+      </div>
+    </el-dialog>
   </div>
 </template>
 <script>
@@ -276,6 +301,7 @@
 import {microCreateMinis} from '../../minis'
 import ProdsSelect from '@/components/prods-select'
 import ChooseFeature from '@/components/choose-feature/index.vue'
+import ChooseBuyerShow from '@/components/choose-buyer-show/index.vue'
 import ElxImgbox from '@/components/elx-imgbox'
 import ImgUpload from '@/components/img-upload'
 
@@ -286,7 +312,9 @@ export default {
   props: {},
   data () {
     return {
+      buyerShowVisible: false,
       isGetChooseFeature: false, // 是否可以返回微页面
+      isGetBuyerShow: false, // 是否可以返回微页面
       dialogChoosePages: false, // 微页面弹窗
       /** 选择图片的弹窗 */
       isGetChooseImages: false,
@@ -373,6 +401,13 @@ export default {
           microTitle: '',
           linkTitle: this.$i18n.t('shopFeature.headerAd.microPage'),
           link: ''
+        },
+        {
+          img: '',
+          linkType: 6,
+          microTitle: '',
+          linkTitle: '买家秀页面',
+          link: ''
         }
       ],
       demoNav: [],
@@ -413,7 +448,8 @@ export default {
     ProdsSelect,
     ElxImgbox,
     ChooseFeature,
-    ImgUpload
+    ImgUpload,
+    ChooseBuyerShow
   },
   computed: {},
   filters: {
@@ -442,6 +478,11 @@ export default {
     //     this.$refs.ProdsSelect.init()
     //   })
     // },
+    openBuyerShowPage(index){
+      this.selectLinkItem = {linkItem:this.linkList[index], currentEditIndex:index}
+      this.setLinkInfo()
+      this.buyerShowVisible = true
+    },
     chooseGoodsFun($event) {
       this.setLinkInfo()
       this.formData.nav[this.currentNav].link = $event.prodId
@@ -582,7 +623,7 @@ export default {
         title: `demo${this.formData.nav.length + 1}`, // nav 标题
         microTitle: '', // 微页面的名称
         img: '', // 图文/图片导航  图片
-        linkType: '', // 1商品详情(暂时弃用)  2购物车 2个人中心 4自定义路径 5微页面
+        linkType: '', // 1商品详情(暂时弃用)  2购物车 2个人中心 4自定义路径 5微页面 6买家秀
         link: '', // 自定义路径 || 微页面id
         linkTitle: '' // 跳转类型名称
       })
@@ -606,6 +647,19 @@ export default {
       this.formData.nav[this.currentNav].microTitle = $event.data.name
       this.dialogChoosePages = false
     },
+    // 选择买家秀回调
+    chooseBuyerShowFun ($event) {
+      this.setLinkInfo()
+      this.formData.nav[this.currentNav].link = $event.data.buyerShowId
+      this.formData.nav[this.currentNav].img = this.resourcesUrl + $event.data.coverUrl
+      this.formData.nav[this.currentNav].rightLikeNum = $event.data.likeCount
+      this.formData.nav[this.currentNav].leftAvatar = $event.data.userAvatarUrl
+      this.formData.nav[this.currentNav].leftNickName = $event.data.userNickName
+      let content = $event.data.content.replace(/\n/g, '');
+      this.formData.nav[this.currentNav].title = content
+      // this.formData.nav[this.currentNav].microTitle = $event.data.name
+      this.buyerShowVisible = false
+    },
 
     /**
      * 开始验证

+ 11 - 1
src/views/modules/shop/feature/create/edit/components/tab-nav/index.vue

@@ -55,6 +55,14 @@
           <!-- 配置-->
           <div class="tab-set-box">
             <el-form ref="formData" class="edit-form" size="small">
+              <el-form-item label="设置背景" class="tab-set-style">
+                <div style="display: inline-flex;align-items: center">
+                  <span>颜色:</span>
+                  <el-input placeholder="255,255,255白色" size="mini" controls-position="right" v-model="formData.bgColor" style="width:100px"></el-input>
+                  <span>透明度:</span>
+                  <el-input-number placeholder="0透明,1不透明" size="mini" controls-position="right" v-model="formData.bgOpacity" :min="0" style="width:112px" />
+                </div>
+              </el-form-item>
               <el-form-item label="选择模版" class="tab-set-style">
                 <el-radio-group v-model="formData.set.type">
                   <el-radio v-for="(typeItem, index) in setTypeList"
@@ -233,7 +241,9 @@ export default {
         },
         // 配置
         nav: [],
-        size: 4 // 默认一行四个导航
+        size: 4, // 默认一行四个导航
+        bgColor: '255,255,255',
+        bgOpacity: 0.5,
       },
       setCountsList: [
         {