Explorar el Código

Merge branch 'dev' of git.echepei.com:caojunjie/Smart_platform_ui into dev

caojunjie hace 3 años
padre
commit
a5e1f545ac

+ 31 - 0
src/components/boxVolume/config/mainList.json

@@ -0,0 +1,31 @@
+{
+  "searchShow": true,
+  "searchMenuSpan": 8,
+  "border": true,
+  "index": true,
+  "viewBtn": false,
+  "editBtn": false,
+  "delBtn": false,
+  "addBtn": false,
+  "headerAlign": "center",
+  "menuWidth": "70",
+  "showSummary": true,
+  "searchIcon": true,
+  "searchIndex": 2,
+  "column": [
+    {
+        "index": 1,
+        "prop": "cntrid",
+        "label": "箱型",
+        "overHidden": true,
+        "cell":true
+    },
+    {
+        "index": 2,
+        "prop": "cntrcount",
+        "label": "箱量",
+        "overHidden": true,
+        "cell":true
+    }
+]
+}

+ 98 - 0
src/components/boxVolume/main.vue

@@ -0,0 +1,98 @@
+<template>
+    <div>
+        <trade-card title="箱型箱量" :show="false">
+            <avue-crud ref="crud" :data="data" :option="tableOption" @saveColumn="saveColumn"
+                @resetColumn="resetColumn" :cell-style="cellStyle" @selection-change="selectionChange">
+                <template slot="menuLeft">
+                    <el-button type="primary" icon="el-icon-plus" size="small" @click.stop="addRow">新增
+                    </el-button>
+                </template>
+                <template slot="menu">
+                    <el-button type="text" size="small" @click.stop="rowDel">删除
+                    </el-button>
+                </template>
+            </avue-crud>
+        </trade-card>
+    </div>
+</template>
+
+<script>
+import tableOption from "./config/mainList.json";
+export default {
+    name: "detailsPageEdit",
+    data() {
+        return {
+            treeStyle: "height:" + (window.innerHeight - 315) + "px",
+            tableOption: {},
+        };
+    },
+    props: {
+        data: {
+            type: Array
+        }
+    },
+    async created() {
+        this.tableOption = await this.getColumnData(
+            this.getColumnName(162.3),
+            tableOption
+        );
+    },
+    methods: {
+        cellStyle() {
+            return "padding:0;height:40px;";
+        },
+        addRow(row) {
+            this.data.push({ ...row, $cellEdit: true });
+        },
+        rowDel(row) {
+            this.$confirm("确定删除数据?", {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning"
+            }).then(() => {
+                this.$message({
+                    type: "success",
+                    message: "删除成功!"
+                });
+                this.data.splice(row.$index, 1);
+            });
+        },
+        async saveColumn() {
+            const inSave = await this.saveColumnData(
+                this.getColumnName(162.3),
+                this.tableOption
+            );
+            if (inSave) {
+                this.$nextTick(() => {
+                    this.$refs.crud.doLayout();
+                });
+                this.$message.success("保存成功");
+                //关闭窗口
+                this.$refs.crud.$refs.dialogColumn.columnBox = false;
+            }
+        },
+        async resetColumn() {
+            this.tableOption = tableOption;
+            const inSave = await this.delColumnData(
+                this.getColumnName(162.3),
+                tableOption
+            );
+            if (inSave) {
+                this.$nextTick(() => {
+                    this.$refs.crud.doLayout();
+                });
+                this.$message.success("重置成功");
+                //关闭窗口
+                setTimeout(() => {
+                    this.$refs.crud.$refs.dialogColumn.columnBox = false;
+                }, 1000);
+            }
+        }
+    },
+    watch: {
+    }
+};
+</script>
+
+<style lang="scss" scoped>
+</style>

+ 49 - 0
src/components/warehousKH/main.vue

@@ -0,0 +1,49 @@
+<template>
+    <div style="display: flex;">
+        <el-select v-model="value" placeholder="请选择" filterable clearable>
+            <el-option v-for="item in corpList" :key="item.id" :label="item.cname" :value="item.id">
+            </el-option>
+        </el-select>
+        <el-tooltip class="item" effect="dark" content="获取最新客户资料" placement="top-start">
+            <el-button icon="el-icon-refresh" size="mini" v-if="label != 'shortName'" :disabled="disabled"
+                @click="refreshData"></el-button>
+        </el-tooltip>
+    </div>
+</template>
+
+<script>
+import { allCropList } from "@/api/basicData/customerInformation";
+import { kMaxLength } from "buffer";
+export default {
+    name: "main",
+    data() {
+        return {
+            form: {},
+            corpList: []
+        };
+    },
+    props: {
+        value: String,
+        disabled: Boolean,
+    },
+    created() {
+        this.getCorpList()
+    },
+    methods: {
+        getCorpList() {
+            let userObj = JSON.parse(localStorage.getItem("saber-userInfo")).content;
+            allCropList({ corpType: 'KH', adminProfiles: userObj.role_name != "admin" ? userObj.user_id : null }).then(res => {
+                this.corpList = res.data.data;
+            });
+        },
+        refreshData() {
+            this.getCorpList()
+        }
+    },
+    watch: {
+    }
+};
+</script>
+
+<style lang="scss" scoped>
+</style>

+ 7 - 1
src/enums/column-name.js

