Przeglądaj źródła

1、产品模板
2、订单发货
3、团购时限延长

billisme 3 lat temu
rodzic
commit
af19027218

+ 123 - 0
src/components/order-card-item/index.vue

@@ -0,0 +1,123 @@
+<template>
+  <div style="display: inline-block; overflow: auto">
+    <div style="border: 2px solid pink; display: inline-block;margin-right: 5px;" v-for="(item, index) in cardItemList" :key="item.cardItemId">
+      <el-row :gutter="12" style="padding-top: 5px">
+        <el-col :span="12">
+          <el-card :body-style="{ padding: '0px' }">
+            <div style="padding: 3px; text-align: center">
+              <span>正面</span>
+            </div>
+            <el-image :src="resourcesUrl + item.frontPic" style="width: 100px; height: 100px;" @click="previewPic(item.frontPic)"/>
+          </el-card>
+        </el-col>
+        <el-col :span="12">
+          <el-card :body-style="{ padding: '0px' }">
+            <div style="padding: 3px; text-align: center">
+              <span>背面</span>
+            </div>
+            <el-image :src="resourcesUrl + item.backPic" style="width: 100px; height: 100px;" @click="previewPic(item.backPic)"/>
+          </el-card>
+        </el-col>
+      </el-row>
+      <el-row style="width: 210px; height: 30px; text-align: center;color: red; font-weight: bold">
+          <el-button v-if="item.flag==0" type="success" size="mini" style="margin-right: 20px" @click="handleFlag(item, index)">待标记</el-button>
+          <el-button v-if="item.flag==1" type="warning" size="mini" style="margin-right: 20px" @click="handleFlag(item, index)">已标记</el-button>
+        <span>X</span><span>{{item.prodCount}}</span>
+      </el-row>
+    </div>
+    <el-dialog :visible.sync="previewPicDialogVisible" :modal="false" title="图片预览" width="20%" top="3vh">
+      <el-image :src="previewPicUrl" alt=""  style="width: 100%; height: 100%"/>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+  export default {
+    data () {
+      return {
+        cardItemList:[],
+        previewPicUrl: null,
+        previewPicDialogVisible: false,
+        resourcesUrl: process.env.VUE_APP_RESOURCES_URL,
+      }
+    },
+    props: {
+      orderNumber: {
+        default: null,
+        type: String
+      },
+    },
+    created() {
+      this.getDataList();
+    },
+    methods: {
+      handleFlag(item, index){
+        let fl = item.flag == 1? 0 : 1
+          this.$http({
+              url: this.$http.adornUrl('/prod/orderCardItem/flag'),
+              method: 'post',
+              data: this.$http.adornParams(
+                  Object.assign({
+                          cardItemId: item.cardItemId,
+                          flag: fl
+                      },
+                  )
+              )
+          }).then(({data}) => {
+            if(data){
+              this.$message({
+                message: "标记完成",
+                type: 'success',
+              });
+              this.cardItemList[index].flag = fl;
+            }else{
+              this.$message({
+                message: "标记失败",
+                type: 'error',
+              })
+            }
+          })
+      },
+      previewPic(picUrl){
+        this.previewPicUrl = this.resourcesUrl + picUrl
+        this.previewPicDialogVisible = true;
+      },
+      getDataList () {
+        this.$http({
+          url: this.$http.adornUrl('/prod/orderCardItem/page'),
+          method: 'get',
+          params: this.$http.adornParams(
+                  Object.assign({
+                            size: 200,
+                            orderNumber: this.orderNumber
+                          },
+                  )
+          )
+        }).then(({data}) => {
+          this.cardItemList = data.records
+        })
+      },
+    }
+  }
+</script>
+<style lang="scss" scoped>
+  /* .prods-select-body {
+    height: 600px;
+    overflow: auto;
+    border-top: 1px solid #eeeeee;
+    border-right: 1px solid #eeeeee;
+    border-bottom: 1px solid #eeeeee;
+  } */
+  .brand-select-pop {
+    & ::v-deep .el-dialog__body {
+      padding-top: 20px;
+      padding-bottom: 20px;
+    }
+    .main-container {
+      margin: 0;
+      .pagination {
+        text-align: right;
+      }
+    }
+  }
+</style>

