Parcourir la source

1、更新申通打单

huangmp il y a 1 an
Parent
commit
d6bd24ac23

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

@@ -0,0 +1,361 @@
+<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,dataForm)"
+                       :action="$http.adornUrl('/admin/file/simpleUpload')"
+                       :headers="{Authorization: $cookie.get('Authorization_vp'),locale:lang}"
+                       :on-success="(res,file)=>{onUploadSuccess(dataForm.frontCanvasParamObj, 'printed',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.frontCanvasParamObj && dataForm.frontCanvasParamObj.printed" type="primary" size="mini" style="margin-right: 5px" @click="saveOrUpdateCanvasParam()">保存</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,dataForm)"
+                       :action="$http.adornUrl('/admin/file/simpleUpload')"
+                       :headers="{Authorization: $cookie.get('Authorization_vp'),locale:lang}"
+                       :on-success="(res,file)=>{onUploadSuccess(dataForm.frontCanvasParamObj, 'whiteBoard',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.frontCanvasParamObj && dataForm.frontCanvasParamObj.whiteBoard" type="primary" size="mini" style="margin-right: 5px" @click="saveOrUpdateCanvasParam()">保存</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,dataForm)"
+                       :action="$http.adornUrl('/admin/file/simpleUpload')"
+                       :headers="{Authorization: $cookie.get('Authorization_vp'),locale:lang}"
+                       :on-success="(res,file)=>{onUploadSuccess(dataForm.frontCanvasParamObj, 'foilstamping',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.frontCanvasParamObj && dataForm.frontCanvasParamObj.foilstamping" type="primary" size="mini" style="margin-right: 5px" @click="saveOrUpdateCanvasParam()">保存</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,dataForm)"
+                       :action="$http.adornUrl('/admin/file/simpleUpload')"
+                       :headers="{Authorization: $cookie.get('Authorization_vp'),locale:lang}"
+                       :on-success="(res,file)=>{onUploadSuccess(dataForm.frontCanvasParamObj, 'unWhiteBoard',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.frontCanvasParamObj && dataForm.frontCanvasParamObj.unWhiteBoard" type="primary" size="mini" style="margin-right: 5px" @click="saveOrUpdateCanvasParam()">保存</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,dataForm)"
+                       :action="$http.adornUrl('/admin/file/simpleUpload')"
+                       :headers="{Authorization: $cookie.get('Authorization_vp'),locale:lang}"
+                       :on-success="(res,file)=>{onUploadSuccess(dataForm.frontCanvasParamObj, 'varnish',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.frontCanvasParamObj && dataForm.frontCanvasParamObj.varnish" type="primary" size="mini" style="margin-right: 5px" @click="saveOrUpdateCanvasParam()">保存</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,dataForm)"
+                       :action="$http.adornUrl('/admin/file/simpleUpload')"
+                       :headers="{Authorization: $cookie.get('Authorization_vp'),locale:lang}"
+                       :on-success="(res,file)=>{onUploadSuccess(dataForm.backCanvasParamObj, 'printed',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()">保存</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,dataForm)"
+                       :action="$http.adornUrl('/admin/file/simpleUpload')"
+                       :headers="{Authorization: $cookie.get('Authorization_vp'),locale:lang}"
+                       :on-success="(res,file)=>{onUploadSuccess(dataForm.backCanvasParamObj, 'whiteBoard',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()">保存</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,dataForm)"
+                       :action="$http.adornUrl('/admin/file/simpleUpload')"
+                       :headers="{Authorization: $cookie.get('Authorization_vp'),locale:lang}"
+                       :on-success="(res,file)=>{onUploadSuccess(dataForm.backCanvasParamObj, 'foilstamping',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()">保存</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,dataForm)"
+                       :action="$http.adornUrl('/admin/file/simpleUpload')"
+                       :headers="{Authorization: $cookie.get('Authorization_vp'),locale:lang}"
+                       :on-success="(res,file)=>{onUploadSuccess(dataForm.backCanvasParamObj, 'unWhiteBoard',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()">保存</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,dataForm)"
+                       :action="$http.adornUrl('/admin/file/simpleUpload')"
+                       :headers="{Authorization: $cookie.get('Authorization_vp'),locale:lang}"
+                       :on-success="(res,file)=>{onUploadSuccess(dataForm.backCanvasParamObj, 'varnish',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()">保存</el-button>
+        </el-col>
+      </el-row>
+    </el-form>
+  </el-dialog>
+
+</template>
+
+<script>
+  export default {
+    name: "YuyinPreview",
+    data() {
+      return {
+        lang: localStorage.getItem('lang') || 'zh_CN',
+        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;
+        })
+      },
+      handleBeforeUpload(file, fileList, item){
+        let isSize = true;
+        //如果当前是编辑的小卡,就需要判断是否符合尺寸
+        let width = 709;
+        let height = 1087;
+        let prodName = item.prodName;
+        isSize = new Promise(function(resolve, reject) {
+          if(prodName.indexOf("闪卡") !== -1){
+            width = 709;
+            height = 1087;
+          }else if(prodName.indexOf("明信片") !== -1){
+            width = 1252;
+            height = 1819;
+          }else if(prodName.indexOf("方卡") !== -1){
+            width = 1252;
+            height = 1252;
+          }else if(prodName.indexOf("180") !== -1){
+            width = 780;
+            height = 2197;
+          }else if(prodName.indexOf("210") !== -1){
+            width = 898;
+            height = 2551;
+          }
+          let _URL = window.URL || window.webkitURL
+          let img = new Image()
+          img.onload = function() {
+            let valid = img.width == width && img.height == height
+            valid ? resolve() : reject()
+          }
+          img.src = _URL.createObjectURL(file)
+        }).then(
+          () => {
+            return file;
+          },
+          () => {
+            this.$message.error("上传的图片宽高必须是" + width + "*" + height)
+            return Promise.reject()
+          }
+        )
+        return isSize
+      },
+      onUploadSuccess (item, field, response, file) {
+        this.$set(item, field,response.filePath);
+        this.$forceUpdate()
+      },
+      saveOrUpdateCanvasParam(){
+        this.$confirm('确定要更新吗?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          if(this.dataForm.frontCanvasParamObj){
+            this.dataForm.frontCanvasParam = JSON.stringify(this.dataForm.frontCanvasParamObj)
+          }
+          if(this.dataForm.backCanvasParamObj){
+            this.dataForm.backCanvasParam = JSON.stringify(this.dataForm.backCanvasParamObj)
+          }
+          this.$http({
+            url: this.$http.adornUrl('/prod/orderCardItem/saveOrUpdateCanvasParam'),
+            method: 'post',
+            data: this.$http.adornData(this.dataForm)
+          }).then(({ data }) =>{
+            if(data){
+              this.$set(this.dataForm, 'cardItemId', data.cardItemId);
+              this.$message.success("保存成功");
+            }else{
+              this.$message.error("保存失败");
+            }
+          })
+        });
+      },
+    },
+  }
+</script>
+
+<style scoped>
+
+</style>

