Pārlūkot izejas kodu

feat(中台-调拨发货单): BIP调拨发货单拉单调拨订单页面

BIP调拨发货单拉单调拨订单页面
002959 1 gadu atpakaļ
vecāks
revīzija
28960c8119

+ 9 - 1
src/api/purchase/transferOrder.js

@@ -91,4 +91,12 @@ export function bipPullVerify(data) {
     method: "POST",
     data: data,
   });
-}
+}
+
+export function stAllotToTransferInvoice(data) {
+  return request({
+    url: `/pu/allot/stAllotToTransferInvoice`,
+    method: "POST",
+    data: data,
+  });
+}

+ 5 - 0
src/router/index.js

@@ -137,6 +137,11 @@ export const constantRoutes = [
     hidden: true
   },
   {
+    path: '/business/purchase/form/transferOrder/bipPull-entrance1',
+    component: () => import('@/views/purchase/transferOrder/transferInvoice/bipPull-entrance'),
+    hidden: true
+  },
+  {
     path: '/404',
     component: () => import('@/views/error/404'),
     hidden: true

+ 33 - 0
src/views/purchase/transferOrder/transferInvoice/bipPull-entrance.vue

@@ -0,0 +1,33 @@
+<template>
+	<div v-loading="loading">
+	</div>
+</template>
+<script>
+	import { ehrLogin } from '@/api/sso/ssoLogin';
+	import {setToken} from '@/utils/auth'
+	export default {
+		data() {
+			return {
+				//遮罩
+      			loading: false
+			}
+		},
+		methods: {
+		},
+		async created() {
+			this.$modal.loading("正在前往DRP调拨订单拉单页面...");
+			let query = this.$route.query;
+			ehrLogin(query.staffCode).then(res => {
+				if (res.code === 200) {
+					let token = res.token;
+					setToken(token);
+					this.$store.commit('SET_TOKEN', token)
+					this.$store.dispatch("GetInfo").then(
+						this.$router.push({ path: "/business/purchase/form/transferOrder/transferInvoice",replace:true})
+					)
+					this.$modal.closeLoading();
+				}
+			})
+		}
+	}
+</script>

+ 525 - 0
src/views/purchase/transferOrder/transferInvoice/detail.vue

@@ -0,0 +1,525 @@
+<script>
+import useColumns from "./detailColumns";
+import { REFER } from "@/components/popover-select/api";
+import {getOrderDetail, stAllotToTransferInvoice} from "@/api/purchase/transferOrder.js";
+export default {
+  name: "AddTransfer",
+  props: {
+    addType: {
+      type: String,
+      default: "add",
+    },
+    dict: {
+      type: Object,
+    },
+    data: {
+      tyep: Object,
+    },
+  },
+  components: {
+    ElSuperForm: () => import("@/components/super-form/index.vue"),
+    ElSuperUxTable: () => import("@/components/super-ux-table/index.vue"),
+    ElPopoverSelectV2: () => import("@/components/popover-select-v2/index.vue"),
+    ReservedButton: () => import("../reserved/index.vue"),
+  },
+  data() {
+    const {
+      FormColumns,
+      TabColumns,
+      TabColumns: [
+        {
+          item: { key: tabName },
+        },
+      ],
+    } = useColumns();
+    const params = this.$init.params([...TabColumns, ...FormColumns]);
+    const rules = this.$init.rules([...TabColumns, ...FormColumns]);
+    return {
+      rules,
+      params: {
+        ...params,
+        dwCsFlag: null,
+        swCsFlag: null,
+      },
+      tabName,
+      TabColumns,
+      FormColumns,
+      size: "mini",
+      width: "100%",
+      count: 0,
+      loading: false,
+      visible: false,
+      control: false,
+    };
+  },
+  computed: {
+    title: {
+      get() {
+        const { addType } = this.$props;
+        if (addType === "edit") {
+          return "编 辑";
+        } else if (addType === "see") {
+          return "查 看";
+        } else {
+          return "新 增";
+        }
+      },
+      set() {},
+    },
+    tabInfo: {
+      get() {
+        const {
+          stAllotMaterialList,
+          stAllotReceiveDeliverList,
+          stAllotReceiveExecuteList,
+          stAllotReceiveExpenseList,
+        } = this.params;
+        return {
+          stAllotMaterialList: stAllotMaterialList.filter(
+            ({ delFlag }) => delFlag !== "2"
+          ),
+          stAllotReceiveDeliverList,
+          stAllotReceiveExecuteList,
+          stAllotReceiveExpenseList,
+        };
+      },
+      set() {},
+    },
+    tableHeight: {
+      get() {
+        return window.innerHeight - 430;
+      },
+      set() {},
+    },
+  },
+  watch: {
+    // 调出库存组织
+    "params.deliveryInventoryOrgName": {
+      handler: function (nVal, oVal) {
+        this.control &&
+        (this.params = {
+          ...this.params,
+          deliveryWarehouse: null,
+          deliveryWarehouseCode: null,
+          deliveryWarehouseName: null,
+          deliveryDept: null,
+          deliveryDeptCode: null,
+          deliveryDeptName: null,
+        });
+      },
+    },
+    // 调入库存组织
+    "params.storageInventoryOrgName": {
+      handler: function (nVal, oVal) {
+        this.control &&
+        (this.params = {
+          ...this.params,
+          storageWarehouse: null,
+          storageWarehouseName: null,
+          stAllotMaterialList: this.params["stAllotMaterialList"].map(
+            (item) => ({
+              ...item,
+              storageDept: null,
+              storageDeptCode: null,
+              storageDeptName: null,
+            })
+          ),
+        });
+      },
+    },
+    // 调出仓库
+    "params.deliveryWarehouseName": {
+      handler: function (nVal, oVal) {
+        this.control &&
+        (this.params = {
+          ...this.params,
+          stAllotMaterialList: this.params["stAllotMaterialList"].map(
+            (item) => ({
+              ...item,
+              deliveryAllocation: null,
+              deliveryAllocationCode: null,
+              deliveryAllocationName: null,
+            })
+          ),
+        });
+      },
+    },
+    // 调入仓库
+    "params.storageWarehouseName": {
+      handler: function (nVal, oVal) {
+        this.control &&
+        (this.params = {
+          ...this.params,
+          stAllotMaterialList: this.params["stAllotMaterialList"].map(
+            (item) => ({
+              ...item,
+              storageAllocation: null,
+              storageAllocationCode: null,
+              storageAllocationName: null,
+            })
+          ),
+        });
+      },
+    },
+  },
+  methods: {
+    setVisible(prop) {
+      this.visible = prop;
+    },
+    //
+    hide() {
+      const {
+        FormColumns,
+        TabColumns,
+        TabColumns: [
+          {
+            item: { key: tabName },
+          },
+        ],
+      } = useColumns();
+      this.params = {
+        ...this.$init.params([...TabColumns, ...FormColumns]),
+        dwCsFlag: null,
+        swCsFlag: null,
+      };
+      this.control = false;
+      this.tabName = tabName;
+      this.TabColumn = TabColumns;
+      this.$refs["superForm"].clearValidate();
+      this.visible = false;
+      this.$emit("refresh");
+    },
+    //
+    async beforeOpen() {
+      const { data, addType } = this.$props;
+      if (!data.id) {
+        // 新增
+        const { name, nickName } = this.$store.state.user;
+        this.params = {
+          ...this.params,
+          status: "0",
+          createBy: name,
+          createByName: nickName,
+          billDate: new Date().Format("yyyy-MM-dd"),
+          createTime: new Date().Format("yyyy-MM-dd HH:mm:ss"),
+        };
+        this.control = true;
+        this.useRowAdd(this.tabName);
+      } else {
+        await this.fetchItem(data);
+        this.$nextTick(async () => {
+          // 复制
+          if (addType === "add") {
+            const { name, nickName } = this.$store.state.user;
+            this.params = {
+              ...this.params,
+              id: "",
+              code: "",
+              oaId: "",
+              ncCode: "",
+              status: "0",
+              sendNcRes: "",
+              updateBy: "",
+              updateByName: "",
+              updateTime: "",
+              storageCode: "",
+              deliveryCode: "",
+              createBy: name,
+              createByName: nickName,
+              billDate: new Date().Format("yyyy-MM-dd"),
+              createTime: new Date().Format("yyyy-MM-dd HH:mm:ss"),
+              stAllotMaterialList: this.params.stAllotMaterialList.map(
+                (item) => ({
+                  ...item,
+                  id: "",
+                  allotId: "",
+                  allotDate: "",
+                  deliveryCode: "",
+                  storageCode: "",
+                  createBy: name,
+                  createByName: nickName,
+                  updateBy: null,
+                  updateByName: null,
+                  createTime: new Date().Format("yyyy-MM-dd HH:mm:ss"),
+                  updateTime: null,
+                })
+              ),
+            };
+          }
+          this.control = true;
+          // 调入/出货位禁用——根据调入/出仓库
+          const { deliveryWarehouse, storageWarehouse } = this.params;
+          this.params.dwCsFlag = await this.fetchWarehouse(deliveryWarehouse);
+          this.params.swCsFlag = await this.fetchWarehouse(storageWarehouse);
+        });
+      }
+    },
+    // 查询仓库
+    async fetchWarehouse(id) {
+      try {
+        let { code, rows } = await REFER(
+          {
+            type: "WAREHOUSE_PARAM",
+            search: "",
+            id,
+            isPage: true,
+          },
+          { pageNum: 1, pageSize: 10 }
+        );
+        return rows[0] ? rows[0].csFlag : null;
+      } catch (error) {}
+    },
+    //
+    async fetchItem(prop) {
+      try {
+        this.loading = true;
+        const { addType } = this.$props;
+
+        let { code, data, msg } = await getOrderDetail(prop.id);
+        if (code == 200) {
+          this.params = {
+            ...this.params,
+            ...data,
+          };
+        }
+      } catch (error) {
+      } finally {
+        this.loading = false;
+      }
+    },
+    // 拉单
+    useSave(prop) {
+      const { params } = this;
+      this.$modal.loading("拉单中...");
+      stAllotToTransferInvoice(params).then((response) => {
+        if (response.code === 200) {
+          this.$modal.notifySuccess("拉单成功");
+        }
+        this.$modal.closeLoading();
+      }).catch(() => {
+        this.$modal.closeLoading();
+      });
+    },
+    // 子表数量改变
+    changeQty(tabName) {
+      this.params.qty = this.params["stAllotMaterialList"].reduce(
+        (sum, item) => {
+          if (item.delFlag !== "2") {
+            sum += item.qty;
+          }
+          return sum;
+        },
+        0
+      );
+    },
+  },
+  created() {},
+};
+</script>
+
+<template>
+  <el-drawer
+    v-loading="loading"
+    v-bind="$attrs"
+    v-on="$listeners"
+    :size="width"
+    :show-close="false"
+    :visible.sync="visible"
+    destroy-on-close
+    @close="hide"
+    @open="beforeOpen"
+  >
+    <div
+      slot="title"
+      style="display: flex; justify-content: space-between; align-items: center"
+    >
+      <h3>{{ title }}</h3>
+      <div>
+        <el-button
+          v-if="addType !== 'see'"
+          type="primary"
+          :size="$attrs.size"
+          :loading="loading"
+          @click="useSave('superForm')"
+        >保 存</el-button
+        >
+        <el-button :size="$attrs.size" :loading="loading" @click="hide"
+        >取 消</el-button
+        >
+      </div>
+    </div>
+    <el-super-form
+      v-model="params"
+      :dict="dict"
+      :rules="rules"
+      :size="$attrs.size"
+      :columns="FormColumns"
+      ref="superForm"
+      label-width="auto"
+      label-position="right"
+      style="padding: 20px"
+      :disabled="addType === 'see'"
+    >
+      <!-- 调出仓库 -->
+      <template slot="deliveryWarehouseName" slot-scope="scope">
+        <component
+          v-bind="scope.attr"
+          v-model="scope.row[scope.item.key]"
+          :size="$attrs.size"
+          :source.sync="scope.row"
+          :disabled="params.deliveryInventoryOrg"
+        >
+        </component
+        ></template>
+      <!-- 调出部门 -->
+      <template slot="deliveryDeptName" slot-scope="scope">
+        <component
+          v-bind="scope.attr"
+          v-model="scope.row[scope.item.key]"
+          :size="$attrs.size"
+          :source.sync="scope.row"
+          :disabled="params.deliveryInventoryOrg"
+        >
+        </component
+        ></template>
+      <!-- 调入仓库 -->
+      <template slot="storageWarehouseName" slot-scope="scope">
+        <component
+          v-bind="scope.attr"
+          v-model="scope.row[scope.item.key]"
+          :size="$attrs.size"
+          :source.sync="scope.row"
+          :disabled="params.storageInventoryOrg"
+        >
+        </component
+        ></template>
+    </el-super-form>
+
+    <div style="position: relative">
+      <el-tabs v-model="tabName" style="padding: 0 20px 20px">
+        <el-tab-pane
+          v-for="({ item, TableColumns: columns }, index) in TabColumns"
+          :key="index"
+          :label="item.title"
+          :name="item.key"
+          lazy
+        >
+          <el-super-ux-table
+            v-model="tabInfo[item.key]"
+            index
+            :dict="dict"
+            :ref="tabName"
+            :columns="columns"
+            :size="$attrs.size"
+            :height="tableHeight"
+          >
+            <!-- 物料编码 -->
+            <template slot="materialCode" slot-scope="scope">
+              <component
+                v-bind="scope.attr"
+                v-model="scope.row[scope.item.key]"
+                :size="$attrs.size"
+                :source.sync="scope.row"
+                :disabled="true"
+              >
+              </component>
+            </template>
+            <!-- 数量 -->
+            <template slot="qty" slot-scope="scope">
+              <component
+                v-bind="scope.attr"
+                v-model="scope.row[scope.item.key]"
+                :size="$attrs.size"
+                :source.sync="scope.row"
+                :disabled="true"
+                @change="changeQty(tabName)"
+              >
+              </component>
+            </template>
+            <!-- 调入部门 -->
+            <template slot="storageDeptName" slot-scope="scope">
+              <component
+                v-bind="scope.attr"
+                v-model="scope.row[scope.item.key]"
+                :size="$attrs.size"
+                :source.sync="scope.row"
+                :disabled="addType === 'see' || params.storageInventoryOrg"
+                :queryParams="
+                  () => ({
+                    drpOrg: params.storageInventoryOrg,
+                  })
+                "
+              >
+              </component>
+            </template>
+            <!-- 产品批号 -->
+            <template slot="producBatch" slot-scope="scope">
+              <component
+                v-bind="scope.attr"
+                v-model="scope.row[scope.item.key]"
+                :size="$attrs.size"
+                :source.sync="scope.row"
+                :disabled="addType === 'see' || !scope.row['materialCode']"
+              >
+              </component>
+            </template>
+            <!-- 调出货位 -->
+            <template slot="deliveryAllocationName" slot-scope="scope">
+              <component
+                v-bind="scope.attr"
+                v-model="scope.row[scope.item.key]"
+                :size="$attrs.size"
+                :source.sync="scope.row"
+                :disabled="
+                  true
+                "
+                :queryParams="
+                  () => ({
+                    stordocId: params.deliveryWarehouse,
+                  })
+                "
+              >
+              </component>
+            </template>
+            <!-- 调入货位 -->
+            <template slot="storageAllocationName" slot-scope="scope">
+              <component
+                v-bind="scope.attr"
+                v-model="scope.row[scope.item.key]"
+                :size="$attrs.size"
+                :source.sync="scope.row"
+                :disabled="
+                  addType === 'see' ||
+                  !params.swCsFlag ||
+                  params.swCsFlag === 'N'
+                "
+                :queryParams="
+                  () => ({
+                    stordocId: params.storageWarehouse,
+                  })
+                "
+              >
+              </component>
+            </template>
+          </el-super-ux-table>
+        </el-tab-pane>
+      </el-tabs>
+
+      <div style="position: absolute; top: 5px; right: 20px">
+        <reserved-button
+          v-show="addType === 'see'"
+          type="primary"
+          :info="data"
+          :size="$attrs.size"
+        />
+      </div>
+    </div>
+  </el-drawer>
+</template>
+
+<style scoped>
+>>> .el-drawer__header {
+  margin-bottom: 0;
+  padding: 5px 20px;
+}
+</style>

+ 652 - 0
src/views/purchase/transferOrder/transferInvoice/detailColumns.js

@@ -0,0 +1,652 @@
+export default function useColumns() {
+
+  const FormColumns = [
+    {
+      item: { key: "code", title: "单据号", },
+      attr: {
+        is: "el-input",
+        clearable: true,
+        disabled: true,
+      }
+    },
+    {
+      item: { key: "billDate", title: "单据日期", required: true, },
+      attr: {
+        is: "el-date-picker",
+        clearable: true,
+        type: "date",
+        valueFormat: "yyyy-MM-dd",
+        disabled: true,
+      }
+    },
+    {
+      item: { key: "billType", title: "订单类型", required: true, },
+      attr: {
+        is: "el-select",
+        dictName: "sys_allot_billtype",
+        clearable: true,
+        disabled: true,
+      }
+    },
+    {
+      item: { key: "allotType", title: "调拨方式",},
+      attr: {
+        is: "el-select",
+        dictName: "sys_to_type",
+        disabled: true,
+      }
+    },
+    {
+      item: { key: "status", title: "单据状态", },
+      attr: {
+        is: "el-select",
+        dictName: "sys_status",
+        disabled: true,
+      }
+    },
+    {
+      item: { key: "qty", title: "总数量", },
+      attr: {
+        is: "el-input-number",
+        min: 0,
+        disabled: true,
+      }
+    },
+    {
+      item: { key: "customerName", title: "客户", required: true, },
+      attr: {
+        is: "el-popover-select-v2",
+        valueKey: "name",
+        referName: "CUSTOMER_PARAM",
+        dataMapping: {
+          customer: 'id',
+          customerName: 'name',
+        },
+        disabled: true,
+      }
+    },
+    {
+      item: { key: "remark", title: "备注", },
+      attr: {
+        is: "el-input",
+        clearable: true,
+        disabled: true,
+      }
+    },
+    {
+      item: { key: "deliveryInventoryOrgName", title: "调出库存组织", required: true, },
+      attr: {
+        is: "el-popover-select-v2",
+        valueKey: "name",
+        referName: "ORG_PARAM",
+        dataMapping: {
+          deliveryInventoryOrg: "id",
+          deliveryInventoryOrgCode: "code",
+        },
+        clearable: true,
+        disabled: true,
+      }
+    },
+    {
+      item: { key: "deliveryWarehouseName", title: "调出仓库", required: true, },
+      attr: {
+        is: "el-popover-select-v2",
+        valueKey: "name",
+        referName: "WAREHOUSE_PARAM",
+        dataMapping: {
+          deliveryWarehouse: "id",
+          deliveryWarehouseCode: "code",
+          dwCsFlag: "csFlag",
+        },
+        queryParams: (params) => ({
+          pkOrg: params.deliveryInventoryOrg,
+        }),
+        clearable: true,
+        disabled: true
+      }
+    },
+    {
+      item: { key: "deliveryDeptName", title: "调出部门", required: true, },
+      attr: {
+        is: "el-popover-select-v2",
+        valueKey: "name",
+        referName: "DEPT_PARAM",
+        dataMapping: {
+          deliveryDept: "id",
+          deliveryDeptCode: "code",
+        },
+        queryParams: (params) => ({
+          // parame
+          drpOrg: params.deliveryInventoryOrg,
+        }),
+        clearable: true,
+        disabled: true,
+      }
+    },
+    {
+      item: { key: "businessPersonalName", title: "调出业务员", },
+      attr: {
+        is: "el-popover-select-v2",
+        valueKey: "name",
+        referName: "CONTACTS_PARAM",
+        dataMapping: {
+          businessPersonal: "code",
+        },
+        clearable: true,
+        disabled: true,
+      }
+    },
+
+    {
+      item: { key: "storageInventoryOrgName", title: "调入库存组织", required: true, },
+      attr: {
+        is: "el-popover-select-v2",
+        valueKey: "name",
+        referName: "ORG_PARAM",
+        dataMapping: {
+          storageInventoryOrg: "id",
+          storageInventoryOrgCode: "code",
+        },
+        clearable: true,
+        disabled: true,
+      }
+    },
+    {
+      item: { key: "storageWarehouseName", title: "调入仓库", required: true, },
+      attr: {
+        is: "el-popover-select-v2",
+        valueKey: "name",
+        referName: "WAREHOUSE_PARAM",
+        dataMapping: {
+          storageWarehouse: "id",
+          storageWarehouseCode: "code",
+          swCsFlag: "csFlag",
+        },
+        queryParams: (params) => ({
+          pkOrg: params.storageInventoryOrg,
+        }),
+        clearable: true,
+        disabled: true,
+      }
+    },
+    {
+      item: { key: "deliveryCode", title: "调拨出库单号", },
+      attr: {
+        is: "el-input",
+        disabled: true,
+      }
+    },
+    {
+      item: { key: "storageCode", title: "调拨入库单号", },
+      attr: {
+        is: "el-input",
+        disabled: true,
+      }
+    },
+    {
+      item: { key: "ncCode", title: "NC单据号", },
+      attr: {
+        is: "el-input",
+        disabled: true,
+      }
+    },
+    {
+      item: { key: "createByName", title: "制单人", },
+      attr: {
+        is: "el-input",
+        disabled: true,
+        clearable: true,
+      }
+    },
+    {
+      item: { key: "createTime", title: "制单日期", },
+      attr: {
+        is: "el-input",
+        disabled: true,
+        clearable: true,
+      }
+    },
+    {
+      item: { key: "createByName", title: "创建人", },
+      attr: {
+        is: "el-input",
+        disabled: true,
+        clearable: true,
+      }
+    },
+    {
+      item: { key: "createTime", title: "创建时间", },
+      attr: {
+        is: "el-input",
+        disabled: true,
+        clearable: true,
+      }
+    },
+    {
+      item: { key: "updateByName", title: "最后修改人", },
+      attr: {
+        is: "el-input",
+        disabled: true,
+        clearable: true,
+      }
+    },
+    {
+      item: { key: "updateTime", title: "最后修改时间", },
+      attr: {
+        is: "el-input",
+        disabled: true,
+        clearable: true,
+      }
+    },
+    {
+      item: { key: "sendNcRes", title: "同步NC结果", span: 12 },
+      attr: {
+        is: "el-input",
+        type: "textarea",
+        rows: 3,
+        disabled: true,
+        clearable: true,
+      }
+    },
+  ].map(({ item, attr }) => ({
+    attr,
+    item: { ...item, span: item.span || 6 },
+  }));
+
+  const TabColumns = [
+    // 物料信息
+    {
+      item: { key: "stAllotMaterialList", title: "物料信息" },
+      attr: { value: [] },
+      TableColumns: [
+        {
+          item: { key: "rowno", title: "行号", width: 80, },
+          attr: {}
+        },
+        {
+          item: { key: "materialCode", title: "物料编码", require: true, },
+          attr: {
+            is: "el-popover-select-v2",
+            valueKey: "code",
+            referName: "MATERIAL_PARAM",
+            dataMapping: {
+              material: "id",
+              materialName: "name",
+              specification: "specification",
+              model: "model",
+              unit: "unitId",
+              unitName: "unitIdName",
+              manufacturer: "manufacturerIdName",
+              originPlace: "originPlace",
+              originPlaceName: "originPlaceName",
+            },
+            clearable: true,
+            disabled: true,
+          }
+        },
+        {
+          item: { key: "materialName", title: "物料名称", },
+          attr: {
+            disabled: true,
+          }
+        },
+        {
+          item: { key: "qty", title: "数量", require: true, },
+          attr: {
+            is: "el-input-number",
+            min: 0,
+            clearable: true,
+            disabled: true,
+          }
+        },
+        {
+          item: { key: "unitName", title: "单位", },
+          attr: {
+            disabled: true,
+          }
+        },
+        {
+          item: { key: "specification", title: "规格", },
+          attr: {
+            disabled: true,
+          }
+        },
+        {
+          item: { key: "model", title: "型号", },
+          attr: {
+            disabled: true,
+          }
+        },
+        {
+          item: { key: "manufacturer", title: "生产厂家/代理人", },
+          attr: {
+            disabled: true,
+          }
+        },
+        {
+          item: { key: "originPlaceName", title: "产地", },
+          attr: {
+            disabled: true,
+          }
+        },
+        {
+          item: { key: "storageDeptName", title: "调入部门", require: true, },
+          attr: {
+            is: "el-popover-select-v2",
+            valueKey: "name",
+            referName: "DEPT_PARAM",
+            dataMapping: {
+              storageDept: "id",
+              storageDeptCode: "code",
+            },
+            clearable: true,
+            disabled: true,
+          }
+        },
+        {
+          item: { key: "producBatch", title: "产品批号", require: true},
+          attr: {
+            is: "el-popover-select-v2",
+            valueKey: "code",
+            referName: "PATCHCODE_ZT",
+            clearable: true,
+            queryParams: (params) => ({
+              code: params.materialCode,
+            })
+          }
+        },
+        {
+          item: { key: "deliveryAllocationName", title: "调出货位", },
+          attr: {
+            is: "el-popover-select-v2",
+            valueKey: "name",
+            referName: "ALLOCATION_PARAM",
+            dataMapping: {
+              deliveryAllocation: "id",
+              deliveryAllocationCode: "code",
+            },
+            clearable: true,
+            disabled: true,
+          }
+        },
+        {
+          item: { key: "storageAllocationName", title: "调入货位", },
+          attr: {
+            is: "el-popover-select-v2",
+            valueKey: "name",
+            referName: "ALLOCATION_PARAM",
+            dataMapping: {
+              storageAllocation: "id",
+              storageAllocationCode: "code",
+            },
+            clearable: true,
+            disabled: true,
+          }
+        },
+      ]
+    },
+    // 收发货信息
+    {
+      item: { key: "stAllotReceiveDeliverList", title: "收发货信息" },
+      attr: { value: [] },
+      TableColumns: [
+        {
+          item: { key: "rowno", title: "行号", width: 80, },
+          attr: {}
+        },
+        {
+          item: { key: "deliveryCode", title: "调拨出库单号", },
+          attr: {}
+        },
+        {
+          item: { key: "storageCode", title: "调拨入库单号", },
+          attr: {}
+        },
+        {
+          item: { key: "manufacturer", title: "生产厂家/代理人", },
+          attr: {}
+        },
+        {
+          item: { key: "originPlace", title: "产地", },
+          attr: {}
+        },
+        {
+          item: { key: "classify", title: "类别", },
+          attr: {}
+        },
+        {
+          item: { key: "deliveryWarehouseName", title: "调出仓库", },
+          attr: {}
+        },
+        {
+          item: { key: "storageWarehouseName", title: "调入仓库", },
+          attr: {}
+        },
+        {
+          item: { key: "businessPersonalName", title: "调入业务员", },
+          attr: {}
+        },
+        {
+          item: { key: "productBatch", title: "产品批号", },
+          attr: {}
+        },
+        {
+          item: { key: "manufactureDate", title: "生产日期", },
+          attr: {}
+        },
+        {
+          item: { key: "periodEndDate", title: "有效期至/失效日期", },
+          attr: {}
+        },
+        {
+          item: { key: "ratifyCode", title: "批准文号", },
+          attr: {}
+        },
+        {
+          item: { key: "registration", title: "注册证号", },
+          attr: {}
+        },
+        {
+          item: { key: "productCode", title: "商品名", },
+          attr: {}
+        },
+        {
+          item: { key: "commonCode", title: "通用名", },
+          attr: {}
+        },
+        {
+          item: { key: "drug", title: "剂型", },
+          attr: {}
+        },
+        {
+          item: { key: "customerName", title: "收货客户", },
+          attr: {}
+        },
+        {
+          item: { key: "addressaddress", title: "收货地址", },
+          attr: {}
+        },
+        {
+          item: { key: "area", title: "收货地区", },
+          attr: {}
+        },
+        {
+          item: { key: "place", title: "收货地点", },
+          attr: {}
+        },
+        {
+          item: { key: "deliveryDate", title: "计划发货日期", },
+          attr: {}
+        },
+        {
+          item: { key: "strageDate", title: "计划到货日期", },
+          attr: {}
+        },
+        {
+          item: { key: "transportation", title: "运输方式", },
+          attr: {}
+        },
+        {
+          item: { key: "remark", title: "备注", },
+          attr: {}
+        },
+        {
+          item: { key: "customerLogistic", title: "客户物料编码", },
+          attr: {}
+        },
+        {
+          item: { key: "customerLogisticName", title: "客户物料名称", },
+          attr: {}
+        },
+
+      ]
+    },
+    // 价格费用
+    {
+      item: { key: "stAllotReceiveExecuteList", title: "价格费用" },
+      attr: { value: [] },
+      TableColumns: [
+        {
+          item: { key: "rowno", title: "行号", width: 80, },
+          attr: {}
+        },
+        {
+          item: { key: "deliveryCode", title: "调拨出库单号", },
+          attr: {}
+        },
+        {
+          item: { key: "storageCode", title: "调拨入库单号", },
+          attr: {}
+        },
+        {
+          item: { key: "manufacturer", title: "生产厂家/代理人", },
+          attr: {}
+        },
+        {
+          item: { key: "originPlace", title: "产地", },
+          attr: {}
+        },
+        {
+          item: { key: "classify", title: "类别", },
+          attr: {}
+        },
+        {
+          item: { key: "productBatch", title: "产品批号", },
+          attr: {}
+        },
+        {
+          item: { key: "manufactureDate", title: "生产日期", },
+          attr: {}
+        },
+        {
+          item: { key: "periodEndDate", title: "有效期至/失效日期", },
+          attr: {}
+        },
+        {
+          item: { key: "ratifyCode", title: "批准文号", },
+          attr: {}
+        },
+        {
+          item: { key: "registration", title: "注册证号", },
+          attr: {}
+        },
+        {
+          item: { key: "productCode", title: "商品名", },
+          attr: {}
+        },
+        {
+          item: { key: "commonCode", title: "通用名", },
+          attr: {}
+        },
+        {
+          item: { key: "drug", title: "剂型", },
+          attr: {}
+        },
+        {
+          item: { key: "customerLogistic", title: "客户物料码", },
+          attr: {}
+        },
+        {
+          item: { key: "customerLogisticName", title: "客户物料名称", },
+          attr: {}
+        },
+
+      ]
+    },
+    // 执行结果
+    {
+      item: { key: "stAllotReceiveExpenseList", title: "执行结果" },
+      attr: { value: [] },
+      TableColumns: [
+        {
+          item: { key: "rowno", title: "行号", width: 80, },
+          attr: {}
+        },
+        {
+          item: { key: "deliveryCode", title: "调拨出库单号", },
+          attr: {}
+        },
+        {
+          item: { key: "storageCode", title: "调拨入库单号", },
+          attr: {}
+        },
+        {
+          item: { key: "manufacturer", title: "生产厂家/代理人", },
+          attr: {}
+        },
+        {
+          item: { key: "originPlace", title: "产地", },
+          attr: {}
+        },
+        {
+          item: { key: "classify", title: "类别", },
+          attr: {}
+        },
+        {
+          item: { key: "productBatch", title: "产品批号", },
+          attr: {}
+        },
+        {
+          item: { key: "manufactureDate", title: "生产日期", },
+          attr: {}
+        },
+        {
+          item: { key: "periodEndDate", title: "有效期至/失效日期", },
+          attr: {}
+        },
+        {
+          item: { key: "ratifyCode", title: "批准文号", },
+          attr: {}
+        },
+        {
+          item: { key: "registration", title: "注册证号", },
+          attr: {}
+        },
+        {
+          item: { key: "productCode", title: "商品名", },
+          attr: {}
+        },
+        {
+          item: { key: "commonCode", title: "通用名", },
+          attr: {}
+        },
+        {
+          item: { key: "drug", title: "剂型", },
+          attr: {}
+        },
+        {
+          item: { key: "customerLogistic", title: "客户物料码", },
+          attr: {}
+        },
+        {
+          item: { key: "customerLogisticName", title: "客户物料名称", },
+          attr: {}
+        },
+
+      ]
+    },
+
+  ];
+
+  return { FormColumns, TabColumns }
+}

+ 234 - 0
src/views/purchase/transferOrder/transferInvoice/index.vue

@@ -0,0 +1,234 @@
+<template>
+  <div id="transferOrder">
+    <div v-if="isList">
+      <el-card style="position: relative" v-loading="loading">
+        <el-super-search
+          v-model="params"
+          :size="size"
+          :dict="dict"
+          :columns="SearchColumns"
+          @reset="resetList"
+          @submit="getList(params, Pages)"
+        ></el-super-search>
+
+        <el-row class="my-4" style="text-align: right">
+          <el-button-group style="margin-right: 5px">
+            <el-button type="primary" :size="size" @click="back"
+              >返回</el-button>
+            <el-button type="primary" :size="size" @click="verify"
+              >确认</el-button
+            >
+          </el-button-group>
+        </el-row>
+
+        <el-super-ux-table
+          v-model="tableList"
+          :size="size"
+          :dict="dict"
+          :page="Pages"
+          :columns="TableColumns"
+          index
+          pagination
+          height="400"
+          showSummary
+          convenitentOperation
+          storage-key="TransferOrderSuperTable"
+          @row-click="select"
+          @pagination="getList(params, Pages)"
+        >
+        </el-super-ux-table>
+
+        <el-tabs v-model="tabName" style="margin-top: 10px">
+          <el-tab-pane
+            v-for="({ item, TableColumns: columns }, index) in TabColumns"
+            :key="index"
+            :label="item.title"
+            :name="item.key"
+            lazy
+          >
+            <el-super-ux-table
+              v-loading="itemLoading"
+              index
+              v-model="tabParams[item.key]"
+              :ref="tabName"
+              :height="tabHeight"
+              :columns="columns"
+              :size="size"
+            ></el-super-ux-table>
+          </el-tab-pane>
+        </el-tabs>
+      </el-card>
+    </div>
+    <Detail
+      ref="Detail"
+      :data="rowDetail"
+      :size="size"
+      :dict="dict"
+      :addType="pageStu"
+      @refresh="getList(params, page)"
+    >
+    </Detail>
+  </div>
+</template>
+
+<script>
+import useColumns from "../columns";
+import { dicts } from "../dicts";
+import { getOrderList,listStAllotItem,bipPullVerify} from "@/api/purchase/transferOrder.js";
+export default {
+  name: "transferOrder",
+  dicts: [...dicts, "oa_templete_id"],
+  components: {
+    Detail: () => import("./detail.vue"),
+    ElSuperUxTable: () => import("@/components/super-ux-table/index.vue"),
+    BatchImport: () => import("@/components/BatchImport/index.vue"),
+    ElSuperSearch: () => import("@/components/super-search/index.vue"),
+  },
+  data() {
+    const { TableColumns, TabColumns, SearchColumns } = useColumns();
+    const Pages = this.$init.page();
+    const params = this.$init.params(SearchColumns);
+    return {
+      params: {
+        ...params,
+        code: this.$route.query.billCode,
+      },
+      TableColumns: TableColumns,
+      TabColumns: TabColumns,
+      SearchColumns: SearchColumns,
+      tabName: "materialInfo",
+      size: "mini",
+      Pages: Pages,
+      loading: false,
+      itemLoading: false,
+      // 页面配置
+      isList: true,
+      // 页面状态
+      page: "",
+      referCondition: {
+        type: "",
+        isPage: true,
+        title: "",
+      },
+      options: [
+        {
+          value: "1",
+          label: "是",
+        },
+        {
+          value: "0",
+          label: "否",
+        },
+      ],
+      tableList: [],
+      // total: 0,
+      tabParams: {
+        materialInfo: [],
+        receiveInfo: [],
+        priceList: [],
+        resultList: [],
+      },
+      // 页面状态
+      pageStu: "",
+      rowDetail: {},
+      disable: false,
+      ids: [],
+      //选择的行
+      selectedRow:null
+    };
+  },
+  computed: {
+    tabHeight: {
+      get() {
+        let { materialInfo } = this.tabParams;
+        return `${
+          materialInfo.length
+            ? materialInfo.length > 8
+              ? 500
+              : materialInfo * 36 + 120
+            : 120
+        }px`;
+      },
+      set() {},
+    },
+  },
+  created() {
+    this.params.status = '2';
+    this.params.sendNcRes='success';
+    this.getList(this.params, this.Pages);
+  },
+  methods: {
+    resetList() {
+      this.Pages = this.$init.page();
+      const { SearchColumns } = useColumns();
+      this.params = {
+        ...this.$init.params(SearchColumns),
+        code: this.$route.query.billCode,
+      };
+      this.getList(this.params, this.Pages);
+    },
+    getList(params, Pages) {
+      this.loading = true;
+      getOrderList({
+        ...this.addDateRange(params, params.billDates),
+        ...Pages,
+      })
+        .then((res) => {
+          if (res.code === 200) {
+            this.tableList = res.rows;
+            this.Pages.total = res.total;
+          }
+          this.loading = false;
+        })
+        .then(() => {
+          // 合计不显示重绘
+          this.$refs.multipleTable.doLayout();
+        })
+        .catch((err) => {});
+    },
+    getlistStAllotItem(pid) {
+      this.itemLoading = true;
+      listStAllotItem(pid).then((response) => {
+        this.tabParams.materialInfo = response.rows;
+        this.itemLoading = false;
+      });
+    },
+    //确认
+    verify() {
+      if(this.selectedRow){
+        const { setVisible } = this.$refs.Detail;
+        setVisible(true);
+        this.pageStu = "edit";
+        this.rowDetail = this.selectedRow;
+      }else{
+        this.$modal.msgWarning("请选择一条数据!");
+      }
+    },
+    //返回
+    back(){
+      var userAgent = navigator.userAgent;
+      if (userAgent.indexOf("Firefox") != -1 || userAgent.indexOf("Chrome") !=-1) {
+        window.location.href="about:blank";
+        window.close();
+      } else {
+        window.opener = null;
+        window.open("", "_self");
+        window.close();
+      }
+    },
+    // 选中某行
+    select(row) {
+      this.getlistStAllotItem(row.id);
+      this.selectedRow = row;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+#transferOrder {
+  padding: 12px;
+  box-sizing: border-box;
+  overflow-y: scroll;
+}
+</style>