+ 153 - 0
src/components/order-print-create/index.vue

@@ -0,0 +1,153 @@
+<template>
+  <el-dialog
+    title="确认打印订单"
+    :modal="false"
+    top="200px"
+    :close-on-click-modal="false"
+    :visible.sync="visible"
+  >
+    <el-form
+      :model="dataForm"
+      ref="dataForm"
+      label-width="80px"
+    >
+      <el-form-item label="打印渠道" prop="printChannel">
+        <el-select v-model="dataForm.printChannel" clearable filterable @change="handlePrintChannelChange">
+          <el-option key="GSART" label="广森数码" value="GSART"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="打印产品" prop="prodType">
+        <el-select v-model="dataForm.prodType" clearable filterable @change="handleProdTypeChange">
+          <el-option v-for="(node, index) in prodTypeList"
+                     :key="node.prodType"
+                     :label="node.prodName"
+                     :value="node.prodType">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="产品规格" prop="thirdSkuId">
+        <el-select v-model="dataForm.thirdSkuId" clearable filterable>
+          <el-option v-for="(node, index) in thirdSkuIdList"
+                     :key="node.thirdSkuId"
+                     :label="node.thirdSkuName"
+                     :value="node.thirdSkuId">
+          </el-option>
+        </el-select>
+      </el-form-item>
+    </el-form>
+    <span slot="footer">
+      <el-button type="info" @click="visible = false">{{$t("crud.filter.cancelBtn")}}</el-button>
+      <el-button :loading="orderCreateLoading" type="primary" @click="dataFormSubmit">{{$t("crud.filter.submitBtn")}}</el-button>
+    </span>
+  </el-dialog>
+</template>
+
+<script>
+export default {
+  data () {
+    return {
+      visible: false,
+      provinceList: [],
+      cityList: [],
+      areaList: [],
+      dataForm: {
+        orderNumber: null,
+        printChannel: "GSART",
+        shopId: null,
+        prodType: null,
+        thirdSkuId: null,
+      },
+      dataRule: {
+      },
+      isTrue: false,
+      errorInfo: '',
+      dataListLoading: false,
+      thirdSkuIdList: [],
+      prodTypeList: [],
+      dataList: [],
+      orderCreateLoading: false
+    }
+  },
+  methods: {
+    // 获取数据列表
+    init (data) {
+      let printOrder = Object.assign({}, data)
+      this.visible = true
+      this.dataForm.shopId = printOrder.shopId
+      this.dataForm.orderNumber = printOrder.orderNumber
+      this.dataListLoading = false;
+      this.$http({
+        url: this.$http.adornUrl(`/prod/thirdPrintSku/list/${this.dataForm.printChannel}`),
+        method: 'get',
+        params: this.$http.adornParams()
+      }).then(({ data }) => {
+        this.dataList = data;
+        this.handlePrintChannelChange(this.dataForm.printChannel);
+      })
+    },
+    // 确定事件
+    dataFormSubmit () {
+      this.orderCreateLoading = true;
+      this.$refs['dataForm'].validate(valid => {
+        if (valid) {
+          this.$http({
+            url: this.$http.adornUrl(`/order/thirdPrintOrder/createOrder`),
+            method: 'post',
+            data: this.$http.adornData(this.dataForm)
+          }).then(({ data }) => {
+            this.orderCreateLoading = false;
+            if(data.status === "success"){
+              this.$message({
+                message: "下单成功",
+                type: 'success',
+                duration: 1500,
+                onClose: () => {
+                  this.visible = false
+                  // this.$emit('refreshUserRemarkOrder')
+                }
+              })
+            }else{
+              this.$message({
+                message: data.msg,
+                type: 'error',
+                duration: 1500,
+                onClose: () => {
+                  this.visible = false
+                  // this.$emit('refreshUserRemarkOrder')
+                }
+              })
+            }
+          })
+        }
+      })
+    },
+    handlePrintChannelChange(val){
+      let tempProdTypeList = [];
+      tempProdTypeList = this.dataList.filter(item =>{
+          return item.printChannel === val
+        });
+       let temp = [];
+       this.prodTypeList = tempProdTypeList.filter(item => {
+         if(temp.indexOf(item.prodType) == -1){
+           temp.push(item.prodType);
+           return item;
+         }
+       });
+    },
+    handleProdTypeChange(val){
+      this.thirdSkuIdList = this.dataList.filter(item =>{
+        return item.printChannel === this.dataForm.printChannel && item.prodType === val;
+      });
+    }
+  }
+}
+</script>
+<style scoped>
+.prods-select-body {
+  height: auto;
+  overflow: auto;
+  border-top: 1px solid #eeeeee;
+  border-right: 1px solid #eeeeee;
+  border-bottom: 1px solid #eeeeee;
+}
+</style>