+ 11 - 3
src/components/order-card-item/index.vue

@@ -3,7 +3,7 @@
     <div>
       <div v-if="showFlagBtn">
         <el-radio v-model="mode" label="view">预览模式</el-radio>
-    <el-radio v-model="mode" label="edit">编辑模式</el-radio>
+        <el-radio v-model="mode" label="edit">编辑模式</el-radio>
       </div>
 
       <div style="border: 2px solid pink; display: inline-block;margin-right: 5px;" v-for="(item, index) in cardItemList" :key="item.cardItemId">
@@ -55,6 +55,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>
@@ -81,6 +82,7 @@
     <CanvasPreview v-if= "previewPicDialogVisible" ref="canvasPreviewRef"></CanvasPreview>
     <YuyinPreview ref="yuYinPreviewRef"></YuyinPreview>
     <OrgPicPreview ref="orgPicPreviewRef"></OrgPicPreview>
+    <CanvasParamPicPreview ref="canvasParamPicPreviewRef"></CanvasParamPicPreview>
 
   </div>
 </template>
@@ -89,8 +91,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 {
         lang: localStorage.getItem('lang') || 'zh_CN',
@@ -104,7 +107,7 @@
         mode: 'view',
         previewWidth: 0,
         previewHeight: 0,
-        bloodWidth: 0
+        bloodWidth: 0,
       }
     },
     props: {
@@ -133,6 +136,11 @@
           this.$refs.orgPicPreviewRef.init(item)
         })
       },
