Browse Source

修改bug

Qukatie 3 years ago
parent
commit
8a6b52982b

+ 7 - 0
src/api/basicData/product.js

@@ -49,6 +49,13 @@ export const getStoragetype = (data) => {
         params: data
     })
 }
+export const getStoragelist = (data) => {
+    return request({
+        url: '/api/blade-client/storagedesc/storage/list',
+        method: 'get',
+        params: data
+    })
+}
 export const remove = (data) => {
     return request({
         url: '/api/blade-client/goodsDescParts/delete',

+ 6 - 0
src/enums/column-name.js

@@ -890,6 +890,12 @@ const columnName = [{
   code: 210,
   name: '供应商(Y)-明细表'
 }, {
+  code: 210.4,
+  name: '供应商(Y)-明细表2'
+}, {
+  code: 210.1,
+  name: '供应商(Y)-采购记录'
+}, {
   code: 211,
   name: '销售单(Y)-列表页'
 }, {

+ 13 - 0
src/router/views/index.js

@@ -2038,5 +2038,18 @@ export default [{
     },
     component: () => import( /* webpackChunkName: "views" */ '@/views/statisticAnalysis/brandProfit/index')
   }]
+}, {
+  path: '/supplier/index',
+  component: Layout,
+  hidden: true,
+  children: [{
+    path: '/supplier/index',
+    name: '供应商(Y)',
+    meta: {
+      i18n: '/supplier/index',
+      keepAlive: true,
+    },
+    component: () => import( /* webpackChunkName: "views" */ '@/views/supplier/index')
+  }]
 }
 ]

+ 83 - 73
src/views/client/detailsInfo.vue

@@ -90,6 +90,14 @@
                             <el-button size="mini">送货
                             </el-button>
                         </template>
+                        <template slot="corpIdSearch">
+                            <crop-select v-model="search.corpId" corpType="KH"></crop-select>
+                        </template>
+                        <template slot-scope="{ row, index }" slot="corpId">
+                            <span style="color: #409EFF;cursor: pointer" @click.stop="editOpen(row, 2)">{{ row.corpsName
+                            }}
+                            </span>
+                        </template>
                         <template slot="businesDateSearch">
                             <el-date-picker v-model="search.businesDate" type="daterange" start-placeholder="开始日期"
                                 end-placeholder="结束日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss"
@@ -148,7 +156,7 @@
   
 <script>
 import { optionList, sellOption, capitalOption } from "./js/optionList";
-import { getList, getCorpsAll, gainUser } from "@/api/basicData/salesOrder";
+import { getList, getCorpsAll, gainUser, getCorpType, getAllgoods } from "@/api/basicData/salesOrder";
 import { getDetails } from "@/api/basicData/client";
 import { validatenull } from "@/util/validate";
 export default {
@@ -185,74 +193,74 @@ export default {
             capitalList: [],
             corpsAddrList: [],
             pickerOptions: {
-        shortcuts: [
-          {
-            text: '当天',
-            onClick(picker) {
-              const date = new Date();
-              const start = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);
-              const end = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59);
-              picker.$emit('pick', [start, end]);
-            }
-          },
-          {
-            text: '昨天',
-            onClick(picker) {
-              const date = new Date();
-              const start = new Date(date.getFullYear(), date.getMonth(), date.getDate() - 1, 0, 0, 0);
-              const end = new Date(date.getFullYear(), date.getMonth(), date.getDate() - 1, 23, 59, 59);
-              picker.$emit('pick', [start, end]);
-            }
-          }, {
-            text: '当月',
-            onClick(picker) {
-              const date = new Date();
-              const start = new Date(date.getFullYear(), date.getMonth(), 1, 0, 0, 0);
-              const end = new Date(date.getFullYear(), date.getMonth() + 1, 0, 23, 59, 59);
-              picker.$emit('pick', [start, end]);
-            }
-          }, {
-            text: '当季',
-            onClick(picker) {
-              const date = new Date();
-              const start = new Date(date.getFullYear(),parseInt(date.getMonth()/3)*3, 1, 0, 0, 0);
-              const end = new Date(date.getFullYear(),parseInt(date.getMonth()/3)*3+3, 0, 23, 59, 59);
-              picker.$emit('pick', [start, end]);
-            }
-          }, {
-            text: '当年',
-            onClick(picker) {
-              const date = new Date();
-              const start = new Date(date.getFullYear(), date.getMonth(), 1, 0, 0, 0);
-              const end = new Date(date.getFullYear() + 1, 0, 0, 23, 59, 59);
-              picker.$emit('pick', [start, end]);
-            }
-          }, {
-            text: '最近一周',
-            onClick(picker) {
-              const date = new Date();
-              const start = new Date(date.getFullYear(), date.getMonth(), date.getDate() - 7, 0, 0, 0);
-              const end = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59);
-              picker.$emit('pick', [start, end]);
-            }
-          }, {
-            text: '最近二周',
-            onClick(picker) {
-              const date = new Date();
-              const start = new Date(date.getFullYear(), date.getMonth(), date.getDate() - 7*2, 0, 0, 0);
-              const end = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59);
-              picker.$emit('pick', [start, end]);
-            }
-          }, {
-            text: '最近三周',
-            onClick(picker) {
-              const date = new Date();
-              const start = new Date(date.getFullYear(), date.getMonth(), date.getDate() - 7*3, 0, 0, 0);
-              const end = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59);
-              picker.$emit('pick', [start, end]);
-            }
-          }]
-      },
+                shortcuts: [
+                    {
+                        text: '当天',
+                        onClick(picker) {
+                            const date = new Date();
+                            const start = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);
+                            const end = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59);
+                            picker.$emit('pick', [start, end]);
+                        }
+                    },
+                    {
+                        text: '昨天',
+                        onClick(picker) {
+                            const date = new Date();
+                            const start = new Date(date.getFullYear(), date.getMonth(), date.getDate() - 1, 0, 0, 0);
+                            const end = new Date(date.getFullYear(), date.getMonth(), date.getDate() - 1, 23, 59, 59);
+                            picker.$emit('pick', [start, end]);
+                        }
+                    }, {
+                        text: '当月',
+                        onClick(picker) {
+                            const date = new Date();
+                            const start = new Date(date.getFullYear(), date.getMonth(), 1, 0, 0, 0);
+                            const end = new Date(date.getFullYear(), date.getMonth() + 1, 0, 23, 59, 59);
+                            picker.$emit('pick', [start, end]);
+                        }
+                    }, {
+                        text: '当季',
+                        onClick(picker) {
+                            const date = new Date();
+                            const start = new Date(date.getFullYear(), parseInt(date.getMonth() / 3) * 3, 1, 0, 0, 0);
+                            const end = new Date(date.getFullYear(), parseInt(date.getMonth() / 3) * 3 + 3, 0, 23, 59, 59);
+                            picker.$emit('pick', [start, end]);
+                        }
+                    }, {
+                        text: '当年',
+                        onClick(picker) {
+                            const date = new Date();
+                            const start = new Date(date.getFullYear(), date.getMonth(), 1, 0, 0, 0);
+                            const end = new Date(date.getFullYear() + 1, 0, 0, 23, 59, 59);
+                            picker.$emit('pick', [start, end]);
+                        }
+                    }, {
+                        text: '最近一周',
+                        onClick(picker) {
+                            const date = new Date();
+                            const start = new Date(date.getFullYear(), date.getMonth(), date.getDate() - 7, 0, 0, 0);
+                            const end = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59);
+                            picker.$emit('pick', [start, end]);
+                        }
+                    }, {
+                        text: '最近二周',
+                        onClick(picker) {
+                            const date = new Date();
+                            const start = new Date(date.getFullYear(), date.getMonth(), date.getDate() - 7 * 2, 0, 0, 0);
+                            const end = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59);
+                            picker.$emit('pick', [start, end]);
+                        }
+                    }, {
+                        text: '最近三周',
+                        onClick(picker) {
+                            const date = new Date();
+                            const start = new Date(date.getFullYear(), date.getMonth(), date.getDate() - 7 * 3, 0, 0, 0);
+                            const end = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59);
+                            picker.$emit('pick', [start, end]);
+                        }
+                    }]
+            },
         };
     },
     props: {
@@ -282,13 +290,15 @@ export default {
     },
     methods: {
         getAllWorkDicts() {
-            // this.findObject(this.optionList.column, "departureId").dicData = JSON.parse(localStorage.getItem('areaTypeTree'));
-            getCorpsAll().then(res => {
-                this.findObject(this.sellOption.column, "corpId").dicData = res.data.data;
-            })
             gainUser().then(res => {
                 this.findObject(this.sellOption.column, "createUser").dicData = res.data.data;
             })
+            getCorpType({ corpType: 'KH' }).then(res => {
+                this.findObject(this.sellOption.column, "corpType").dicData = res.data.data
+            });
+            getAllgoods().then(res => {
+                this.findObject(this.sellOption.column, "cname").dicData = res.data.data
+            });
         },
         cellStyle() {
             return "padding:0;height:40px;";

+ 43 - 2
src/views/client/js/optionList.js

@@ -324,7 +324,7 @@ export const sellOptionList = {
 }
 export const sellOption = {
   searchShow: true,
-  searchMenuSpan: 16,
+  searchMenuSpan: 8,
   align: "center",
   searchSpan: 8,
   tip: false,
@@ -351,10 +351,20 @@ export const sellOption = {
       prop: "corpId",
       type: 'select',
       dicData: [],
+      search: true,
       overHidden: true,
       index: 2
     },
     {
+      label: "电话",
+      prop: "tel",
+      type: 'select',
+      dicData: [],
+      search: true,
+      overHidden: true,
+      index: 3
+    },
+    {
       label: "日期",
       prop: "businesDate",
       search: true,
@@ -402,16 +412,47 @@ export const sellOption = {
       index: 10
     },
     {
+      label: "产品",
+      prop: "cname",
+      type: "select",
+      dicData: [],
+      search: true,
+      filterable:true,
+      props: {
+        label: "cname",
+        value: "cname"
+      },
+      index: 11
+    },
+    {
+      label: "客户分类",
+      prop: "corpType",
+      type: "tree",
+      dicData: [],
+      filterable:true,
+      props: {
+        label: "title",
+        value: "id"
+      },
+      hide: true,
+      search: true,
+      showColumn: false,
+      index: 12
+    },
+    {
       label: "制单人",
       prop: "createUser",
       type: "select",
+      filterable:true,
       props: {
         label: "name",
         value: "id"
       },
       dicData: [],
+      hide: true,
       search: true,
-      index: 11
+      showColumn: false,
+      index: 14
     }
   ]
 }

+ 54 - 54
src/views/exportTrade/customerInquiry/components/goodsInfo.vue

@@ -19,10 +19,10 @@
                     </el-button>
                     <el-button type="info" size="small" @click="cnameData">刷新基础资料</el-button>
                     <el-button type="info" size="small" @click="calculate(1)" :disabled="detailData.status == 1"
-                        :loading="calculateLoading">计算国内费用
+                        :loading="calculateLoading">分摊国内费用
                     </el-button>
                     <el-button type="info" size="small" @click="calculate(2)" :disabled="detailData.status == 1"
-                        :loading="calculateLoading">计算国外费用
+                        :loading="calculateLoading">分摊海运费
                     </el-button>
                 </el-row>
             </template>
@@ -772,58 +772,58 @@ export default {
             });
         },
         calculate(val) {
-            this.form.totalValue = 0
-            this.data.forEach((e, index) => {
-                e.sort = Number(index) + 1
-                this.form.totalValue = sum(multiply(e.outFactoryPrice, e.orderQuantity), this.form.totalValue)
-            })
-            this.calculateLoading = true
-            calculationDomesticFees({ ...this.form, domesticAbroad: val, orderItemsList: this.data, }).then(res => {
-                this.$confirm("总运费:" + res.data.data.amount + ",单价分摊运费:" + res.data.data.amountF + ",是否继续更新?", {
-                    confirmButtonText: "确定",
-                    cancelButtonText: "取消",
-                    type: "warning"
-                }).then(() => {
-                    this.data.forEach(e => {
-                        if (val == 1) {
-                            e.shareAmount = multiply(res.data.data.amountF, e.outFactoryPrice, 10)
-                            e.price = addPrice(e.outFactoryPrice, multiply(res.data.data.amountF, e.outFactoryPrice, 10), e.internationalAmount)
-                            e.amount = amountCal(
-                                addPrice(e.outFactoryPrice, multiply(res.data.data.amountF, e.outFactoryPrice, 10), e.internationalAmount),
-                                e.orderQuantity,
-                                e.freight,
-                                e.insurance,
-                                e.discount
-                            );
-                        } else {
-                            e.internationalAmount = multiply(res.data.data.amountF, e.outFactoryPrice, 10)
-                            e.price = addPrice(e.outFactoryPrice, multiply(res.data.data.amountF, e.outFactoryPrice, 10), e.shareAmount)
-                            e.amount = amountCal(
-                                addPrice(e.outFactoryPrice, multiply(res.data.data.amountF, e.outFactoryPrice, 10), e.shareAmount),
-                                e.orderQuantity,
-                                e.freight,
-                                e.insurance,
-                                e.discount
-                            );
-                        }
-                        e.itemMargin = grossProfitCal(
-                            e.purchaseAmount,
-                            e.partsPrice,
-                            e.outFactoryPrice,
-                            this.form.exchangeRate
-                        );
-                    })
-                    let arr = []
-                    res.data.data.fees.forEach(e => {
-                        // this.orderFeesList.push({ feesType: 2, ...e, corpId: this.form.corpId, corpName: this.form.corpsName, amount: multiply(e.price, e.quantity) })
-                        arr.push({ feesType: 2, ...e, corpId: this.form.corpId, corpName: this.form.corpsName, amount: multiply(e.price, e.quantity), srcType: val == 1 ? '国内费用' : '国外费用' })
-                    })
-                    this.$emit('formGoodstoFees', arr, val == 1 ? '国内费用' : '国外费用')
-                });
-            })
-                .finally(() => {
-                    this.calculateLoading = false;
-                });
+            // this.form.totalValue = 0
+            // this.data.forEach((e, index) => {
+            //     e.sort = Number(index) + 1
+            //     this.form.totalValue = sum(multiply(e.outFactoryPrice, e.orderQuantity), this.form.totalValue)
+            // })
+            // this.calculateLoading = true
+            // calculationDomesticFees({ ...this.form, domesticAbroad: val, orderItemsList: this.data, }).then(res => {
+            //     this.$confirm("总运费:" + res.data.data.amount + ",单价分摊运费:" + res.data.data.amountF + ",是否继续更新?", {
+            //         confirmButtonText: "确定",
+            //         cancelButtonText: "取消",
+            //         type: "warning"
+            //     }).then(() => {
+            //         this.data.forEach(e => {
+            //             if (val == 1) {
+            //                 e.shareAmount = multiply(res.data.data.amountF, e.outFactoryPrice, 10)
+            //                 e.price = addPrice(e.outFactoryPrice, multiply(res.data.data.amountF, e.outFactoryPrice, 10), e.internationalAmount)
+            //                 e.amount = amountCal(
+            //                     addPrice(e.outFactoryPrice, multiply(res.data.data.amountF, e.outFactoryPrice, 10), e.internationalAmount),
+            //                     e.orderQuantity,
+            //                     e.freight,
+            //                     e.insurance,
+            //                     e.discount
+            //                 );
+            //             } else {
+            //                 e.internationalAmount = multiply(res.data.data.amountF, e.outFactoryPrice, 10)
+            //                 e.price = addPrice(e.outFactoryPrice, multiply(res.data.data.amountF, e.outFactoryPrice, 10), e.shareAmount)
+            //                 e.amount = amountCal(
+            //                     addPrice(e.outFactoryPrice, multiply(res.data.data.amountF, e.outFactoryPrice, 10), e.shareAmount),
+            //                     e.orderQuantity,
+            //                     e.freight,
+            //                     e.insurance,
+            //                     e.discount
+            //                 );
+            //             }
+            //             e.itemMargin = grossProfitCal(
+            //                 e.purchaseAmount,
+            //                 e.partsPrice,
+            //                 e.outFactoryPrice,
+            //                 this.form.exchangeRate
+            //             );
+            //         })
+            //         let arr = []
+            //         res.data.data.fees.forEach(e => {
+            //             // this.orderFeesList.push({ feesType: 2, ...e, corpId: this.form.corpId, corpName: this.form.corpsName, amount: multiply(e.price, e.quantity) })
+            //             arr.push({ feesType: 2, ...e, corpId: this.form.corpId, corpName: this.form.corpsName, amount: multiply(e.price, e.quantity), srcType: val == 1 ? '国内费用' : '国外费用' })
+            //         })
+            //         this.$emit('formGoodstoFees', arr, val == 1 ? '国内费用' : '国外费用')
+            //     });
+            // })
+            //     .finally(() => {
+            //         this.calculateLoading = false;
+            //     });
         },
         khEdit(status) {
             if (status == 'cname') {

+ 70 - 146
src/views/exportTrade/shippingInquiry/detailsPage.vue

@@ -2,51 +2,26 @@
   <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"
-          >返回列表
+        <el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
+          @click="backToList">返回列表
         </el-button>
       </div>
       <div class="add-customer-btn" v-if="showBut">
-        <el-button
-          type="primary"
-          size="small"
-          v-if="detailData.status == 1"
-          class="el-button--small-yh "
-          @click.stop="openEdit"
-          :disabled="form.ifShipping=='船务确认'"
-          >编辑
+        <el-button type="primary" size="small" v-if="detailData.status == 1" class="el-button--small-yh "
+          @click.stop="openEdit" :disabled="form.ifShipping == '船务确认'">编辑
         </el-button>
-        <el-button
-          type="primary"
-          :disabled="disabled && detailData.status == 1||form.ifShipping=='船务确认'"
-          @click="editCustomer('submit')"
-          v-if="form.id && detailData.status != 1"
-          :loading="subLoading"
-          size="small"
-          >保存数据
+        <el-button type="primary" :disabled="disabled && detailData.status == 1 || form.ifShipping == '船务确认'"
+          @click="editCustomer('submit')" v-if="form.id && detailData.status != 1" :loading="subLoading" size="small">
+          保存数据
         </el-button>
-        <el-button
-          type="primary"
-          :disabled="disabled && detailData.status == 1"
-          v-if="detailData.status != 1"
-          @click="editCustomer('fix')"
-          size="small"
-          >提 交
+        <el-button type="primary" :disabled="disabled && detailData.status == 1" v-if="detailData.status != 1"
+          @click="editCustomer('fix')" size="small">提 交
         </el-button>
       </div>
     </div>
     <div class="customer-main">
       <trade-card title="基础信息">
-        <avue-form
-          class="trading-form"
-          ref="form"
-          v-model="form"
-          :option="option"
-        >
+        <avue-form class="trading-form" ref="form" v-model="form" :option="option">
           <template slot="portOfLoad">
             <port-info v-model="form.portOfLoad" :disabled="true" />
           </template>
@@ -56,154 +31,86 @@
         </avue-form>
       </trade-card>
       <trade-card title="商品信息">
-        <avue-crud
-          ref="crud"
-          :data="data"
-          :option="tableOption"
-          @row-del="rowDel"
-          @saveColumn="saveColumn"
-          @resetColumn="resetColumn"
-          :summary-method="summaryMethod"
-          :cell-style="cellStyle"
-        >
+        <avue-crud ref="crud" :data="data" :option="tableOption" @row-del="rowDel" @saveColumn="saveColumn"
+          @resetColumn="resetColumn" :summary-method="summaryMethod" :cell-style="cellStyle">
           <template slot-scope="{ row }" slot="orderQuantity">
             <span>{{ row.orderQuantity | IntegerFormat }}</span>
           </template>
+          <template slot="menuLeft">
+            <el-row>
+              <el-button type="info" size="small" @click="calculate(1)" :disabled="detailData.status == 1"
+                :loading="calculateLoading">提取国内费用
+              </el-button>
+              <el-button type="info" size="small" @click="calculate(2)" :disabled="detailData.status == 1"
+                :loading="calculateLoading">提取海运费
+              </el-button>
+            </el-row>
+          </template>
         </avue-crud>
       </trade-card>
+      <fee-info ref="feeInfo" :tabShow="3" :orderFeesList="orderFeesList" :disabled="detailData.status == 1"
+        feeUrl="/blade-purchase-sales/orderfees/update" optionType="CK" itemType="报价" @beforeFinance="beforeFinance"
+        :inCropId="true" />
       <trade-card title="运费明细">
-        <avue-crud
-          ref="freightCrud"
-          :data="freightData"
-          :option="freightOption"
-          @row-del="rowDel"
-          @saveColumn="saveFreightColumn"
-          :cell-style="cellStyle"
-        >
+        <avue-crud ref="freightCrud" :data="freightData" :option="freightOption" @row-del="rowDel"
+          @saveColumn="saveFreightColumn" :cell-style="cellStyle">
           <template slot="shippingHouse" slot-scope="{ row, index }">
-            <crop-select
-              v-show="row.$cellEdit"
-              v-model="row.shippingHouse"
-              :cropIndex="index"
-              @getCorpData="rowCorpData"
-              corpType="GYS"
-            ></crop-select>
+            <crop-select v-show="row.$cellEdit" v-model="row.shippingHouse" :cropIndex="index"
+              @getCorpData="rowCorpData" corpType="GYS"></crop-select>
             <span v-show="!row.$cellEdit">{{ row.shippingHouseName }}</span>
           </template>
           <template slot="priorityReferrer" slot-scope="{ row }">
-            <el-checkbox
-              :disabled="!row.$cellEdit"
-              v-model="row.priorityReferrer"
-              :true-label="1"
-              :false-label="0"
-            />
+            <el-checkbox :disabled="!row.$cellEdit" v-model="row.priorityReferrer" :true-label="1" :false-label="0" />
           </template>
           <template slot="oceanFreight" slot-scope="{ row }">
-            <el-input
-              size="small"
-              v-model="row.oceanFreight"
-              oninput="value=value.replace(/[^0-9.]/g,'').replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')"
-              placeholder="请输入"
-              :disabled="detailData.status == 1"
-              v-if="row.$cellEdit"
-            />
+            <el-input size="small" v-model="row.oceanFreight"
+              oninput="value=value.replace(/[^0-9.]/g,'').replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')" placeholder="请输入"
+              :disabled="detailData.status == 1" v-if="row.$cellEdit" />
             <span v-else>{{ row.oceanFreight }}</span>
           </template>
           <template slot="menu" slot-scope="{ row, index }">
-            <el-button
-              size="small"
-              icon="el-icon-edit"
-              type="text"
-              @click="rowCell(row, index)"
-              :disabled="disabled"
-              >{{ row.$cellEdit ? "保存" : "修改" }}</el-button
-            >
-            <el-button
-              size="small"
-              icon="el-icon-edit"
-              type="text"
-              @click="rowDel(row)"
-              :disabled="detailData.status == 1"
-              >删 除</el-button
-            >
+            <el-button size="small" icon="el-icon-edit" type="text" @click="rowCell(row, index)" :disabled="disabled">{{
+                row.$cellEdit ? "保存" : "修改"
+            }}</el-button>
+            <el-button size="small" icon="el-icon-edit" type="text" @click="rowDel(row)"
+              :disabled="detailData.status == 1">删 除</el-button>
           </template>
           <template slot="menuLeft">
-            <el-button
-              type="primary"
-              icon="el-icon-plus"
-              size="small"
-              @click.stop="addFreight"
-              :disabled="detailData.status == 1"
-              >新增</el-button
-            ></template
-          >
+            <el-button type="primary" icon="el-icon-plus" size="small" @click.stop="addFreight"
+              :disabled="detailData.status == 1">新增</el-button>
+          </template>
         </avue-crud>
       </trade-card>
     </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
-    >
+    <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"
-                  />
+                  <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="goodsList"
-              ref="goodsCrud"
-              :search.sync="search"
-              @search-change="searchChange"
-              @refresh-change="refreshChange"
-              @selection-change="selectionChange"
-              @row-click="rowClick"
-              :page.sync="page"
-              @on-load="onLoad"
-              @saveColumn="saveGoodsColumn"
-              @resetColumn="resetGoodsColumn"
-              :cell-style="cellStyle"
-            ></avue-crud>
+            <avue-crud :option="goodsOption" :table-loading="loading" :data="goodsList" ref="goodsCrud"
+              :search.sync="search" @search-change="searchChange" @refresh-change="refreshChange"
+              @selection-change="selectionChange" @row-click="rowClick" :page.sync="page" @on-load="onLoad"
+              @saveColumn="saveGoodsColumn" @resetColumn="resetGoodsColumn" :cell-style="cellStyle"></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"
-          >导入</el-button
-        >
+        <el-button type="primary" @click="importGoods" :disabled="selectionList.length == 0">导入</el-button>
       </span>
     </el-dialog>
-    <report-dialog
-      :switchDialog="switchDialog"
-      :reportId="form.id"
-      reportName="客户询价"
-      @onClose="onClose()"
-    ></report-dialog>
+    <report-dialog :switchDialog="switchDialog" :reportId="form.id" reportName="客户询价" @onClose="onClose()">
+    </report-dialog>
   </div>
 </template>
 
@@ -224,6 +131,7 @@ import {
 import reportDialog from "@/components/report-dialog/main";
 import { micrometerFormat, IntegerFormat } from "@/util/validate";
 import { contrastObj, contrastList } from "@/util/contrastData";
+import feeInfo from "@/components/fee-info/main";
 import _ from "lodash";
 export default {
   name: "detailsPageEdit",
@@ -322,7 +230,7 @@ export default {
       treeOption: {
         nodeKey: "id",
         lazy: true,
-        treeLoad: function(node, resolve) {
+        treeLoad: function (node, resolve) {
           const parentId = node.level === 0 ? 0 : node.data.id;
           getDeptLazyTree(parentId).then(res => {
             resolve(
@@ -372,6 +280,7 @@ export default {
     }
   },
   components: {
+    feeInfo,
     reportDialog,
     customerDialog
   },
@@ -469,6 +378,16 @@ export default {
       this.selectionList = [];
       this.treeDeptId = "";
     },
+    //费用明细回调
+    beforeFinance(feesData, callback) {
+      this.advantageProjectData = feesData;
+      let params = {};
+      //暂时默认通过  之后优化
+      params.valid = true;
+      params.parentId = this.form.id;
+      params.srcOrderno = this.form.orderNo;
+      callback(params);
+    },
     selectionChange(list) {
       this.selectionList = list;
     },
@@ -529,6 +448,9 @@ export default {
     addFreight() {
       this.freightData.push({ $cellEdit: true });
     },
+    calculate(val){
+      console.log(val)
+    },
     //修改提交触发
     editCustomer(status, status2) {
       this.$refs["form"].validate((valid, done) => {
@@ -767,9 +689,11 @@ export default {
 .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;
 }

+ 3 - 3
src/views/product/detailsPage.vue

@@ -70,7 +70,7 @@
 </template>
 
 <script>
-import { getGoodstype, getDetails, goodsTypesubmit, getStoragetype, submit, itemRemove, disabled } from "@/api/basicData/product";
+import { getGoodstype, getDetails, goodsTypesubmit, getStoragetype, submit, itemRemove, disabled,getStoragelist } from "@/api/basicData/product";
 import { optionList } from "./js/optionList";
 export default {
   name: "index",
@@ -236,8 +236,8 @@ export default {
         this.goodsTypeList = res.data.data;
         this.findObject(this.option2.column, "parentId").dicData = res.data.data;
       });
-      getStoragetype().then(res => {
-        this.findObject(this.optionList.column, "storageId").dicData = res.data.data;
+      getStoragelist().then(res => {
+        this.findObject(this.optionList.column, "storageId").dicData = res.data;
       });
       // this.$refs.crud.init();
     },

+ 2 - 2
src/views/product/js/optionList.js

@@ -116,8 +116,8 @@ export const optionList = {
       prop: "storageId",
       type: "select",
       props: {
-        label: 'title',
-        value: 'value'
+        label: 'cname',
+        value: 'id'
       },
       dicData:[],
       filterable:true,

+ 53 - 51
src/views/statisticAnalysis/AmtAmount/index.vue

@@ -37,7 +37,7 @@ export default {
       },
       form: {},
       search: {
-        year:defaultDate4(),
+        year: defaultDate4(),
         status: "1"
       },
       dataList: [],
@@ -71,122 +71,122 @@ export default {
           {
             name: "quantity1",
             type: "sum",
-            decimals:0
+            decimals: 0
           },
           {
             name: "amount1",
             type: "sum",
-            decimals:2
+            decimals: 2
           },
           {
             name: "quantity2",
             type: "sum",
-            decimals:0
+            decimals: 0
           },
           {
             name: "amount2",
             type: "sum",
-            decimals:2
+            decimals: 2
           },
           {
             name: "quantity3",
             type: "sum",
-            decimals:0
+            decimals: 0
           },
           {
             name: "amount3",
             type: "sum",
-            decimals:2
+            decimals: 2
           },
           {
             name: "quantity4",
             type: "sum",
-            decimals:0
+            decimals: 0
           },
           {
             name: "amount4",
             type: "sum",
-            decimals:2
+            decimals: 2
           },
           {
             name: "quantity5",
             type: "sum",
-            decimals:0
+            decimals: 0
           },
           {
             name: "amount5",
             type: "sum",
-            decimals:2
+            decimals: 2
           },
           {
             name: "quantity6",
             type: "sum",
-            decimals:0
+            decimals: 0
           },
           {
             name: "amount6",
             type: "sum",
-            decimals:2
+            decimals: 2
           },
           {
             name: "quantity7",
             type: "sum",
-            decimals:0
+            decimals: 0
           },
           {
             name: "amount7",
             type: "sum",
-            decimals:2
+            decimals: 2
           },
           {
             name: "quantity8",
             type: "sum",
-            decimals:0
+            decimals: 0
           },
           {
             name: "amount8",
             type: "sum",
-            decimals:2
+            decimals: 2
           },
           {
             name: "quantity9",
             type: "sum",
-            decimals:0
+            decimals: 0
           },
           {
             name: "amount9",
             type: "sum",
-            decimals:2
+            decimals: 2
           },
           {
             name: "quantity10",
             type: "sum",
-            decimals:0
+            decimals: 0
           },
           {
             name: "amount10",
             type: "sum",
-            decimals:2
+            decimals: 2
           },
           {
             name: "quantity11",
             type: "sum",
-            decimals:0
+            decimals: 0
           },
           {
             name: "amount11",
             type: "sum",
-            decimals:2
+            decimals: 2
           },
           {
             name: "quantity12",
             type: "sum",
-            decimals:0
+            decimals: 0
           },
           {
             name: "amount12",
             type: "sum",
-            decimals:2
+            decimals: 2
           }
         ],
         column: [
@@ -211,6 +211,7 @@ export default {
             type: "year",
             format: "yyyy",
             valueFormat: "yyyy",
+            searchValue:defaultDate4(),
             overHidden: true,
             hide: true,
             showColumn: false,
@@ -219,6 +220,7 @@ export default {
           {
             label: "含未发货订单",
             prop: "status",
+            searchValue:"1",
             overHidden: true,
             hide: true,
             showColumn: false,
@@ -231,145 +233,145 @@ export default {
                 label: "1月数量",
                 prop: "quantity1",
                 overHidden: true,
-                width:100
+                width: 100
               },
               {
                 label: "1月金额",
                 prop: "amount1",
                 overHidden: true,
-                width:100
+                width: 100
               },
               {
                 label: "2月数量",
                 prop: "quantity2",
                 overHidden: true,
-                width:100
+                width: 100
               },
               {
                 label: "2月金额",
                 prop: "amount2",
                 overHidden: true,
-                width:100
+                width: 100
               },
               {
                 label: "3月数量",
                 prop: "quantity3",
                 overHidden: true,
-                width:100
+                width: 100
               },
               {
                 label: "3月金额",
                 prop: "amount3",
                 overHidden: true,
-                width:100
+                width: 100
               },
               {
                 label: "4月数量",
                 prop: "quantity4",
                 overHidden: true,
-                width:100
+                width: 100
               },
               {
                 label: "4月金额",
                 prop: "amount4",
                 overHidden: true,
-                width:100
+                width: 100
               },
               {
                 label: "5月数量",
                 prop: "quantity5",
                 overHidden: true,
-                width:100
+                width: 100
               },
               {
                 label: "5月金额",
                 prop: "amount5",
                 overHidden: true,
-                width:100
+                width: 100
               },
               {
                 label: "6月数量",
                 prop: "quantity6",
                 overHidden: true,
-                width:100
+                width: 100
               },
               {
                 label: "6月金额",
                 prop: "amount6",
                 overHidden: true,
-                width:100
+                width: 100
               },
               {
                 label: "7月数量",
                 prop: "quantity7",
                 overHidden: true,
-                width:100
+                width: 100
               },
               {
                 label: "7月金额",
                 prop: "amount7",
                 overHidden: true,
-                width:100
+                width: 100
               },
               {
                 label: "8月数量",
                 prop: "quantity8",
                 overHidden: true,
-                width:100
+                width: 100
               },
               {
                 label: "8月金额",
                 prop: "amount8",
                 overHidden: true,
-                width:100
+                width: 100
               },
               {
                 label: "9月数量",
                 prop: "quantity9",
                 overHidden: true,
-                width:100
+                width: 100
               },
               {
                 label: "9月金额",
                 prop: "amount9",
                 overHidden: true,
-                width:100
+                width: 100
               },
               {
                 label: "10月数量",
                 prop: "quantity10",
                 overHidden: true,
-                width:100
+                width: 100
               },
               {
                 label: "10月金额",
                 prop: "amount10",
                 overHidden: true,
-                width:100
+                width: 100
               },
               {
                 label: "11月数量",
                 prop: "quantity11",
                 overHidden: true,
-                width:100
+                width: 100
               },
               {
                 label: "11月金额",
                 prop: "amount11",
                 overHidden: true,
-                width:100
+                width: 100
               },
               {
                 label: "12月数量",
                 prop: "quantity12",
                 overHidden: true,
-                width:100
+                width: 100
               },
               {
                 label: "12月金额",
                 prop: "amount12",
                 overHidden: true,
-                width:100
+                width: 100
               }
             ]
           },
@@ -382,7 +384,7 @@ export default {
     this.getAllWorkDicts()
   },
   activated() {
-   this.$nextTick(() => {
+    this.$nextTick(() => {
       this.$refs.crud.refreshTable();
     });
   },
@@ -458,7 +460,7 @@ export default {
       let params = { ...this.search }
       window.open(
         `/api/blade-purchase-sales/exportOrder/totalSummaryExport?${this.website.tokenHeader
-        }=${getToken()}&year=${params.year?params.year:''}&brand=${params.brand?params.brand:''}&status=${params.status ? params.status : ''}`
+        }=${getToken()}&year=${params.year ? params.year : ''}&brand=${params.brand ? params.brand : ''}&status=${params.status ? params.status : ''}`
       );
     }
   }

+ 3 - 6
src/views/statisticAnalysis/brandProfit/index.vue

@@ -119,11 +119,6 @@ export default {
             decimals:2
           },
           {
-            name: "grossProfitRate",
-            type: "sum",
-            decimals:2
-          },
-          {
             name: "purchaseAmount",
             type: "sum",
             decimals:2
@@ -136,6 +131,7 @@ export default {
             type: "date",
             format: 'yyyy-MM-dd',
             valueFormat: 'yyyy-MM-dd',
+            searchValue:defaultDate5(),
             searchRange: true,
             overHidden: true,
             hide: true,
@@ -205,8 +201,9 @@ export default {
             overHidden: true,
           },
           {
-            label: "订单毛利率",
+            label: "订单毛利率(含返利)",
             prop: "grossProfitRate",
+            width:150,
             overHidden: true,
           }
         ]

+ 9 - 3
src/views/statisticAnalysis/customerDelivery/index.vue

@@ -9,6 +9,9 @@
           <el-button type="info" size="small" @click="outExport">导出
           </el-button>
         </template>
+        <template slot="corpNameSearch">
+          <crop-select v-model="search.corpName" corpType="KH" :zhKey="true"></crop-select>
+        </template>
         <template slot="businesDateSearch">
           <el-date-picker v-model="search.businesDate" type="daterange" start-placeholder="开始日期" end-placeholder="结束日期"
             format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss" :default-time="['00:00:00', '23:59:59']">
@@ -56,7 +59,7 @@ export default {
         searchShow: true,
         searchMenuPosition: "right",
         searchSpan: 8,
-        searchMenuSpan: 24,
+        searchMenuSpan: 8,
         border: true,
         index: true,
         addBtn: false,
@@ -86,6 +89,7 @@ export default {
             type: "date",
             format: 'yyyy-MM-dd',
             valueFormat: 'yyyy-MM-dd',
+            searchValue:defaultDate5(),
             searchRange: true,
             overHidden: true,
             hide: true,
@@ -112,12 +116,14 @@ export default {
           {
             label: "省份",
             prop: "belongtoarea",
-            overHidden: true
+            overHidden: true,
+            search: true
           },
           {
             label: "客户",
             prop: "corpName",
-            overHidden: true
+            overHidden: true,
+            search: true
           },
           {
             label: "业务员",

+ 8 - 8
src/views/statisticAnalysis/customerProfit/index.vue

@@ -9,6 +9,9 @@
           <el-button type="info" size="small" @click="outExport">导出
           </el-button>
         </template>
+        <template slot="corpNameSearch">
+          <crop-select v-model="search.corpName" corpType="KH" :zhKey="true"></crop-select>
+        </template>
         <template slot="businesDateSearch">
           <el-date-picker v-model="search.businesDate" type="daterange" start-placeholder="开始日期" end-placeholder="结束日期"
             format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss" :default-time="['00:00:00', '23:59:59']">
@@ -62,7 +65,7 @@ export default {
         searchShow: true,
         searchMenuPosition: "right",
         searchSpan: 8,
-        searchMenuSpan: 8,
+        searchMenuSpan: 24,
         border: true,
         index: true,
         addBtn: false,
@@ -110,11 +113,6 @@ export default {
             decimals: 2
           },
           {
-            name: "grossProfitRate",
-            type: "sum",
-            decimals: 2
-          },
-          {
             name: "purchaseAmount",
             type: "sum",
             decimals: 2
@@ -127,6 +125,7 @@ export default {
             type: "date",
             format: 'yyyy-MM-dd',
             valueFormat: 'yyyy-MM-dd',
+            searchValue:defaultDate5(),
             searchRange: true,
             overHidden: true,
             hide: true,
@@ -153,7 +152,8 @@ export default {
           {
             label: "客户",
             prop: "corpName",
-            overHidden: true
+            overHidden: true,
+            search: true
           },
           {
             label: "销售收入",
@@ -191,7 +191,7 @@ export default {
             overHidden: true,
           },
           {
-            label: "订毛利率",
+            label: "订毛利率",
             prop: "grossProfitRate",
             overHidden: true,
           }

+ 1 - 0
src/views/statisticAnalysis/salesmanDelivery/index.vue

@@ -91,6 +91,7 @@ export default {
             type: "date",
             format: 'yyyy-MM-dd',
             valueFormat: 'yyyy-MM-dd',
+            searchValue:defaultDate5(),
             searchRange: true,
             overHidden: true,
             hide: true,

+ 4 - 7
src/views/statisticAnalysis/salesmanProfit/index.vue

@@ -62,7 +62,7 @@ export default {
         searchShow: true,
         searchMenuPosition: "right",
         searchSpan: 8,
-        searchMenuSpan: 8,
+        searchMenuSpan: 24,
         border: true,
         index: true,
         addBtn: false,
@@ -110,11 +110,6 @@ export default {
             decimals:2
           },
           {
-            name: "grossProfitRate",
-            type: "sum",
-            decimals:2
-          },
-          {
             name: "purchaseAmount",
             type: "sum",
             decimals:2
@@ -127,6 +122,7 @@ export default {
             type: "date",
             format: 'yyyy-MM-dd',
             valueFormat: 'yyyy-MM-dd',
+            searchValue:defaultDate5(),
             searchRange: true,
             overHidden: true,
             hide: true,
@@ -154,6 +150,7 @@ export default {
             label: "业务员",
             prop: "chargeMember",
             overHidden: true,
+            search: true
           },
           {
             label: "销售收入",
@@ -191,7 +188,7 @@ export default {
             overHidden: true,
           },
           {
-            label: "订毛利率",
+            label: "订毛利率",
             prop: "grossProfitRate",
             overHidden: true,
           }

+ 6 - 3
src/views/statisticAnalysis/specificationsDelivery/index.vue

@@ -59,7 +59,7 @@ export default {
         searchShow: true,
         searchMenuPosition: "right",
         searchSpan: 8,
-        searchMenuSpan: 24,
+        searchMenuSpan: 8,
         border: true,
         index: true,
         addBtn: false,
@@ -89,6 +89,7 @@ export default {
             type: "date",
             format: 'yyyy-MM-dd',
             valueFormat: 'yyyy-MM-dd',
+            searchValue:defaultDate5(),
             searchRange: true,
             overHidden: true,
             hide: true,
@@ -116,12 +117,14 @@ export default {
           {
             label: "品号",
             prop: "code",
-            overHidden: true
+            overHidden: true,
+            search: true
           },
           {
             label: "规格",
             prop: "typeNo",
-            overHidden: true
+            overHidden: true,
+            search: true
           },
           {
             label: "品牌",

+ 513 - 0
src/views/supplier/detailsInfo.vue

@@ -0,0 +1,513 @@
+<template>
+    <div>
+        <div class="borderless">
+            <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">返回列表
+                    </el-button>
+                </div>
+                <div class="add-customer-btn">
+                    <el-button type="primary" size="small" @click="editCustomer">
+                        编辑
+                    </el-button>
+                </div>
+            </div>
+        </div>
+        <containerTitle title="基础信息" style="margin-top: 60px"></containerTitle>
+        <basic-container v-loading="loading">
+            <span style="font-size: 18px;font-weight: 600;">{{ form.cname }}</span>
+            <containerTitle title="应收款项" style="margin-top:5px"></containerTitle>
+            <table border="0" width="100%" v-loading="loading">
+                <tr>
+                    <td class="stat-td">
+                        <img src="@/assets/img/contractAmountBg.png" class="stat-img">
+                        <div class="stat-tip">
+                            <div class="money">
+                                <span style="font-size:20px;">¥</span>
+                                <avue-count-up :end="form.debitAmount"></avue-count-up>
+                            </div>
+                            <div class="title">合同金额</div>
+                        </div>
+                    </td>
+                    <td class="stat-td">
+                        <img src="@/assets/img/deliveredBg.png" class="stat-img">
+                        <div class="stat-tip">
+                            <div class="money">
+                                <span style="font-size:20px;">¥</span>
+                                <avue-count-up :end="form.deliveringAmount"></avue-count-up>
+                            </div>
+                            <div class="title">已送货</div>
+                        </div>
+                    </td>
+                    <td class="stat-td">
+                        <img src="@/assets/img/advanceCollectionBg.png" class="stat-img">
+                        <div class="stat-tip">
+                            <div class="money">
+                                <span style="font-size:20px;">¥</span>
+                                <avue-count-up :end="form.advancePayment"></avue-count-up>
+                            </div>
+                            <div class="title">预收款</div>
+                        </div>
+                    </td>
+                    <td class="stat-td">
+                        <img src="@/assets/img/uncollectedBg.png" class="stat-img">
+                        <div class="stat-tip">
+                            <div class="money">
+                                <span style="font-size:20px;">¥</span>
+                                <avue-count-up :end="form.balanceAmount"></avue-count-up>
+                            </div>
+                            <div class="title">未收款</div>
+                        </div>
+                    </td>
+                    <td class="stat-td">
+                        <img src="@/assets/img/receivableBg.png" class="stat-img">
+                        <div class="stat-tip">
+                            <div class="money">
+                                <span style="font-size:20px;">¥</span>
+                                <avue-count-up :end="form.settlmentAmount"></avue-count-up>
+                            </div>
+                            <div class="title">已收款</div>
+                        </div>
+                    </td>
+                </tr>
+            </table>
+        </basic-container>
+        <containerTitle title="明细信息"></containerTitle>
+        <basic-container v-loading="loading">
+            <el-tabs v-model="activeName">
+                <el-tab-pane label="销售记录" name="first">
+                    <avue-crud ref="crud" :option="sellOption" :data="sellList" :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" size="mini">新建销售单
+                            </el-button> -->
+                            <el-button size="mini">收款
+                            </el-button>
+                            <el-button size="mini">送货
+                            </el-button>
+                        </template>
+                        <template slot="corpIdSearch">
+                            <crop-select v-model="search.corpId" corpType="GYS"></crop-select>
+                        </template>
+                        <template slot-scope="{ row, index }" slot="corpId">
+                            <span style="color: #409EFF;cursor: pointer" @click.stop="editOpen(row, 2)">{{ row.corpsName
+                            }}
+                            </span>
+                        </template>
+                        <template slot="businesDateSearch">
+                            <el-date-picker v-model="search.businesDate" type="daterange" start-placeholder="开始日期"
+                                end-placeholder="结束日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss"
+                                :default-time="['00:00:00', '23:59:59']" :picker-options="pickerOptions">
+                            </el-date-picker>
+                        </template>
+                    </avue-crud>
+                </el-tab-pane>
+                <el-tab-pane label="资金往来" name="second">
+                    <avue-crud ref="crud2" :option="capitalOption" :data="capitalList" :page.sync="page2"
+                        :search.sync="search2" @search-change="searchChange2" @current-change="currentChange2"
+                        @size-change="sizeChange2" @refresh-change="refreshChange2" @on-load="onLoad2"
+                        :table-loading="loading2" @saveColumn="saveColumn2" @resetColumn="resetColumn2"
+                        :cell-style="cellStyle" @search-criteria-switch="searchCriteriaSwitch2">
+                        <template slot="menuLeft">
+                            <el-button size="mini">收款
+                            </el-button>
+                        </template>
+                    </avue-crud>
+                </el-tab-pane>
+                <el-tab-pane label="供应商信息" name="third">
+                    <div style="display:flex;justify-content: flex-end;">
+                        <el-button size="mini">禁用</el-button>
+                        <el-button type="primary" size="mini">打印</el-button>
+                    </div>
+                    <el-row class="client_info">
+                        <el-col :span="4">供应商名称</el-col>
+                        <el-col :span="4">{{ form.cname | nameFileter }}</el-col>
+                        <el-col :span="4">期初欠款</el-col>
+                        <el-col :span="4">{{ form.arrears | nameFileter }}</el-col>
+                        <el-col :span="4">电话</el-col>
+                        <el-col :span="4">{{ form.tel | nameFileter }}</el-col>
+                    </el-row>
+                    <el-row class="client_info">
+                        <el-col :span="4">备用电话</el-col>
+                        <el-col :span="4">{{ form.telephone | nameFileter }}</el-col>
+                        <el-col :span="4">传真</el-col>
+                        <el-col :span="4">{{ form.fax | nameFileter }}</el-col>
+                        <el-col :span="4">邮箱</el-col>
+                        <el-col :span="4">{{ form.mailbox | nameFileter }}</el-col>
+                    </el-row>
+                    <el-row class="client_info">
+                        <el-col :span="4">备注</el-col>
+                        <el-col :span="20">{{ form.remarks | nameFileter }}</el-col>
+                    </el-row>
+                    <el-row class="client_info" v-for="(item, index) in corpsAddrList" :key="index">
+                        <el-col :span="2"><i class="el-icon-location"></i></el-col>
+                        <el-col :span="4">{{ item.type == 0 ? '供应商地址' : '物流地址' }}</el-col>
+                        <el-col :span="18">{{ item.detailedAddress }}</el-col>
+                    </el-row>
+                </el-tab-pane>
+            </el-tabs>
+        </basic-container>
+    </div>
+</template>
+  
+<script>
+import { optionList, sellOption, capitalOption } from "./js/optionList";
+import { getList, getCorpsAll, gainUser, getCorpType, getAllgoods } from "@/api/basicData/salesOrder";
+import { getDetails } from "@/api/basicData/client";
+import { validatenull } from "@/util/validate";
+export default {
+    name: "index",
+    data() {
+        return {
+            loading: false,
+            loading2: false,
+            form: {
+                debitAmount: 0,
+                deliveringAmount: 0,
+                advancePayment: 0,
+                balanceAmount: 0,
+                settlmentAmount: 0
+            },
+            page: {
+                pageSize: 10,
+                currentPage: 1,
+                total: 0,
+                pageSizes: [10, 20, 30, 40, 50, 100, 200, 300, 400, 500]
+            },
+            page2: {
+                pageSize: 10,
+                currentPage: 1,
+                total: 0,
+                pageSizes: [10, 20, 30, 40, 50, 100, 200, 300, 400, 500]
+            },
+            activeName: "first",
+            search: {},
+            search2: {},
+            sellOption: {},
+            capitalOption: {},
+            sellList: [],
+            capitalList: [],
+            corpsAddrList: [],
+            pickerOptions: {
+                shortcuts: [
+                    {
+                        text: '当天',
+                        onClick(picker) {
+                            const date = new Date();
+                            const start = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);
+                            const end = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59);
+                            picker.$emit('pick', [start, end]);
+                        }
+                    },
+                    {
+                        text: '昨天',
+                        onClick(picker) {
+                            const date = new Date();
+                            const start = new Date(date.getFullYear(), date.getMonth(), date.getDate() - 1, 0, 0, 0);
+                            const end = new Date(date.getFullYear(), date.getMonth(), date.getDate() - 1, 23, 59, 59);
+                            picker.$emit('pick', [start, end]);
+                        }
+                    }, {
+                        text: '当月',
+                        onClick(picker) {
+                            const date = new Date();
+                            const start = new Date(date.getFullYear(), date.getMonth(), 1, 0, 0, 0);
+                            const end = new Date(date.getFullYear(), date.getMonth() + 1, 0, 23, 59, 59);
+                            picker.$emit('pick', [start, end]);
+                        }
+                    }, {
+                        text: '当季',
+                        onClick(picker) {
+                            const date = new Date();
+                            const start = new Date(date.getFullYear(), parseInt(date.getMonth() / 3) * 3, 1, 0, 0, 0);
+                            const end = new Date(date.getFullYear(), parseInt(date.getMonth() / 3) * 3 + 3, 0, 23, 59, 59);
+                            picker.$emit('pick', [start, end]);
+                        }
+                    }, {
+                        text: '当年',
+                        onClick(picker) {
+                            const date = new Date();
+                            const start = new Date(date.getFullYear(), date.getMonth(), 1, 0, 0, 0);
+                            const end = new Date(date.getFullYear() + 1, 0, 0, 23, 59, 59);
+                            picker.$emit('pick', [start, end]);
+                        }
+                    }, {
+                        text: '最近一周',
+                        onClick(picker) {
+                            const date = new Date();
+                            const start = new Date(date.getFullYear(), date.getMonth(), date.getDate() - 7, 0, 0, 0);
+                            const end = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59);
+                            picker.$emit('pick', [start, end]);
+                        }
+                    }, {
+                        text: '最近二周',
+                        onClick(picker) {
+                            const date = new Date();
+                            const start = new Date(date.getFullYear(), date.getMonth(), date.getDate() - 7 * 2, 0, 0, 0);
+                            const end = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59);
+                            picker.$emit('pick', [start, end]);
+                        }
+                    }, {
+                        text: '最近三周',
+                        onClick(picker) {
+                            const date = new Date();
+                            const start = new Date(date.getFullYear(), date.getMonth(), date.getDate() - 7 * 3, 0, 0, 0);
+                            const end = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59);
+                            picker.$emit('pick', [start, end]);
+                        }
+                    }]
+            },
+        };
+    },
+    props: {
+        detailData: {
+            type: Object
+        }
+    },
+    filters: {
+        nameFileter(val) {
+            return validatenull(val) ? '-' : val
+        }
+    },
+    async created() {
+        this.sellOption = await this.getColumnData(
+            this.getColumnName(210.1),
+            sellOption
+        );
+        this.capitalOption = await this.getColumnData(
+            this.getColumnName(223),
+            capitalOption
+        );
+        // this.sellOption.height = window.innerHeight - 330;
+        if (this.detailData.id) {
+            this.getDetail(this.detailData.id);
+        }
+        this.getAllWorkDicts()
+    },
+    methods: {
+        getAllWorkDicts() {
+            gainUser().then(res => {
+                this.findObject(this.sellOption.column, "createUser").dicData = res.data.data;
+            })
+            getCorpType({ corpType: 'GYS' }).then(res => {
+                this.findObject(this.sellOption.column, "corpType").dicData = res.data.data
+            });
+            getAllgoods().then(res => {
+                this.findObject(this.sellOption.column, "cname").dicData = res.data.data
+            });
+        },
+        cellStyle() {
+            return "padding:0;height:40px;";
+        },
+        searchCriteriaSwitch(type) {
+            if (type) {
+                this.sellOption.height = this.sellOption.height - 46;
+            } else {
+                this.sellOption.height = this.sellOption.height + 46;
+            }
+            this.$refs.crud.getTableHeight();
+        },
+        //点击搜索按钮触发
+        searchChange(params, done) {
+            this.page.currentPage = 1;
+            this.onLoad(this.page, params);
+            done();
+        },
+        refreshChange() {
+            this.onLoad(this.page, this.search);
+        },
+        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));
+            data.billType = 'XS';
+            data.tradeType = 'YPJ';
+            if (data.businesDate) {
+                data.orderStartDate = data.businesDate[0];
+                data.orderEndDate = data.businesDate[1];
+            }
+            delete data.businesDate
+            data.corpId = this.detailData.id;
+            this.loading = true;
+            getList(
+                page.currentPage,
+                page.pageSize,
+                data
+            )
+                .then(res => {
+                    this.sellList = res.data.data.records ? res.data.data.records : [];
+                    this.page.total = res.data.data.total;
+                })
+                .finally(() => {
+                    this.loading = false;
+                });
+        },
+        searchCriteriaSwitch2(type) {
+            if (type) {
+                this.capitalOption.height = this.capitalOption.height - 46;
+            } else {
+                this.capitalOption.height = this.capitalOption.height + 46;
+            }
+            this.$refs.crud2.getTableHeight();
+        },
+        //点击搜索按钮触发
+        searchChange2(params, done) {
+            this.page2.currentPage = 1;
+            this.onLoad2(this.page2, params);
+            done();
+        },
+        refreshChange2() {
+            this.onLoad2(this.page2, this.search2);
+        },
+        currentChange2(val) {
+            this.page2.currentPage = val;
+        },
+        sizeChange2(val) {
+            this.page2.currentPage = 1;
+            this.page2.pageSize = val;
+        },
+        onLoad2(page, params = {}) {
+            let data = this.deepClone(Object.assign(params, this.search2));
+            // this.loading = true;
+            //   getList(
+            //     page.currentPage,
+            //     page.pageSize,
+            //     data
+            //   )
+            //     .then(res => {
+            //       this.sellList = res.data.data.records ? res.data.data.records : [];
+            //       this.page.total = res.data.data.total;
+            //     })
+            //     .finally(() => {
+            //       this.loading = false;
+            //     });
+        },
+        getDetail(id) {
+            this.loading = true
+            getDetails({ id: id })
+                .then(res => {
+                    this.form = res.data.data;
+                    this.corpsAddrList = res.data.data.corpsAddrList;
+                })
+                .finally(() => {
+                    this.loading = false;
+                });
+        },
+        async saveColumn() {
+            const inSave = await this.saveColumnData(
+                this.getColumnName(210.1),
+                this.sellOption
+            );
+            if (inSave) {
+                this.$nextTick(() => {
+                    this.$refs.crud.doLayout();
+                });
+                this.$message.success("保存成功");
+                //关闭窗口
+                this.$refs.crud.$refs.dialogColumn.columnBox = false;
+            }
+        },
+        async resetColumn() {
+            this.sellOption = sellOption;
+            const inSave = await this.delColumnData(
+                this.getColumnName(210.1),
+                sellOption
+            );
+            if (inSave) {
+                this.$nextTick(() => {
+                    this.$refs.crud.doLayout();
+                });
+                this.getAllWorkDicts()
+                this.$message.success("重置成功");
+                this.$refs.crud.$refs.dialogColumn.columnBox = false;
+            }
+        },
+        async saveColumn2() {
+            const inSave = await this.saveColumnData(
+                this.getColumnName(223),
+                this.capitalOption
+            );
+            if (inSave) {
+                this.$nextTick(() => {
+                    this.$refs.crud2.doLayout();
+                });
+                this.$message.success("保存成功");
+                //关闭窗口
+                this.$refs.crud2.$refs.dialogColumn.columnBox = false;
+            }
+        },
+        async resetColumn2() {
+            this.capitalOption = capitalOption;
+            const inSave = await this.delColumnData(
+                this.getColumnName(223),
+                capitalOption
+            );
+            if (inSave) {
+                this.$nextTick(() => {
+                    this.$refs.crud2.doLayout();
+                });
+                this.getAllWorkDicts()
+                this.$message.success("重置成功");
+                this.$refs.crud2.$refs.dialogColumn.columnBox = false;
+            }
+        },
+        //返回列表
+        backToList() {
+            this.$emit("goBack");
+        }
+    }
+};
+</script>
+  
+<style lang="scss" scoped>
+.page-crad ::v-deep .basic-container__card {
+    height: 94.2vh;
+}
+
+.stat-td {
+    text-align: center;
+    position: relative;
+}
+
+.stat-img {
+    width: 95%;
+    height: 75px;
+}
+
+.stat-tip {
+    position: absolute;
+    left: 15px;
+    top: 5px;
+
+    .money {
+        color: #fff;
+        font-size: 28px;
+        font-weight: 600;
+    }
+
+    .title {
+        color: #fff;
+        font-size: 14px;
+        text-align: left;
+        margin-top: 4px;
+    }
+}
+
+.client_info {
+    font-size: 14px;
+    color: #333;
+    line-height: 20px;
+    margin-top: 10px;
+    margin-bottom: 10px;
+}
+</style>
+  

+ 480 - 0
src/views/supplier/detailsPage.vue

@@ -0,0 +1,480 @@
+<template>
+  <div>
+    <div class="borderless">
+      <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">返回列表
+          </el-button>
+        </div>
+        <div class="add-customer-btn">
+          <el-button type="primary" size="small" @click="editCustomer">
+            保存数据
+          </el-button>
+        </div>
+      </div>
+      <trade-card title="基础资料" style="margin-top: 60px" v-loading="loadingBtn">
+        <avue-form ref="form" class="trading-form" v-model="form" :option="option">
+          <template slot="corpsTypeId">
+            <div style="display:flex;">
+              <avue-input-tree default-expand-all v-model="form.corpsTypeId"
+                placeholder="请选择供应商分类" :dic="corpTypeList" :props="props">
+              </avue-input-tree>
+              <i class="el-icon-circle-plus-outline" style="font-size:18px;line-height: 32px;margin-left:4px"
+                @click="corpTypeVisible = true"></i>
+            </div>
+          </template>
+        </avue-form>
+      </trade-card>
+      <trade-card title="地址管理" v-loading="loadingBtn">
+        <el-tabs v-model="activeName">
+          <el-tab-pane label="供应商地址" name="first">
+            <avue-crud ref="crud" :option="option2" :data="data1" :table-loading="loading" @saveColumn="saveColumn"
+              @resetColumn="resetColumn" :cell-style="cellStyle" class="address">
+              <template slot="headerSerial">
+                <el-button type="primary" icon="el-icon-plus" size="mini" @click.stop="addRow"
+                  :disabled="detailData.status == 1" circle></el-button>
+              </template>
+              <template slot="menu" slot-scope="{ row, index }">
+                <el-button size="small" type="text" @click="rowCell(row, index)">{{
+                    row.$cellEdit ? "保存" : "修改"
+                }}</el-button>
+                <el-button size="small" type="text" @click="rowDel(row, index)">删除
+                </el-button>
+              </template>
+            </avue-crud>
+          </el-tab-pane>
+          <el-tab-pane label="物流地址" name="second">
+            <avue-crud ref="crud2" :option="option3" :data="data2" :table-loading="loading" @saveColumn="saveColumn2"
+              @resetColumn="resetColumn2" :cell-style="cellStyle">
+              <template slot="headerSerial">
+                <el-button type="primary" icon="el-icon-plus" size="mini" @click.stop="addRow2"
+                  :disabled="detailData.status == 1" circle></el-button>
+              </template>
+              <template slot="menu" slot-scope="{ row, index }">
+                <el-button size="small" type="text" @click="rowCell2(row, index)">{{
+                    row.$cellEdit ? "保存" : "修改"
+                }}</el-button>
+                <el-button size="small" type="text" @click="rowDel2(row, index)">删除
+                </el-button>
+              </template>
+            </avue-crud>
+          </el-tab-pane>
+        </el-tabs>
+
+      </trade-card>
+      <containerTitle title="上传附件"></containerTitle>
+      <c-upload v-loading="loadingBtn" typeUpload="CD"
+        deleteUrl="/api/trade-purchase/woodHarvestingCloud/removeByFileId" :data="orderFilesList" display
+        :enumerationValue="35.1" :disabled="detailData.status == 1"></c-upload>
+      <el-dialog title="添加供应商分类" v-dialogDrag :visible.sync="corpTypeVisible" class="avue-dialog avue-dialog--top"
+        width="30%" append-to-body @closed="corpTypeClosed">
+        <span>
+          <avue-form :key="reload" ref="corpType" v-model="form4" :option="option4" style="margin-top:20px">
+          </avue-form>
+        </span>
+        <div class="avue-dialog__footer">
+          <el-button @click="corpTypeVisible = false" size="mini">取 消</el-button>
+          <el-button @click="addCorpType" type="primary" size="mini">确 定</el-button>
+        </div>
+      </el-dialog>
+    </div>
+  </div>
+</template>
+
+<script>
+import { option2, option3 } from "./js/optionList";
+import { getDetails, addCorpType, getCorpType, submit, customerList } from "@/api/basicData/client";
+export default {
+  name: "index",
+  data() {
+    return {
+      props: {
+        label: 'title',
+        value: 'value'
+      },
+      corpTypeList: [],
+      corpTypeVisible: false,
+      activeName: 'first',
+      loadingBtn: false,
+      addressTitle: null,
+      addressVisible: false,
+      form: {},
+      form2: {},
+      form3: {},
+      form4: {},
+      data1: [],
+      data2: [],
+      option: {
+        menuBtn: false,
+        labelWidth: 130,
+        column: [
+          {
+            label: "供应商名称",
+            prop: "cname",
+            rules: [
+              {
+                required: true,
+                message: "",
+                trigger: "blur"
+              }
+            ],
+            span: 8,
+          },
+          {
+            label: "供应商分类",
+            prop: "corpsTypeId",
+            span: 8,
+          },
+          {
+            label: "期初欠款",
+            prop: "arrears",
+            span: 8,
+          },
+          {
+            label: "电话",
+            prop: "tel",
+            span: 8,
+          },
+          {
+            label: "备用电话",
+            prop: "telephone",
+            span: 8,
+          },
+          {
+            label: "传真",
+            prop: "fax",
+            span: 8,
+          },
+          {
+            label: "邮箱",
+            prop: "mailbox",
+            span: 8,
+          },
+          {
+            label: "备注",
+            prop: "remarks",
+            type: "textarea",
+            minRows: 2,
+            span: 24,
+          }
+        ]
+      },
+      option2: {},
+      option3: {},
+      option4: {
+        menuBtn: false,
+        labelWidth: 80,
+        column: [
+          {
+            label: "分类名称",
+            prop: "cname",
+            rules: [
+              {
+                required: true,
+                message: "",
+                trigger: "blur"
+              }
+            ],
+            span: 24,
+          },
+          {
+            label: "上级类型",
+            prop: "parentId",
+            dicData: [],
+            type: "tree",
+            props: {
+              label: "cname",
+              value: "id"
+            },
+            span: 24,
+          }
+        ]
+      },
+    };
+  },
+  props: {
+    detailData: {
+      type: Object
+    }
+  },
+  async created() {
+    this.option2 = await this.getColumnData(
+      this.getColumnName(210),
+      option2
+    );
+    this.option3 = await this.getColumnData(
+      this.getColumnName(210.4),
+      option3
+    );
+    if (this.detailData.id) {
+      this.getDetail(this.detailData.id);
+    }
+    if (this.detailData.status == 1) {
+      this.option.disabled = true;
+    }
+    this.getCorpType()
+    this.getAllWorkDicts()
+  },
+  methods: {
+    getAllWorkDicts() {
+      customerList({ corpType: "GYS" }).then(res => {
+        this.findObject(this.option4.column, "parentId").dicData = res.data.data.records
+      });
+      this.getWorkDicts("abbreviation").then(res => {
+        this.findObject(this.option2.column, "abbreviation").dicData = res.data.data;
+      });
+    },
+    cellStyle() {
+      return "padding:0;height:40px;";
+    },
+    selectValue(value, row) {
+      if (row.feesId) {
+        row.feesName = value.cname
+      } else {
+        row.feesName = ""
+      }
+    },
+    getDetail(id) {
+      this.loadingBtn = true
+      getDetails({ id: id })
+        .then(res => {
+          this.form = res.data.data;
+          this.data1 = res.data.data.corpsAddrList.filter(e => e.type == 0);
+          this.data2 = res.data.data.corpsAddrList.filter(e => e.type == 1);
+        })
+        .finally(() => {
+          this.loadingBtn = false;
+        });
+    },
+    getCorpData(row) {
+      this.form.corpName = row.cname
+    },
+    addRow() {
+      this.data1.push({ $cellEdit: true, type: 0 })
+    },
+    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) {
+          // itemDel(row.id).then(res => {
+          //   this.$message({
+          //     type: "success",
+          //     message: "删除成功!"
+          //   });
+          //   this.data1.splice(index, 1);
+          // });
+        } else {
+          this.$message({
+            type: "success",
+            message: "删除成功!"
+          });
+          this.data1.splice(index, 1);
+        }
+      });
+    },
+    addRow2() {
+      this.data2.push({ $cellEdit: true, type: 1 })
+    },
+    rowCell2(row, index) {
+      if (row.$cellEdit == true) {
+        this.$set(row, "$cellEdit", false);
+      } else {
+        this.$set(row, "$cellEdit", true);
+      }
+    },
+    rowDe2(row, index) {
+      this.$confirm("确定删除数据?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        if (row.id) {
+          // itemDel(row.id).then(res => {
+          //   this.$message({
+          //     type: "success",
+          //     message: "删除成功!"
+          //   });
+          //   this.data2.splice(index, 1);
+          // });
+        } else {
+          this.$message({
+            type: "success",
+            message: "删除成功!"
+          });
+          this.data2.splice(index, 1);
+        }
+      });
+    },
+    corpTypeClosed() {
+      this.reload = Math.random();
+      this.form4 = this.$options.data().form4
+    },
+    getCorpType() {
+      getCorpType({ corpType: 'GYS' }).then(res => {
+        this.corpTypeList = res.data.data
+      })
+    },
+    addCorpType() {
+      this.$refs["corpType"].validate((valid, done) => {
+        done();
+        if (valid) {
+          addCorpType({ ...this.form4, corpType: 'GYS', status: 0 })
+            .then(res => {
+              this.$message.success("保存成功");
+              this.getCorpType()
+              this.corpTypeVisible = false
+            })
+        } else {
+          return false;
+        }
+      });
+    },
+    //修改提交触发
+    editCustomer() {
+      this.$refs["form"].validate((valid, done) => {
+        done();
+        if (valid) {
+          this.loadingBtn = true;
+          submit({ ...this.form, code: this.form.cname, corpType: "GYS", corpsAddrList: this.data1.concat(this.data2) })
+            .then(res => {
+              this.$message.success("保存成功");
+              this.form = res.data.data;
+              this.data1 = res.data.data.corpsAddrList.filter(e => e.type == 0);
+              this.data2 = res.data.data.corpsAddrList.filter(e => e.type == 1);
+            })
+            .finally(() => {
+              this.loadingBtn = false;
+            });
+        } else {
+          return false;
+        }
+      });
+    },
+    async saveColumn() {
+      const inSave = await this.saveColumnData(
+        this.getColumnName(210),
+        this.option2
+      );
+      if (inSave) {
+        this.$nextTick(() => {
+          this.$refs.crud.doLayout();
+        });
+        this.$message.success("保存成功");
+        //关闭窗口
+        this.$refs.crud.$refs.dialogColumn.columnBox = false;
+      }
+    },
+    async resetColumn() {
+      this.option2 = option2;
+      const inSave = await this.delColumnData(
+        this.getColumnName(210),
+        option2
+      );
+      if (inSave) {
+        this.$nextTick(() => {
+          this.$refs.crud.doLayout();
+        });
+        this.getAllWorkDicts()
+        this.$message.success("重置成功");
+        this.$refs.crud.$refs.dialogColumn.columnBox = false;
+      }
+    },
+    async saveColumn2() {
+      const inSave = await this.saveColumnData(
+        this.getColumnName(210.4),
+        this.option3
+      );
+      if (inSave) {
+        this.$nextTick(() => {
+          this.$refs.crud.doLayout();
+        });
+        this.$message.success("保存成功");
+        //关闭窗口
+        this.$refs.crud2.$refs.dialogColumn.columnBox = false;
+      }
+    },
+    async resetColumn2() {
+      this.option3 = option3;
+      const inSave = await this.delColumnData(
+        this.getColumnName(210.4),
+        option3
+      );
+      if (inSave) {
+        this.$nextTick(() => {
+          this.$refs.crud.doLayout();
+        });
+        this.getAllWorkDicts()
+        this.$message.success("重置成功");
+        this.$refs.crud2.$refs.dialogColumn.columnBox = false;
+      }
+    },
+    //返回列表
+    backToList() {
+      this.$emit("goBack");
+      console.log(11111)
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.trading-form ::v-deep .el-form-item {
+  margin-bottom: 8px !important;
+}
+
+::v-deep .el-dialog__body {
+  padding: 0px 20px 15px 20px;
+}
+
+::v-deep .el-form-item__error {
+  display: none !important;
+}
+
+.el-dialog ::v-deep .el-form-item__error {
+  display: none !important;
+}
+
+.img-form ::v-deep .el-form-item {
+  height: 150px;
+  line-height: 150px;
+  margin-bottom: 8px !important;
+}
+
+.img-form ::v-deep .avue-upload__icon {
+  font-size: 20px;
+  width: 150px;
+  height: 150px;
+  line-height: 150px;
+}
+
+::v-deep .el-table .cell {
+  padding: 0 2px !important;
+}
+
+::v-deep .avue-crud .el-table .el-form-item__label {
+  left: -1px;
+}
+
+.addressTabs {
+  display: flex;
+  justify-content: center;
+
+  span {
+    width: 100px;
+    font-size: 18px;
+    font-weight: 600;
+    text-align: center;
+  }
+}
+</style>

+ 498 - 0
src/views/supplier/index.vue

@@ -0,0 +1,498 @@
+<template>
+  <div>
+    <basic-container v-show="show && showInfo" class="page-crad">
+      <table border="0" width="100%" style="margin-bottom:20px;" v-loading="loading" :option="option">
+        <tr>
+          <td class="stat-td">
+            <img src="@/assets/img/contractAmountBg.png" class="stat-img">
+            <div class="stat-tip">
+              <div class="money">
+                <span style="font-size:20px;">¥</span>
+                <avue-count-up :end="form.debitAmount"></avue-count-up>
+              </div>
+              <div class="title">合同金额</div>
+            </div>
+          </td>
+          <td class="stat-td">
+            <img src="@/assets/img/deliveredBg.png" class="stat-img">
+            <div class="stat-tip">
+              <div class="money">
+                <span style="font-size:20px;">¥</span>
+                <avue-count-up :end="form.deliveringAmount"></avue-count-up>
+              </div>
+              <div class="title">已送货</div>
+            </div>
+          </td>
+          <td class="stat-td">
+            <img src="@/assets/img/advanceCollectionBg.png" class="stat-img">
+            <div class="stat-tip">
+              <div class="money">
+                <span style="font-size:20px;">¥</span>
+                <avue-count-up :end="form.advancePayment"></avue-count-up>
+              </div>
+              <div class="title">预收款</div>
+              <div class="title">(积累预收:)</div>
+            </div>
+          </td>
+          <td class="stat-td">
+            <img src="@/assets/img/uncollectedBg.png" class="stat-img">
+            <div class="stat-tip">
+              <div class="money">
+                <span style="font-size:20px;">¥</span>
+                <avue-count-up :end="form.balanceAmount"></avue-count-up>
+              </div>
+              <div class="title">未收款</div>
+              <div class="title">(积累欠款:)</div>
+            </div>
+          </td>
+          <td class="stat-td">
+            <img src="@/assets/img/receivableBg.png" class="stat-img">
+            <div class="stat-tip">
+              <div class="money">
+                <span style="font-size:20px;">¥</span>
+                <avue-count-up :end="form.settlmentAmount"></avue-count-up>
+              </div>
+              <div class="title">已收款</div>
+            </div>
+          </td>
+        </tr>
+      </table>
+      <el-row>
+        <el-col :span="4">
+          <avue-tree :option="treeOption" :data="treeData" @node-click="nodeClick" style="height:73vh;" @save="corpTypeVisible = true">
+            <template slot="addBtn">
+              <i class="el-icon-plus" style="font-size:18px;line-height: 30px;width: 20px;padding: 0 10px;" @click="corpTypeVisible = true"></i>
+            </template>
+          </avue-tree>
+        </el-col>
+        <el-col :span="20">
+          <avue-crud ref="crud" :option="option" :data="dataList" :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" size="mini" @click.stop="newAdd()">新建供应商
+              </el-button>
+            </template>
+            <template slot-scope="{ row, index }" slot="cname">
+              <span style="color: #409EFF;cursor: pointer" @click.stop="viewInfo(row)">{{ row.cname }}
+              </span>
+            </template>
+            <template slot="idsSearch">
+              <crop-select v-model="search.ids" corpType="GYS"></crop-select>
+            </template>
+            <template slot="dateSearch">
+              <el-date-picker v-model="search.date" type="daterange" start-placeholder="开始日期" end-placeholder="结束日期"
+                format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss" :default-time="['00:00:00', '23:59:59']"
+                :picker-options="pickerOptions">
+              </el-date-picker>
+            </template>
+            <template slot-scope="{ row, index }" slot="menu">
+              <el-tooltip class="item" effect="dark" content="删除" placement="top">
+                <i class="tradingIcon icon-del" @click.stop="rowDel(row)" />
+              </el-tooltip>
+              <el-tooltip class="item" effect="dark" content="编辑" placement="top">
+                <i class="tradingIcon icon-edit" @click.stop="editOpen(row, 2)" />
+              </el-tooltip>
+              <el-tooltip class="item" effect="dark" content="收款" placement="top">
+                <i class="tradingIcon icon-proceeds" />
+              </el-tooltip>
+              <el-tooltip class="item" effect="dark" content="发货" placement="top">
+                <i class="tradingIcon icon-deliver" />
+              </el-tooltip>
+              <el-tooltip class="item" effect="dark" content="对账" placement="top">
+                <i class="tradingIcon icon-reconciliation" />
+              </el-tooltip>
+              <!-- <el-button type="text" size="small" @click.stop="editOpen(row, 2)">
+            查看
+          </el-button>
+          <el-button type="text" size="small" @click.stop="rowDel(row, index)">
+            删除
+          </el-button> -->
+            </template>
+          </avue-crud>
+        </el-col>
+      </el-row>
+
+    </basic-container>
+    <details-page v-if="!show" @goBack="goBack()" :detailData="detailData" />
+    <details-info v-if="!showInfo" @goBack="goBack()" :detailData="detailData" />
+    <el-dialog title="添加供应商分类" v-dialogDrag :visible.sync="corpTypeVisible" class="avue-dialog avue-dialog--top"
+      width="30%" append-to-body @closed="corpTypeClosed">
+      <span>
+        <avue-form :key="reload" ref="corpType" v-model="form4" :option="option4" style="margin-top:20px">
+        </avue-form>
+      </span>
+      <div class="avue-dialog__footer">
+        <el-button @click="corpTypeVisible = false" size="mini">取 消</el-button>
+        <el-button @click="addCorpType" type="primary" size="mini">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+  
+<script>
+import detailsInfo from "./detailsInfo";
+import detailsPage from "./detailsPage";
+import { option } from "./js/optionList";
+import { getList, getCorpType, pageStatistics, remove, addCorpType, customerList } from "@/api/basicData/client";
+export default {
+  name: "index",
+  data() {
+    return {
+      corpTypeVisible: false,
+      src: '',
+      show: true,
+      showInfo: true,
+      loading: false,
+      search: {},
+      detailData: {},
+      dataList: [],
+      selectionList: [],
+      page: {
+        pageSize: 20,
+        currentPage: 1,
+        total: 0,
+        pageSizes: [10, 20, 30, 40, 50, 100, 200, 300, 400, 500]
+      },
+      form: {
+        debitAmount: 0,
+        deliveringAmount: 0,
+        advancePayment: 0,
+        balanceAmount: 0,
+        settlmentAmount: 0
+      },
+      formSerach: {},
+      pickerOptions: {
+        shortcuts: [
+          {
+            text: '当天',
+            onClick(picker) {
+              const date = new Date();
+              const start = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);
+              const end = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59);
+              picker.$emit('pick', [start, end]);
+            }
+          },
+          {
+            text: '昨天',
+            onClick(picker) {
+              const date = new Date();
+              const start = new Date(date.getFullYear(), date.getMonth(), date.getDate() - 1, 0, 0, 0);
+              const end = new Date(date.getFullYear(), date.getMonth(), date.getDate() - 1, 23, 59, 59);
+              picker.$emit('pick', [start, end]);
+            }
+          }, {
+            text: '当月',
+            onClick(picker) {
+              const date = new Date();
+              const start = new Date(date.getFullYear(), date.getMonth(), 1, 0, 0, 0);
+              const end = new Date(date.getFullYear(), date.getMonth() + 1, 0, 23, 59, 59);
+              picker.$emit('pick', [start, end]);
+            }
+          }, {
+            text: '当季',
+            onClick(picker) {
+              const date = new Date();
+              const start = new Date(date.getFullYear(), parseInt(date.getMonth() / 3) * 3, 1, 0, 0, 0);
+              const end = new Date(date.getFullYear(), parseInt(date.getMonth() / 3) * 3 + 3, 0, 23, 59, 59);
+              picker.$emit('pick', [start, end]);
+            }
+          }, {
+            text: '当年',
+            onClick(picker) {
+              const date = new Date();
+              const start = new Date(date.getFullYear(), date.getMonth(), 1, 0, 0, 0);
+              const end = new Date(date.getFullYear() + 1, 0, 0, 23, 59, 59);
+              picker.$emit('pick', [start, end]);
+            }
+          }, {
+            text: '最近一周',
+            onClick(picker) {
+              const date = new Date();
+              const start = new Date(date.getFullYear(), date.getMonth(), date.getDate() - 7, 0, 0, 0);
+              const end = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59);
+              picker.$emit('pick', [start, end]);
+            }
+          }, {
+            text: '最近二周',
+            onClick(picker) {
+              const date = new Date();
+              const start = new Date(date.getFullYear(), date.getMonth(), date.getDate() - 7 * 2, 0, 0, 0);
+              const end = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59);
+              picker.$emit('pick', [start, end]);
+            }
+          }, {
+            text: '最近三周',
+            onClick(picker) {
+              const date = new Date();
+              const start = new Date(date.getFullYear(), date.getMonth(), date.getDate() - 7 * 3, 0, 0, 0);
+              const end = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59);
+              picker.$emit('pick', [start, end]);
+            }
+          }]
+      },
+      treeOption: {
+        addBtn: false,
+        menu: false,
+        size: "small",
+        props: {
+          labelText: "标题",
+          label: "title",
+          value: "value",
+        }
+      },
+      treeData: [],
+      form4: {},
+      option4: {
+        menuBtn: false,
+        labelWidth: 80,
+        column: [
+          {
+            label: "分类名称",
+            prop: "cname",
+            rules: [
+              {
+                required: true,
+                message: "",
+                trigger: "blur"
+              }
+            ],
+            span: 24,
+          },
+          {
+            label: "上级类型",
+            prop: "parentId",
+            dicData: [],
+            type: "tree",
+            props: {
+              label: "cname",
+              value: "id"
+            },
+            span: 24,
+          }
+        ]
+      },
+    };
+  },
+  components: {
+    detailsPage,
+    detailsInfo
+  },
+  async created() {
+    this.option = await this.getColumnData(this.getColumnName(209), option);
+    this.option.height = window.innerHeight - 330;
+    this.getAllWorkDicts()
+  },
+  methods: {
+    filterNode(value, data) {
+      console.log(value, data)
+      if (!value) return true;
+      return data.label.indexOf(value) !== -1;
+    },
+    nodeClick(data) {
+      this.search.corpsTypeId = data.value
+      this.page.currentPage = 1;
+      this.onLoad(this.page, this.search);
+    },
+    getAllWorkDicts() {
+      this.getWorkDicts("client_status").then(res => {
+        this.findObject(this.option.column, "status").dicData = res.data.data;
+      });
+      getCorpType({ corpType: 'GYS' }).then(res => {
+        this.treeData = res.data.data
+      });
+      customerList({ corpType: "GYS" }).then(res => {
+        this.findObject(this.option4.column, "parentId").dicData = res.data.data.records
+      });
+      this.$refs.crud.init();
+    },
+    searchCriteriaSwitch(type) {
+      if (type) {
+        this.option.height = this.option.height - 46;
+      } else {
+        this.option.height = this.option.height + 46;
+      }
+      this.$refs.crud.getTableHeight();
+    },
+    cellStyle() {
+      return "padding:0;height:40px;";
+    },
+    //点击搜索按钮触发
+    searchChange(params, done) {
+      this.page.currentPage = 1;
+      this.onLoad(this.page, params);
+      done();
+    },
+    refreshChange() {
+      this.onLoad(this.page, this.search);
+    },
+    newAdd() {
+      this.show = false;
+    },
+    onLoad(page, params = {}) {
+      let data = this.deepClone(Object.assign(params, this.search));
+      if (data.date && data.date.length > 0) {
+        data.startTime = data.date[0]
+        data.endTime = data.date[1]
+      }
+      delete data.date
+      data.corpType = "GYS"
+      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(() => {
+          pageStatistics(data).then(res => {
+            this.form = res.data.data
+          })
+          this.loading = false;
+        });
+    },
+    addCorpType() {
+      this.$refs["corpType"].validate((valid, done) => {
+        done();
+        if (valid) {
+          addCorpType({ ...this.form4, corpType: 'GYS', status: 0 })
+            .then(res => {
+              this.$message.success("保存成功");
+              this.getAllWorkDicts()
+              this.corpTypeVisible = false
+            })
+        } else {
+          return false;
+        }
+      });
+    },
+    corpTypeClosed() {
+      this.reload = Math.random();
+      this.form4 = this.$options.data().form4
+    },
+    viewInfo(row) {
+      this.detailData = {
+        id: row.id,
+        status: status
+      };
+      this.showInfo = false;
+    },
+    editOpen(row, status) {
+      this.detailData = {
+        id: row.id,
+        status: status
+      };
+      this.show = false;
+    },
+    currentChange(val) {
+      this.page.currentPage = val;
+    },
+    sizeChange(val) {
+      this.page.currentPage = 1;
+      this.page.pageSize = val;
+    },
+    rowDel(row, index, done) {
+      this.$confirm("确定删除数据?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        remove({ id: row.id, corpType: "GYS" }).then(res => {
+          if (res.data.code == 200) {
+            this.$message({
+              type: "success",
+              message: "删除成功!"
+            });
+            this.onLoad(this.page, this.search);
+          }
+        });
+      });
+    },
+    async saveColumn() {
+      const inSave = await this.saveColumnData(
+        this.getColumnName(209),
+        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(209), option);
+      if (inSave) {
+        this.$nextTick(() => {
+          this.$refs.crud.doLayout();
+        });
+        this.getAllWorkDicts()
+        this.$message.success("重置成功");
+        this.$refs.crud.$refs.dialogColumn.columnBox = false;
+      }
+    },
+    //返回列表
+    goBack() {
+      this.detailData = this.$options.data().detailData;
+      this.show = true;
+      this.showInfo = true;
+      this.onLoad(this.page, this.search);
+    },
+  }
+}
+</script>
+  
+<style  lang="scss"  scoped>
+.page-crad ::v-deep .basic-container__card {
+  height: 94.2vh;
+}
+
+::v-deep .el-form-item__error {
+  display: none !important;
+}
+::v-deep .el-input-group__append{
+  padding: 0 0px !important;
+}
+.el-dialog ::v-deep .el-form-item__error {
+  display: none !important;
+}
+
+.stat-td {
+  text-align: center;
+  position: relative;
+}
+
+.stat-img {
+  width: 95%;
+  height: 100px;
+}
+
+.stat-tip {
+  position: absolute;
+  left: 15px;
+  top: 5px;
+
+  .money {
+    color: #fff;
+    font-size: 28px;
+    text-align: left;
+    font-weight: 600;
+  }
+
+  .title {
+    color: #fff;
+    font-size: 14px;
+    text-align: left;
+    margin-top: 5px;
+    margin-bottom: 0px;
+  }
+}
+</style>
+  

+ 525 - 0
src/views/supplier/js/optionList.js

@@ -0,0 +1,525 @@
+import { number } from "echarts"
+
+export const option = {
+  searchShow: true,
+  searchMenuSpan: 16,
+  align: "center",
+  searchSpan: 8,
+  tip: false,
+  border: true,
+  index: true,
+  addBtn: false,
+  viewBtn: false,
+  editBtn: false,
+  delBtn: false,
+  menuWidth: 130,
+  searchIcon: true,
+  searchIndex: 2,
+  column: [
+    {
+      label: "客户名称",
+      prop: "cname",
+      overHidden: true,
+      index: 1
+    },
+    {
+      label: "客户名称",
+      prop: "ids",
+      type: 'select',
+      hide: true,
+      showColumn: false,
+      search: true,
+      index: 2
+    },
+    {
+      label: "电话",
+      prop: "tel",
+      overHidden: true,
+      search: true,
+      index: 3
+    },
+    {
+      label: "合同金额",
+      prop: "debitAmount",
+      overHidden: true,
+      index: 4
+    },
+    {
+      label: "已送货",
+      prop: "deliveringAmount",
+      overHidden: true,
+      index: 5
+    },
+    {
+      label: "预收款",
+      prop: "advancePayment",
+      overHidden: true,
+      index: 6
+    },
+    {
+      label: "未收款",
+      prop: "balanceAmount",
+      overHidden: true,
+      index: 7
+    },
+    {
+      label: "已收款",
+      prop: "settlmentAmount",
+      overHidden: true,
+      index: 8
+    },
+    {
+      label: "状态",
+      prop: "status",
+      type: 'select',
+      hide: true,
+      search: true,
+      showColumn: false,
+      overHidden: true,
+      index: 9
+    },
+    {
+      label: "日期",
+      prop: "date",
+      hide: true,
+      search: true,
+      showColumn: false,
+      overHidden: true,
+      index: 11
+    }
+  ]
+}
+export const optionList = {
+  align: "center",
+  addBtn: false,
+  refreshBtn: false,
+  editBtn: false,
+  delBtn: false,
+  border: true,
+  menuWidth: 120,
+  stripe: true,
+  index: true,
+  indexSlot: true,
+  column: [
+    {
+      label: "地址类型",
+      prop: "type",
+      dicData: [
+        {
+          type: 0,
+          name: '客户地址'
+        },
+        {
+          type: 1,
+          name: '物流地址'
+        }
+      ],
+      dataType: "string",
+      type: "cascader",
+      props: {
+        label: 'name',
+        value: 'type'
+      },
+      overHidden: true
+    },
+    {
+      label: "详细地址",
+      prop: "detailedAddress",
+      overHidden: true
+    }
+  ]
+}
+export const option2 = {
+  align: "center",
+  addBtn: false,
+  refreshBtn: false,
+  editBtn: false,
+  delBtn: false,
+  border: true,
+  menuWidth: 120,
+  stripe: true,
+  index: true,
+  indexSlot: true,
+  column: [
+    {
+      label: "简称",
+      allowCreate: true,
+      filterable: true,
+      prop: "abbreviation",
+      type: "select",
+      props: {
+        label: "dictValue",
+        value: "dictKey"
+      },
+      // dicUrl: "/api/blade-system/dict-biz/dictionary?code=abbreviation",
+      dicData:[],
+      cell: true,
+      minWidth:200,
+      span: 24,
+    },
+    {
+      label: "地址",
+      prop: "addr",
+      dicData: JSON.parse(localStorage.getItem('areaTypeTree')),
+      dataType: "string",
+      type: "cascader",
+      props: {
+        label: 'name',
+        value: 'name'
+      },
+      filterable:true,
+      cell: true,
+      minWidth:250,
+      span: 24,
+    },
+    {
+      label: "详细地址",
+      prop: "detailedAddress",
+      cell: true,
+      minWidth:350,
+      span: 24,
+    },
+    {
+      label: "邮编",
+      prop: "postalCode",
+      cell: true,
+      minWidth:150,
+      span: 24,
+    },
+    {
+      label: "备注",
+      prop: "remarks",
+      cell: true,
+      minWidth:300,
+      span: 24,
+    }
+  ]
+}
+export const option3 = {
+  align: "center",
+  addBtn: false,
+  refreshBtn: false,
+  editBtn: false,
+  delBtn: false,
+  border: true,
+  menuWidth: 120,
+  stripe: true,
+  index: true,
+  indexSlot: true,
+  column: [
+    {
+      label: "目的地",
+      prop: "destination",
+      minWidth:150,
+      cell: true,
+    },
+    {
+      label: "物流公司",
+      prop: "logisticsCompany",
+      minWidth:200,
+      cell: true,
+    },
+    {
+      label: "电话",
+      prop: "tel",
+      minWidth:150,
+      cell: true,
+    },
+    {
+      label: "地址",
+      prop: "addr",
+      dicData: JSON.parse(localStorage.getItem('areaTypeTree')),
+      dataType: "string",
+      type: "cascader",
+      props: {
+        label: 'name',
+        value: 'name'
+      },
+      minWidth:250,
+      filterable:true,
+      cell: true
+    },
+    {
+      label: "详细地址",
+      prop: "detailedAddress",
+      minWidth:350,
+      cell: true,
+    },
+    {
+      label: "邮编",
+      prop: "postalCode",
+      minWidth:150,
+      cell: true,
+    },
+    {
+      label: "备注",
+      prop: "remarks",
+      minWidth:300,
+      cell: true,
+    }
+  ]
+}
+export const sellOptionList = {
+  searchShow: true,
+  searchMenuSpan: 8,
+  align: "center",
+  searchSpan: 8,
+  tip: false,
+  border: true,
+  index: true,
+  addBtn: false,
+  viewBtn: false,
+  editBtn: false,
+  delBtn: false,
+  menu: false,
+  searchIcon: true,
+  searchIndex: 2,
+  column: [
+    {
+      label: "单号",
+      prop: "a",
+      search: true,
+      overHidden: true
+    },
+    {
+      label: "日期",
+      prop: "b",
+      search: true,
+      overHidden: true
+    },
+    {
+      label: "合同金额",
+      prop: "c",
+      search: true,
+      overHidden: true
+    },
+    {
+      label: "已发送",
+      prop: "d",
+      overHidden: true
+    },
+    {
+      label: "未收款",
+      prop: "e",
+      overHidden: true
+    },
+    {
+      label: "已收款",
+      prop: "f",
+      overHidden: true
+    },
+    {
+      label: "收款状态",
+      prop: "g",
+      search: true,
+      overHidden: true
+    },
+    {
+      label: "送货状态",
+      prop: "h",
+      search: true,
+      overHidden: true
+    }
+  ]
+}
+export const sellOption = {
+  searchShow: true,
+  searchMenuSpan: 8,
+  align: "center",
+  searchSpan: 8,
+  tip: false,
+  border: true,
+  index: true,
+  addBtn: false,
+  viewBtn: false,
+  editBtn: false,
+  delBtn: false,
+  menu: false,
+  menuWidth: 150,
+  searchIcon: true,
+  searchIndex: 2,
+  column: [
+    {
+      label: "单号",
+      prop: "orderNo",
+      overHidden: true,
+      search: true,
+      index: 1
+    },
+    {
+      label: "客户名称",
+      prop: "corpId",
+      type: 'select',
+      dicData: [],
+      search: true,
+      overHidden: true,
+      index: 2
+    },
+    {
+      label: "电话",
+      prop: "tel",
+      type: 'select',
+      dicData: [],
+      search: true,
+      overHidden: true,
+      index: 3
+    },
+    {
+      label: "日期",
+      prop: "businesDate",
+      search: true,
+      overHidden: true,
+      index: 4
+    },
+    {
+      label: "合同金额",
+      prop: "debitAmount",
+      overHidden: true,
+      index: 5
+    },
+    {
+      label: "已送货",
+      prop: "deliveringAmount",
+      overHidden: true,
+      search: true,
+      index: 6
+    },
+    {
+      label: "未收款",
+      prop: "balanceAmount",
+      overHidden: true,
+      search: true,
+      index: 7
+    },
+    {
+      label: "已收款",
+      prop: "settlmentAmount",
+      overHidden: true,
+      search: true,
+      index: 8
+    },
+    {
+      label: "收款状态",
+      prop: "status",
+      type: 'select',
+      index: 9
+    },
+    {
+      label: "送货状态",
+      prop: "status",
+      type: 'select',
+      search: true,
+      index: 10
+    },
+    {
+      label: "产品",
+      prop: "cname",
+      type: "select",
+      dicData: [],
+      search: true,
+      filterable:true,
+      props: {
+        label: "cname",
+        value: "cname"
+      },
+      index: 11
+    },
+    {
+      label: "客户分类",
+      prop: "corpType",
+      type: "tree",
+      dicData: [],
+      filterable:true,
+      props: {
+        label: "title",
+        value: "id"
+      },
+      hide: true,
+      search: true,
+      showColumn: false,
+      index: 12
+    },
+    {
+      label: "制单人",
+      prop: "createUser",
+      type: "select",
+      filterable:true,
+      props: {
+        label: "name",
+        value: "id"
+      },
+      dicData: [],
+      hide: true,
+      search: true,
+      showColumn: false,
+      index: 14
+    }
+  ]
+}
+export const capitalOption = {
+  searchShow: true,
+  searchMenuSpan: 16,
+  align: "center",
+  searchSpan: 8,
+  tip: false,
+  border: true,
+  index: true,
+  addBtn: false,
+  viewBtn: false,
+  editBtn: false,
+  delBtn: false,
+  menu: false,
+  searchIcon: true,
+  searchIndex: 2,
+  column: [
+    {
+      label: "单号",
+      prop: "a",
+      search: true,
+      overHidden: true
+    },
+    {
+      label: "收款日期",
+      prop: "b",
+      search: true,
+      overHidden: true
+    },
+    {
+      label: "类型",
+      prop: "c",
+      search: true,
+      overHidden: true
+    },
+    {
+      label: "收款金额",
+      prop: "d",
+      search: true,
+      overHidden: true
+    },
+    {
+      label: "收款账户",
+      prop: "e",
+      search: true,
+      overHidden: true
+    },
+    {
+      label: "制单人",
+      prop: "f",
+      search: true,
+      overHidden: true
+    },
+    {
+      label: "备注",
+      prop: "g",
+      overHidden: true
+    },
+    {
+      label: "是否打印",
+      prop: "h",
+      hide: true,
+      search: true,
+      showColumn: false,
+      overHidden: true
+    }
+  ]
+}