Browse Source

提交木材

caojunjie 3 years ago
parent
commit
7bb0260e43
24 changed files with 1893 additions and 175 deletions
  1. 7 0
      src/api/wel.js
  2. 1 30
      src/views/InventoryManagement/inventory/config/customerContact.json
  3. 1 1
      src/views/InventoryManagement/inventory/config/mainList.json
  4. 7 6
      src/views/InventoryManagement/inventory/detailsPage.vue
  5. 1 1
      src/views/InventoryManagement/inventoryAccount/index.vue
  6. 2 1
      src/views/basicData/agreement/index.vue
  7. 1 1
      src/views/financialManagement/paymentSettle/paymentSettleDetailsPage.vue
  8. 1 0
      src/views/financialManagement/receiptSettle/receiptSettleDetailsPage.vue
  9. 23 17
      src/views/purchasingManagement/inStock/config/mainList.json
  10. 40 28
      src/views/purchasingManagement/inStock/detailsPage.vue
  11. 11 11
      src/views/salesManagement/outStock/config/customerContactTwo.json
  12. 23 17
      src/views/salesManagement/outStock/config/mainList.json
  13. 194 62
      src/views/salesManagement/outStock/detailsPage.vue
  14. 232 0
      src/views/wel/home/jiatongPage/components/audit-data.vue
  15. 44 0
      src/views/wel/home/jiatongPage/components/butCard.vue
  16. 63 0
      src/views/wel/home/jiatongPage/components/card.vue
  17. 148 0
      src/views/wel/home/jiatongPage/components/charge-today.vue
  18. 138 0
      src/views/wel/home/jiatongPage/components/pay-today.vue
  19. 190 0
      src/views/wel/home/jiatongPage/components/quick-launch.vue
  20. 294 0
      src/views/wel/home/jiatongPage/components/realtime-data.vue
  21. 202 0
      src/views/wel/home/jiatongPage/components/sales-reached.vue
  22. 185 0
      src/views/wel/home/jiatongPage/components/sales-trend.vue
  23. 82 0
      src/views/wel/home/jiatongPage/landTransportation.vue
  24. 3 0
      src/views/wel/index.vue

+ 7 - 0
src/api/wel.js

@@ -69,6 +69,13 @@ export const salesTrend = (query) => {
     params: query
   })
 }
+export const salesTrendTow = (query) => {
+  return request({
+    url: '/api/trade-purchase/woodHarvestingCloud/salesTrends',
+    method: 'get',
+    params: query
+  })
+}
 export const financeCheck = (query) => {
   return request({
     url: '/api/trade-finance/settlement/financeCheck',

+ 1 - 30
src/views/InventoryManagement/inventory/config/customerContact.json

@@ -103,35 +103,6 @@
       "width": 100
     },
     {
-      "index": 16,
-      "prop": "isIssue",
-      "label": "库存状态",
-      "overHidden": true,
-      "dicData": [
-        {
-          "label": "录入",
-          "value": "0"
-        },
-        {
-          "label": "在库",
-          "value": "1"
-        },
-        {
-          "label": "出库中",
-          "value": "2"
-        },
-        {
-          "label": "待扫描",
-          "value": "3"
-        },
-        {
-          "label": "已出库",
-          "value": "4"
-        }
-      ],
-      "width": 100
-    },
-    {
       "index":  17,
       "prop": "remarks",
       "label": "备注",
@@ -139,4 +110,4 @@
       "width": 100
     }
   ]
-}
+}

+ 1 - 1
src/views/InventoryManagement/inventory/config/mainList.json

@@ -95,4 +95,4 @@
       "overHidden": true
     }
   ]
-}
+}

+ 7 - 6
src/views/InventoryManagement/inventory/detailsPage.vue

@@ -9,10 +9,10 @@
       <div class="add-customer-btn">
         <el-button type="info" @click="getData" size="small">刷新资料
         </el-button>
-        <el-button type="primary" size="small" :disabled="form.status>0" v-if="detailData.status == 1"
+        <el-button type="primary" size="small" :disabled="form.status>0"
           class="el-button--small-yh " @click.stop="openEdit">编辑
         </el-button>
-        <el-button type="primary" @click="editCustomer" :loading="subLoading" v-if="detailData.status != 1"
+        <el-button type="primary" @click="editCustomer" :loading="subLoading" v-if="detailData.status != 3"
           size="small">保存数据
         </el-button>
         <el-dropdown style="padding: 0 6px;line-height: 0">
@@ -21,11 +21,11 @@
           </el-button>
           <el-dropdown-menu slot="dropdown">
             <el-dropdown-item :disabled="form.status>0" @click.native="auditCheck">审核数据</el-dropdown-item>
-            <el-dropdown-item v-if="roleName=='admin'" :disabled="form.status<1" @click.native="revokeCheck">撤销审核
+            <el-dropdown-item v-if="roleName=='admin'" :disabled="form.status!=5" @click.native="revokeCheck">撤销审核
             </el-dropdown-item>
-            <el-dropdown-item :disabled="form.status<1" @click.native="checkScheduleDialog = true">审核进度
+            <el-dropdown-item :disabled="form.status<3" @click.native="checkScheduleDialog = true">审核进度
             </el-dropdown-item>
-            <el-dropdown-item v-if="$route.query.check" :disabled="form.status==3" @click.native="check">审批数据
+            <el-dropdown-item v-if="$route.query.check" :disabled="form.status<3" @click.native="check">审批数据
             </el-dropdown-item>
           </el-dropdown-menu>
         </el-dropdown>
@@ -359,7 +359,7 @@ export default {
             delete e.id
           })
           this.form = res.data.data;
-          this.itemsVOList = res.data.data.itemsVOList.filter(item => item.isIssue == 1);
+          this.itemsVOList = res.data.data.itemsVOList.filter(item => item.isIssue == 3);
           this.getStorage()
         })
         .finally(() => {
@@ -381,6 +381,7 @@ export default {
             itemsVOList: this.itemsVOList,
             orderFilesList: this.orderFilesList
           };
+          delete data.orderFeesList
           submit(data).then(res => {
             this.form = res.data.data;
             this.itemsVOList = res.data.data.itemsVOList;

+ 1 - 1
src/views/InventoryManagement/inventoryAccount/index.vue

@@ -230,7 +230,7 @@ export default {
         this.commodityLabel.push({label: res.data.data[item].cname, prop: item, id: res.data.data[item].id})
         this.commodityData[0] = {
           ...this.commodityData[0],
-          [item]: res.data.data[item].sliceNumber + '片,' + res.data.data[item].balanceNumber + '方'
+          [item]: res.data.data[item].sliceNumber + '片,' + res.data.data[item].balanceNumber + '方'
         }
       }
     })

+ 2 - 1
src/views/basicData/agreement/index.vue

@@ -148,7 +148,8 @@ export default {
       });
     },
     switchChange(row) {
-      this.$confirm("确定要"+row.stauts==0?"开启":"停用"+row.corpName+"吗?", {
+      console.log(row.status)
+      this.$confirm("确定要"+row.status==0?"开启":"停用"+row.corpName+"吗?", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
         type: "warning"

+ 1 - 1
src/views/financialManagement/paymentSettle/paymentSettleDetailsPage.vue

@@ -7,7 +7,7 @@
         </el-button>
         <div class="upper_right_button">
           <el-button type="primary" size="small" @click="editHandle" v-if="editDisable">编 辑</el-button>
-          <el-button type="warning" class="el-button--small-yh" size="small" :loading="buttonLoading"
+          <el-button type="warning" class="el-button--small-yh" size="small" :loading="buttonLoading" v-if="form.id"
             :disabled="!form.id || editDisable" @click.stop="confirmSettlement">{{financeDisabled?"付费":"撤销付费"}}
           </el-button>
           <el-button class="el-button--small-yh" type="primary" size="small" :loading="buttonLoading"

+ 1 - 0
src/views/financialManagement/receiptSettle/receiptSettleDetailsPage.vue

@@ -24,6 +24,7 @@
                      class="el-button--small-yh"
                      :loading="buttonLoading"
                      :disabled="!form.id || editDisable"
+                     v-if="form.id"
                      @click.stop="confirmSettlement"
           >{{financeDisabled?"收费":"撤销收费"}}
           </el-button>

+ 23 - 17
src/views/purchasingManagement/inStock/config/mainList.json

@@ -116,39 +116,45 @@
       "search": true,
       "searchSpan": 8,
       "overHidden": true
-    },
-    {
-      "label": "入库量",
-      "prop": "storageQuantity",
+    },{
+      "label": "计划入库数量",
+      "prop": "purchaseQuantity",
       "index": 9,
-      "width": 120,
-      "overHidden": true
-    },
-    {
-      "label": "入库金额",
-      "prop": "storageAmount",
+      "width": 120
+    },{
+      "label": "计划品名",
+      "prop": "planGoodsName",
       "index": 10,
-      "width": 120,
-      "overHidden": true
+      "width": 120
+    },{
+      "label": "实际入库数量",
+      "prop": "storageQuantity",
+      "index": 11,
+      "width": 120
+    },{
+      "label": "实际品名",
+      "prop": "specialRemarks",
+      "index": 12,
+      "width": 120
     },
     {
       "label": "制单人",
       "prop": "salesName",
-      "index": 11,
+      "index": 13,
       "width": 120,
       "overHidden": true
     },
     {
       "label": "创建时间",
       "prop": "createTime",
-      "index": 12,
+      "index": 14,
       "width": 120,
       "overHidden": true
     },
     {
       "label": "审核状态",
       "prop": "status",
-      "index": 13,
+      "index": 15,
       "width": 120,
       "type": "select",
       "dataType": "number",
@@ -162,11 +168,11 @@
     {
       "label": "备注",
       "prop": "orderRemark",
-      "index": 14,
+      "index": 16,
       "width": 120,
       "search": true,
       "searchSpan": 8,
       "overHidden": true
     }
   ]
-}
+}

+ 40 - 28
src/views/purchasingManagement/inStock/detailsPage.vue

@@ -18,7 +18,7 @@
         <el-button type="primary" size="small" v-if="form.status == 1"
                    class="el-button--small-yh " @click.stop="withdraw(1)">撤销
         </el-button>
-        <el-button type="primary" @click="editCustomer" :loading="subLoading" v-if="!(form.status > 2)"
+        <el-button type="primary" @click="editCustomer" :loading="subLoading"
                    size="small">保存数据
         </el-button>
         <el-dropdown style="padding: 0 6px;line-height: 0">
@@ -355,13 +355,23 @@ export default {
               }
             },
             span: 6