+ 9 - 1
src/i18n/langs/zhCn.js

@@ -635,6 +635,7 @@ const zhCn = {
     lookRefunds: '查看退款',
     orderPickupS: '订单提货',
     contactBuyer: '联系买家',
+    generatePrintPdf: '生成PDF',
     orderWriteOff: '订单核销',
     number: '订单编号',
     createTime: '下单时间',
@@ -1993,7 +1994,7 @@ const zhCn = {
     tip1: '成团人数不能小于2人',
     groupNumberLimit: '成团人数不能多于1000000000人',
     tip2: '成团有效时间不能小于15分钟',
-    tip3: '成团有效时间不能大于一天(1440分钟)',
+    tip3: '成团有效时间不能大于一天(2880分钟)',
     tip4: '若设置30分钟,用户开团后,需要在30分钟内成团,超时则拼团失败',
     memberPeople: '件/人',
     tip5: '开启模拟成团后,拼团有效期内人数未满的团,系统将会以“虚拟用户”凑满人数,使该团拼团成功。你只需要对已付款参团的真实买家发货。建议合理开启,以提高成团率。',
@@ -3189,6 +3190,13 @@ const zhCn = {
     refundPriceTips: '当赠品订单发生退货时,“售后价”将作为赠品的退款金额从用户退款金额中扣除。',
     buyNum: '购买数量',
     buyNumTips: '购买数量达到了对应值才赠送赠品'
+  },
+  orderCardItem: {
+    orderItemId: '订单项ID',
+    orderNumber: '订单号',
+    prodCount: '购买数量',
+    frontPic: '正面图',
+    backPic: '背面图'
   }
 }
 

+ 2 - 2
src/views/modules/group/groupActivity-add-or-update.vue

@@ -270,7 +270,7 @@
       </el-form>
       <span slot="footer" class="dialog-footer">
         <div class="default-btn" @click="visible = false" size="mini">{{ dataForm }}{{
-          $t("crud.filter.cancelBtn") 
+          $t("crud.filter.cancelBtn")
         }}</div>
         <div v-if="dataForm.status !== 0 && dataForm.status !== 5" class="default-btn primary-btn" type="primary" size="mini" @click="dataFormSubmit()">{{
           $t("groups.submit")
@@ -332,7 +332,7 @@ export default {
     var validateGroupValidTime = (rule, value, callback) => {
       if (this.dataForm.groupValidTime < 15) {
         callback(new Error(this.$i18n.t('groups.tip2')))
-      } else if (this.dataForm.groupValidTime > 24 * 60) {
+      } else if (this.dataForm.groupValidTime > 48 * 60) {
         callback(new Error(this.$i18n.t('groups.tip3')))
       } else {
         callback()

+ 1 - 1
src/views/modules/group/newGroupActivity.vue

@@ -334,7 +334,7 @@ export default {
     var validateGroupValidTime = (rule, value, callback) => {
       if (this.dataForm.groupValidTime < 15) {
         callback(new Error(this.$i18n.t('groups.tip2')))
-      } else if (this.dataForm.groupValidTime > 24 * 60) {
+      } else if (this.dataForm.groupValidTime > 48 * 60) {
         callback(new Error(this.$i18n.t('groups.tip3')))
       } else {
         callback()

+ 91 - 6
src/views/modules/order/order.vue

@@ -246,6 +246,13 @@
             >
               {{ $t("group.waitGroup") }}
             </li>
+            <li
+                    :class="['nav-item', activeName == 8 ? 'selected' : '']"
+                    data-sts="8"
+                    @click="selectNav($event)"
+            >
+              待打印
+            </li>
           </ul>
           <ul class="nav-right"></ul>
         </div>
@@ -533,7 +540,7 @@
                     <div
                       v-if="isAuth('order:get:info')"
                       class="default-btn text-btn operate-btn"
-                      @click="addOrUpdateHandle(order.orderNumber)"
+                      @click="addOrUpdateHandle(order.orderNumber, order.shopId, order.status)"
                       >{{ $t("order.seeDetails") }}</div
                     >
                     <div
@@ -578,6 +585,9 @@
                       v-if="isAuth('admin:orderRefund:update') && order.refundStatus"
                       >{{ $t("order.refundInformation") }}</div
                     >
+                    <!--<div
+                        class="default-btn text-btn operate-btn"
+                        @click="generatePrintPdf(order.orderNumber, order.shopId)">{{ $t("order.generatePrintPdf") }}</div>-->
                   </div>
                 </div>
               </el-col>
@@ -862,7 +872,11 @@ export default {
       {
         value: 7,
         label: this.$i18n.t('group.waitGroup')
-      }],
+      },
+        {
+          value: 8,
+          label: '待打印'
+        }],
       refund: [{
         value: 0,
         label: this.$i18n.t('order.noAfterSales')
@@ -948,7 +962,8 @@ export default {
       activeName: '0',
       timeActive: null,
       priceWidth: '109px',
-      infoWidth: '400px'
+      infoWidth: '400px',
+      resourcesUrl: process.env.VUE_APP_RESOURCES_URL,
     }
   },
   components: {
@@ -1063,6 +1078,30 @@ export default {
       })
     },
 
+    /**
+     *  生成作品打印PDF
+     */
+    generatePrintPdf (orderNumber, shopId) {
+      this.$http({
+        url: this.$http.adornUrl('/order/thirdPrintOrder/generatePrintPdf'),
+        method: 'post',
+        data: this.$http.adornData({
+          orderNumber: orderNumber,
+          shopId: shopId
+        }),
+      }).then(({ data }) => {
+        if(data.status === "success"){
+          window.open(this.resourcesUrl + data.result.workUrl);
+        }else{
+          this.$message({
+            message: data.msg,
+            type: 'danger'
+          })
+        }
+      })
+
+    },
+
     /**
      * 点击保存
      */
@@ -1209,6 +1248,46 @@ export default {
         this.activeName = !this.status ? '0' : this.status + ''
       })
     },
+    getWaitPrintPage(page, params, newData = false){
+      this.dataListLoading = true
+      if (newData || !this.theData) {
+        this.theData = {
+          current: page == null ? this.page.currentPage : page.currentPage,
+          size: page == null ? this.page.pageSize : page.pageSize,
+          'orderNumber': this.dataForm.orderNumber,
+          // 'prodName': this.dataForm.prodName,
+          'orderType': this.dataForm.orderType,
+          'orderMold': this.dataForm.orderMold,
+          'payType': this.dataForm.payType,
+          'receiver': this.dataForm.receiver,
+          'mobile': this.dataForm.mobile,
+          'status': this.status,
+          'dvyType': this.dataForm.dvyType,
+          'stationName': this.dataForm.stationName,
+          'refundStatus': this.dataForm.refundStatus,
+          'startTime': this.dateRange === null ? null : this.dateRange[0], // 开始时间
+          'endTime': this.dateRange === null ? null : this.dateRange[1] // 结束时间
+        }
+      } else {
+        this.theData.current = page == null ? this.page.currentPage : page.currentPage
+        this.theData.size = page == null ? this.page.pageSize : page.pageSize
+        this.theData.status = this.status
+      }
+      this.$http({
+        url: this.$http.adornUrl('/order/order/waitPrintPage'),
+        method: 'get',
+        params: this.$http.adornParams(
+                Object.assign(this.theData, params
+                ), false
+        )
+      }).then(({ data }) => {
+        this.dataList = data.records
+        this.page.total = data.total
+        this.sts = !this.status ? 0 : this.status
+        this.dataListLoading = false
+        this.activeName = !this.status ? '0' : this.status + ''
+      })
+    },
     // 每页数
     sizeChangeHandle (val) {
       this.page.pageSize = val
@@ -1229,7 +1308,11 @@ export default {
       this.activeName = parseInt(sts)
       this.status = this.activeName === 0 ? null : parseInt(sts)
       this.page.currentPage = 1
-      this.getDataList(this.page)
+      if(this.status == 8){
+        this.getWaitPrintPage(this.page)
+      }else{
+        this.getDataList(this.page)
+      }
     },
     // 多选
     selectionChangeHandle (val) {
@@ -1270,11 +1353,13 @@ export default {
       this.dateRange = [startTime, endTime]
     },
     // 查看订单
-    addOrUpdateHandle (val) {
+    addOrUpdateHandle (orderNumber, shopId, status) {
       this.$router.push({
         path: '/order-orderInfo',
         query: {
-          orderNumber: val
+          orderNumber: orderNumber,
+          shopId: shopId,
+          status: status
         }
       })
     },

+ 194 - 5
src/views/modules/order/orderInfo.vue

@@ -518,13 +518,69 @@
                   </div>
                 </div>
               </div>
+              <div :class="['info-item',$t('language') === 'English'?'small-width':'']">
+                <div class="item-tit">打印订单信息</div>
+                <el-row :gutter="20">
+                  <el-col :span="12">
+                    <div class="item">
+                      <div class="text">打印渠道:</div>
+                      <div class="res">{{ printOrder.printChannel }}</div>
+                    </div>
+                  </el-col>
+                  <el-col :span="12">
+                    <div class="item" style="width:320px;">
+                      <div class="text">订单状态:</div>
+                      <el-button v-if="printOrder.status == 0 || printOrder.status == null" type="primary" size="mini" @click="openPrintOrderDialog">创建订单</el-button>
+                      <div class="res" v-else-if="printOrder.status == 1">已发起,待确认</div>
+                      <div class="res" v-else-if="printOrder.status == 2">待付款,已确认</div>
+                      <div class="res" v-else-if="printOrder.status == 3">待生产,已付款</div>
+                      <div class="res" v-else-if="printOrder.status == 4">待发货,已生产</div>
+                      <div class="res" v-else-if="printOrder.status == 5">待收货,已发货</div>
+                      <div class="res" v-else-if="printOrder.status == 6">交易取消</div>
+                      <div class="res" v-else-if="printOrder.status == 7">售后</div>
+                      <div class="res" v-else-if="printOrder.status == 8">交易完成,已收货</div>
+                      <div class="res" v-else>未知</div>
+                      <div class="res" style="margin-left: 5px"><el-button :loading="orderDeliveryLoading" v-if="printOrder.status != 0 && printOrder.status != null" type="success" size="mini" @click="getOrderDelivery">更新</el-button></div>
+                    </div>
+                  </el-col>
+                </el-row>
+                <el-row :gutter="20">
+                  <el-col :span="12">
+                    <div class="item" style="width:360px;">
+                      <div class="text">三方订单号:</div>
+                      <div class="res" >{{ printOrder.orderNo }}</div>
+                    </div>
+                  </el-col>
+                </el-row>
+                <el-row>
+                  <el-col :span="24">
+                    <div class="item">
+                      <div class="text">PDF文件:</div>
+                      <el-link v-if="printOrder.worksUrl != null" type="primary" :underline="false" :href="resourcesUrl + printOrder.worksUrl" target="_blank">查看文件</el-link>
+                      <el-button :loading="generatePdfLoading" v-if="printOrder.worksUrl == null" type="primary" size="mini" @click="generatePrintPdf(dataForm.orderNumber, dataForm.shopId)">生成PDF</el-button>
+                    </div>
+                  </el-col>
+                </el-row>
+                <el-row>
+                  <el-col :span="24">
+                    <div class="item">
+                      <div class="item" style="width:360px;">物流信息:{{printOrder.logisticName}} | {{printOrder.deliveryCode}}</div>
+                      <el-button type="primary" size="mini" v-if="orderStatus == 2" @click="openDeliveryDialog">发货</el-button>
+                    </div>
+                  </el-col>
+                </el-row>
+              </div>
             </div>
             <div class="goods-list">
               <el-table
                 :data="prodList"
                 header-cell-class-name="table-header"
-                row-class-name="table-row"
-               >
+                row-class-name="table-row">
+                <el-table-column type="expand">
+                  <template slot-scope="props">
+                    <OrderCardItem :orderNumber="dataForm.orderNumber"/>
+                  </template>
+                </el-table-column>
                 <el-table-column prop="" :label="this.$i18n.t('home.product')">
                   <template slot-scope="scope">
                     <!-- 商品信息 -->
@@ -688,6 +744,16 @@
         ref="orderRemarkUpdate"
         @refreshUserRemarkOrder="getDataList"
       ></order-remark-update>
+    <!-- 弹窗, 新增 / 修改 -->
+    <order-print-create
+            v-if="orderPrintCreateVisible"
+            ref="orderPrintCreate"
+            @refreshUserAddrOrder="getDataList"
+    ></order-print-create>
+    <order-delivery-update
+            v-if="devyVisible"
+            ref="orderDeliveryUpdate"
+    ></order-delivery-update>
     <!-- </el-dialog> -->
   </div>
 </template>
@@ -696,6 +762,9 @@
 import OrderAddrUpdate from '@/components/order-addr-update'
 import OrderRemarkUpdate from '@/components/order-remark-update'
 import ProdPic from '@/components/prod-pic'
+import OrderCardItem from '@/components/order-card-item'
+import OrderPrintCreate from '@/components/order-print-create'
+import OrderDeliveryUpdate from './order-delivery-update'
 
 export default {
   data () {
@@ -723,7 +792,8 @@ export default {
         finallyTime: '',
         cancelTime: '',
         orderType: '',
-        userAddrOrder: {}
+        userAddrOrder: {},
+        shopId:null,
       },
       resourcesUrl: process.env.VUE_APP_RESOURCES_URL,
       deliveryExpresse: {
@@ -732,21 +802,42 @@ export default {
       indexs: 0,
       orderRemarkUpdateVisible: false,
       orderAddrUpdateVisible: false,
+      orderPrintCreateVisible: false,
       offsetCount: 0,  // 偏移量
       // 商品列表
-      prodList: []
+      prodList: [],
+      printOrder:{
+        orderNumber:null,
+        orderNo:null,
+        worksUrl:null,
+        printChannel:null,
+        photoPages:null,
+        status:null,
+        logisticName: null,
+        deliveryCode: null,
+      },
+      selectPrintChannel: null,
+      selectPrintSkuId: null,
+      generatePdfLoading: false,
+      orderDeliveryLoading: false,
+      devyVisible: false,
+      orderStatus: 1,
     }
   },
   components: {
     OrderAddrUpdate,
     OrderRemarkUpdate,
-    ProdPic
+    ProdPic,
+    OrderCardItem,
+    OrderPrintCreate,
+    OrderDeliveryUpdate
   },
   watch: {
     visible: function () {
       if (!this.visible) {
         this.orderRemarkUpdateVisible = false
         this.orderAddrUpdateVisible = false
+        this.orderPrintCreateVisible = false
       }
     },
     deliveryExpresse: function (newVal, oldVal) {
@@ -776,7 +867,10 @@ export default {
   },
   created () {
     this.dataForm.orderNumber = this.$route.query.orderNumber || 0
+    this.dataForm.shopId = this.$route.query.shopId || null
+    this.orderStatus = this.$route.query.status || null
     this.init()
+    this.initPrintOrder();
   },
   methods: {
     init () {
@@ -809,6 +903,101 @@ export default {
         })
       }
     },
+    initPrintOrder() {
+      if (this.dataForm.orderNumber) {
+        this.$http({
+          url: this.$http.adornUrl(`/order/thirdPrintOrder/info/${this.dataForm.orderNumber}`),
+          method: 'get',
+          params: this.$http.adornParams()
+        }).then(({ data }) => {
+          if(data){
+            this.printOrder = data;
+          }
+          this.printOrder.orderNumber = this.dataForm.orderNumber;
+          this.printOrder.shopId = this.dataForm.shopId;
+        })
+      }
+    },
+    /**
+     *  生成作品打印PDF
+     */
+    generatePrintPdf () {
+      this.generatePdfLoading = true;
+      this.$http({
+        url: this.$http.adornUrl('/order/thirdPrintOrder/generatePrintPdf'),
+        method: 'post',
+        data: this.$http.adornData({
+          orderNumber: this.dataForm.orderNumber,
+          shopId: this.dataForm.shopId
+        }),
+      }).then(({ data }) => {
+        if(data.status === "success"){
+          this.generatePdfLoading = false;
+          this.printOrder.worksUrl = data.result.worksUrl;
+          window.open(this.resourcesUrl + data.result.worksUrl);
+        }else{
+          this.generatePdfLoading = false;
+          this.$message({
+            message: data.msg,
+            type: 'error'
+          })
+        }
+      })
+    },
+    openPrintOrderDialog(){
+      this.orderPrintCreateVisible = true
+      this.$nextTick(() => {
+        const From = JSON.parse(JSON.stringify(this.printOrder))
+        this.$refs.orderPrintCreate.init(From)
+      })
+    },
+    createPrintOrder(){
+      this.$http({
+        url: this.$http.adornUrl('/order/thirdPrintOrder/createOrder'),
+        method: 'post',
+        data: this.$http.adornData({
+          orderNumber: this.dataForm.orderNumber,
+          shopId: this.dataForm.shopId,
+          printChannel: this.selectPrintChannel,
+          thirdSkuId: this.selectPrintSkuId
+        }),
+      }).then(({ data }) => {
+        if(data.status === "success"){
+          window.open(this.resourcesUrl + data.result.worksUrl);
+        }else{
+          this.$message({
+            message: data.msg,
+            type: 'error'
+          })
+        }
+      })
+    },
+    openDeliveryDialog(){
+      this.devyVisible = true
+      this.$nextTick(() => {
+        this.$refs.orderDeliveryUpdate.init(this.dataForm)
+      })
+    },
+    getOrderDelivery(){
+      this.$http({
+        url: this.$http.adornUrl('/order/thirdPrintOrder/orderDelivery'),
+        method: 'post',
+        data: this.$http.adornData({
+          orderNumber: this.dataForm.orderNumber
+        }),
+      }).then(({ data }) => {
+        if(data.status === "success"){
+          this.printOrder.status = data.result.order_status;
+          this.printOrder.logisticName = data.result.logistics_name;
+          this.printOrder.deliveryCode = data.result.delivery_code;
+        }else{
+          this.$message({
+            message: data.msg,
+            type: 'error'
+          })
+        }
+      })
+    },
     getDataList () {
       this.$http({
         url: this.$http.adornUrl(`/order/delivery/orderInfo/${this.dataForm.orderNumber}`),

+ 14 - 4
src/views/modules/prod/prodTemplate.vue

@@ -57,11 +57,12 @@
                   :label="$t('prodTemplate.templatePic')"
                   width="300">
             <template slot-scope="scope">
-              <img
+              <el-image
+                  style="width: 100px; height: 100px"
                   :src="resourcesUrl + scope.row.templatePic"
-                  width="100"
-                  height="100"
                   v-if="scope.row.templatePic"
+                  fit="fill"
+                  @click="previewPic(scope.row)"
               />
             </template>
           </el-table-column>
@@ -119,6 +120,9 @@
         </el-pagination>
       </div>
     <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="refreshChange"></add-or-update>
+    <el-dialog :visible.sync="previewPicDialogVisible" :modal="false" title="图片预览" width="30%" top="3vh">
+      <el-image :src="previewPicUrl" alt=""  style="width: 100%; height: 100%"/>
+    </el-dialog>
   </div>
 </template>
 
@@ -142,7 +146,9 @@ export default {
       seriesList: [],
       styleList: [],
       usageList:[],
-      resourcesUrl: process.env.VUE_APP_RESOURCES_URL
+      resourcesUrl: process.env.VUE_APP_RESOURCES_URL,
+      previewPicUrl: null,
+      previewPicDialogVisible: false
     }
   },
   components: {
@@ -156,6 +162,10 @@ export default {
   mounted () {
   },
   methods: {
+    previewPic(row){
+      this.previewPicUrl = this.resourcesUrl + row.templatePic
+      this.previewPicDialogVisible = true;
+    },
     getStyleList () {
       this.$http({
         url: this.$http.adornUrl('/prod/prodTemplateStyle/page'),