@@ -638,6 +638,9 @@ const columnName = [{
 {
   code: 161.2,
   name: '仓库-付款信息'
+}, {
+  code: 162.3,
+  name: '仓库-箱型箱量'
 },
 {
   code: 161.3,
@@ -758,7 +761,10 @@ const columnName = [{
 }, {
   code: 181,
   name: '统计分析-利润总账(仓储)'
-},
+}, {
+  code: 182,
+  name: '国家和地区'
+}
 ]
 export const getColumnName = (key) => {
   for (let index = 0; index < columnName.length; index++) {

+ 3 - 0
src/main.js

@@ -51,6 +51,8 @@ import cropSelect from "@/components/crop-select/main";
 import messagePost from "@/components/messageSend/main"
 // 更改审批人
 import changeApprove from "@/components/change-approve/main"
+//仓库客户组件
+import warehousKH from '@/components/warehousKH/main';
 //枚举列设置名称管理
 import {
   getColumnName
@@ -84,6 +86,7 @@ Vue.component('userSelect', userSelect);
 Vue.component('cropSelect', cropSelect);
 Vue.component('messagePost', messagePost);
 Vue.component('changeApprove', changeApprove)
+Vue.component('warehousKh', warehousKH)
 import portInfo from "@/components/port-info/index";
 Vue.component('portInfo', portInfo);
 // 注册全局crud驱动

+ 67 - 0
src/views/basicData/countryRegion/config/mainList.json

@@ -0,0 +1,67 @@
+{
+  "searchShow": true,
+  "searchMenuSpan": 8,
+  "border": true,
+  "index": true,
+  "delBtn": false,
+  "editBtn":false,
+  "headerAlign": "center",
+  "menuWidth": "180",
+  "showSummary": true,
+  "searchIcon": true,
+  "searchIndex": 2,
+  "column": [
+    {
+      "label": "中文名称",
+      "prop": "cname",
+      "index": 1,
+      "search": true,
+      "searchSpan": 8,
+      "overHidden": true
+    },
+    {
+      "label": "英文名称",
+      "prop": "ename",
+      "index": 2,
+      "overHidden": true
+    },
+    {
+      "label": "英文全称",
+      "prop": "allName",
+      "index": 3,
+      "overHidden": true
+    },
+    {
+      "label": "两字母代码",
+      "prop": "a",
+      "index": 4,
+      "search": true,
+      "searchSpan": 8,
+      "overHidden": true
+    },
+    {
+      "label": "三字母代码",
+      "prop": "b",
+      "index": 5,
+      "overHidden": true
+    },
+    {
+      "label": "数字代码",
+      "prop": "code",
+      "index": 6,
+      "overHidden": true
+    },
+    {
+      "label": "所属大洲",
+      "prop": "c",
+      "index": 7,
+      "overHidden": true
+    },
+    {
+      "label": "备注",
+      "prop": "d",
+      "index": 8,
+      "overHidden": true
+    }
+  ]
+}

+ 149 - 0
src/views/basicData/countryRegion/index.vue

@@ -0,0 +1,149 @@
+<template>
+    <div>
+        <basic-container class="page-crad">
+            <avue-crud ref="crud" :option="option" :data="dataList" v-model="form" :page.sync="page"
+                :search.sync="search" @search-change="searchChange" @current-change="currentChange"
+                @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad" :table-loading="loading"
+                @saveColumn="saveColumn" @resetColumn="resetColumn" :cell-style="cellStyle"
+                @search-criteria-switch="searchCriteriaSwitch">
+                <template slot="menuLeft">
+                    <el-button type="primary" icon="el-icon-bottom" size="small">导入
+                    </el-button>
+                    <el-button type="primary" icon="el-icon-top" size="small">导出
+                    </el-button>
+                </template>
+                <template slot-scope="{ row,index}" slot="menu">
+                    <el-button type="text" icon="el-icon-delete" size="small" @click="$refs.crud.rowView(row, index)">
+                        查看</el-button>
+                    <el-button type="text" icon="el-icon-delete" size="small" @click="$refs.crud.rowEdit(row, index)">
+                        编辑</el-button>
+                    <el-button type="text" icon="el-icon-delete" size="small" @click.stop="rowDel(row, index)">删除
+                    </el-button>
+                </template>
+            </avue-crud>
+        </basic-container>
+    </div>
+</template>
+
+<script>
+import option from "./config/mainList.json";
+import _ from "lodash";
+export default {
+    name: "customerInformation",
+    data() {
+        return {
+            search: {},
+            form: {},
+            option: {},
+            dataList: [],
+            page: {
+                pageSize: 20,
+                currentPage: 1,
+                total: 0,
+                pageSizes: [10, 20, 30, 40, 50, 100, 200, 300, 400, 500]
+            },
+            loading: false
+        };
+    },
+    async created() {
+        this.option = await this.getColumnData(this.getColumnName(182), option);
+        this.option.height = window.innerHeight - 210;
+    },
+    methods: {
+        searchCriteriaSwitch(type) {
+            if (type) {
+                this.option.height = this.option.height - 191;
+            } else {
+                this.option.height = this.option.height + 191;
+            }
+            this.$refs.crud.getTableHeight();
+        },
+        cellStyle() {
+            return "padding:0;height:40px;";
+        },
+        rowDel(row, index, done) {
+            //     this.$confirm("确定删除数据?", {
+            //         confirmButtonText: "确定",
+            //         cancelButtonText: "取消",
+            //         type: "warning"
+            //     }).then(() => {
+            //         this.$message({
+            //             type: "success",
+            //             message: "删除成功!"
+            //         });
+            //         this.onLoad(this.page, this.search);
+            //     });
+        },
+        //点击搜索按钮触发
+        searchChange(params, done) {
+            this.page.currentPage = 1;
+            this.onLoad(this.page, params);
+            done();
+        },
+        currentChange(val) {
+            this.page.currentPage = val;
+        },
+        sizeChange(val) {
+            this.page.currentPage = 1;
+            this.page.pageSize = val;
+        },
+        onLoad(page, params) {
+            // let data = this.deepClone(Object.assign(params, this.search));
+            // this.loading = true;
+            // getList(page.currentPage, page.pageSize, data)
+            //     .then(res => {
+            //         this.dataList = res.data.data.records ? res.data.data.records : [];
+            //         this.page.total = res.data.data.total;
+            //     })
+            //     .finally(() => {
+            //         this.loading = false;
+            //     });
+        },
+        refreshChange() {
+            this.onLoad(this.page, this.search);
+        },
+        newAdd() {
+
+        },
+        async saveColumn() {
+            const inSave = await this.saveColumnData(
+                this.getColumnName(182),
+                this.option
+            );
+            if (inSave) {
+                this.$nextTick(() => {
+                    this.$refs.crud.doLayout();
+                });
+                this.$message.success("保存成功");
+                //关闭窗口
+                this.$refs.crud.$refs.dialogColumn.columnBox = false;
+            }
+        },
+        async resetColumn() {
+            this.option = option;
+            const inSave = await this.delColumnData(this.getColumnName(182), this.option);
+            if (inSave) {
+                this.$nextTick(() => {
+                    this.$refs.crud.doLayout();
+                });
+                this.$message.success("重置成功");
+                this.$refs.crud.$refs.dialogColumn.columnBox = false;
+            }
+        }
+    }
+};
+</script>
+
+<style scoped>
+::v-deep .select-component {
+    display: flex;
+}
+
+.page-crad ::v-deep .basic-container__card {
+    height: 94.2vh;
+}
+
+.itemTable ::v-deep .el-table {
+    width: 738px;
+}
+</style>

+ 1929 - 0
src/views/dealer/sales/detail copy.vue

@@ -0,0 +1,1929 @@
+<template>
+  <div class="borderless" v-loading="pageLoading">
+    <div class="customer-head">
+      <div class="customer-back">
+        <el-button
+          type="danger"
+          style="border: none;background: none;color: red"
+          icon="el-icon-arrow-left"
+          @click="backToList"
+          :loading="btnLoading"
+          >返回列表</el-button
+        >
+      </div>
+      <div class="add-customer-btn">
+        <el-button
+          v-if="checker && form.status != 3"
+          type="primary"
+          size="small"
+          class="el-button--small-yh"
+          @click.stop="openCheckDialog"
+        >
+          审批
+        </el-button>
+        <el-button
+          v-if="form.status > 0"
+          @click.native="(checkScheduleDialog = true), (checkId = form.id)"
+          type="primary"
+          size="small"
+          class="el-button--small-yh"
+          >审核进度</el-button
+        >
+        <el-button
+          type="primary"
+          size="small"
+          class="el-button--small-yh"
+          @click.stop="openEdit"
+          v-if="form.id && disabled"
+          >编 辑</el-button
+        >
+        <el-button
+          type="primary"
+          v-if="!checkDisabled && confirmDisabled"
+          :disabled="!form.id || disabled"
+          size="small"
+          @click="pleaseCheck"
+          :loading="btnLoading"
+          class="el-button--small-yh"
+          >请核</el-button
+        >
+        <el-button
+          type="primary"
+          v-if="form.status == 1"
+          :disabled="disabled"
+          size="small"
+          @click="repealCancel"
+          :loading="btnLoading"
+          >撤销请核</el-button
+        >
+        <el-button
+          type="primary"
+          size="small"
+          style="margin-right: 8px;"
+          @click="dealerSubmit"
+          :disabled="disabled || checkDisabled"
+          :loading="btnLoading"
+          v-if="form.id"
+        >
+          {{
+            form.confirmStatus == 0
+              ? "确认订单"
+              : form.confirmStatus == 3
+              ? "撤销订单"
+              : ""
+          }}
+        </el-button>
+        <el-dropdown style="margin-right: 8px;">
+          <el-button type="warning" size="small"
+            >账单处理<i class="el-icon-arrow-down el-icon--right"></i
+          ></el-button>
+          <el-dropdown-menu slot="dropdown">
+            <!--            <el-dropdown-item-->
+            <!--              @click.native="applySettlement('收费')"-->
+            <!--              :disabled="disabled"-->
+            <!--            >生成账单-->
+            <!--            </el-dropdown-item>-->
+            <el-dropdown-item
+              @click.native="openApplicationDialog"
+              :disabled="!form.id"
+              >查看账单
+            </el-dropdown-item>
+          </el-dropdown-menu>
+        </el-dropdown>
+        <el-button
+          type="success"
+          :disabled="!form.id"
+          size="small"
+          @click="copyDoc"
+          :loading="btnLoading"
+        >
+          复制单据
+        </el-button>
+        <el-button
+          type="primary"
+          @click="editCustomer"
+          size="small"
+          :loading="btnLoading"
+          :disabled="disabled"
+          >保存数据
+        </el-button>
+      </div>
+    </div>
+    <div class="customer-main">
+      <containerTitle title="基础信息" />
+      <basic-container :showBtn="true">
+        <avue-form
+          ref="form"
+          class="trading-form"
+          v-model="form"
+          :option="option"
+        >
+          <template slot="corpId">
+            <crop-select
+              v-model="form.corpId"
+              @getCorpData="getCorpData"
+              corpType="KH"
+              :disabled="disabled || confirmDisabled || checkDisabled"
+            />
+          </template>
+          <template slot="belongToCorpId">
+            <crop-select
+              v-model="form.belongToCorpId"
+              @getCorpData="getGSData"
+              corpType="GS"
+              :disabled="disabled || confirmDisabled || checkDisabled"
+            />
+          </template>
+          <template slot="storageId">
+            <warehouse-select
+              v-model="form.storageId"
+              @returnBack="storageChange"
+              :configuration="configurationWarehouse"
+              :disabled="disabled || confirmDisabled || checkDisabled"
+            />
+          </template>
+          <template slot="chargeMember">
+            <el-select
+              v-model="form.chargeMember"
+              filterable
+              clearable
+              size="small"
+              :disabled="disabled"
+            >
+              <el-option
+                v-for="(item, index) in userList"
+                :key="index"
+                :label="item.realName"
+                :value="item.realName"
+              ></el-option>
+            </el-select>
+          </template>
+        </avue-form>
+      </basic-container>
+      <containerTitle title="商品信息" />
+      <basic-container>
+        <avue-crud
+          ref="crud"
+          :data="dataList"
+          :option="tableOption"
+          :cell-style="cellStyle"
+          @saveColumn="saveColumn"
+          @resetColumn="resetColumn"
+        >
+          <template slot="headerSerial" slot-scope="{ column }">
+            <el-button
+              type="primary"
+              icon="el-icon-circle-plus-outline"
+              circle
+              size="mini"
+              :disabled="
+                disabled || !form.storageId || confirmDisabled || checkDisabled
+              "
+              @click="$refs.crud.rowCellAdd()"
+            ></el-button>
+          </template>
+          <template slot="menuLeft">
+            <el-button
+              type="primary"
+              icon="el-icon-plus"
+              size="small"
+              @click.stop="newDetails"
+              :disabled="
+                disabled || !form.storageId || confirmDisabled || checkDisabled
+              "
+              >录入明细</el-button
+            >
+            <el-button
+              type="info"
+              icon="el-icon-printer"
+              size="small"
+              @click.stop="openReport"
+              >报表打印</el-button
+            >
+            <el-button
+              type="primary"
+              size="small"
+              icon="el-icon-download"
+              @click="downloadHandle"
+              >下载模板</el-button
+            >
+            <el-upload
+              :action="baseURL"
+              :headers="headers"
+              :disabled="
+                disabled || confirmDisabled || !form.storageId || checkDisabled
+              "
+              :on-progress="uploading"
+              :show-file-list="false"
+              :data="uploadParam"
+              accept=".xls,.xlsx"
+              multiple
+              :on-success="importTemplate"
+              :on-error="uploadError"
+              style="float: right"
+            >
+              <el-button
+                type="primary"
+                size="small"
+                icon="el-icon-upload"
+                :disabled="
+                  disabled ||
+                    confirmDisabled ||
+                    !form.storageId ||
+                    checkDisabled
+                "
+                >导 入</el-button
+              >
+            </el-upload>
+          </template>
+          <template slot="menu" slot-scope="{ row, index }">
+            <el-button
+              size="small"
+              icon="el-icon-edit"
+              type="text"
+              @click="rowCell(row, index)"
+              :disabled="disabled || confirmDisabled || checkDisabled"
+              >{{ row.$cellEdit ? "保存" : "修改" }}</el-button
+            >
+            <el-button
+              size="small"
+              icon="el-icon-delete"
+              type="text"
+              @click="rowDel(row, index)"
+              :disabled="disabled || confirmDisabled || checkDisabled"
+              >删除</el-button
+            >
+          </template>
+          <template slot="code" slot-scope="{ row, index }">
+            <span v-if="row.$cellEdit" style="display:flex">
+              <el-select
+                v-model="row.code"
+                placeholder="请选择"
+                filterable
+                size="small"
+                style="width:60%"
+                @change="codeChange(row, index)"
+                :disabled="!form.storageId"
+              >
+                <el-option
+                  v-for="item in goodsoptions"
+                  :key="item.id"
+                  :label="item.code"
+                  :value="item.code"
+                >
+                </el-option>
+              </el-select>
+              <el-button
+                icon="el-icon-search"
+                size="small"
+                @click="rePick(row, index)"
+              ></el-button>
+            </span>
+            <span v-else> {{ row.code }}</span>
+          </template>
+          <template slot="cname" slot-scope="{ row, index }">
+            <span v-if="row.$cellEdit" style="display:flex">
+              <el-select
+                v-model="row.itemId"
+                placeholder="请选择"
+                size="small"
+                filterable
+                style="width:60%"
+                @change="cnameChange(row, index)"
+                :disabled="!form.storageId"
+              >
+                <el-option
+                  v-for="item in goodsoptions"
+                  :key="item.id"
+                  :label="item.cname"
+                  :value="item.id"
+                >
+                </el-option>
+              </el-select>
+              <el-button
+                icon="el-icon-search"
+                size="small"
+                @click="rePick(row, index)"
+              ></el-button>
+            </span>
+            <span v-else> {{ row.cname }}</span>
+          </template>
+          <template slot="orderQuantity" slot-scope="{ row, index }">
+            <el-input-number
+              v-if="row.$cellEdit"
+              v-model="row.orderQuantity"
+              size="small"
+              :controls="false"
+              :precision="0"
+              @input="amountChange(row)"
+              :disabled="!form.storageId"
+              style="width: 100%"
+            />
+            <span v-else>{{ row.orderQuantity | IntegerFormat }}</span>
+          </template>
+          <template slot="price" slot-scope="{ row, index }">
+            <el-input-number
+              v-if="row.$cellEdit"
+              v-model="row.price"
+              size="small"
+              :controls="false"
+              :precision="2"
+              @input="amountChange(row)"
+              style="width: 100%"
+              :disabled="!form.storageId"
+            ></el-input-number>
+            <span v-else>{{ row.price }}</span>
+          </template>
+          <!--          单位-->
+          <template slot="unit" slot-scope="{ row, index }">
+            <el-select
+              v-if="row.$cellEdit"
+              v-model="row.unit"
+              size="small"
+              clearable
+              filterable
+              :disabled="!form.storageId"
+            >
+              <el-option
+                v-for="(item, index) in unitOption"
+                :key="index"
+                :label="item.dictValue"
+                :value="item.dictValue"
+              />
+            </el-select>
+            <span v-else>{{ row.unit }}</span>
+          </template>
+          <template slot="amount" slot-scope="{ row, index }">
+            <span>{{ row.amount | decimalFormat }}</span>
+          </template>
+          <template slot="storageQuantity" slot-scope="{ row, index }">
+            <span>{{ row.storageQuantity | IntegerFormat }}</span>
+          </template>
+          <template slot="lotNo" slot-scope="{ row, index }">
+            <span v-if="row.batch == 1" style="color: #c90707;margin-right: 3px"
+              >*</span
+            >
+            <el-select
+              v-if="row.$cellEdit"
+              v-model="row.lotNo"
+              size="small"
+              filterable
+              allow-create
+              clearable
+              @change="lotNoChange(row)"
+              :disabled="!form.storageId"
+            >
+              <el-option
+                v-for="(item, index) in row.arr"
+                :key="index"
+                :label="item.lotNo"
+                :value="item.lotNo"
+              />
+            </el-select>
+            <span v-else>{{ row.lotNo }}</span>
+          </template>
+          <template slot="newJob" slot-scope="{ row, index }">
+            <span
+              style="color: #1e9fff;cursor: pointer"
+              @click="openHistory(row)"
+              >{{ row.newJob }}</span
+            >
+          </template>
+          <template slot="remarks" slot-scope="{ row, index }">
+            <el-input
+              v-if="row.$cellEdit"
+              v-model="row.remarks"
+              size="small"
+              :disabled="!form.storageId"
+            />
+            <span v-else>{{ row.remarks }}</span>
+          </template>
+        </avue-crud>
+      </basic-container>
+      <containerTitle title="详细信息" />
+      <basic-container :showBtn="true">
+        <avue-form
+          ref="form1"
+          class="trading-form"
+          v-model="form"
+          :option="detailOption"
+        ></avue-form>
+      </basic-container>
+      <containerTitle title="附件管理"></containerTitle>
+      <c-upload
+        :data="uploadData"
+        deleteUrl="/api/blade-client/corpsbank/update"
+        :enumerationValue="84"
+        :disabled="disabled || confirmDisabled || checkDisabled"
+      />
+    </div>
+    <!--    商品弹窗-->
+    <el-dialog
+      title="导入商品"
+      append-to-body
+      class="el-dialogDeep"
+      :visible.sync="dialogVisible"
+      width="80%"
+      :close-on-click-modal="false"
+      :destroy-on-close="true"
+      :close-on-press-escape="false"
+      @close="closeGoods"
+      top="5vh"
+      v-dialog-drag
+    >
+      <span>
+        <el-row>
+          <el-col :span="4">
+            <div>
+              <el-scrollbar>
+                <basic-container>
+                  <avue-tree
+                    :option="treeOption"
+                    @node-click="nodeClick"
+                    :style="treeStyle"
+                  />
+                </basic-container>
+              </el-scrollbar>
+            </div>
+          </el-col>
+          <el-col :span="20">
+            <avue-crud
+              :option="goodsOption"
+              :table-loading="loading"
+              :data="goodsListShow"
+              ref="goodsCrud"
+              :search.sync="search"
+              @search-change="searchChange"
+              @selection-change="selectionChange"
+              @row-click="rowClick"
+              :page.sync="page"
+              @on-load="onLoad"
+              @saveColumn="saveGoodsColumn"
+              @resetColumn="resetGoodsColumn"
+              :cell-style="cellStyle"
+            >
+              <template slot="menuLeft">
+                <el-tabs v-model="activeName" @tab-click="tabHandle">
+                  <el-tab-pane label="查询结果" name="searchList"></el-tab-pane>
+                  <el-tab-pane
+                    label="已选定数据"
+                    name="importStaging"
+                  ></el-tab-pane>
+                </el-tabs>
+              </template>
+              <template slot-scope="scope" slot="menu">
+                <el-button
+                  type="text"
+                  icon="el-icon-edit"
+                  size="small"
+                  @click.stop="importStagList(scope.row, scope.index)"
+                  v-if="activeName == 'searchList'"
+                  :disabled="
+                    goodsListSave.findIndex(item => item.id == scope.row.id) !==
+                      -1
+                  "
+                  >选择
+                </el-button>
+                <el-button
+                  type="text"
+                  icon="el-icon-delete"
+                  size="small"
+                  @click.stop="removeStagList(scope.row, scope.index)"
+                  v-else
+                  >移除
+                </el-button>
+              </template>
+            </avue-crud>
+          </el-col>
+        </el-row>
+      </span>
+
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false">取 消</el-button>
+        <el-button
+          type="primary"
+          @click="importGoods"
+          :disabled="selectionList.length == 0 && goodsListSave.length == 0"
+          >导入</el-button
+        >
+      </span>
+    </el-dialog>
+    <!--    报表-->
+    <report-dialog
+      :switchDialog="switchDialog"
+      :reportId="form.id"
+      reportName="经销商-销售单"
+      @onClose="onClose()"
+    />
+    <!--    账单-->
+    <el-dialog
+      append-to-body
+      title="账单"
+      class="el-dialogDeep"
+      :visible.sync="financialAccountDialog"
+      width="70%"
+      :close-on-click-modal="false"
+      :destroy-on-close="true"
+      :close-on-press-escape="false"
+      v-dialog-drag
+    >
+      <financial-account
+        :billType="billType"
+        :billData="{}"
+        :arrList="applyPaymentList"
+        :belongCompany="form.belongToCorpId"
+        @choceFun="choceFun"
+      />
+    </el-dialog>
+    <!--    历史记录-->
+    <view-history
+      v-if="historyVisible"
+      ref="history"
+      :params="historyParams"
+      @closeDialog="closeDialog"
+    />
+    <el-dialog
+      append-to-body
+      title="审批"
+      class="el-dialogDeep"
+      :visible.sync="checkDialog"
+      width="50%"
+      :close-on-click-modal="false"
+      :destroy-on-close="true"
+      :close-on-press-escape="false"
+      v-dialog-drag
+    >
+      <check
+        :checkData="checkData"
+        :checkDetail="false"
+        :idList="[]"
+        @choceCheckFun="choceCheckFun"
+      >
+      </check>
+    </el-dialog>
+    <el-dialog
+      append-to-body
+      title="审批进度"
+      class="el-dialogDeep"
+      :visible.sync="checkScheduleDialog"
+      width="40%"
+      :close-on-click-modal="false"
+      :destroy-on-close="true"
+      :close-on-press-escape="false"
+      v-dialog-drag
+    >
+      <check-schedule
+        :checkId="checkId"
+        :batchNo="batchNo"
+        @choceScheduleFun="choceScheduleFun"
+      >
+      </check-schedule>
+    </el-dialog>
+    <el-dialog
+      title="申请记录"
+      append-to-body
+      class="el-dialogDeep"
+      :visible.sync="applicationDialog"
+      width="60%"
+      :close-on-click-modal="false"
+      :destroy-on-close="true"
+      :close-on-press-escape="false"
+      v-dialog-drag
+    >
+      <bill-application :billId="form.id" @choceApplication="choceApplication">
+      </bill-application>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import tableOption from "./config/customerContact.json";
+import goodsOption from "./config/commodity.json";
+import { getDeptLazyTree, getGoods } from "@/api/basicData/customerInquiry";
+import { getUserInfo } from "@/api/system/user";
+import { gainUser } from "@/api/basicData/customerInquiry";
+import { selectGoodsNum } from "@/api/basicData/inventoryAccount"; // 库存查询
+import { detail as KHDetail } from "@/api/basicData/customerInformation";
+import {
+  dataDetail,
+  removeGoods,
+  typeSave,
+  getLotNo,
+  dealerSubmit,
+  historyPrice,
+  itemDetail,
+  pleaseCheck,
+  repealCancel
+} from "@/api/dealer/sales";
+import reportDialog from "@/components/report-dialog/main";
+import {
+  isDiscount,
+  isPercentage,
+  micrometerFormat,
+  IntegerFormat
+} from "@/util/validate";
+import financialAccount from "../../../components/finance/financialAccount";
+import check from "@/components/check/check";
+import checkSchedule from "@/components/check/checkSchedule";
+import billApplication from "@/components/bill/billApplication";
+import { customerList as feeList } from "@/api/basicData/basicFeesDesc";
+import { getDetail } from "@/api/basicData/inventoryAccount";
+import { getToken } from "@/util/auth";
+import { getCurrentDate } from "@/util/date";
+import viewHistory from "../componet/history";
+import { getMarketPrice, getPurchasePrice } from "@/api/basicData/fees";
+import { contrastObj, contrastList } from "@/util/contrastData";
+
+export default {
+  name: "detail",
+  props: {
+    detailData: {
+      type: Object
+    }
+  },
+  components: {
+    reportDialog,
+    billApplication,
+    financialAccount,
+    check,
+    checkSchedule,
+    viewHistory
+  },
+  data() {
+    return {
+      orderNumber: true,
+      pageLoading: false,
+      btnLoading: false,
+      disabled: false, // 编辑
+      confirmDisabled: false, // 确认禁用
+      form: {},
+      option: {
+        menuBtn: false,
+        labelWidth: 100,
+        column: [
+          {
+            label: "客户名称",
+            prop: "corpId",
+            rules: [
+              {
+                required: true,
+                message: " ",
+                trigger: "change"
+              }
+            ],
+            span: 16,
+            slot: true
+          },
+          {
+            label: "业务时间",
+            prop: "businesDate",
+            span: 8,
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd 00:00:00",
+            rules: [
+              {
+                required: true,
+                message: "",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "所属公司",
+            prop: "belongToCorpId",
+            rules: [
+              {
+                required: true,
+                message: " ",
+                trigger: "change"
+              }
+            ],
+            span: 16,
+            slot: true
+          },
+          {
+            label: "发货仓库",
+            prop: "storageId",
+            span: 8,
+            rules: [
+              {
+                required: true,
+                message: " ",
+                trigger: "change"
+              }
+            ]
+          },
+          {
+            label: "电话",
+            prop: "corpTel",
+            span: 8
+          },
+          {
+            label: "地址",
+            prop: "arrivalAddress",
+            span: 8
+          },
+          {
+            label: "业务员",
+            prop: "chargeMember",
+            span: 8
+          },
+          {
+            label: "结算方式",
+            prop: "paymentType",
+            span: 8,
+            type: "select",
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=payment_term",
+            props: {
+              label: "dictValue",
+              value: "dictValue"
+            }
+          },
+          {
+            label: "配送方式",
+            prop: "distributionMode",
+            span: 8
+          },
+          {
+            label: "系统编号",
+            prop: "sysNo",
+            span: 8,
+            disabled: true
+          },
+          {
+            label: "订单号",
+            prop: "orderNo",
+            span: 8,
+            disabled: true
+          },
+          {
+            label: "备注",
+            prop: "orderRemark",
+            type: "textarea",
+            minRows: 2,
+            span: 24
+          }
+        ]
+      },
+      detailOption: {
+        menuBtn: false,
+        labelWidth: 100,
+        column: [
+          {
+            label: "系统号",
+            prop: "sysNo",
+            span: 8,
+            disabled: true
+          },
+          {
+            label: "打印时间",
+            prop: "printTime",
+            span: 8,
+            disabled: true
+          },
+          {
+            label: "打印次数",
+            prop: "printNumber",
+            span: 8,
+            disabled: true
+          },
+          {
+            label: "客户欠款",
+            prop: "corpDebt",
+            span: 8,
+            disabled: true
+          },
+          {
+            label: "总数量",
+            prop: "orderQuantity",
+            span: 8,
+            disabled: true
+          },
+          {
+            label: "应收金额",
+            prop: "debitAmount",
+            span: 8,
+            disabled: true
+          },
+          {
+            label: "总金额",
+            prop: "amount",
+            span: 8,
+            disabled: true
+          },
+          {
+            label: "制单人",
+            prop: "createUserName",
+            span: 8,
+            disabled: true
+          }
+        ]
+      },
+      dataList: [],
+      tableOption: {},
+      dialogVisible: false,
+      selectionList: [],
+      treeDeptId: null,
+      reData: null,
+      treeOption: {
+        nodeKey: "id",
+        lazy: true,
+        treeLoad: function(node, resolve) {
+          const parentId = node.level === 0 ? 0 : node.data.id;
+          getDeptLazyTree(parentId).then(res => {
+            resolve(
+              res.data.data.map(item => {
+                return {
+                  ...item,
+                  leaf: !item.hasChildren
+                };
+              })
+            );
+          });
+        },
+        addBtn: false,
+        menu: false,
+        size: "small",
+        props: {
+          label: "title",
+          value: "value",
+          children: "children"
+        }
+      },
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0
+      },
+      search: {},
+      goodsList: [],
+      loading: false,
+      goodsOption: {},
+      treeStyle: "height:" + (window.innerHeight - 315) + "px",
+      goodsoptions: [],
+      // 仓库配置
+      configurationWarehouse: {
+        multipleChoices: false,
+        multiple: false,
+        collapseTags: false,
+        placeholder: "请点击右边按钮选择",
+        dicData: []
+      },
+      uploadData: [],
+      goodData: [], // 存储所有商品信息
+      switchDialog: false, // 报表弹窗控制
+      userList: [],
+      activeName: "searchList",
+      // 商品列表数据合计
+      goodsListShow: [],
+      // 商品列表暂存
+      goodsListSave: [],
+      pageList: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0
+      },
+      applyPaymentList: [],
+      billType: "收费", //账单类型
+      billData: {}, //账单需要数据
+      applySettlementDialog: false, //生成账单组件
+      financialAccountDialog: false,
+      feesOption: [],
+      unitOption: [],
+      baseURL: "/api/blade-purchase-sales/orderitems/importDealerOrder",
+      headers: { "Blade-Auth": "Bearer " + getToken() },
+      uploadParam: {},
+      historyVisible: false,
+      historyParams: {},
+      oldForm: {},
+      oldDataList: [],
+      oldUploadData: [],
+      checkDisabled: false, // 审核状态
+      checker: false,
+      checkId: "",
+      batchNo: "",
+      checkDialog: false,
+      checkScheduleDialog: false,
+      checkData: {},
+      applicationDialog: false // 历史账单查看弹窗
+    };
+  },
+  async created() {
+    this.getWorkDicts("unit").then(res => {
+      this.unitOption = res.data.data;
+    });
+    this.tableOption = await this.getColumnData(
+      this.getColumnName(79),
+      tableOption
+    );
+    this.goodsOption = await this.getColumnData(
+      this.getColumnName(80),
+      goodsOption
+    );
+    getGoods(1, 10).then(res => {
+      if (res.data.data.total > 0) {
+        this.goodsoptions = res.data.data.records;
+        if (Math.ceil(res.data.data.total / 10) > 1) {
+          for (let i = 2; i <= Math.ceil(res.data.data.total / 10); i++) {
+            getGoods(i, 10).then(e => {
+              this.goodsoptions = this.goodsoptions.concat(e.data.data.records);
+            });
+          }
+        }
+      }
+    });
+    getUserInfo().then(res => {
+      this.$set(this.form, "createUserName", res.data.data.realName);
+      this.$set(this.form, "createUser", res.data.data.id);
+    });
+    gainUser().then(res => {
+      this.userList = res.data.data;
+    });
+    feeList().then(res => {
+      this.feesOption = res.data.data.records;
+    });
+    this.$set(this.form, "businesDate", getCurrentDate());
+    this.$set(this.form, "status", 0);
+    this.$set(this.form, "confirmStatus", 0);
+    if (this.detailData.query) {
+      this.disabled = true;
+      this.option.column.map(e => {
+        this.$set(e, "disabled", true);
+      });
+      this.queryData(this.detailData.id);
+    } else if (this.detailData.auditId) {
+      this.checker = true;
+      this.batchNo = this.detailData.check.batchNo;
+      this.queryData(this.detailData.id);
+    } else {
+      this.dataList = [
+        {
+          code: null,
+          cname: null,
+          typeno: null,
+          brandItem: null,
+          specsOne: null,
+          specsTwo: null,
+          unit: null,
+          storageQuantity: 0,
+          orderQuantity: 0,
+          size: null,
+          price: 0,
+          amount: 0,
+          $cellEdit: true
+        }
+      ];
+    }
+  },
+  filters: {
+    IntegerFormat(num) {
+      return IntegerFormat(num);
+    },
+    decimalFormat(num) {
+      return num ? Number(num).toFixed(2) : "0.00";
+    }
+  },
+  methods: {
+    // 查询
+    queryData(id) {
+      this.pageLoading = true;
+      dataDetail(id)
+        .then(res => {
+          this.form = res.data.data;
+          this.form.amount = Number(this.form.amount).toFixed(2);
+          if (this.form.storageId) {
+            this.uploadParam = {
+              storageId: this.form.storageId
+            };
+          }
+          this.confirmDisabled = this.form.confirmStatus == 3 ? true : false;
+          this.checkDisabled = this.form.status > 0 ? true : false;
+          if (this.confirmDisabled) {
+            // this.option.column.map(e => {
+            //   this.$set(e, 'disabled', true)
+            // })
+          }
+          this.dataList = this.form.orderItemsList
+            ? this.form.orderItemsList
+            : [];
+          this.uploadData = this.form.orderFilesList
+            ? this.form.orderFilesList
+            : [];
+          delete this.form.orderItemsList;
+          delete this.form.orderFilesList;
+          this.oldForm = { ...this.form };
+          this.oldDataList = [...this.dataList];
+          this.oldUploadData = [...this.uploadData];
+          this.dataList.forEach(async item => {
+            if (item.batch == 1) {
+              item.arr = await this.getLotNo({
+                itemId: item.itemId,
+                storageId: this.form.storageId,
+                tradeType: "JXS"
+              });
+            }
+          });
+        })
+        .finally(() => {
+          this.pageLoading = false;
+        });
+    },
+    cellStyle() {
+      return "padding:0;height:40px;";
+    },
+    openEdit() {
+      this.disabled = false;
+      this.option.column.map(e => {
+        if (this.confirmDisabled || this.checkDisabled) {
+          if (
+            e.prop == "businesDate" ||
+            e.prop == "sysNo" ||
+            e.prop == "orderNo"
+          ) {
+            this.$set(e, "disabled", true);
+          } else {
+            this.$set(e, "disabled", false);
+          }
+        } else {
+          this.$set(e, "disabled", false);
+        }
+      });
+    },
+    copyDoc() {
+      this.$emit("copyOrder", this.form.id);
+    },
+    getCorpData(row) {
+      KHDetail(row.id).then(res => {
+        if (res.data.data.belongtocompany) {
+          this.$set(this.form, "belongToCorpId", res.data.data.belongtocompany);
+        } else {
+          this.$set(this.form, "belongToCorpId", null);
+        }
+      });
+    },
+    getGSData(row) {},
+    //修改提交触发
+    editCustomer(status) {
+      this.$refs["form"].validate((valid, done) => {
+        done();
+        if (valid) {
+          for (let item in this.dataList) {
+            if (this.dataList[item].batch == 1 && !this.dataList[item].lotNo) {
+              return this.$message.error(
+                "第" + (Number(item) + 1) + "行明细批次号未填写"
+              );
+            }
+          }
+          // 总金额计算
+          let amount = 0;
+          this.dataList.forEach((item, index) => {
+            if (item.batch == 1 && !item.lotNo) {
+            }
+            amount = Number(amount) + Number(item.amount);
+          });
+          this.$set(this.form, "debitAmount", amount.toFixed(2));
+          this.$set(this.form, "amount", amount.toFixed(2));
+          this.form.billType = "XS";
+          this.$set(this.form, "orderItemsList", this.dataList);
+          this.$set(this.form, "orderFilesList", this.uploadData);
+          this.btnLoading = true;
+          typeSave(this.form)
+            .then(res => {
+              this.$message({
+                type: "success",
+                message: this.form.id ? "修改成功!" : "新增成功!"
+              });
+              this.queryData(res.data.data.id);
+            })
+            .finally(() => {
+              this.btnLoading = false;
+            });
+        } else {
+          return false;
+        }
+      });
+    },
+    //返回列表
+    backToList() {
+      this.$emit("goBack");
+    },
+    async saveColumn() {
+      const inSave = await this.saveColumnData(
+        this.getColumnName(79),
+        this.tableOption
+      );
+      if (inSave) {
+        this.$message.success("保存成功");
+        //关闭窗口
+        this.$refs.crud.$refs.dialogColumn.columnBox = false;
+        this.$nextTick(() => {
+          this.$refs.crud.doLayout();
+        });
+      }
+    },
+    async resetColumn() {
+      this.tableOption = tableOption;
+      const inSave = await this.delColumnData(
+        this.getColumnName(79),
+        tableOption
+      );
+      if (inSave) {
+        this.$nextTick(() => {
+          this.$refs.crud.doLayout();
+        });
+        this.$message.success("重置成功");
+        //关闭窗口
+        setTimeout(() => {
+          this.$refs.crud.$refs.dialogColumn.columnBox = false;
+        }, 1000);
+      }
+    },
+    //商品明细导入
+    newDetails() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.dialogVisible = !this.dialogVisible;
+        }
+      });
+    },
+    // 获得库存价
+    async getStockInfo(data) {
+      //tradeType JXS
+      //goodsId
+      //storageId
+      //lotNo 批次号
+      let form = {};
+      await getDetail(data).then(res => {
+        const a = res.data.data
+          ? res.data.data
+          : {
+              stock: 0,
+              balanceAmount: 0,
+              balanceQuantity: 0
+            };
+        this.$set(
+          form,
+          "purchaseAmount",
+          a.inQuantity
+            ? a.inQuantity == 0
+              ? 0
+              : (Number(a.inAmount) / Number(a.inQuantity)).toFixed(2)
+            : 0
+        );
+        this.$set(form, "stock", a.balanceQuantity);
+      });
+      return form;
+    },
+    // 获得批次号
+    async getLotNo(data) {
+      let arr = [];
+      await getLotNo(data).then(res => {
+        arr = res.data.data ? res.data.data : [];
+      });
+      return arr;
+    },
+    importGoods() {
+      let form = {};
+      if (this.reData) {
+        if (this.selectionList.length != 1) {
+          return this.$message.error("重新选择的时候只能选择一条数据");
+        } else {
+          this.selectionList.forEach(e => {
+            this.dataList.forEach(async (item, index) => {
+              if (index == this.reData.index) {
+                getMarketPrice({ code: e.code, isFreight: 0, isLabel: 0 }).then(
+                  response => {
+                    if (response.data.data.length > 0) {
+                      this.$set(e, "price", response.data.data[0].salePrice);
+                    } else {
+                      this.$set(e, "price", "0");
+                    }
+                  }
+                );
+                let historyData = await this.getHistoryData(e, 1); // 获得最新数据
+                if (historyData.length > 0) {
+                  e.newJob = historyData[0].price;
+                  e.newDate = historyData[0].businesDate;
+                } else {
+                  e.newJob = null;
+                  e.newDate = null;
+                }
+                if (e.batch == 0) {
+                  form = await this.getStockInfo({
+                    tradeType: "JXS",
+                    goodsId: e.id,
+                    storageId: this.form.storageId
+                  });
+                  item.storageQuantity = form.stock;
+                  item.purchaseAmount = form.purchaseAmount;
+                } else {
+                  item.storageQuantity = 0;
+                  item.purchaseAmount = 0;
+                  item.arr = await this.getLotNo({
+                    itemId: e.id,
+                    storageId: this.form.storageId,
+                    tradeType: "JXS"
+                  });
+                }
+                item.itemId = e.id;
+                item.code = e.code;
+                item.cname = e.cname;
+                item.corpId = e.corpId;
+                item.corpName = e.corpName;
+                item.brandItem = e.brandItem;
+                item.specsOne = e.specsOne;
+                item.specsTwo = e.specsTwo;
+                item.typeno = e.typeno;
+                item.unit = e.unit;
+                item.size = e.size;
+                item.priceCategory = e.goodsTypeName;
+                item.purchaseAmount = e.purchaseAmount;
+                item.batch = e.batch;
+                item.newDate = e.newDate;
+                item.newJob = e.newJob;
+                item.price = e.price;
+                item.$cellEdit = true;
+              }
+            });
+          });
+        }
+      } else {
+        if (this.goodsListSave.length > 0) {
+          // 暂存的有数据
+          this.goodsListSave.forEach(async e => {
+            getMarketPrice({ code: e.code, isFreight: 0, isLabel: 0 }).then(
+              response => {
+                if (response.data.data.length > 0) {
+                  this.$set(e, "price", response.data.data[0].salePrice);
+                } else {
+                  this.$set(e, "price", "0");
+                }
+              }
+            );
+            let historyData = await this.getHistoryData(e, 1); // 获得最新数据
+            if (historyData.length > 0) {
+              e.newJob = historyData[0].price;
+              e.newDate = historyData[0].businesDate;
+            } else {
+              e.newJob = null;
+              e.newDate = null;
+            }
+            if (e.batch == 0) {
+              form = await this.getStockInfo({
+                tradeType: "JXS",
+                goodsId: e.id,
+                storageId: this.form.storageId
+              });
+              e.storageQuantity = form.stock;
+              e.purchaseAmount = form.purchaseAmount;
+              e.arr = [];
+            } else {
+              e.storageQuantity = 0;
+              e.purchaseAmount = 0;
+              e.arr = await this.getLotNo({
+                itemId: e.id,
+                storageId: this.form.storageId,
+                tradeType: "JXS"
+              });
+            }
+            this.dataList.push({
+              itemId: e.id,
+              code: e.code,
+              cname: e.cname,
+              brandItem: e.brandItem,
+              specsOne: e.specsOne,
+              specsTwo: e.specsTwo,
+              typeno: e.typeno,
+              corpId: e.corpId,
+              corpName: e.corpName,
+              unit: e.unit,
+              size: e.size,
+              price: e.price,
+              amount: 0,
+              orderQuantity: 0,
+              storageQuantity: e.storageQuantity,
+              purchaseAmount: e.purchaseAmount,
+              batch: e.batch,
+              arr: e.arr,
+              newJob: e.newJob,
+              newDate: e.newDate,
+              $cellEdit: true
+            });
+          });
+        } else {
+          this.selectionList.forEach(async e => {
+            getMarketPrice({ code: e.code, isFreight: 0, isLabel: 0 }).then(
+              response => {
+                if (response.data.data.length > 0) {
+                  this.$set(e, "price", response.data.data[0].salePrice);
+                } else {
+                  this.$set(e, "price", "0");
+                }
+              }
+            );
+            let historyData = await this.getHistoryData(e, 1); // 获得最新数据
+            if (historyData.length > 0) {
+              e.newJob = historyData[0].price;
+              e.newDate = historyData[0].businesDate;
+            } else {
+              e.newJob = null;
+              e.newDate = null;
+            }
+            if (e.batch == 0) {
+              form = await this.getStockInfo({
+                tradeType: "JXS",
+                goodsId: e.id,
+                storageId: this.form.storageId
+              });
+              e.storageQuantity = form.stock;
+              e.purchaseAmount = form.purchaseAmount;
+              e.arr = [];
+            } else {
+              e.storageQuantity = 0;
+              e.purchaseAmount = 0;
+              e.arr = await this.getLotNo({
+                itemId: e.id,
+                storageId: this.form.storageId,
+                tradeType: "JXS"
+              });
+            }
+            this.dataList.push({
+              itemId: e.id,
+              code: e.code,
+              cname: e.cname,
+              brandItem: e.brandItem,
+              specsOne: e.specsOne,
+              specsTwo: e.specsTwo,
+              typeno: e.typeno,
+              corpId: e.corpId,
+              corpName: e.corpName,
+              unit: e.unit,
+              size: e.size,
+              amount: 0,
+              orderQuantity: 0,
+              storageQuantity: e.storageQuantity,
+              purchaseAmount: e.purchaseAmount,
+              batch: e.batch,
+              arr: e.arr,
+              newJob: e.newJob,
+              newDate: e.newDate,
+              price: e.price,
+              $cellEdit: true
+            });
+          });
+        }
+      }
+      this.dialogVisible = false;
+    },
+    closeGoods() {
+      this.selectionList = [];
+      this.treeDeptId = "";
+      this.reData = null;
+      this.activeName = "searchList";
+      this.goodsListSave = [];
+    },
+    nodeClick(data) {
+      this.treeDeptId = data.id;
+      this.page.currentPage = 1;
+      this.onLoad(this.page);
+    },
+    //商品查询
+    onLoad(page, params = {}) {
+      let obj = this.deepClone(Object.assign(params, this.search));
+      this.loading = true;
+      getGoods(page.currentPage, page.pageSize, this.treeDeptId, obj)
+        .then(res => {
+          const data = res.data.data;
+          this.page.total = data.total;
+          this.goodsList = data.records;
+          this.pageList.total = data.total;
+          this.goodsListShow = data.records;
+          if (this.page.total) {
+            this.goodsOption.height = window.innerHeight - 350;
+          }
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    searchChange(params, done) {
+      this.search = this.deepClone(params);
+      this.onLoad(this.page, params);
+      done();
+    },
+    selectionChange(list) {
+      this.selectionList = list;
+    },
+    rowClick(row) {
+      this.$refs.goodsCrud.toggleSelection([this.goodsList[row.$index]]);
+    },
+    async saveGoodsColumn() {
+      const inSave = await this.saveColumnData(
+        this.getColumnName(80),
+        this.goodsOption
+      );
+      if (inSave) {
+        this.$message.success("保存成功");
+        //关闭窗口
+        this.$refs.goodsCrud.$refs.dialogColumn.columnBox = false;
+        this.$nextTick(() => {
+          this.$refs.goodsCrud.doLayout();
+        });
+      }
+    },
+    async resetGoodsColumn() {
+      this.goodsOption = goodsOption;
+      const inSave = await this.delColumnData(
+        this.getColumnName(80),
+        goodsOption
+      );
+      if (inSave) {
+        this.$nextTick(() => {
+          this.$refs.goodsCrud.doLayout();
+        });
+        this.$message.success("重置成功");
+        //关闭窗口
+        setTimeout(() => {
+          this.$refs.goodsCrud.$refs.dialogColumn.columnBox = false;
+        }, 1000);
+      }
+    },
+    // 报表
+    openReport() {
+      this.switchDialog = !this.switchDialog;
+    },
+    // 报表关闭
+    onClose(val) {
+      this.switchDialog = val;
+    },
+    rowCell(row, index) {
+      if (row.$cellEdit == true) {
+        this.$set(row, "$cellEdit", false);
+      } else {
+        this.$set(row, "$cellEdit", true);
+      }
+    },
+    rowDel(row, index) {
+      this.$confirm("确定删除数据?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        if (row.id) {
+          removeGoods(row.id).then(res => {
+            this.$message({
+              type: "success",
+              message: "删除成功!"
+            });
+            this.dataList.splice(row.$index, 1);
+          });
+        } else {
+          this.$message({
+            type: "success",
+            message: "删除成功!"
+          });
+          this.dataList.splice(row.$index, 1);
+        }
+      });
+    },
+    codeChange(row) {
+      let form = {};
+      this.goodsoptions.forEach(async e => {
+        if (e.code == row.code) {
+          getMarketPrice({ code: e.code, isFreight: 0, isLabel: 0 }).then(
+            response => {
+              if (response.data.data.length > 0) {
+                this.$set(e, "price", response.data.data[0].salePrice);
+              } else {
+                this.$set(e, "price", "0");
+              }
+              this.$set(
+                row,
+                "amount",
+                (Number(e.price) * Number(row.orderQuantity)).toFixed(2)
+              );
+            }
+          );
+          let historyData = await this.getHistoryData(e, 1); // 获得最新数据
+          if (historyData.length > 0) {
+            e.newJob = historyData[0].price;
+            e.newDate = historyData[0].businesDate;
+          } else {
+            e.newJob = null;
+            e.newDate = null;
+          }
+          if (e.batch == 0) {
+            form = await this.getStockInfo({
+              tradeType: "JXS",
+              goodsId: e.id,
+              storageId: this.form.storageId
+            });
+            e.storageQuantity = form.stock;
+            e.purchaseAmount = form.purchaseAmount;
+            e.arr = [];
+          } else {
+            e.storageQuantity = 0;
+            e.purchaseAmount = 0;
+            e.arr = await this.getLotNo({
+              itemId: e.id,
+              storageId: this.form.storageId,
+              tradeType: "JXS"
+            });
+          }
+          row.itemId = e.id;
+          row.storageQuantity = e.storageQuantity;
+          row.cname = e.cname;
+          row.code = e.code;
+          row.corpId = e.corpId;
+          row.corpName = e.corpName;
+          row.brandItem = e.brandItem;
+          row.specsOne = e.specsOne;
+          row.specsTwo = e.specsTwo;
+          row.typeno = e.typeno;
+          row.unit = e.unit;
+          row.size = e.size;
+          row.arr = e.arr;
+          row.priceCategory = e.goodsTypeName;
+          row.purchaseAmount = e.purchaseAmount;
+          row.batch = e.batch;
+          row.newJob = e.newJob;
+          row.newDate = e.newDate;
+          row.price = e.price;
+        }
+      });
+    },
+    cnameChange(row) {
+      let form = {};
+      this.goodsoptions.forEach(async e => {
+        if (e.id == row.itemId) {
+          getMarketPrice({ code: e.code, isFreight: 0, isLabel: 0 }).then(
+            response => {
+              if (response.data.data.length > 0) {
+                this.$set(e, "price", response.data.data[0].salePrice);
+              } else {
+                this.$set(e, "price", "0");
+              }
+              this.$set(
+                row,
+                "amount",
+                (Number(e.price) * Number(row.orderQuantity)).toFixed(2)
+              );
+            }
+          );
+          let historyData = await this.getHistoryData(e, 1); // 获得最新数据
+          if (historyData.length > 0) {
+            e.newJob = historyData[0].price;
+            e.newDate = historyData[0].businesDate;
+          } else {
+            e.newJob = null;
+            e.newDate = null;
+          }
+          if (e.batch == 0) {
+            form = await this.getStockInfo({
+              tradeType: "JXS",
+              goodsId: e.id,
+              storageId: this.form.storageId
+            });
+            e.storageQuantity = form.stock;
+            e.purchaseAmount = form.purchaseAmount;
+            e.arr = [];
+          } else {
+            e.storageQuantity = 0;
+            e.purchaseAmount = 0;
+            e.arr = await this.getLotNo({
+              itemId: e.id,
+              storageId: this.form.storageId,
+              tradeType: "JXS"
+            });
+          }
+          row.storageQuantity = e.storageQuantity;
+          row.cname = e.cname;
+          row.code = e.code;
+          row.corpId = e.corpId;
+          row.corpName = e.corpName;
+          row.brandItem = e.brandItem;
+          row.specsOne = e.specsOne;
+          row.specsTwo = e.specsTwo;
+          row.typeno = e.typeno;
+          row.unit = e.unit;
+          row.size = e.size;
+          row.arr = e.arr;
+          row.priceCategory = e.goodsTypeName;
+          row.purchaseAmount = e.purchaseAmount;
+          row.batch = e.batch;
+          row.newDate = e.newDate;
+          row.newJob = e.newJob;
+          row.price = e.price;
+        }
+      });
+    },
+    rePick(row, index) {
+      this.reData = {
+        ...row,
+        index: index
+      };
+      this.newDetails();
+    },
+    // 商品信息价格计算
+    amountChange(row) {
+      if (!row.orderQuantity) {
+        row.orderQuantity = 0;
+      }
+      if (!row.price) {
+        row.price = 0;
+      }
+      row.amount = Number(row.price) * Number(row.orderQuantity);
+    },
+    // 标签页切换
+    tabHandle(data) {
+      if (data.name == "searchList") {
+        this.goodsListShow = this.goodsList;
+        this.page.total = this.pageList.total;
+      } else if (data.name == "importStaging") {
+        this.goodsListShow = this.goodsListSave;
+        this.page.total = 0;
+      }
+    },
+    removeStagList(row, index) {
+      this.goodsListSave.splice(row.$index, 1);
+    },
+    importStagList(row, index) {
+      this.goodsListSave.push(row);
+    },
+    // 生成结算
+    applySettlement(type) {
+      this.beforeBillData(true, type);
+      this.financialAccountDialog = true;
+    },
+    //生成账单 拿到主表信息
+    beforeBillData(bool, type) {
+      this.billType = type;
+      this.applyPaymentList = [];
+      this.dataList.map(e => {
+        const form = {
+          srcOrderno: this.form.orgOrderNo,
+          srcParentId: this.form.id,
+          itemType: "销售",
+          corpsName: this.form.corpName,
+          corpId: this.form.corpId,
+          currency: "CNY",
+          exchangeRate: "1",
+          taxRate: "0",
+          accDate: this.form.businesDate,
+          srcType: 1,
+          chargeMember: this.form.chargeMember,
+          parentId: this.form.id,
+          tradeType: "JXS",
+          optionType: "JXS",
+          amount: e.amount,
+          costType: this.feesOption.find(item => item.cname == "货款")
+            ? this.feesOption.find(item => item.cname == "货款").id
+            : null,
+          srcFeesId: e.id,
+          goodName: e.cname,
+          price: e.price,
+          quantity: e.orderQuantity,
+          unit: e.unit
+        };
+        this.applyPaymentList.push(form);
+      });
+    },
+    //关闭账单
+    choceFun() {
+      this.financialAccountDialog = false;
+    },
+    // 批次号选择
+    async lotNoChange(row) {
+      if (row.lotNo) {
+        const form = await this.getStockInfo({
+          tradeType: "JXS",
+          goodsId: row.itemId,
+          storageId: this.form.storageId,
+          lotNo: row.lotNo
+        });
+        row.storageQuantity = form.stock;
+        row.purchaseAmount = form.purchaseAmount;
+      } else {
+        row.storageQuantity = 0;
+        row.purchaseAmount = 0;
+      }
+    },
+    // 确认或者取消订单
+    dealerSubmit() {
+      if (this.verification()) {
+        let dealer;
+        if (this.form.confirmStatus == 0) {
+          dealer = 1;
+        } else if (this.form.confirmStatus == 3) {
+          dealer = 2;
+        }
+        this.btnLoading = true;
+        dealerSubmit({
+          id: this.form.id,
+          dealer
+        })
+          .then(res => {
+            if (res.data.code == 200) {
+              this.$message.success("操作成功");
+              this.queryData(this.form.id);
+            } else {
+              this.$message.error(res.data.msg);
+            }
+          })
+          .finally(() => {
+            this.btnLoading = false;
+          });
+      }
+    },
+    // 下载模板
+    downloadHandle() {
+      this.$confirm("是否下载模板文件?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      })
+        .then(() => {
+          window.open(
+            `/api/blade-purchase-sales/orderitems/exportDealerOrder?${
+              this.website.tokenHeader
+            }=${getToken()}`
+          );
+        })
+        .catch(() => {
+          this.$message({
+            type: "info",
+            message: "已取消"
+          });
+        });
+    },
+    //文件上传时
+    uploading(event, file, fileList) {
+      this.openFullScreen(false, "文件正在解析中");
+    },
+    importTemplate(res, file) {
+      this.openFullScreen(true);
+      res.data.forEach(item => {});
+      this.dataList = this.dataList.concat(res.data);
+    },
+    uploadError(err, file, fileList) {
+      this.openFullScreen(true);
+      this.$message.error(JSON.parse(err.message).msg);
+    },
+    //遮罩层
+    openFullScreen(res, text) {
+      const loading = this.$loading({
+        lock: true,
+        text: text,
+        spinner: "el-icon-loading",
+        background: "rgba(0, 0, 0, 0.7)"
+      });
+      if (res === true) loading.close();
+    },
+    // 仓库选择
+    storageChange(value) {
+      if (this.form.storageId) {
+        this.uploadParam = {
+          storageId: value
+        };
+      }
+    },
+    // 获得历史数据
+    async getHistoryData(row, typeId = null) {
+      let data;
+      const params = {
+        typeId,
+        tradeType: "JXS",
+        billType: "XS",
+        itemId: row.id
+      };
+      await historyPrice(params).then(res => {
+        data = res.data.data ? res.data.data : [];
+      });
+      return data;
+    },
+    openHistory(row) {
+      this.historyParams = {
+        tradeType: "JXS",
+        billType: "XS",
+        itemId: row.itemId
+      };
+      this.historyVisible = true;
+      this.$nextTick(() => {
+        this.$refs.history.init();
+      });
+    },
+    closeDialog() {
+      this.historyVisible = false;
+    },
+    // 销售金额获取
+    async getMarketPrice(row) {
+      await getMarketPrice({ code: row.code }).then(res => {
+        this.salesPriceOtion = res.data.data;
+      });
+    },
+    // 验证新旧值对比
+    verification() {
+      if (
+        contrastObj(this.form, this.oldForm) ||
+        contrastList(this.dataList, this.oldDataList) ||
+        contrastList(this.uploadData, this.oldUploadData)
+      ) {
+        this.$confirm("数据发生变化未有提交记录, 是否提交?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        })
+          .then(() => {
+            this.editCustomer();
+          })
+          .catch(() => {
+            return false; //取消改动数据
+          });
+      } else {
+        return true;
+      }
+    },
+    // 请核
+    pleaseCheck() {
+      if (this.verification()) {
+        const data = {
+          id: this.form.id,
+          checkType: "xsqh",
+          url: "/dealer/sales/index",
+          pageStatus: "this.$store.getters.dealerSaleStatus",
+          pageLabel: "销售订单(D)",
+          checkFlag: 2
+        };
+        this.btnLoading = true;
+        pleaseCheck(data)
+          .then(res => {
+            this.$message.success("请核成功");
+            this.queryData(this.form.id);
+          })
+          .catch(() => {
+            this.$message.error("请核失败");
+          })
+          .finally(() => {
+            this.btnLoading = false;
+          });
+      }
+    },
+    repealCancel() {
+      this.$confirm("您确定撤回此次申请吗?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        const data = {
+          id: this.form.id,
+          checkType: "xsqh",
+          pageLabel: "销售订单(D)",
+          checkFlag: 2
+        };
+        this.pageLoading = true;
+        repealCancel(data)
+          .then(res => {
+            this.$message.success("撤回成功");
+            this.queryData(this.form.id);
+          })
+          .finally(() => {
+            this.pageLoading = false;
+          });
+      });
+    },
+    //打开审核
+    openCheckDialog() {
+      this.checkData = this.detailData.check;
+      this.checkDialog = true;
+    },
+    //关闭审核
+    choceCheckFun() {
+      this.checkDialog = false;
+    },
+    choceScheduleFun() {
+      this.checkScheduleDialog = false;
+    },
+    // 查看申请记录
+    openApplicationDialog() {
+      this.applicationDialog = true;
+    },
+    //关闭记录
+    choceApplication() {
+      this.applicationDialog = false;
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.trading-form ::v-deep .el-form-item {
+  margin-bottom: 8px !important;
+}
+::v-deep .el-form-item__error {
+  display: none !important;
+}
+::v-deep .select-component {
+  display: flex !important;
+}
+</style>

+ 92 - 119
src/views/dealer/sales/detail.vue

@@ -178,7 +178,7 @@
     </div>
     <!--    商品弹窗-->
     <el-dialog title="导入商品" append-to-body class="el-dialogDeep" :visible.sync="dialogVisible" width="80%"
-      :close-on-click-modal="false" :destroy-on-close="true" :close-on-press-escape="false" @close="closeGoods"
+      :close-on-click-modal="false" :destroy-on-close="true" :close-on-press-escape="false" @closed="closeGoods"
       top="5vh" v-dialog-drag>
       <span>
         <el-row>
@@ -832,6 +832,31 @@ export default {
       });
       return form;
     },
+    getStockInfo2(data) {
+      //tradeType JXS
+      //goodsId
+      //storageId
+      //lotNo 批次号
+      let form = {};
+      const a = data
+        ? data
+        : {
+          stock: 0,
+          balanceAmount: 0,
+          balanceQuantity: 0
+        };
+      this.$set(
+        form,
+        "purchaseAmount",
+        a.inQuantity
+          ? a.inQuantity == 0
+            ? 0
+            : (Number(a.inAmount) / Number(a.inQuantity)).toFixed(2)
+          : 0
+      );
+      this.$set(form, "stock", a.balanceQuantity);
+      return form;
+    },
     // 获得批次号
     async getLotNo(data) {
       let arr = [];
@@ -849,7 +874,6 @@ export default {
           this.selectionList.forEach(e => {
             this.dataList.forEach(async (item, index) => {
               if (index == this.reData.index) {
-                salesOrderEntry({ code: e.code, isFreight: 0, isLabel: 0, itemId: e.id, billType: "XS", tradeType: "JXS", storageId: this.form.storageId, stockGoods: { id: e.id, storageId: this.form.storageId, } })
                 getMarketPrice({ code: e.code, isFreight: 0, isLabel: 0 }).then(
                   response => {
                     if (response.data.data.length > 0) {
@@ -908,130 +932,79 @@ export default {
         }
       } else {
         if (this.goodsListSave.length > 0) {
-          // 暂存的有数据
-          this.goodsListSave.forEach(async e => {
-             salesOrderEntry({ code: e.code, isFreight: 0, isLabel: 0, itemId: e.id, billType: "XS", tradeType: "JXS", storageId: this.form.storageId, stockGoods: { id: e.id, storageId: this.form.storageId, } })
-            getMarketPrice({ code: e.code, isFreight: 0, isLabel: 0 }).then(
-              response => {
-                if (response.data.data.length > 0) {
-                  this.$set(e, "price", response.data.data[0].salePrice);
-                } else {
-                  this.$set(e, "price", "0");
-                }
-              }
-            );
-            let historyData = await this.getHistoryData(e, 1); // 获得最新数据
-            if (historyData.length > 0) {
-              e.newJob = historyData[0].price;
-              e.newDate = historyData[0].businesDate;
-            } else {
-              e.newJob = null;
-              e.newDate = null;
-            }
-            if (e.batch == 0) {
-              form = await this.getStockInfo({
-                tradeType: "JXS",
-                goodsId: e.id,
-                storageId: this.form.storageId
-              });
-              e.storageQuantity = form.stock;
-              e.purchaseAmount = form.purchaseAmount;
-              e.arr = [];
-            } else {
-              e.storageQuantity = 0;
-              e.purchaseAmount = 0;
-              e.arr = await this.getLotNo({
+          let goodsList = []
+          let arr = []
+          arr = this.goodsListSave
+          this.goodsListSave.forEach(e => {
+            goodsList.push({
+              code: e.code,
+              itemId: e.id
+            })
+          });
+          salesOrderEntry({ typeId: 1, isFreight: 0, isLabel: 0, billType: "XS", tradeType: "JXS", storageId: this.form.storageId, salesOrderEntry: goodsList }).then(res => {
+            let data = res.data.data
+            arr.forEach((e, index) => {
+              this.dataList.push({
+                price: data[index].salePrice.length > 0 ? data[index].salePrice[0].salePrice : 0,
+                newJob: data[index].historicalProcurement.length > 0 ? data[index].historicalProcurement[0].price : null,
+                newDate: data[index].historicalProcurement.length > 0 ? data[index].historicalProcurement[0].businesDate : null,
+                storageQuantity: e.batch == 0 ? (data[index].stockGoodsDetail ? this.getStockInfo2(data[index].stockGoodsDetail).stock : 0) : 0,
+                purchaseAmount: e.batch == 0 ? (data[index].stockGoodsDetail ? this.getStockInfo2(data[index].stockGoodsDetail).purchaseAmount : 0) : 0,
+                arr: e.batch != 0 ? data[index].goodsBatch : null,
                 itemId: e.id,
-                storageId: this.form.storageId,
-                tradeType: "JXS"
+                code: e.code,
+                cname: e.cname,
+                corpId: e.corpId,
+                corpName: e.corpName,
+                brandItem: e.brandItem,
+                specsOne: e.specsOne,
+                specsTwo: e.specsTwo,
+                typeno: e.typeno,
+                unit: e.unit,
+                size: e.size,
+                priceCategory: e.goodsTypeName,
+                batch: e.batch,
+                $cellEdit: true
               });
-            }
-            this.dataList.push({
-              itemId: e.id,
-              code: e.code,
-              cname: e.cname,
-              brandItem: e.brandItem,
-              specsOne: e.specsOne,
-              specsTwo: e.specsTwo,
-              typeno: e.typeno,
-              corpId: e.corpId,
-              corpName: e.corpName,
-              unit: e.unit,
-              size: e.size,
-              price: e.price,
-              amount: 0,
-              orderQuantity: 0,
-              storageQuantity: e.storageQuantity,
-              purchaseAmount: e.purchaseAmount,
-              batch: e.batch,
-              arr: e.arr,
-              newJob: e.newJob,
-              newDate: e.newDate,
-              $cellEdit: true
             });
-          });
+          })
         } else {
-          this.selectionList.forEach(async e => {
-            salesOrderEntry({ code: e.code, isFreight: 0, isLabel: 0, itemId: e.id, billType: "XS", tradeType: "JXS", storageId: this.form.storageId, stockGoods: { id: e.id, storageId: this.form.storageId, } })
-            getMarketPrice({ code: e.code, isFreight: 0, isLabel: 0 }).then(
-              response => {
-                if (response.data.data.length > 0) {
-                  this.$set(e, "price", response.data.data[0].salePrice);
-                } else {
-                  this.$set(e, "price", "0");
-                }
-              }
-            );
-            let historyData = await this.getHistoryData(e, 1); // 获得最新数据
-            if (historyData.length > 0) {
-              e.newJob = historyData[0].price;
-              e.newDate = historyData[0].businesDate;
-            } else {
-              e.newJob = null;
-              e.newDate = null;
-            }
-            if (e.batch == 0) {
-              form = await this.getStockInfo({
-                tradeType: "JXS",
-                goodsId: e.id,
-                storageId: this.form.storageId
-              });
-              e.storageQuantity = form.stock;
-              e.purchaseAmount = form.purchaseAmount;
-              e.arr = [];
-            } else {
-              e.storageQuantity = 0;
-              e.purchaseAmount = 0;
-              e.arr = await this.getLotNo({
+          let goodsList = []
+          let arr = []
+          arr = this.selectionList
+          this.selectionList.forEach(e => {
+            goodsList.push({
+              code: e.code,
+              itemId: e.id
+            })
+          });
+          salesOrderEntry({ typeId: 1, isFreight: 0, isLabel: 0, billType: "XS", tradeType: "JXS", storageId: this.form.storageId, salesOrderEntry: goodsList }).then(res => {
+            let data = res.data.data
+            arr.forEach((e, index) => {
+              this.dataList.push({
+                price: data[index].salePrice.length > 0 ? data[index].salePrice[0].salePrice : 0,
+                newJob: data[index].historicalProcurement.length > 0 ? data[index].historicalProcurement[0].price : null,
+                newDate: data[index].historicalProcurement.length > 0 ? data[index].historicalProcurement[0].businesDate : null,
+                storageQuantity: e.batch == 0 ? (data[index].stockGoodsDetail ? this.getStockInfo2(data[index].stockGoodsDetail).stock : 0) : 0,
+                purchaseAmount: e.batch == 0 ? (data[index].stockGoodsDetail ? this.getStockInfo2(data[index].stockGoodsDetail).purchaseAmount : 0) : 0,
+                arr: e.batch != 0 ? data[index].goodsBatch : null,
                 itemId: e.id,
-                storageId: this.form.storageId,
-                tradeType: "JXS"
+                code: e.code,
+                cname: e.cname,
+                corpId: e.corpId,
+                corpName: e.corpName,
+                brandItem: e.brandItem,
+                specsOne: e.specsOne,
+                specsTwo: e.specsTwo,
+                typeno: e.typeno,
+                unit: e.unit,
+                size: e.size,
+                priceCategory: e.goodsTypeName,
+                batch: e.batch,
+                $cellEdit: true
               });
-            }
-            this.dataList.push({
-              itemId: e.id,
-              code: e.code,
-              cname: e.cname,
-              brandItem: e.brandItem,
-              specsOne: e.specsOne,
-              specsTwo: e.specsTwo,
-              typeno: e.typeno,
-              corpId: e.corpId,
-              corpName: e.corpName,
-              unit: e.unit,
-              size: e.size,
-              amount: 0,
-              orderQuantity: 0,
-              storageQuantity: e.storageQuantity,
-              purchaseAmount: e.purchaseAmount,
-              batch: e.batch,
-              arr: e.arr,
-              newJob: e.newJob,
-              newDate: e.newDate,
-              price: e.price,
-              $cellEdit: true
             });
-          });
+          })
         }
       }
       this.dialogVisible = false;

+ 10 - 1
src/views/warehousing/goodsTransfer/detailsPage.vue

@@ -21,8 +21,15 @@
           <template slot-scope="{}" slot="corpidLabel">
             <span style="color: #409EFF;cursor: pointer" @click.stop="khEdit">客户名称:</span>
           </template>
+          <template slot-scope="{row,index}" slot="corpid">
+            <warehous-Kh v-model="form.corpid"></warehous-Kh>
+          </template>
+          <template slot-scope="{row,index}" slot="tocorpid">
+            <warehous-Kh v-model="form.tocorpid"></warehous-Kh>
+          </template>
         </avue-form>
       </trade-card>
+      <box-volume :data="[]" />
       <trade-card title="货转明细">
         <avue-crud ref="crud" :data="data" :option="tableOption" @row-del="rowDel" @saveColumn="saveColumn"
           @resetColumn="resetColumn" :cell-style="cellStyle">
@@ -40,6 +47,7 @@ import tableOption from "./config/customerContact.json";
 import collection from "@/components/collection/main";
 import payment from "@/components/payment/main";
 import annex from "@/components/annex/main";
+import boxVolume from "@/components/boxVolume/main";
 export default {
   name: "detailsPageEdit",
   data() {
@@ -152,7 +160,8 @@ export default {
   components: {
     collection,
     payment,
-    annex
+    annex,
+    boxVolume
   },
   async created() {
     if (this.detailData.id) {

+ 7 - 1
src/views/warehousing/inStock/detailsPage.vue

@@ -21,8 +21,12 @@
           <template slot-scope="{}" slot="corpidLabel">
             <span style="color: #409EFF;cursor: pointer" @click.stop="khEdit">客户名称:</span>
           </template>
+          <template slot-scope="{row,index}" slot="corpid">
+            <warehous-Kh v-model="form.corpid"></warehous-Kh>
+          </template>
         </avue-form>
       </trade-card>
+      <box-volume :data="[]" />
       <trade-card title="更多信息" :show="false">
         <avue-form class="trading-form" v-model="form" :option="option2">
         </avue-form>
@@ -44,6 +48,7 @@ import tableOption from "./config/customerContact.json";
 import collection from "@/components/collection/main";
 import payment from "@/components/payment/main";
 import annex from "@/components/annex/main";
+import boxVolume from "@/components/boxVolume/main";
 export default {
   name: "detailsPageEdit",
   data() {
@@ -315,7 +320,8 @@ export default {
   components: {
     collection,
     payment,
-    annex
+    annex,
+    boxVolume
   },
   async created() {
     if (this.detailData.id) {

+ 7 - 1
src/views/warehousing/outStock/detailsPage.vue

@@ -21,8 +21,12 @@
           <template slot-scope="{}" slot="corpidLabel">
             <span style="color: #409EFF;cursor: pointer" @click.stop="khEdit">客户名称:</span>
           </template>
+          <template slot-scope="{row,index}" slot="corpid">
+            <warehous-Kh v-model="form.corpid"></warehous-Kh>
+          </template>
         </avue-form>
       </trade-card>
+      <box-volume :data="[]" />
       <trade-card title="更多信息" :show="false">
         <avue-form ref="form2" class="trading-form" v-model="form" :option="option2">
         </avue-form>
@@ -45,6 +49,7 @@ import tableOption from "./config/customerContact.json";
 import collection from "@/components/collection/main";
 import payment from "@/components/payment/main";
 import annex from "@/components/annex/main";
+import boxVolume from "@/components/boxVolume/main";
 export default {
   name: "detailsPageEdit",
   data() {
@@ -195,7 +200,8 @@ export default {
   components: {
     collection,
     payment,
-    annex
+    annex,
+    boxVolume
   },
   async created() {
     if (this.detailData.id) {

+ 7 - 1
src/views/warehousing/stockTransfer/detailsPage.vue

@@ -21,8 +21,12 @@
           <template slot-scope="{}" slot="corpidLabel">
             <span style="color: #409EFF;cursor: pointer" @click.stop="khEdit">客户名称:</span>
           </template>
+          <template slot-scope="{row,index}" slot="corpid">
+            <warehous-Kh v-model="form.corpid"></warehous-Kh>
+          </template>
         </avue-form>
       </trade-card>
+      <box-volume :data="[]" />
       <trade-card title="更多信息" :show="false">
         <avue-form ref="form2" class="trading-form" v-model="form" :option="option2">
         </avue-form>
@@ -44,6 +48,7 @@ import tableOption from "./config/customerContact.json";
 import collection from "@/components/collection/main";
 import payment from "@/components/payment/main";
 import annex from "@/components/annex/main";
+import boxVolume from "@/components/boxVolume/main";
 export default {
   name: "detailsPageEdit",
   data() {
@@ -193,7 +198,8 @@ export default {
   components: {
     collection,
     payment,
-    annex
+    annex,
+    boxVolume
   },
   async created() {
     if (this.detailData.id) {