-          },
-          {
+          }, {
+            label: "计划入库数量",
+            prop: "purchaseQuantity",
+            value: 0,
+            minRows: 1,
+            span: 6
+          }, {
+            label: "计划品名",
+            prop: "planGoodsName",
+            minRows: 1,
+            span: 6
+          }, {
             label: "备注",
             prop: "orderRemark",
             type: "textarea",
             minRows: 1,
-            span: 24
+            span: 18
           },
         ]
       },
@@ -555,7 +565,7 @@ export default {
           cancelButtonText: "取消",
           type: "warning"
         }).then(() => {
-          if (this.itemsVOList.length == 0){
+          if (this.itemsVOList.length == 0) {
             return this.$message({
               type: "warning",
               message: "无明细不允许提交!"
@@ -605,32 +615,34 @@ export default {
         done();
         if (valid) {
           for (let i = 0; i < this.itemsVOList.length; i++) {
-            if (validatenull(this.itemsVOList[i].storageId)) {
-              return this.$message.error('请完善第' + (i + 1) + '行的库区')
-            }
+            // if (validatenull(this.itemsVOList[i].storageId)) {
+            //   return this.$message.error('请完善第' + (i + 1) + '行的库区')
+            // }
             if (validatenull(this.itemsVOList[i].itemId)) {
               return this.$message.error('请完善第' + (i + 1) + '行的品名')
             }
-            if (validatenull(this.itemsVOList[i].itemType)) {
-              return this.$message.error('请完善第' + (i + 1) + '行的品牌')
-            }
-            if (validatenull(this.itemsVOList[i].grade)) {
-              return this.$message.error('请完善第' + (i + 1) + '行的等级')
-            }
+            // if (validatenull(this.itemsVOList[i].itemType)) {
+            //   return this.$message.error('请完善第' + (i + 1) + '行的品牌')
+            // }
+            // if (validatenull(this.itemsVOList[i].grade)) {
+            //   return this.$message.error('请完善第' + (i + 1) + '行的等级')
+            // }
             if (validatenull(this.itemsVOList[i].billNo)) {
               return this.$message.error('请完善第' + (i + 1) + '行的捆包号')
             }
-            if (validatenull(this.itemsVOList[i].sliceNumber)) {
-              return this.$message.error('请完善第' + (i + 1) + '行的片数')
-            }
+            // if (validatenull(this.itemsVOList[i].sliceNumber)) {
+            //   return this.$message.error('请完善第' + (i + 1) + '行的片数')
+            // }
             if (validatenull(this.itemsVOList[i].storageInQuantity)) {
               return this.$message.error('请完善第' + (i + 1) + '行的入库量')
             }
-            if (validatenull(this.itemsVOList[i].unit)) {
-              return this.$message.error('请完善第' + (i + 1) + '行的入库单位')
-            }
-            if (validatenull(this.itemsVOList[i].price)) {
-              return this.$message.error('请完善第' + (i + 1) + '行的入库单价')
+            // if (validatenull(this.itemsVOList[i].unit)) {
+            //   return this.$message.error('请完善第' + (i + 1) + '行的入库单位')
+            // }
+            if (this.form.arrival == 1) {
+              if (validatenull(this.itemsVOList[i].price)) {
+                return this.$message.error('请完善第' + (i + 1) + '行的入库单价')
+              }
             }
           }
           this.itemsVOList.forEach((e, index) => {
@@ -658,13 +670,13 @@ export default {
               type: "success",
               message: "保存成功!"
             });
-            if (status == "goBack") {
-              this.$emit("goBack");
+            if (!this.detailData.id){
+              this.detailData.id = res.data.data.id
             }
-          })
-              .finally(() => {
-                this.subLoading = false;
-              });
+            this.getDetail(res.data.data.id)
+          }).finally(() => {
+            this.subLoading = false;
+          });
         } else {
           return false;
         }

+ 11 - 11
src/views/salesManagement/outStock/config/customerContactTwo.json

@@ -3,12 +3,11 @@
   "searchMenuSpan": 6,
   "border": true,
   "index": true,
-  "selection": true,
   "viewBtn": false,
   "editBtn": false,
   "addBtn": false,
   "delBtn": false,
-  "menu": false,
+  "menu": true,
   "headerAlign": "center",
   "menuWidth": 160,
   "refreshBtn": false,
@@ -17,7 +16,7 @@
   "column": [{
     "index": 1,
     "prop": "itemId",
-    "label": "*品名",
+    "label": "品名",
     "type": "select",
     "props": {
       "label": "cname",
@@ -51,8 +50,9 @@
     {
       "index": 4,
       "prop": "billNo",
-      "label": "*捆包号",
+      "label": "捆包号",
       "overHidden": true,
+      "search": true,
       "rules": [
         {
           "required": true,
@@ -64,7 +64,7 @@
     },{
       "index": 5,
       "prop": "storageInQuantity",
-      "label": "*出库量",
+      "label": "出库量",
       "overHidden": true,
       "rules": [
         {
@@ -77,7 +77,7 @@
     },{
       "index": 6,
       "prop": "price",
-      "label": "*出库单价",
+      "label": "出库单价",
       "overHidden": true,
       "rules": [
         {
@@ -96,7 +96,7 @@
     },{
       "index": 8,
       "prop": "unit",
-      "label": "*出库单位",
+      "label": "出库单位",
       "overHidden": true,
       "type": "select",
       "props": {
@@ -115,7 +115,7 @@
     },{
       "index": 9,
       "prop": "grade",
-      "label": "*等级",
+      "label": "等级",
       "overHidden": true,
       "rules": [
         {
@@ -129,7 +129,7 @@
     {
       "index": 10,
       "prop": "storageId",
-      "label": "*库区",
+      "label": "库区",
       "overHidden": true,
       "type": "select",
       "props": {
@@ -155,7 +155,7 @@
     },{
       "index": 12,
       "prop": "itemType",
-      "label": "*品牌",
+      "label": "品牌",
       "overHidden": true,
       "rules": [
         {
@@ -174,7 +174,7 @@
     },{
       "index": 14,
       "prop": "sliceNumber",
-      "label": "*片数",
+      "label": "片数",
       "overHidden": true,
       "type":"number",
       "controls":false,

+ 23 - 17
src/views/salesManagement/outStock/config/mainList.json

@@ -116,39 +116,45 @@
       "search": true,
       "searchSpan": 8,
       "overHidden": true
-    },
-    {
-      "label": "出库量",
-      "prop": "storageQuantity",
+    },{
+      "label": "计划入库数量",
+      "prop": "purchaseQuantity",
       "index": 9,
-      "width": 120,
-      "overHidden": true
-    },
-    {
-      "label": "出库金额",
-      "prop": "storageAmount",
+      "width": 120
+    },{
+      "label": "计划品名",
+      "prop": "planGoodsName",
       "index": 10,
-      "width": 120,
-      "overHidden": true
+      "width": 120
+    },{
+      "label": "实际入库数量",
+      "prop": "storageQuantity",
+      "index": 11,
+      "width": 120
+    },{
+      "label": "实际品名",
+      "prop": "specialRemarks",
+      "index": 12,
+      "width": 120
     },
     {
       "label": "制单人",
       "prop": "salesName",
-      "index": 11,
+      "index": 13,
       "width": 120,
       "overHidden": true
     },
     {
       "label": "创建时间",
       "prop": "createTime",
-      "index": 12,
+      "index": 14,
       "width": 120,
       "overHidden": true
     },
     {
       "label": "审核状态",
       "prop": "status",
-      "index": 13,
+      "index": 15,
       "width": 120,
       "type": "select",
       "dataType": "number",
@@ -162,11 +168,11 @@
     {
       "label": "备注",
       "prop": "orderRemark",
-      "index": 14,
+      "index": 16,
       "width": 120,
       "search": true,
       "searchSpan": 8,
       "overHidden": true
     }
   ]
-}
+}

+ 194 - 62
src/views/salesManagement/outStock/detailsPage.vue

@@ -9,7 +9,7 @@
       <div class="add-customer-btn">
         <el-button type="info" @click="getData" size="small">刷新资料
         </el-button>
-        <el-button type="primary" size="small" :disabled="form.status>0" v-if="detailData.status == 3"
+        <el-button type="primary" size="small" :disabled="form.status>0" v-if="form.status == 0 || form.status"
                    class="el-button--small-yh " @click.stop="openEdit">编辑
         </el-button>
         <el-button type="primary" @click="editCustomer" :loading="subLoading" v-if="detailData.status != 3"
@@ -38,15 +38,15 @@
         <avue-form ref="form" class="trading-form" v-model="form" :option="option">
           <template slot="purchaserId">
             <crop-select ref="purchaser" v-model="form.purchaserId" corpType="KH" :refresh="false"
-                         @getCorpData="getKHData" :disabled="form.status > 0"></crop-select>
+                         @getCorpData="getKHData" :disabled="detailData.status == 1"></crop-select>
           </template>
           <template slot="corpId">
             <crop-select ref="corpId" v-model="form.corpId" corpType="GYS" :refresh="false" @getCorpData="getGYSData"
-                         :disabled="form.status > 0"></crop-select>
+                         :disabled="detailData.status == 1"></crop-select>
           </template>
           <template slot="storageId">
             <el-cascader v-model="form.storageId" :options="storagetreeList" :show-all-levels="false"
-                         :disabled="form.status > 0" :props="{ checkStrictly: true, emitPath: false, label: 'title' }"
+                         :disabled="detailData.status == 1" :props="{ checkStrictly: true, emitPath: false, label: 'title' }"
                          clearable @change="storagetreeChange">
             </el-cascader>
           </template>
@@ -155,13 +155,58 @@
         class="el-dialogDeep"
         :visible.sync="dialogVisible"
         append-to-body
-        width="80%">
+        width="80%"
+        :close-on-click-modal="false"
+        :destroy-on-close="true"
+        :close-on-press-escape="false"
+        @close="closeGoods"
+        top="5vh">
       <span>
-        <avue-crud :option="tableOptionTwo" ref="crudTwo" :data="dialogList" @selection-change="selectionChange" @saveColumn="saveColumnTwo" @resetColumn="resetColumnTwo"></avue-crud>
+<!--        <avue-crud :option="tableOptionTwo" ref="crudTwo" :data="dialogList" @selection-change="selectionChange" @saveColumn="saveColumnTwo" @resetColumn="resetColumnTwo" @search-change="searchChange"></avue-crud>-->
+        <avue-crud
+            :option="tableOptionTwo"
+            :table-loading="loading"
+            :data="dialogList"
+            ref="crudTwo"
+            :search.sync="search"
+            @search-change="searchChange"
+            @selection-change="selectionChange"
+            @row-click="rowClick"
+            :page.sync="page"
+            @on-load="onLoad"
+            @saveColumn="saveColumnTwo"
+            @resetColumn="resetColumnTwo"
+            :cell-style="cellStyle">
+              <template slot="menuLeft">
+                <el-tabs v-model="activeName" @tab-click="tabHandle">
+                  <el-tab-pane label="查询结果" name="searchList"></el-tab-pane>
+                  <el-tab-pane label="已选定数据" name="importStaging"></el-tab-pane>
+                </el-tabs>
+              </template>
+              <template slot-scope="scope" slot="menu">
+                <el-button
+                    type="text"
+                    icon="el-icon-edit"
+                    size="small"
+                    @click.stop="importStagList(scope.row,scope.index)"
+                    v-if="activeName=='searchList'"
+                    :disabled="goodsListSave.findIndex(item => item.id == scope.row.id) !== -1"
+                >选择
+                </el-button>
+                <el-button
+                    type="text"
+                    icon="el-icon-delete"
+                    size="small"
+                    @click.stop="removeStagList(scope.row,scope.index)"
+                    v-else
+                >移除
+                </el-button>
+              </template>
+            </avue-crud>
       </span>
       <span slot="footer" class="dialog-footer">
         <el-button @click="dialogVisible = false">取 消</el-button>
-        <el-button type="primary" @click="confirmImport">确 定</el-button>
+        <el-button type="primary" @click="confirmImport">导 入</el-button>
       </span>
     </el-dialog>
   </div>
@@ -195,14 +240,30 @@ export default {
   name: "detailsPageEdit",
   data() {
     return {
+      activeName: 'searchList',
       checkData: {},
+      search:{},
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0
+      },
+      pageList: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0
+      },
+      loading: false,
       dialogVisible: false,
       dialogList:[],
+      goodsList:[],
       checkDialog: false,
       form: {},
       checkScheduleDialog: false,
       tableOption: {},
       tableOptionTwo: {},
+      // 商品列表暂存
+      goodsListSave: [],
       option: {
         disabled: false,
         menuBtn: false,
@@ -318,13 +379,24 @@ export default {
               }
             ],
             span: 6
+          },{
+            label: "计划出库数量",
+            prop: "purchaseQuantity",
+            value:0,
+            minRows: 1,
+            span: 6
+          },{
+            label: "计划品名",
+            prop: "planGoodsName",
+            minRows: 1,
+            span: 6
           },
           {
             label: "备注",
             prop: "orderRemark",
             type: "textarea",
             minRows: 1,
-            span: 24
+            span: 18
           },
         ]
       },
@@ -356,20 +428,23 @@ export default {
   },
   watch: {
     form: {
-      handler() {
-        if (this.form.status > 0) {
-          this.$set(this.option, 'disabled', true)
-          // this.$set(this.findObject(this.tableOption.column, "remarks"),'disabled',true)
-        } else {
-          this.$set(this.option, 'disabled', false)
-        }
-      }
+      // handler() {
+      //   if (this.form.status > 0) {
+      //     this.$set(this.option, 'disabled', true)
+      //     // this.$set(this.findObject(this.tableOption.column, "remarks"),'disabled',true)
+      //   } else {
+      //     this.$set(this.option, 'disabled', false)
+      //   }
+      // }
     }
   },
   async created() {
     if (this.detailData.status == 3) {
       this.option.disabled = true;
     }
+    if (this.detailData.status == 1) {
+      this.option.disabled = true;
+    }
     if (this.detailData.id) {
       this.getDetail(this.detailData.id);
     }
@@ -392,22 +467,53 @@ export default {
     this.getAllWorkDicts()
   },
   methods: {
+    closeGoods() {
+      this.selectionList = [];
+      this.treeDeptId = "";
+      this.reData = null;
+      this.activeName = 'searchList';
+      this.goodsListSave = [];
+    },
+    importStagList(row, index) {
+      this.goodsListSave.push(row);
+    },
+    removeStagList(row, index) {
+      this.goodsListSave.splice(row.$index, 1)
+    },
+    rowClick(row) {
+      this.$refs.crudTwo.toggleSelection([this.goodsList[row.$index]]);
+    },
+    // 标签页切换
+    tabHandle(data) {
+      console.log(data)
+      if (data.name == 'searchList') {
+        this.dialogList = this.goodsList;
+        this.page.total = this.pageList.total
+      } else if (data.name == 'importStaging') {
+        this.dialogList = this.goodsListSave;
+        this.page.total = 0
+      }
+    },
     selectionChange(list){
       this.selectionList = list
     },
     confirmImport(){
-      for (let item in this.selectionList){
-        for (let li of this.itemsVOList){
-          if (this.selectionList[item].billNo == li.billNo) return this.$message.warning('第'+Number(Number(item)+1)+'条已存在,请勿重复导入!')
+      let data = []
+      for (let it in this.goodsListSave){
+        for (let item in this.goodsListSave){
+          for (let li of this.itemsVOList){
+            if (this.goodsListSave[item].billNo == li.billNo) return this.$message.warning('第'+Number(Number(item)+1)+'条已存在,请勿重复导入!')
+          }
         }
-        this.itemsVOList.push({
-          ...this.selectionList[item],
-          srcItemId:this.selectionList[item].id,
+        data.push({
+          ...this.goodsListSave[it],
+          srcItemId:this.goodsListSave[it].id,
           $cellEdit: true
         })
-        delete this.itemsVOList[this.itemsVOList.length-1].id
+        delete data[data.length-1].id
       }
-      this.selectionList = []
+      this.itemsVOList = this.itemsVOList.concat(data)
+      this.goodsListSave = []
       this.dialogVisible = false
     },
     check() {
@@ -450,6 +556,7 @@ export default {
     getStorage() {
       getStorage({storageTypeId: this.form.storageId}).then(res => {
         this.findObject(this.tableOption.column, "storageId").dicData = res.data;
+        this.findObject(this.tableOptionTwo.column, "storageId").dicData = res.data;
       })
     },
     storagetreeChange(row) {
@@ -485,13 +592,7 @@ export default {
       this.$refs["form"].validate((valid, done) => {
         done();
         if (valid) {
-          scanningCodeAddPc({
-            storageId:this.form.storageId,
-            purchaserId:this.form.purchaserId
-          }).then(res=>{
-            this.dialogList = res.data.data.records
-            this.dialogVisible = true
-          })
+          this.dialogVisible = true
           // this.itemsVOList.push({$cellEdit: true});
           // this.getStorage()
         } else {
@@ -560,11 +661,17 @@ export default {
             delete res.data.data.createUserName
             delete res.data.data.sysNo
             delete res.data.data.status
+            delete res.data.data.vehicleShipNumber
+            delete res.data.data.stockUser
+            delete res.data.data.purchaseQuantity
+            delete res.data.data.planGoodsName
             res.data.data.stockTime = getCurrentDate()
             res.data.data.itemsVOList.forEach(e => {
               e.storageInQuantity = e.balanceNumber
               e.srcItemId = e.id
               delete e.id
+              delete e.forklift
+              delete e.carry
             })
             this.form = res.data.data;
             this.itemsVOList = res.data.data.itemsVOList.filter(item => item.isIssue == 3);
@@ -580,35 +687,35 @@ export default {
       this.$refs["form"].validate((valid, done) => {
         done();
         if (valid) {
-          for (let i = 0; i < this.itemsVOList.length; i++) {
-            if (validatenull(this.itemsVOList[i].storageId)) {
-              return this.$message.error('请完善第' + (i + 1) + '行的库区')
-            }
-            if (validatenull(this.itemsVOList[i].itemId)) {
-              return this.$message.error('请完善第' + (i + 1) + '行的品名')
-            }
-            if (validatenull(this.itemsVOList[i].itemType)) {
-              return this.$message.error('请完善第' + (i + 1) + '行的品牌')
-            }
-            if (validatenull(this.itemsVOList[i].grade)) {
-              return this.$message.error('请完善第' + (i + 1) + '行的等级')
-            }
-            if (validatenull(this.itemsVOList[i].billNo)) {
-              return this.$message.error('请完善第' + (i + 1) + '行的捆包号')
-            }
-            if (validatenull(this.itemsVOList[i].sliceNumber)) {
-              return this.$message.error('请完善第' + (i + 1) + '行的片数')
-            }
-            if (validatenull(this.itemsVOList[i].storageInQuantity)) {
-              return this.$message.error('请完善第' + (i + 1) + '行的入库量')
-            }
-            if (validatenull(this.itemsVOList[i].unit)) {
-              return this.$message.error('请完善第' + (i + 1) + '行的入库单位')
-            }
-            if (validatenull(this.itemsVOList[i].price)) {
-              return this.$message.error('请完善第' + (i + 1) + '行的入库单价')
-            }
-          }
+          // for (let i = 0; i < this.itemsVOList.length; i++) {
+          //   if (validatenull(this.itemsVOList[i].storageId)) {
+          //     return this.$message.error('请完善第' + (i + 1) + '行的库区')
+          //   }
+          //   if (validatenull(this.itemsVOList[i].itemId)) {
+          //     return this.$message.error('请完善第' + (i + 1) + '行的品名')
+          //   }
+          //   if (validatenull(this.itemsVOList[i].itemType)) {
+          //     return this.$message.error('请完善第' + (i + 1) + '行的品牌')
+          //   }
+          //   if (validatenull(this.itemsVOList[i].grade)) {
+          //     return this.$message.error('请完善第' + (i + 1) + '行的等级')
+          //   }
+          //   if (validatenull(this.itemsVOList[i].billNo)) {
+          //     return this.$message.error('请完善第' + (i + 1) + '行的捆包号')
+          //   }
+          //   if (validatenull(this.itemsVOList[i].sliceNumber)) {
+          //     return this.$message.error('请完善第' + (i + 1) + '行的片数')
+          //   }
+          //   if (validatenull(this.itemsVOList[i].storageInQuantity)) {
+          //     return this.$message.error('请完善第' + (i + 1) + '行的入库量')
+          //   }
+          //   if (validatenull(this.itemsVOList[i].unit)) {
+          //     return this.$message.error('请完善第' + (i + 1) + '行的入库单位')
+          //   }
+          //   if (validatenull(this.itemsVOList[i].price)) {
+          //     return this.$message.error('请完善第' + (i + 1) + '行的入库单价')
+          //   }
+          // }
           this.itemsVOList.forEach((e, index) => {
             e.sort = Number(index) + 1
           })
@@ -637,8 +744,11 @@ export default {
             if (status == "goBack") {
               this.$emit("goBack");
             }
-          })
-              .finally(() => {
+            if (!this.detailData.id){
+              this.detailData.id = res.data.data.id
+            }
+            this.getDetail(res.data.data.id)
+          }).finally(() => {
                 this.subLoading = false;
               });
         } else {
@@ -906,6 +1016,28 @@ export default {
         this.$refs.crudTwo.$refs.dialogColumn.columnBox = false;
       }
     },
+    searchChange(params,done) {
+      this.onLoad(this.page,this.search);
+      done();
+    },
+    //商品查询
+    onLoad(page, params = {}) {
+      let obj = this.deepClone(Object.assign(params, this.search));
+      this.loading = true;
+      scanningCodeAddPc({
+        storageId:this.form.storageId,
+        purchaserId:this.form.purchaserId,
+        ...obj
+      }).then(res=>{
+        this.dialogList = res.data.data.records
+        this.goodsList = res.data.data.records
+        this.page.total = res.data.data.total;
+        this.pageList.total = res.data.data.total;
+        this.activeName = 'searchList'
+      }).finally(() => {
+        this.loading = false;
+      });
+    },
     async resetColumnTwo() {
       this.tableOptionTwo = tableOptionTwo;
       const inSave = await this.delColumnData(

+ 232 - 0
src/views/wel/home/jiatongPage/components/audit-data.vue

@@ -0,0 +1,232 @@
+<template>
+  <div class="home-container">
+    <el-card class="home-container__card">
+      <div class="title">
+        <span>
+          审核数据
+        </span>
+        <span>
+          <i
+            class="el-icon-refresh-right"
+            style="cursor: pointer;font-size:20px"
+            @click="refresh"
+          ></i>
+        </span>
+      </div>
+      <div class="content" v-loading="loading">
+        <div class="content-item" v-for="(item, index) in list" :key="index">
+          <div class="card">
+            <i :class="item.icon" style="font-size:30px;color:#409EFF"></i>
+            <div class="card-content">
+              <span class="card-content-num">{{ item.qty }}</span>
+              <span class="card-content-text">{{ item.text }}</span>
+            </div>
+          </div>
+        </div>
+      </div>
+    </el-card>
+  </div>
+</template>
+
+<script>
+import {
+  checkDate,
+  shipCheckDate,
+  financeCheck
+} from "@/api/wel";
+export default {
+  name: "basicContainer",
+  props: {
+    sysType: Number
+  },
+  data() {
+    return {
+      loading: false,
+      list: [
+        { icon: "el-icon-s-order", qty: "0", text: "入库管理/待审核" },
+        { icon: "el-icon-s-order", qty: "0", text: "出库管理/待审核" },
+        { icon: "el-icon-s-goods", qty: "0", text: "融资管理/待审核" },
+        { icon: "el-icon-s-home", qty: "0", text: "库内盘点/待审核 " }
+      ],
+      tradeType: null
+    };
+  },
+  created() {
+    this.getSysType();
+  },
+  mounted() {
+    this.init();
+  },
+  methods: {
+    init() {
+      // if(this.sysType === 3){
+
+      // }
+      if (this.sysType === 5) {
+        this.list = [
+          { icon: "el-icon-s-order", qty: "0", text: "主营业务/待审核" }
+        ];
+      }
+      this.getCheckDate();
+      this.getshipCheckDate();
+      this.getfinanceCheck()
+    },
+    getSysType() {
+      const sysType = localStorage.getItem("sysitemType");
+      if (sysType == 6) {
+        this.tradeType = "JXS";
+      } else if (sysType == 5) {
+        this.tradeType = "SW";
+      } else if (sysType == 4) {
+        this.tradeType = "CK";
+      } else if (sysType == 3) {
+        this.tradeType = "JK";
+      } else if (sysType == 2) {
+        this.tradeType = "GN";
+      } else if (sysType == 1) {
+        this.tradeType = "XX";
+      }else if(sysType == 999){
+        this.tradeType = "ADMIN";
+      }
+    },
+    getCheckDate() {
+      this.loading = true;
+      checkDate({ tradeType: this.tradeType })
+        .then(res => {
+          if (this.sysType == 2){
+            this.domList.forEach(e => {
+              if (e.text == "报价订单/待审核") {
+                e.qty = res.data.data.offerNumber;
+              }
+              if (e.text == "销售订单/待审核") {
+                e.qty = res.data.data.sellNumber;
+              }
+              if (e.text == "采购订单/待审核") {
+                e.qty = res.data.data.purchaseNumber;
+              }
+            });
+          }else {
+            this.list.forEach(e => {
+              if (e.text == "报价订单/待审核") {
+                e.qty = res.data.data.offerNumber;
+              }
+              if (e.text == "销售订单/待审核") {
+                e.qty = res.data.data.sellNumber;
+              }
+              if (e.text == "采购订单/待审核") {
+                e.qty = res.data.data.purchaseNumber;
+              }
+            });
+          }
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    getshipCheckDate() {
+      this.loading = true;
+      shipCheckDate({ tradeType: this.tradeType })
+        .then(res => {
+          if (this.sysType == 2){
+            this.domList.forEach(e => {
+              if (e.text == "发货/待审核") {
+                e.qty = res.data.data.sellNumber;
+              }
+              if (e.text == "收货/待审核") {
+                e.qty = res.data.data.purchaseNumber;
+              }
+            });
+          }else {
+            this.list.forEach(e => {
+              if (e.text == "发货/待审核") {
+                e.qty = res.data.data.sellNumber;
+              }
+              if (e.text == "收货/待审核") {
+                e.qty = res.data.data.purchaseNumber;
+              }
+            });
+          }
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    getfinanceCheck(){
+      this.loading = true;
+      financeCheck({ tradeType: this.tradeType })
+        .then(res => {
+          if (this.sysType == 2){
+            this.domList.forEach(e => {
+              if (e.text == "申请付款/待审核") {
+                e.qty = res.data.data;
+              }
+            });
+          }else {
+            this.list.forEach(e => {
+              if (e.text == "申请付款/待审核") {
+                e.qty = res.data.data;
+              }
+            });
+          }
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    refresh() {
+      this.getCheckDate();
+      this.getshipCheckDate();
+      this.getfinanceCheck()
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.home-container {
+  padding: 0px 5px 5px 5px;
+  box-sizing: border-box;
+  height: 100%;
+  ::v-deep .el-card__body {
+    padding: 10px 15px;
+    font-size: 14px;
+  }
+  &__card {
+    width: 100%;
+    height: 100%;
+  }
+  .title {
+    display: flex;
+    justify-content: space-between;
+  }
+}
+.content {
+  display: flex;
+  &-item {
+    background-color: #f4f8ff;
+    margin-top: 0.5vh;
+    margin-right: 0.5vw;
+    height: 13vh;
+    width: 15vw;
+    display: flex;
+    align-items: center;
+    padding-left: 1.5vw;
+    .card {
+      display: flex;
+      align-items: center;
+      &-content {
+        padding-left: 1vw;
+        display: flex;
+        flex-direction: column;
+        &-num {
+          font-size: 20px;
+          font-weight: 600;
+        }
+        &-text {
+          color: #909399;
+        }
+      }
+    }
+  }
+}
+</style>

+ 44 - 0
src/views/wel/home/jiatongPage/components/butCard.vue

@@ -0,0 +1,44 @@
+<template>
+  <div style="padding:5px">
+    <div class="card el-button--primary">
+      <div class="card-content">
+        <i :class="iconName"></i>
+        <div>{{ name }}</div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {};
+  },
+  props: {
+    name: {
+      type: String
+    },
+    iconName: {
+      type: String
+    }
+  },
+  methods: {}
+};
+</script>
+
+<style lang="scss" scoped>
+.card{
+  //background: #ff7d13;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  height: 14vh;
+  .card-content{
+    text-align: center;
+    color: #fff;
+    i{
+      font-size: 30px;
+    }
+  }
+}
+</style>

+ 63 - 0
src/views/wel/home/jiatongPage/components/card.vue

@@ -0,0 +1,63 @@
+<template>
+  <div style="width: 100%;">
+    <div class="card">
+      <div class="card-head">
+        <span> <i :class="iconName" class="index-icon"></i>{{ title }}</span>
+      </div>
+      <div class="card-select">
+        <slot name="select"></slot>
+      </div>
+      <div class="card-content">
+        <slot name="content"></slot>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {};
+  },
+  props: {
+    title: {
+      type: String
+    },
+    iconName: {
+      type: String
+    }
+  },
+  methods: {}
+};
+</script>
+
+<style lang="scss" scoped>
+.card {
+  margin: 5px;
+  .card-head {
+    height: 28px;
+    font-size: 12px;
+    background: #f4f4f4;
+    border: 1px solid #d6d6d6;
+    display: flex;
+    align-items: center;
+  }
+  .card-select {
+    padding: 10px;
+    display: flex;
+    justify-content: right;
+    border-left: 1px solid #d6d6d6;
+    border-right: 1px solid #d6d6d6;
+  }
+  .card-content {
+    border-left: 1px solid #d6d6d6;
+    border-right: 1px solid #d6d6d6;
+    border-bottom: 1px solid #d6d6d6;
+    padding: 10px;
+    height: 100%;
+  }
+}
+.index-icon {
+  margin: 0 10px;
+}
+</style>

+ 148 - 0
src/views/wel/home/jiatongPage/components/charge-today.vue

@@ -0,0 +1,148 @@
+<template>
+  <div class="home-container">
+    <el-card class="home-container__card">
+      <div class="title">
+        <span>
+          今日收款
+        </span>
+        <span>
+          <i
+              class="el-icon-refresh-right"
+              style="cursor: pointer;font-size:20px"
+              @click="refresh"
+          ></i>
+        </span>
+      </div>
+      <div v-loading="loading">
+        <div class="content">
+          <div class="content_item divider">
+            <div>
+              <div class="content_item_num">{{ data.received }}</div>
+              <div class="content_item_text">已收金额</div>
+            </div>
+          </div>
+          <div class="content_item divider">
+            <div>
+              <div class="content_item_num">{{ data.toBeReceived }}</div>
+              <div class="content_item_text">待收金额</div>
+            </div>
+          </div>
+          <div class="content_item">
+            <div>
+              <div class="content_item_num">{{data.unsettledDocuments}}</div>
+              <div class="content_item_text">未结单据</div>
+            </div>
+          </div>
+        </div>
+        <div id="chargeData" ref="chargeData" style="width:45vw;height:30vh"/>
+      </div>
+    </el-card>
+  </div>
+</template>
+
+<script>
+import {monthSalesTwo} from "@/api/wel";
+
+export default {
+  name: "basicContainer",
+  data() {
+    return {
+      loading: false,
+      data:{}
+    };
+  },
+  mounted() {
+    this.getmonthSales()
+  },
+  methods: {
+    refresh() {
+      this.getmonthSales()
+    },
+    getmonthSales() {
+      this.loading = true;
+      monthSalesTwo({billType: '收费'}).then(res => {
+        this.data = res.data.data;
+        this.loading = false;
+      })
+    },
+    chargeData() {
+      let chargeData = this.$echarts.init(
+          document.getElementById("chargeData")
+      );
+      chargeData.setOption({
+        tooltip: {
+          trigger: "axis",
+          axisPointer: {
+            type: "line"
+          }
+        },
+        xAxis: {
+          type: "category",
+          data: []
+        },
+        yAxis: {
+          type: "value"
+        },
+        series: [
+          {
+            data: [0.1, 0.4, 0.6, 0.7, 0.8, 0.9, 1],
+            type: "line",
+            smooth: true
+          }
+        ]
+      });
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.home-container {
+  padding: 0px 5px 5px 5px;
+  box-sizing: border-box;
+  height: 100%;
+
+  ::v-deep .el-card__body {
+    padding: 10px 15px;
+    font-size: 14px;
+  }
+
+  &__card {
+    width: 100%;
+    height: 100%;
+  }
+
+  .title {
+    display: flex;
+    justify-content: space-between;
+    margin-bottom: 5px;
+  }
+}
+
+.content {
+  display: flex;
+  background-color: #fafafa;
+  justify-content: space-around;
+
+  .divider {
+    border-right: 1px dashed #dcdfe6;
+  }
+
+  &_item {
+    margin: 20px 0px 20px 20px;
+    height: 5vh;
+    width: 33.3%;
+    display: flex;
+    align-items: center;
+
+    &_num {
+      font-size: 18px;
+      font-weight: 600;
+    }
+
+    &_text {
+      color: #909399;
+    }
+  }
+}
+</style>

+ 138 - 0
src/views/wel/home/jiatongPage/components/pay-today.vue

@@ -0,0 +1,138 @@
+<template>
+  <div class="home-container">
+    <el-card class="home-container__card">
+      <div class="title">
+        <span>
+          今日付款
+        </span>
+        <span>
+          <i
+            class="el-icon-refresh-right"
+            style="cursor: pointer;font-size:20px"
+            @click="refresh"
+          ></i>
+        </span>
+      </div>
+      <div v-loading="loading">
+        <div class="content">
+          <div class="content_item divider">
+            <div>
+              <div class="content_item_num">{{ data.received }}</div>
+              <div class="content_item_text">已付金额</div>
+            </div>
+          </div>
+          <div class="content_item divider">
+            <div>
+              <div class="content_item_num">{{ data.toBeReceived }}</div>
+              <div class="content_item_text">待付金额</div>
+            </div>
+          </div>
+          <div class="content_item">
+            <div>
+              <div class="content_item_num">{{data.unsettledDocuments}}</div>
+              <div class="content_item_text">未结单据</div>
+            </div>
+          </div>
+        </div>
+        <div id="payData" ref="payData" style="width:45vw;height:30vh" />
+      </div>
+    </el-card>
+  </div>
+</template>
+
+<script>
+import {monthSalesTwo} from "@/api/wel";
+
+export default {
+  name: "basicContainer",
+  data() {
+    return {
+      loading: false,
+      data:{}
+    };
+  },
+  mounted() {
+    this.getmonthSales()
+  },
+  methods: {
+    refresh() {
+      this.getmonthSales()
+    },
+    getmonthSales() {
+      this.loading = true;
+      monthSalesTwo({billType: '付费'}).then(res => {
+        this.loading = false;
+        this.data = res.data.data;
+      })
+    },
+    payData() {
+      let payData = this.$echarts.init(document.getElementById("payData"));
+      payData.setOption({
+        tooltip: {
+          trigger: "axis",
+          axisPointer: {
+            type: "line"
+          }
+        },
+        xAxis: {
+          type: "category",
+          data: []
+        },
+        yAxis: {
+          type: "value"
+        },
+        series: [
+          {
+            data: [0.1, 0.3, 0.4, 0.5, 0.6, 0.7, 1],
+            type: "line",
+            smooth: true
+          }
+        ]
+      });
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.home-container {
+  padding: 0px 5px 5px 0px;
+  box-sizing: border-box;
+  height: 100%;
+  ::v-deep .el-card__body {
+    padding: 10px 15px;
+    font-size: 14px;
+  }
+  &__card {
+    width: 100%;
+    height: 100%;
+  }
+  .title {
+    display: flex;
+    justify-content: space-between;
+    margin-bottom: 5px;
+  }
+}
+.content {
+  display: flex;
+  background-color: #fafafa;
+  justify-content: space-around;
+  .divider {
+    border-right: 1px dashed #dcdfe6;
+  }
+  &_item {
+    margin: 20px 0px 20px 20px;
+    height: 5vh;
+    width: 33.3%;
+    display: flex;
+    align-items: center;
+    &_num {
+      font-size: 18px;
+      font-weight: 600;
+    }
+    &_text {
+      color: #909399;
+    }
+  }
+}
+</style>

+ 190 - 0
src/views/wel/home/jiatongPage/components/quick-launch.vue

@@ -0,0 +1,190 @@
+<template>
+  <div class="home-container">
+    <el-card class="home-container__card">
+      <div class="title">
+        <span>
+          快速发起
+        </span>
+      </div>
+      <div class="content">
+        <div class="content-icon" @click="inPage('673511_rk')">
+          <i class="tradingIcon icon-purchase" style="color:#75CD28"></i>
+          <span>入库管理</span>
+        </div>
+        <div class="content-icon" @click="inPage('673511_ck')">
+          <i class="tradingIcon icon-sales" style="color:#409EFF"></i>
+          <span>出库管理</span>
+        </div>
+        <div class="content-icon" @click="inPage('673511_rz')">
+          <i class="tradingIcon icon-apply" style="color:#BE3216"></i>
+          <span>融资管理</span>
+        </div>
+        <div class="content-icon" @click="inPage('673511_knpd')">
+          <i class="tradingIcon icon-pay" style="color:#143056"></i>
+          <span>库内盘点</span>
+        </div>
+      </div>
+    </el-card>
+  </div>
+</template>
+
+<script>
+import { getToken } from "@/util/auth";
+export default {
+  name: "basicContainer",
+  data() {
+    return {
+      largeScreenToken: '',
+      roleName:''
+    };
+  },
+  props: {
+    sysType: Number
+  },
+  created() {
+    if (this.sysType == 2) {
+      this.getWorkDicts('large_screen').then(res => {
+        this.largeScreenToken = res.data.data[0].dictKey;
+      })
+    }
+    this.roleName=localStorage.getItem("roleName")
+  },
+  methods: {
+    inPage(type) {
+      //出口
+
+
+
+
+      switch (type) {
+        case "673511_rk":
+          this.$router.push("/purchasingManagement/inStock/index");
+          break;
+        case "673511_ck":
+          this.$router.push("/salesManagement/outStock/index");
+          break;
+        case "673511_rz":
+          this.$router.push("/financing/financingManagement/index");
+          break;
+        case "673511_knpd":
+          this.$router.push("/InventoryManagement/inventory/index");
+          break;
+      }
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.home-container {
+  padding: 5px;
+  box-sizing: border-box;
+  height: 100%;
+
+  ::v-deep .el-card__body {
+    padding: 10px 15px;
+    font-size: 14px;
+  }
+
+  &__card {
+    width: 100%;
+    height: 100%;
+  }
+
+  .title {
+    display: flex;
+    justify-content: space-between;
+  }
+}
+
+.tradingIcon {
+  font-size: 36px;
+}
+
+.content {
+  display: flex;
+
+  &-icon {
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    margin: 1.5vh 1vw 0vh 1vw;
+
+    span {
+      margin-top: 0.2vh;
+    }
+  }
+}
+
+.content2 {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  height: 10vh;
+  width: 80vw;
+
+  .divider {
+    display: block;
+    height: 0px;
+    width: 100%;
+    margin-top: -20px;
+    border-top: 1px dashed #dcdfe6;
+  }
+
+  &-item {
+    margin-left: 1vw;
+
+    .card {
+      width: 100px;
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+
+      &-title {
+        width: 40px;
+        height: 40px;
+        text-align: center;
+        border-radius: 50%;
+        font-size: 20px;
+        font-weight: 600;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+
+        span {
+          line-height: 20px;
+        }
+      }
+
+      &-title1 {
+        color: #037fe1;
+        background-color: rgba(3, 127, 225, 0.15);
+      }
+
+      &-title2 {
+        color: #ffa21e;
+        background-color: rgba(255, 162, 30, 0.15);
+      }
+
+      &-title3 {
+        color: #fb5b60;
+        background-color: rgba(251, 91, 96, 0.15);
+      }
+
+      &-title4 {
+        color: #42bc6f;
+        background-color: rgba(66, 188, 111, 0.15);
+      }
+
+      &-content {
+        display: flex;
+        flex-direction: column;
+        margin-top: 4px;
+        &-text {
+          color: #909399;
+        }
+      }
+    }
+  }
+}
+</style>

+ 294 - 0
src/views/wel/home/jiatongPage/components/realtime-data.vue

@@ -0,0 +1,294 @@
+<template>
+  <div class="home-container">
+    <el-card class="home-container__card">
+      <div class="title">
+        <span>
+          实时数据
+        </span>
+        <span class="right">
+          <div class="right_but">
+            <div
+              class="right_but_left"
+              :class="{ right_but_active: isActive == 1 }"
+              @click="inDay"
+            >
+              本日
+            </div>
+            <div
+              class="right_but_right"
+              :class="{ right_but_active: isActive == 2 }"
+              @click="inMoon"
+            >
+              本月
+            </div>
+          </div>
+          <el-date-picker
+            v-model="realDate"
+            type="daterange"
+            size="mini"
+            start-placeholder="开始日期"
+            end-placeholder="结束日期"
+            style="margin-right:10px;width:240px"
+          >
+          </el-date-picker>
+          <el-button
+            type="primary"
+            size="mini"
+            icon="el-icon-search"
+            style="margin-right:10px;"
+            @click="search"
+            circle
+          ></el-button>
+          <i
+            class="el-icon-refresh-right"
+            style="cursor: pointer;font-size:20px;line-height: 15px;"
+            @click="refresh"
+          ></i>
+        </span>
+      </div>
+      <div style="display: flex;justify-content: center;">
+        <div class="content" v-loading="loading">
+          <div class="content-item">
+            <div class="card">
+              <div class="card-title card-title1">
+                <span>
+                  入
+                </span>
+              </div>
+              <div class="card-content">
+                <span class="card-content-num">{{ data1.offerNumber || '0' }}立方</span>
+                <span class="card-content-text">入库</span>
+              </div>
+            </div>
+          </div>
+          <div class="divider" />
+          <div class="content-item">
+            <div class="card">
+              <div class="card-title card-title1">
+                <span>
+                  出
+                </span>
+              </div>
+              <div class="card-content">
+                <span class="card-content-num">{{ data1.sellNumber || '0' }}立方</span>
+                <span class="card-content-text">出库</span>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </el-card>
+  </div>
+</template>
+
+<script>
+import { defaultDate2, defaultDate3 } from "@/util/date";
+import { realTimeData, shipRealTimeData } from "@/api/wel";
+export default {
+  name: "basicContainer",
+  props: {
+    sysType: Number
+  },
+  data() {
+    return {
+      isActive: 1,
+      loading: false,
+      realDate: [],
+      data1: {},
+      data2: {},
+      tradeType: null
+    };
+  },
+  created() {
+    this.getSysType();
+    this.realDate = defaultDate2();
+  },
+  mounted() {
+    this.getrealTimeData();
+    this.getshipRealTimeData();
+  },
+  methods: {
+    init() {
+      if (this.realDate == null) {
+        return this.$message.error("请选择日期");
+      }
+      this.getrealTimeData();
+      this.getshipRealTimeData();
+    },
+    refresh() {
+      this.init();
+    },
+    getSysType() {
+      const sysType = localStorage.getItem("sysitemType");
+      if (sysType == 6) {
+        this.tradeType = "JXS";
+      } else if (sysType == 5) {
+        this.tradeType = "SW";
+      } else if (sysType == 4) {
+        this.tradeType = "CK";
+      } else if (sysType == 3) {
+        this.tradeType = "JK";
+      } else if (sysType == 2) {
+        this.tradeType = "GN";
+      } else if (sysType == 1) {
+        this.tradeType = "XX";
+      } else if (sysType == 999) {
+        this.tradeType = "ADMIN";
+      }
+    },
+    getrealTimeData() {
+      this.loading = true;
+      realTimeData({
+        tradeType: this.tradeType,
+        orderStartDate: this.realDate[0],
+        orderEndDate: this.realDate[1]
+      })
+        .then(res => {
+          this.data1 = res.data.data;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    getshipRealTimeData() {
+      this.loading = true;
+      shipRealTimeData({
+        tradeType: this.tradeType,
+        orderStartDate: this.realDate[0],
+        orderEndDate: this.realDate[1]
+      })
+        .then(res => {
+          this.data2 = res.data.data;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    inDay() {
+      this.isActive = 1;
+      this.realDate = defaultDate2();
+      this.init();
+    },
+    inMoon() {
+      this.isActive = 2;
+      this.realDate = defaultDate3();
+      this.init();
+    },
+    search() {
+      this.isActive = 3;
+      this.init();
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.home-container {
+  padding: 0px 5px 5px 5px;
+  box-sizing: border-box;
+  height: 100%;
+  ::v-deep .el-card__body {
+    padding: 10px 15px;
+    font-size: 14px;
+  }
+  &__card {
+    width: 100%;
+    height: 100%;
+  }
+  .title {
+    display: flex;
+    justify-content: space-between;
+    .right {
+      display: flex;
+      align-items: center;
+      &_but {
+        margin-right: 10px;
+        border: 1px solid #409eff;
+        width: 80px;
+        border-radius: 3px;
+        display: flex;
+        &_left {
+          width: 40px;
+          text-align: center;
+          color: #409eff;
+          border-right: 1px solid #409eff;
+          cursor: pointer;
+        }
+        &_right {
+          width: 40px;
+          text-align: center;
+          color: #409eff;
+          cursor: pointer;
+        }
+        &_active {
+          color: #fff;
+          background-color: #409eff;
+        }
+      }
+    }
+  }
+}
+.content {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  height: 15vh;
+  width: 80vw;
+  .divider {
+    display: block;
+    height: 0px;
+    width: 100%;
+    border-top: 1px dashed #dcdfe6;
+  }
+  &-item {
+    margin-left: 1vw;
+    .card {
+      width: 130px;
+      display: flex;
+      align-items: center;
+      &-title {
+        width: 40px;
+        height: 40px;
+        text-align: center;
+        border-radius: 50%;
+        font-size: 20px;
+        font-weight: 600;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        span {
+          line-height: 20px;
+        }
+      }
+      &-title1 {
+        color: #037fe1;
+        background-color: rgba(3, 127, 225, 0.15);
+      }
+      &-title2 {
+        color: #ffa21e;
+        background-color: rgba(255, 162, 30, 0.15);
+      }
+      &-title3 {
+        color: #fb5b60;
+        background-color: rgba(251, 91, 96, 0.15);
+      }
+      &-title4 {
+        color: #42bc6f;
+        background-color: rgba(66, 188, 111, 0.15);
+      }
+      &-content {
+        padding-left: 1vw;
+        display: flex;
+        flex-direction: column;
+        &-num {
+          font-size: 20px;
+          font-weight: 600;
+        }
+        &-text {
+          color: #909399;
+        }
+      }
+    }
+  }
+}
+</style>

+ 202 - 0
src/views/wel/home/jiatongPage/components/sales-reached.vue

@@ -0,0 +1,202 @@
+<template>
+  <div>
+    <div class="home-container" v-if="sysType != 2">
+      <el-card class="home-container__card">
+        <div class="title">
+        <span>
+          当月入库
+        </span>
+          <span>
+          <i
+            class="el-icon-refresh-right"
+            style="cursor: pointer;font-size:20px"
+            @click="refresh"
+          ></i>
+        </span>
+        </div>
+        <div class="content" v-loading="loading">
+          <div style="display:flex">
+            <div id="ringData" ref="ringData" style="width:20vw;height:33vh" />
+            <div>
+              <div class="content_item">
+                <div class="content_item_num">{{ data.grossAmount || 0 }}</div>
+                <div class="content_item_text">已报价数量</div>
+              </div>
+              <div class="content_item">
+                <div class="content_item_num">{{ data.reachAmount || 0 }}</div>
+                <div class="content_item_text">未报价数量</div>
+              </div>
+              <div class="content_item">
+                <div class="divider" />
+              </div>
+              <div class="content_item">
+                <div class="content_item_num">{{ data.notReachAmount || 0}}</div>
+                <div class="content_item_text">合计</div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </el-card>
+    </div>
+<!--    <domSales v-if="sysType == 2"/>-->
+  </div>
+</template>
+
+<script>
+import { monthSales } from "@/api/wel";
+// import domSales from "/home/domesticTrade/domSales";
+export default {
+  name: "basicContainer",
+  props: {
+    sysType: Number
+  },
+  components: {
+    // domSales
+  },
+  data() {
+    return {
+      loading: false,
+      tradeType: null,
+      data: {}
+    };
+  },
+  created() {
+    this.getSysType();
+  },
+  mounted() {
+    this.init();
+  },
+  methods: {
+    init() {
+      this.getmonthSales();
+    },
+    getSysType() {
+      const sysType = localStorage.getItem("sysitemType");
+      if (sysType == 6) {
+        this.tradeType = "JXS";
+      } else if (sysType == 5) {
+        this.tradeType = "SW";
+      } else if (sysType == 4) {
+        this.tradeType = "CK";
+      } else if (sysType == 3) {
+        this.tradeType = "JK";
+      } else if (sysType == 2) {
+        this.tradeType = "GN";
+      } else if (sysType == 1) {
+        this.tradeType = "XX";
+      } else if (sysType == 999) {
+        this.tradeType = "ADMIN";
+      }
+    },
+    getmonthSales() {
+      this.loading = true;
+      monthSales({ tradeType: this.tradeType, billType: "BJ" })
+        .then(res => {
+          this.data = res.data.data;
+        })
+        .finally(() => {
+          this.loading = false;
+          this.ringData();
+        });
+    },
+    refresh() {
+      this.init();
+    },
+    ringData() {
+      let ringData = this.$echarts.init(document.getElementById("ringData"));
+      ringData.setOption({
+        tooltip: {
+          trigger: "item"
+        },
+        legend: {
+          top: "3%",
+          left: "center"
+        },
+        graphic: [
+          {
+            type: "text",
+            left: "center",
+            top: "43%",
+            style: {
+              text: this.data.yieldRate + "%",
+              textAlign: "center",
+              fill: "#000",
+              fontSize: 24
+            }
+          },
+          {
+            type: "text",
+            left: "center",
+            top: "53%",
+            style: {
+              text: "报价达成率",
+              textAlign: "center",
+              fill: "#999999",
+              fontSize: 16
+            }
+          }
+        ],
+        color: ["#F6695E", "#E3E3E3"],
+        series: [
+          {
+            name: "当月报价",
+            type: "pie",
+            radius: ["55%", "70%"],
+            avoidLabelOverlap: false,
+            label: {
+              show: false,
+              position: "center"
+            },
+            labelLine: {
+              show: false
+            },
+            data: [
+              { value: Number(this.data.reachAmount), name: "已报价数量" },
+              { value: Number(this.data.notReachAmount), name: "未报价数量" }
+            ]
+          }
+        ]
+      });
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.home-container {
+  padding: 0px 5px 5px 5px;
+  box-sizing: border-box;
+  height: 100%;
+  ::v-deep .el-card__body {
+    padding: 10px 15px;
+    font-size: 14px;
+  }
+  &__card {
+    width: 100%;
+    height: 100%;
+  }
+  .title {
+    display: flex;
+    justify-content: space-between;
+  }
+}
+.content {
+  display: flex;
+  &_item {
+    margin-top: 20px;
+    .divider {
+      display: block;
+      height: 0px;
+      width: 12vw;
+      border-top: 1px dashed #dcdfe6;
+    }
+    &_num {
+      font-size: 18px;
+      font-weight: 600;
+    }
+    &_text {
+      color: #909399;
+    }
+  }
+}
+</style>

+ 185 - 0
src/views/wel/home/jiatongPage/components/sales-trend.vue

@@ -0,0 +1,185 @@
+<template>
+  <div class="home-container">
+    <el-card class="home-container__card">
+      <div v-if="sysType !== 5">
+        <div class="title">
+          <span>
+            销售趋势
+          </span>
+          <span>
+            <i
+              class="el-icon-refresh-right"
+              style="cursor: pointer;font-size:20px"
+              @click="refresh"
+            ></i>
+          </span>
+        </div>
+
+        <div class="content" v-loading="loading">
+          <div class="content-year">
+            <el-date-picker
+              v-model="annual"
+              type="year"
+              size="mini"
+              placeholder="选择年"
+              value-format="yyyy"
+              style="margin-right:10px"
+              @change="getsalesTrend"
+            />
+          </div>
+
+          <div
+            id="polylineData"
+            ref="polylineData"
+            style="width:55vw;height:33vh"
+          />
+        </div>
+      </div>
+      <div v-if="sysType === 5">
+        <div class="title">
+          <span>
+            业绩趋势
+          </span>
+          <span>
+            <i
+              class="el-icon-refresh-right"
+              style="cursor: pointer;font-size:20px"
+              @click="refresh"
+            ></i>
+          </span>
+        </div>
+        <div class="content" v-loading="loading">
+          <div
+            id="polylineDatas"
+            ref="polylineData"
+            style="width:60vw;height:33vh"
+          />
+        </div>
+      </div>
+    </el-card>
+  </div>
+</template>
+
+<script>
+import { getYearDate } from "@/util/date";
+import { salesTrendTow } from "@/api/wel";
+export default {
+  name: "basicContainer",
+  props: {
+    sysType: Number
+  },
+  data() {
+    return {
+      loading: false,
+      annual: "",
+      tradeType: null,
+      moneyList: [],
+      xAxisData:[]
+    };
+  },
+  created() {
+    this.annual = getYearDate().toString();
+    this.getSysType();
+  },
+  mounted() {
+    this.init();
+  },
+  methods: {
+    init() {
+      this.getsalesTrend();
+    },
+    getSysType() {
+      const sysType = localStorage.getItem("sysitemType");
+      if (sysType == 6) {
+        this.tradeType = "JXS";
+      } else if (sysType == 5) {
+        this.tradeType = "SW";
+      } else if (sysType == 4) {
+        this.tradeType = "CK";
+      } else if (sysType == 3) {
+        this.tradeType = "JK";
+      } else if (sysType == 2) {
+        this.tradeType = "GN";
+      } else if (sysType == 1) {
+        this.tradeType = "XX";
+      } else if (sysType == 999) {
+        this.tradeType = "ADMIN";
+      }
+    },
+    getsalesTrend() {
+      this.loading = true;
+      this.moneyList = [];
+      salesTrendTow({
+        year: this.annual
+      }).then(res => {
+          res.data.data.forEach(e => {
+            this.moneyList.push(Number(e.money));
+            this.xAxisData.push(e.moon)
+          });
+        })
+        .finally(() => {
+          this.loading = false;
+          this.polylineData();
+        });
+    },
+    refresh() {
+      this.init();
+    },
+    polylineData() {
+      let polylineData = this.$echarts.init(
+        document.getElementById("polylineData")
+      );
+      polylineData.setOption({
+        tooltip: {
+          trigger: "axis",
+          axisPointer: {
+            type: "line"
+          }
+        },
+        xAxis: {
+          type: "category",
+          data: this.xAxisData
+        },
+        yAxis: {
+          type: "value"
+        },
+        series: [
+          {
+            data: this.moneyList,
+            type: "line",
+            smooth: true
+          }
+        ]
+      });
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.home-container {
+  padding: 0px 5px 5px 0px;
+  box-sizing: border-box;
+  height: 100%;
+  ::v-deep .el-card__body {
+    padding: 10px 15px;
+    font-size: 14px;
+  }
+  &__card {
+    width: 100%;
+    height: 100%;
+  }
+  .title {
+    display: flex;
+    justify-content: space-between;
+  }
+}
+.content {
+  display: flex;
+  flex-direction: column;
+  &-year {
+    display: flex;
+    justify-content: right;
+  }
+}
+</style>

+ 82 - 0
src/views/wel/home/jiatongPage/landTransportation.vue

@@ -0,0 +1,82 @@
+<template>
+  <div class="container">
+    <quick-launch class="item1" :sysType="sysType" />
+    <audit-data class="item2" :sysType="sysType"/>
+    <realtime-data class="item3" :sysType="sysType"/>
+    <sales-reached class="item4" :sysType="sysType" v-if="sysType!=4||roleName!='采购'"/>
+    <sales-trend class="item5" :sysType="sysType" v-if="sysType!=4||roleName!='采购'"/>
+    <charge-today class="item6" :sysType="sysType" v-if="sysType!=4||roleName!='采购'"/>
+    <pay-today class="item7" :sysType="sysType" v-if="sysType!=4||roleName!='采购'"/>
+  </div>
+</template>
+
+<script>
+import quickLaunch from "./components/quick-launch";
+import auditData from "./components/audit-data";
+import realtimeData from "./components/realtime-data";
+import salesReached from "./components/sales-reached";
+import salesTrend from "./components/sales-trend";
+import chargeToday from "./components/charge-today";
+import payToday from "./components/pay-today";
+export default {
+  name: "wel",
+  data() {
+    return {
+      roleName:''
+    };
+  },
+  props:{
+    sysType:Number
+  },
+  created() {
+    this.roleName=localStorage.getItem("roleName")
+  },
+  components: {
+    quickLaunch,
+    auditData,
+    realtimeData,
+    salesReached,
+    salesTrend,
+    chargeToday,
+    payToday
+  },
+  computed: {},
+  methods: {}
+};
+</script>
+<style lang="scss" scoped>
+.item1 {
+  grid-area: a;
+}
+.item2 {
+  grid-area: b;
+}
+.item3 {
+  grid-area: c;
+}
+.item4 {
+  grid-area: d;
+}
+.item5 {
+  grid-area: e;
+}
+.item6 {
+  grid-area: f;
+}
+.item7 {
+  grid-area: g;
+}
+.container {
+  display: grid;
+  width: 100%;
+  height: 95.5vh;
+  grid-template-columns: repeat(auto-fill, 10%);
+  grid-template-rows: 140px 180px 180px 350px 140px;
+  grid-template-areas:
+    "a a a a a a a a a a"
+    "b b b b b b b b b b"
+    "c c c c c c c c c c"
+    "d d d d e e e e e e"
+    "f f f f f g g g g g";
+}
+</style>

+ 3 - 0
src/views/wel/index.vue

@@ -2,6 +2,7 @@
   <div v-if="billType">
     <tongjiSchool v-if="billType == 1"></tongjiSchool>
     <landTransportation v-else-if="billType == 7"></landTransportation>
+    <jiatongPage v-else-if="billType == 8"></jiatongPage>
     <defaultPage v-else :sysType="billType"></defaultPage>
   </div>
 </template>
@@ -10,6 +11,7 @@
 import defaultPage from "@/views/wel/home/defaultPage";
 import tongjiSchool from "@/views/wel/home/tongjiSchool";
 import landTransportation from "@/views/wel/home/landTransportation/landTransportation";
+import jiatongPage from "@/views/wel/home/jiatongPage/landTransportation";
 import { getUserInfo } from "@/api/system/user";
 import { setStore } from "@/util/store";
 export default {
@@ -29,6 +31,7 @@ export default {
   components: {
     tongjiSchool,
     defaultPage,
+    jiatongPage,
     landTransportation
   },
   methods: {}