+      openCanvasParamPicForm(item, index){
+        this.$nextTick(() =>{
+          this.$refs.canvasParamPicPreviewRef.init(item)
+        })
+      },
       previewLoad(event){
         this.previewWidth = event.srcElement.clientWidth;
         this.previewHeight = event.srcElement.clientHeight;

+ 5 - 2
src/views/common/home.vue

@@ -4,7 +4,7 @@
     <p class="content">亚米商城专业版并非一个开源软件,作者保留全部的权利。 擅自窃用,即属严重侵权行为,与盗窃无异。产生的一切任何后果责任由侵权者自负。
       擅自窃用,必将追究法律责任!!!</p> -->
 
-    <div v-if="shopStatusInfo.shopStatus !== null && shopStatusInfo.shopStatus !== 1 && userId !== 12 && userId !== 13 &&userId !== 14 && userId !== 15" class="shop-inf-imperfect-tips">
+    <div v-if="shopStatusInfo.shopStatus !== null && shopStatusInfo.shopStatus !== 1 && userId !== 12 && userId !== 13 &&userId !== 14 && userId !== 15 && userId !== 16" class="shop-inf-imperfect-tips">
       <div v-if="shopStatusInfo.shopStatus === 2">
         <div>
           <i class="el-icon-warning" />
@@ -30,7 +30,7 @@
       </div>
     </div>
 
-    <div v-if="userId !== 12 && userId !== 13 && userId !== 14 && userId !== 15" >
+    <div v-if="userId !== 12 && userId !== 13 && userId !== 14 && userId !== 15 && userId !== 16" >
       <!-- 数据 -->
       <!-- 基本信息 -->
       <div class="order-all-num white-basic">
@@ -330,6 +330,9 @@
     <div v-if="userId === 15">
       <h1 style="text-align: center; font-size: 100px">蜗牛定制</h1>
     </div>
+    <div v-if="userId === 16">
+      <h1 style="text-align: center; font-size: 100px">成都闪卡</h1>
+    </div>
   </div>
 </template>
 

+ 1 - 0
src/views/modules/order/orderInfo.vue

@@ -654,6 +654,7 @@
           <el-option key="KuaiYin" label="快印" value="KuaiYin"></el-option>
           <el-option key="Lightning" label="闪电" value="Lightning"></el-option>
           <el-option key="WoNiu" label="蜗牛" value="WoNiu"></el-option>
+          <el-option key="ChengDu" label="成都" value="ChengDu"></el-option>
         </el-select>
       </el-form>
       <div slot="footer" class="dialog-footer">

+ 17 - 2
src/views/modules/print/print-scan-delivery.vue

@@ -96,6 +96,7 @@ import {autoConnect, disAutoConnect, hiprint} from 'vue-plugin-hiprint'
 import yundaTemplate from './yunda-template-data'
 import ztoTemplate from './zto-template-data'
 import ztoWoNiuTemplate from './zto-woniu-template-data'
+import stoTemplate from './sto-template-data'
 import printData from './yunda-print-data'
 autoConnect()
 hiprint.init()
@@ -105,6 +106,7 @@ export default {
       ztoHiprintTemplate: null,
       ztoWoNiuHiprintTemplate: null,
       yundaHiprintTemplate: null,
+      stodaHiprintTemplate: null,
       dataList: [],
       page: {
         total: 0, // 总页数
@@ -138,6 +140,7 @@ export default {
     this.buildYundaDesigner()
     this.buildZtoDesigner()
     this.buildZtoWoNiuDesigner()
+    this.buildStoDesigner()
   },
   methods: {
     getLogisticsList () {
@@ -183,6 +186,16 @@ export default {
       // 构建 并填充到 容器中
       this.ztoWoNiuHiprintTemplate.design('#zto-woniu-hiprint-printTemplate')
     },
+    buildStoDesigner () {
+      $('#sto-hiprint-printTemplate').empty() // 先清空, 避免重复构建
+      this.stoHiprintTemplate = new hiprint.PrintTemplate({
+        // 如果使用 vue ref 创建的模板json, 需要使用 .value 获取 (确保内部能够使用 object.key 拿到对应数据就行)
+        template: stoTemplate, // 模板json(object)
+        settingContainer: '#PrintElementOptionSetting' // 元素参数容器
+      })
+      // 构建 并填充到 容器中
+      this.stoHiprintTemplate.design('#sto-hiprint-printTemplate')
+    },
     getDeviceList () {
       this.$http({
         url: this.$http.adornUrl('/platform/print/printDevice/getDeviceList'),
@@ -216,7 +229,7 @@ export default {
         }).then(({data}) => {
           if (data) {
             this.getLogisticsInfo(this.scanOrderNo)
-            if (this.logistics === 'YUNDA' || this.logistics === 'ZTO') {
+            if (this.logistics === 'YUNDA' || this.logistics === 'ZTO' || this.logistics === 'STO') {
               if (!data.hadPrint) {
                 // 打印韵达面单
                 this.printWallbill(data.orderLogistics)
@@ -256,6 +269,8 @@ export default {
         }
       } else if (logistics.logistics === 'YUNDA') {
         this.yundaHiprintTemplate.print2(printData.value(logistics))
+      } else if (logistics.logistics === 'STO') {
+        this.stoHiprintTemplate.print2(printData.value(logistics))
       }
     },
     handlePrintOrder () {
@@ -269,7 +284,7 @@ export default {
       }).then(({data}) => {
         if (data) {
           this.getLogisticsInfo(this.scanOrderNo)
-          if (this.logistics === 'YUNDA' || this.logistics === 'ZTO') {
+          if (this.logistics === 'YUNDA' || this.logistics === 'ZTO' || this.logistics === 'STO') {
             // 打印韵达面单
             this.printWallbill(this.printOrder.orderLogistics)
           }

+ 46 - 30
src/views/modules/print/printList.vue

@@ -8,6 +8,7 @@
               <el-option key="KuaiYin" label="快印" value="KuaiYin"></el-option>
               <el-option key="Lightning" label="闪电" value="Lightning"></el-option>
               <el-option key="WoNiu" label="蜗牛" value="WoNiu"></el-option>
+              <el-option key="ChengDu" label="成都" value="ChengDu"></el-option>
             </el-select>
           </el-form-item>
           <el-form-item prop="orderNumber" label="订单编号:">
@@ -239,21 +240,8 @@ export default {
               reject(error.toString())
             })
         })
-        // return new Promise((resolve, reject) => {
-        //   let xmlhttp = new XMLHttpRequest();
-        //   xmlhttp.open("GET", url, true);
-        //   xmlhttp.responseType = "arraybuffer";
-        //   xmlhttp.onload = function () {
-        //     if (this.status == 200) {
-        //       resolve(this.response);
-        //     } else {
-        //       reject(this.status);
-        //     }
-        //   }
-        //   xmlhttp.send();
-        // });
       },
-      getAllNeed () {
+      getAllNeed (outputName) {
         if (!this.theData) {
           this.theData = JSON.parse(JSON.stringify(this.searchForm))
         }
@@ -270,28 +258,49 @@ export default {
             )
           )
         }).then(({ data }) => {
-          console.log(data.records)
           let pdfList = data.records
-          // const arr = [{fileDownUrl:'地址', fileDownName:'文件名'}] // 需要下载打包的路径, 可以是本地相对路径, 也可以是跨域的全路径
-          const zip = new JSzip()
-          const cache = {}
+          const newZip = new JSzip()
           const promises = []
           pdfList.forEach((pdf, j) => {
-            // let randomStr = Math.floor(Math.random() * 100000).toString()
-            const promise = this.getPdfFile(this.resourcesUrl + pdf.pdfUrl).then(data => {
-              // 下载文件, 并存成blob对象
-              // const fileName = pdf.pdfFolderName + "/" + pdf.pdfName; // 获取文件名,一定要包含文件的后缀名(因为重复的文件名只会下载一个,故需要加入下标 不同名)
-              zip.file(pdf.pdfName, data, {
-                binary: true
+            if(pdf.pdfName.endsWith('.zip') && pdf.pdfName.indexOf('对裱') === -1){
+              const zip = new JSzip()
+              let innerPromise = new Promise((resolve, reject) => {
+                fetch(this.resourcesUrl + pdf.pdfUrl).then(response =>{
+                  if (!response.ok) {
+                    throw new Error('Network response was not ok ' + response.statusText);
+                  }
+                  return response.blob();
+                }).then(blob => {
+                  // 现在你有了一个Blob对象,可以根据需要使用它
+                  let folderData = []
+                  zip.loadAsync(blob).then(zipData =>{
+                    for(let filename of Object.keys(zipData.files)){
+                      let data = zipData.files[filename].async('blob')
+                      folderData.push({name: filename, data: data})
+                    }
+                    resolve(folderData)
+                  })
+                })
+              }).then(folderData =>{
+                let folder = newZip.folder(pdf.pdfFolderName)
+                for(let key in folderData) {
+                  folder.file(folderData[key].name, folderData[key].data, {binary: true})
+                }
               })
-              cache[pdf.pdfName] = data
-            })
-            promises.push(promise)
+              promises.push(innerPromise)
+            }else{
+              const promise = this.getPdfFile(this.resourcesUrl + pdf.pdfUrl).then(data => {
+                newZip.file(pdf.pdfName, data, {
+                  binary: true
+                })
+              })
+              promises.push(promise)
+            }
           })
           Promise.all(promises).then(() => {
-            zip.generateAsync({ type: 'blob' }).then(content => {
+            newZip.generateAsync({ type: 'blob' }).then(content => {
               // 生成二进制流   然后保存文件(如果这个下载不了 也可以将下方这一行换成a标签下载逻辑)
-              saveAs(content, '批量下载PDF压缩包.zip') // 利用file-saver保存文件  自定义文件名
+              saveAs(content, outputName) // 利用file-saver保存文件  自定义文件名
               this.downloadLoading = false
             })
             // eslint-disable-next-line handle-callback-err
@@ -304,18 +313,25 @@ export default {
         if (!!this.searchForm.startTime && !!this.searchForm.endTime) {
           this.downloadLoading = true
           if ((Date.parse(new Date(this.searchForm.endTime).toString()) - Date.parse(new Date(this.searchForm.startTime).toString())) / 1000 / 60 / 60 <= 24) {
-            this.getAllNeed()
+            let now = new Date()
+            let year = now.getFullYear()
+            let month = String(now.getMonth() + 1).padStart(2, '0')
+            let date = String(now.getDate()).padStart(2, '0')
+            let outputName = year + month + date + "批量下载PDF.zip"
+            this.getAllNeed(outputName)
           } else {
             this.$message({
               message: '批量下载ZIP范围最大为24小时',
               type: 'warning'
             })
+            this.downloadLoading = false
           }
         } else {
           this.$message({
             message: '请先选择创建时间,范围最大为24小时',
             type: 'warning'
           })
+          this.downloadLoading = false
         }
       },
 

Fichier diff supprimé car celui-ci est trop grand
+ 2 - 0
src/views/modules/print/sto-template-data.js


Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff