002201 1 an în urmă
părinte
comite
590cd0da29

+ 8 - 0
src/api/business/purchase/task.js

@@ -64,3 +64,11 @@ export function EXPORT(data, params) {
     params: params,
   });
 }
+
+export function PRINT(params) {
+  return request({
+    url: "/pu/order/print",
+    method: "GET",
+    params: params,
+  });
+}

+ 34 - 11
src/components/super-table/hide.vue

@@ -2,12 +2,19 @@
   <el-button size="mini" @click="drawer = true">
     {{ number ? `隐藏列 :${number}` : "隐藏列" }}
     <el-drawer
-      :modal="false"
+      :show-close="false"
       :visible.sync="drawer"
       size="20%"
       title="隐藏列"
       append-to-body
     >
+      <template slot="title">
+        <span>隐藏列</span>
+        <el-button type="primary" size="mini" @click="useSubmit('superForm')">
+          确 认
+        </el-button>
+        <el-button size="mini" @click="drawer = false"> 取 消 </el-button>
+      </template>
       <el-input
         v-model="key"
         size="mini"
@@ -15,11 +22,11 @@
         style="width: 100%; padding: 0 16px 16px"
       >
       </el-input>
-      <el-row :gutter="20" style="margin: 0">
+      <el-row :gutter="20" style="margin: 0; display: flex">
         <el-draggable
           v-model="columns"
           :group="{ item: 'key' }"
-          @end="$emit('hide')"
+          @change="onDraggableChange"
         >
           <el-col
             v-for="({ item }, index) in searchColumns"
@@ -33,6 +40,8 @@
           >
             <span
               style="
+                height: 20px;
+                line-height: 20px;
                 font-size: 13px;
                 flex: 1;
                 cursor: move;
@@ -53,21 +62,28 @@
               ></i>
               {{ item.title }}
             </span>
-            <div>
-              <el-switch
-                v-model="item.hidden"
-                size="mini"
-                @change="$emit('hide')"
-              ></el-switch>
-            </div>
           </el-col>
         </el-draggable>
+        <div @click.stop>
+          <div
+            v-for="({ item }, index) in searchColumns"
+            :key="index"
+            style="padding: 12px 16px"
+          >
+            <el-switch
+              v-model="item.hidden"
+              size="mini"
+              @change="onDraggableChange"
+            ></el-switch>
+          </div>
+        </div>
       </el-row>
     </el-drawer>
   </el-button>
 </template>
 
 <script>
+import deepCopy from "@gby/deep-copy";
 export default {
   name: "",
   components: {
@@ -110,7 +126,14 @@ export default {
     },
   },
   watch: {},
-  methods: {},
+  methods: {
+    onClone(prop) {
+      return deepCopy(prop);
+    },
+    onDraggableChange() {
+      this.$emit("change", this.columns);
+    },
+  },
   created() {},
   mounted() {},
   destroyed() {},

+ 7 - 5
src/components/super-table/index.vue

@@ -161,7 +161,9 @@ export default {
       }
     },
     // 冻结
-    onHide() {
+    onHide(prop) {
+      console.log("new", prop[0].item.title);
+      console.log("old", this.innerColumns[0].item.title);
       this.$nextTick(() => {
         this.$refs.superTable.doLayout();
       });
@@ -263,7 +265,7 @@ export default {
       </el-table-column>
       <el-table-column
         v-for="({ item, attr }, index) in showColumns"
-        :key="index"
+        :key="item.key + index"
         :prop="item.key"
         :label="item.title"
         :fixed="item.fixed"
@@ -402,11 +404,11 @@ export default {
           </el-button>
         </template>
         <template v-if="convenitentOperation">
-          <button-hide v-model="innerColumns" @hide="onHide"></button-hide>
-          <button-freeze
+          <button-hide v-model="innerColumns" @change="onHide"></button-hide>
+          <!-- <button-freeze
             v-model="showColumns"
             @freeze="onFreeze"
-          ></button-freeze>
+          ></button-freeze> -->
         </template>
       </div>
       <pagination

+ 268 - 0
src/views/purchase/purchase-order/print/index.vue

@@ -0,0 +1,268 @@
+<template>
+  <div style="display: inline-block">
+    <el-dropdown
+      size="mini"
+      :disabled="disabled"
+      split-button
+      placement="top-start"
+      @command="onCommand"
+      @click="visible = true"
+    >
+      <span v-print="print">
+        <i class="el-icon-printer mr-1"></i>
+        打 印
+      </span>
+      <el-dropdown-menu slot="dropdown">
+        <el-dropdown-item v-print="print" command="湖南德荣医疗器械有限公司">
+          湖南德荣医疗器械有限公司
+        </el-dropdown-item>
+        <el-dropdown-item
+          v-print="print"
+          divided
+          command="湖南德荣医疗健康产业有限公司"
+        >
+          湖南德荣医疗健康产业有限公司
+        </el-dropdown-item>
+        <el-dropdown-item
+          v-print="print"
+          divided
+          command="湖南德荣医疗器械物流配送服务有限公司"
+        >
+          湖南德荣医疗器械物流配送服务有限公司
+        </el-dropdown-item>
+      </el-dropdown-menu>
+    </el-dropdown>
+    <div
+      id="PurchaseOrderPdf"
+      style="
+        position: relative;
+        width: 210mm;
+        font-size: 12px;
+        line-height: 1.5;
+        font-family: '宋体';
+        z-index: -1;
+      "
+    >
+      <img
+        :src="src"
+        :alt="company"
+        style="position: absolute; top: 10px; left: 10px; z-index: 1"
+      />
+      <div style="position: absolute; top: 0; left: 0; z-index: 2">
+        <h1>湖南德荣医疗集团 - 采购订单</h1>
+        <p style="display: flex">
+          <span style="width: 60%">甲方(购货方):{{ params.puOrgName }}</span>
+          <span style="width: 40%">签订日期:{{ params.billDate }}</span>
+        </p>
+        <p style="display: flex">
+          <span style="width: 60%">订单编号:{{ params.code }}</span>
+          <span style="width: 40%">采购部门:{{ params.puDeptName }}</span>
+        </p>
+        <p style="display: flex">
+          <span style="width: 60%">采购员:{{ params.buyerName }}</span>
+          <span style="width: 40%"> 采购项目: </span>
+        </p>
+        <p style="display: flex">
+          <span style="width: 60%">E-mail:</span>
+          <span style="width: 40%">联系方式:{{ params.contactsPhone }}</span>
+        </p>
+        <P style="color: #ff4949"> 甲方收票地址:{{ params.address }} </P>
+        <div style="border-bottom: 1px dashed black"></div>
+        <p>乙方(供货方):{{ params.supplierName }}</p>
+        <p>ATTN:</p>
+        <p>E-MAIL:</p>
+        <p>收货地址:</p>
+        <p>收货联系人:</p>
+
+        <el-table
+          show-summary
+          :summary-method="getSummaries"
+          :data="params.orderItemPrintList"
+          style="width: 100%; font-size: 12px"
+        >
+          <el-table-column prop="materialCode" label="物料编码" width="auto">
+          </el-table-column>
+          <el-table-column prop="materialName" label="物料名称" width="auto">
+          </el-table-column>
+          <el-table-column prop="specification" label="规格" width="auto">
+          </el-table-column>
+          <el-table-column
+            prop="manufacturerName"
+            label="生产厂家"
+            width="auto"
+          >
+          </el-table-column>
+          <el-table-column prop="unitName" label="单位" width="auto">
+          </el-table-column>
+          <el-table-column prop="qty" label="数量" width="auto">
+          </el-table-column>
+          <el-table-column prop="taxPrice" label="含税单价" width="auto">
+          </el-table-column>
+          <el-table-column prop="money" label="价税合计" width="auto">
+          </el-table-column>
+          <el-table-column prop="registration" label="注册证号" width="auto">
+          </el-table-column>
+        </el-table>
+        <p>
+          二、质量要求与技术标准:符合供方企业标准、所在行业标准、国家标准。
+        </p>
+        <p>
+          供方承诺若本订单上的货物发生质量问题,按双方签署的《质量保证协议》或其他双方签订的质保条约执行处理。
+        </p>
+        <p>三、交货要求:</p>
+        <p>
+          1.供货方在1个工作日内回复交期(若1个工作日内未回复,视同供货方默认同意接受交货日期)
+        </p>
+        <p>
+          2.常规产品7天内到货,订制产品按双方协议日期交期。交货时,以下纸质资料随货同行,资料所在箱号清晰易见:
+        </p>
+        <p>
+          (1)随货同行单。供货方提供给我公司的随货同行单需包括以下内容:德荣订单编码、供货单位、医疗器械名称、规格(型号)、生产企业、生产企业许可证号(或者备案凭证编号)、注册证号(或者备案凭证编号)、生产批号、有效期、数量、单位、单价、金额、储运条件、收货单位、收货地址、发货日期等内容,并加盖供货单位出库专用章。
+        </p>
+        <p>
+          (2)生产厂家同一批次产品的检验报告。(3)进口物资的报关单和检验检疫证明。
+        </p>
+        <p>
+          3.交货实际时间以供方货物实际到达需方指定地点的时间为准。如遇特殊情况需变更交货时间,供方应事先通知需方并征得需方同意
+        </p>
+        <p>
+          4.运输要求:供货方负责将货物运输到购货方指定地址,运输方式及费用由供货方负责(双方另有书面约定的除外)。发货后供货方提供运输单号给购货方。.需要专业冷链运输的产品,必须按照GSP要求严格执行冷链运输,全程温湿度必须在GSP冷链运输的管控范围内,随货同行的温湿度记录仪的冷链数据须在交付时可导出或打印。
+        </p>
+        <p>
+          四、验收标准:购货方收货后3日内按质量标准进行验收,若有不符应及时通知供货方,供货方应在3日内处理。
+        </p>
+        <p>
+          五、发票要求:供货方根据双方签定的格式合同约定的时间或是于发货后7个工作日内开具符合国家要求的可抵扣的增值税专用发票给购货方。
+        </p>
+        <p>六、结算方式:电汇/转账。</p>
+        <p>
+          七、违约责任:按《中国人民共和国合同法》执行,一方违约,违约方按货款总金额的5‰支付给守约方。
+        </p>
+        <p>
+          八、争议的解决:因履行本合同发生争议,由双方协商解决,协商不成应向长沙仲裁委员会申请仲裁解决。
+        </p>
+        <p>
+          九、本订单作为双方采购合同的有效组成附件,经各采购员发布确认后生效。供方应在接到订单后按采购合同约定的时间内向需方作出反馈,否则需方视为供方默认。
+        </p>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import print from "vue-print-nb";
+import { PRINT } from "@/api/business/purchase/task";
+export default {
+  directives: {
+    print,
+  },
+  name: "",
+  components: {},
+  props: {
+    id: {
+      type: [String, Number],
+      require: true,
+    },
+  },
+  data() {
+    return {
+      visible: false,
+      disabled: false,
+      company: "湖南德荣医疗器械有限公司",
+      print: {
+        id: "PurchaseOrderPdf",
+        popTitle: "配置页眉标题", // 打印配置页上方的标题
+        extraHead: "", // 最上方的头部文字,附加在head标签上的额外标签,使用逗号分割
+        preview: false, // 是否启动预览模式,默认是false
+        previewTitle: "预览的标题", // 打印预览的标题
+        previewPrintBtnLabel: "预览结束,开始打印", // 打印预览的标题下方的按钮文本,点击可进入打印
+        zIndex: 20002, // 预览窗口的z-index,默认是20002,最好比默认值更高
+        previewBeforeOpenCallback() {
+          console.log("正在加载预览窗口!");
+          console.log(this);
+        }, // 预览窗口打开之前的callback
+        previewOpenCallback() {
+          console.log("已经加载完预览窗口,预览打开了!");
+        }, // 预览窗口打开时的callback
+        beforeOpenCallback() {
+          console.log("开始打印之前!");
+        }, // 开始打印之前的callback
+        openCallback() {
+          console.log("执行打印了!");
+        }, // 调用打印时的callback
+        closeCallback() {
+          console.log("关闭了打印工具!");
+        }, // 关闭打印的callback(无法区分确认or取消)
+        clickMounted() {
+          console.log("点击v-print绑定的按钮了!");
+        },
+        // url: 'http://localhost:8080/', // 打印指定的URL,确保同源策略相同
+        // asyncUrl (reslove) {
+        //   setTimeout(() => {
+        //     reslove('http://localhost:8080/')
+        //   }, 2000)
+        // },
+        standard: "",
+        extarCss: "",
+      },
+      params: {},
+    };
+  },
+  computed: {
+    src: {
+      get: function () {
+        return require(`./${this.company}.png`);
+      },
+      set: function () {},
+    },
+  },
+  watch: {},
+  methods: {
+    onCommand(prop) {
+      this.company = prop;
+      this.visible = true;
+    },
+    getSummaries(param) {
+      const { columns, data } = param;
+      const sums = [];
+      columns.forEach((column, index) => {
+        const { property } = column;
+        if (index === 0) {
+          sums[index] = "合计";
+          return;
+        }
+        if (property === "qty" || property === "money") {
+          const values = data.map((item) => Number(item[property]));
+          if (!values.every((value) => isNaN(value))) {
+            sums[index] = values.reduce((prev, curr) => {
+              const value = Number(curr);
+              if (!isNaN(value)) {
+                return prev + curr;
+              } else {
+                return prev;
+              }
+            }, 0);
+          }
+        }
+      });
+      return sums;
+    },
+  },
+  async created() {
+    try {
+      this.disabled = true;
+      const { data, code } = await PRINT({ id: this.$props.id || 628 });
+      if (code === 200) {
+        this.params = data;
+        this.disabled = false;
+      }
+    } catch (err) {
+      alert(err);
+    } finally {
+    }
+  },
+  mounted() {},
+  destroyed() {},
+};
+</script>
+<style scoped></style>

BIN
src/views/purchase/purchase-order/print/湖南德荣医疗健康产业有限公司.png


BIN
src/views/purchase/purchase-order/print/湖南德荣医疗器械有限公司.png


BIN
src/views/purchase/purchase-order/print/湖南德荣医疗器械物流配送服务有限公司.png