Kaynağa Gözat

Merge branch 'master' into feature/Feature-sales

莫绍宝 3 yıl önce
ebeveyn
işleme
2129bdaf4c
53 değiştirilmiş dosya ile 7539 ekleme ve 157 silme
  1. 34 19
      package-lock.json
  2. 1 0
      package.json
  3. 9 0
      src/api/basic_data/dealer.js
  4. 9 0
      src/api/basic_data/logistics.js
  5. 9 0
      src/api/basic_data/material.js
  6. 9 0
      src/api/basic_data/supplier.js
  7. 9 0
      src/api/basic_data/taker.js
  8. 9 0
      src/api/basic_data/warehouse.js
  9. 10 0
      src/api/sales_region.js
  10. 10 0
      src/api/stock.js
  11. 10 0
      src/api/supply/sales.js
  12. 40 0
      src/components/Common/export-button.vue
  13. 5 0
      src/main.js
  14. 99 0
      src/styles/index.scss
  15. 1 1
      src/utils/util.js
  16. 5 0
      src/views/basic_data/dealer.vue
  17. 157 0
      src/views/basic_data/dealer/components/dealer-apply-detail.vue
  18. 287 0
      src/views/basic_data/dealer/components/dealer_list-detail.vue
  19. 228 0
      src/views/basic_data/dealer/dealer_apply.vue
  20. 287 0
      src/views/basic_data/dealer/dealer_deposit.vue
  21. 194 0
      src/views/basic_data/dealer/dealer_list.vue
  22. 278 0
      src/views/basic_data/dealer/dealer_stock.vue
  23. 5 0
      src/views/basic_data/logistics.vue
  24. 284 0
      src/views/basic_data/logistics/logistics_list.vue
  25. 5 0
      src/views/basic_data/material.vue
  26. 648 0
      src/views/basic_data/material/components/material_list-detail.vue
  27. 194 0
      src/views/basic_data/material/material_list.vue
  28. 5 0
      src/views/basic_data/supplier.vue
  29. 398 0
      src/views/basic_data/supplier/components/supplier_list-detail.vue
  30. 162 0
      src/views/basic_data/supplier/supplier_list.vue
  31. 5 0
      src/views/basic_data/taker.vue
  32. 236 0
      src/views/basic_data/taker/taker_car.vue
  33. 304 0
      src/views/basic_data/taker/taker_list.vue
  34. 5 0
      src/views/basic_data/warehouse.vue
  35. 288 0
      src/views/basic_data/warehouse/components/warehouse_list-detail.vue
  36. 119 0
      src/views/basic_data/warehouse/warehouse_book.vue
  37. 321 0
      src/views/basic_data/warehouse/warehouse_cost.vue
  38. 213 0
      src/views/basic_data/warehouse/warehouse_list.vue
  39. 291 0
      src/views/basic_data/warehouse/warehouse_site.vue
  40. 10 4
      src/views/merchant/merchant_list.vue
  41. 244 0
      src/views/sales_region/sales_line.vue
  42. 258 0
      src/views/sales_region/sales_man.vue
  43. 236 0
      src/views/sales_region/sales_relation.vue
  44. 196 0
      src/views/setting/components/log-examine.vue
  45. 190 0
      src/views/setting/components/log-login.vue
  46. 187 0
      src/views/setting/components/log-operation.vue
  47. 18 133
      src/views/setting/oplog.vue
  48. 196 0
      src/views/stock/reserved_stock.vue
  49. 205 0
      src/views/stock/stock_list.vue
  50. 5 0
      src/views/supply/sales.vue
  51. 162 0
      src/views/supply/sales/components/sales_detail.vue
  52. 187 0
      src/views/supply/sales/components/sales_examine.vue
  53. 262 0
      src/views/supply/sales/sales_list.vue

+ 34 - 19
package-lock.json

@@ -25725,7 +25725,7 @@
       "dependencies": {
         "define-property": {
           "version": "0.2.5",
-          "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
           "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
           "requires": {
             "is-descriptor": "^0.1.0"
@@ -31499,7 +31499,7 @@
       "dependencies": {
         "lodash": {
           "version": "4.17.4",
-          "resolved": "https://registry.nlark.com/lodash/download/lodash-4.17.4.tgz",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
           "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
           "dev": true
         }
@@ -34142,7 +34142,7 @@
       "dependencies": {
         "jsesc": {
           "version": "0.5.0",
-          "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz?cache=0&sync_timestamp=1603900010788&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-0.5.0.tgz",
+          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
           "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
           "dev": true
         }
@@ -34376,13 +34376,13 @@
         },
         "has-flag": {
           "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-2.0.0.tgz",
+          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
           "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
           "dev": true
         },
         "supports-color": {
           "version": "4.5.0",
-          "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-4.5.0.tgz?cache=0&sync_timestamp=1618560983872&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-4.5.0.tgz",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
           "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
           "dev": true,
           "requires": {
@@ -34727,7 +34727,7 @@
         },
         "http-errors": {
           "version": "1.6.3",
-          "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz",
+          "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
           "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
           "dev": true,
           "requires": {
@@ -34739,7 +34739,7 @@
         },
         "inherits": {
           "version": "2.0.3",
-          "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
           "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
           "dev": true
         },
@@ -34945,7 +34945,7 @@
       "dependencies": {
         "is-fullwidth-code-point": {
           "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz?cache=0&sync_timestamp=1618552489864&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-2.0.0.tgz",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
           "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
           "dev": true
         }
@@ -34976,7 +34976,7 @@
         },
         "define-property": {
           "version": "0.2.5",
-          "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
           "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
           "requires": {
             "is-descriptor": "^0.1.0"
@@ -35542,13 +35542,13 @@
       "dependencies": {
         "ansi-regex": {
           "version": "2.1.1",
-          "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-2.1.1.tgz",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
           "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
           "dev": true
         },
         "ansi-styles": {
           "version": "2.2.1",
-          "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
           "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
           "dev": true
         },
@@ -35572,7 +35572,7 @@
         },
         "chalk": {
           "version": "1.1.3",
-          "resolved": "https://registry.nlark.com/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1618995367379&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
           "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
           "dev": true,
           "requires": {
@@ -35585,7 +35585,7 @@
           "dependencies": {
             "supports-color": {
               "version": "2.0.0",
-              "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz?cache=0&sync_timestamp=1618560983872&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz",
+              "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
               "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
               "dev": true
             }
@@ -35605,7 +35605,7 @@
         },
         "has-flag": {
           "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
+          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
           "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
           "dev": true
         },
@@ -35670,7 +35670,7 @@
         },
         "strip-ansi": {
           "version": "3.0.1",
-          "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1618553320591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
           "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
           "dev": true,
           "requires": {
@@ -35679,7 +35679,7 @@
         },
         "supports-color": {
           "version": "3.2.3",
-          "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz?cache=0&sync_timestamp=1618560983872&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-3.2.3.tgz",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
           "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
           "dev": true,
           "requires": {
@@ -35711,7 +35711,7 @@
       "dependencies": {
         "deepmerge": {
           "version": "1.3.2",
-          "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.3.2.tgz",
+          "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.3.2.tgz",
           "integrity": "sha1-FmNpFinU2/42T6EqKk8KqGqjoFA=",
           "dev": true
         }
@@ -35736,7 +35736,7 @@
       "dependencies": {
         "deepmerge": {
           "version": "1.3.2",
-          "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.3.2.tgz",
+          "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.3.2.tgz",
           "integrity": "sha1-FmNpFinU2/42T6EqKk8KqGqjoFA=",
           "dev": true
         }
@@ -35865,7 +35865,7 @@
         },
         "is-fullwidth-code-point": {
           "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz?cache=0&sync_timestamp=1618552489864&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-2.0.0.tgz",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
           "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
           "dev": true
         },
@@ -36843,6 +36843,21 @@
         "worker-loader": "^2.0.0"
       }
     },
+    "vue-print-nb": {
+      "version": "1.7.5",
+      "resolved": "https://registry.npmmirror.com/vue-print-nb/-/vue-print-nb-1.7.5.tgz",
+      "integrity": "sha512-iNbNyUVRWz0Ha1UTiCKxMPtHLUDGgNI8e8xmD3xqm9RlXIUeX9bT7DgNAfY8vPzqyFRHqGjxLI1rycKH366ziQ==",
+      "requires": {
+        "vue": "^2.6.11"
+      },
+      "dependencies": {
+        "vue": {
+          "version": "2.6.14",
+          "resolved": "https://registry.npmmirror.com/vue/-/vue-2.6.14.tgz",
+          "integrity": "sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ=="
+        }
+      }
+    },
     "vue-quill-editor": {
       "version": "3.0.6",
       "resolved": "https://registry.npmjs.org/vue-quill-editor/-/vue-quill-editor-3.0.6.tgz",

+ 1 - 0
package.json

@@ -26,6 +26,7 @@
     "screenfull": "^4.2.0",
     "vue": "2.6.10",
     "vue-pdf": "^4.3.0",
+    "vue-print-nb": "^1.7.5",
     "vue-quill-editor": "^3.0.6",
     "vue-router": "3.0.6",
     "vuex": "3.1.0",

+ 9 - 0
src/api/basic_data/dealer.js

@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+
+export function getList(params) {
+  return request({
+    url: '/admin/user/mch/list',
+    method: 'get',
+    params
+  })
+}

+ 9 - 0
src/api/basic_data/logistics.js

@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+
+export function getList(params) {
+  return request({
+    url: '/admin/user/mch/list',
+    method: 'get',
+    params
+  })
+}

+ 9 - 0
src/api/basic_data/material.js

@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+
+export function getList(params) {
+  return request({
+    url: '/admin/user/mch/list',
+    method: 'get',
+    params
+  })
+}

+ 9 - 0
src/api/basic_data/supplier.js

@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+
+export function getList(params) {
+  return request({
+    url: '/admin/user/mch/list',
+    method: 'get',
+    params
+  })
+}

+ 9 - 0
src/api/basic_data/taker.js

@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+
+export function getList(params) {
+  return request({
+    url: '/admin/user/mch/list',
+    method: 'get',
+    params
+  })
+}

+ 9 - 0
src/api/basic_data/warehouse.js

@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+
+export function getList(params) {
+  return request({
+    url: '/admin/user/mch/list',
+    method: 'get',
+    params
+  })
+}

+ 10 - 0
src/api/sales_region.js

@@ -0,0 +1,10 @@
+import request from '@/utils/request'
+
+// 获取对应关系列表
+export function getRelationList(params) {
+  return request({
+    url: '/admin/user/mch/list',
+    method: 'get',
+    params
+  })
+}

+ 10 - 0
src/api/stock.js

@@ -0,0 +1,10 @@
+import request from '@/utils/request'
+
+// 获取库存列表
+export function getStockList(params) {
+  return request({
+    url: '/admin/user/mch/list',
+    method: 'get',
+    params
+  })
+}

+ 10 - 0
src/api/supply/sales.js

@@ -0,0 +1,10 @@
+import request from '@/utils/request'
+
+// 获取列表
+export function getList(params) {
+  return request({
+    url: '/admin/user/mch/list',
+    method: 'get',
+    params
+  })
+}

+ 40 - 0
src/components/Common/export-button.vue

@@ -0,0 +1,40 @@
+<template>
+  <div>
+    <el-button size="small" type="primary" :icon="isIcon ? 'el-icon-download':''" @click="handleExport">{{exText}}</el-button>
+  </div>
+</template>
+
+<script>
+import { downloadFiles } from '@/utils/util'
+
+export default {
+  name: 'ExportButton',
+  props: {
+    exText: {
+      type: String,
+      default: '导出数据'
+    },
+    isIcon: {
+      type: Boolean,
+      default: true
+    },
+    exUrl: {
+      type: String,
+      default: '',
+    },
+    exParams: {
+      type: Object,
+      default: null
+    }
+  },
+  methods: {
+    handleExport() {
+      downloadFiles(this.exUrl, this.exParams);
+    }
+  }
+}
+</script>
+
+<style>
+
+</style>

+ 5 - 0
src/main.js

@@ -20,11 +20,16 @@ import '@/permission' // permission control
 
 import * as filters from './filters' // global filters
 
+// 成功/错误提示
 import {successMsg, errorMsg, warningNotify} from '@/utils/common.js'
 Vue.prototype.$successMsg = successMsg;
 Vue.prototype.$errorMsg = errorMsg;
 Vue.prototype.$warningNotify = warningNotify;
 
+// 自定义组件
+import ExportButton from '@/components/Common/export-button.vue'
+Vue.component('ExportButton', ExportButton);
+
 /**
  * If you don't want to use mock-server
  * you want to use MockJs for mock api

+ 99 - 0
src/styles/index.scss

@@ -258,4 +258,103 @@ div:focus {
       width: calc(100vw - 210px);
     }
   }
+}
+
+.diy-table-1 {
+  border: 1px solid #EBEEF5;
+  border-right: none;
+  border-bottom: none;
+  .item {
+    display: flex;
+    border-bottom: 1px solid #EBEEF5;
+    .label {
+      width: 120px;
+      height: 40px;
+      display: flex;
+      align-items: center;
+      padding: 0 10px;
+      box-sizing: border-box;
+      background: #F5F7FA;
+      border-right: 1px solid #EBEEF5;
+      font-size: 14px;
+      color: #333333;
+    }
+    .value {
+      flex: 1;
+      height: 40px;
+      display: flex;
+      align-items: center;
+      padding: 0 10px;
+      box-sizing: border-box;
+      border-right: 1px solid #EBEEF5;
+      font-size: 14px;
+      color: #333333;
+      input {
+        border: none;
+        padding: 0;
+      }
+    }
+  }
+}
+.diy-table-2 {
+  font-size: 14px;
+  margin-top: 20px;
+  margin-bottom: 20px;
+  .el-row {
+    margin-left: 0 !important;
+    margin-right: 0 !important;
+    border: 1px solid #EBEEF5;
+    border-right: none;
+  }
+  .el-col {
+    padding-top: 14px;
+    padding-bottom: 14px;
+    border-right: 1px solid #EBEEF5;
+  }
+  .head {
+    color: #909399;
+    font-weight: bold;
+    background: #F5F7FA;
+  }
+  .body {
+    color: #333333;
+    .el-row {
+      border-top: none;
+    }
+  }
+  .foot {
+    color: #333333;
+    .el-row {
+      border-top: none;
+    }
+  }
+}
+
+.diy-form-1 {
+  .item {
+    display: flex;
+    height: 40px;
+    .label {
+      width: 100px;
+      display: flex;
+      align-items: center;
+      padding-right: 10px;
+      box-sizing: border-box;
+      font-size: 14px;
+      color: #606266;
+      font-weight: 700;
+    }
+    .value {
+      flex: 1;
+      display: flex;
+      align-items: center;
+      box-sizing: border-box;
+      font-size: 14px;
+      color: #333333;
+      input {
+        border: none;
+        padding: 0;
+      }
+    }
+  }
 }

+ 1 - 1
src/utils/util.js

@@ -10,7 +10,7 @@ import { getToken } from '@/utils/auth'
 export function deleteEmptyObj(obj) {
   let newObj = obj;
   for(var key in newObj) {
-    if(newObj[key] === '' || newObj[key] === null) {
+    if(newObj[key] === '' || newObj[key] === null || newObj[key] === undefined) {
       delete newObj[key]
     }
   }

+ 5 - 0
src/views/basic_data/dealer.vue

@@ -0,0 +1,5 @@
+<template>
+  <div>
+    <router-view />
+  </div>
+</template>

+ 157 - 0
src/views/basic_data/dealer/components/dealer-apply-detail.vue

@@ -0,0 +1,157 @@
+<template>
+  <div>
+    <div>
+      <el-page-header @back="goBack" content="详情页面"> </el-page-header>
+    </div>
+    <div class="message">
+      <el-card class="box-card">
+        <div slot="header" class="clearfix">
+          <span>申请信息</span>
+        </div>
+        <el-row>
+          <el-col :span="4">企业名称</el-col>
+          <el-col :span="4"><input type="text" /></el-col>
+          <el-col :span="4">联系人</el-col>
+          <el-col :span="4"><input type="text" /></el-col>
+          <el-col :span="4">联系电话</el-col>
+          <el-col :span="4"><input type="text" /></el-col>
+          <el-col :span="4">企业名称</el-col>
+          <el-col :span="4"><input type="text" /></el-col>
+          <el-col :span="4">联系人</el-col>
+          <el-col :span="4"><input type="text" /></el-col>
+          <el-col :span="4">联系电话</el-col>
+          <el-col :span="4"><input type="text" /></el-col>
+        </el-row>
+      </el-card>
+      <div>
+        <el-card class="box-card">
+          <div slot="header" class="clearfix">
+            <span>跟进记录</span>
+          </div>
+          <!-- 列表 -->
+
+          <el-table
+            :data="dataList"
+            :header-cell-style="{
+              'background-color': '#e8e8e8',
+              color: 'black',
+            }"
+            border=""
+          >
+            <el-table-column
+              align="center"
+              label="跟进人"
+              prop="person"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="center"
+              label="跟进时间"
+              prop="personDate"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="center"
+              label="跟进状态"
+              prop="state"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="center"
+              label="处理意见"
+              prop="suggest"
+              min-width="160"
+              show-overflow-tooltip
+            />
+          </el-table>
+        </el-card>
+      </div>
+
+      <el-card class="box-card">
+        <div slot="header" class="clearfix">
+          <span>跟进登录</span>
+        </div>
+        <el-row>
+          <el-col :span="4">跟进人</el-col>
+          <el-col :span="4"><input type="text" /></el-col>
+          <el-col :span="4">跟进时间</el-col>
+          <el-col :span="4"><input type="text" /></el-col>
+          <el-col :span="4">跟进状态</el-col>
+          <el-col :span="4"
+            ><select value="1">
+              <option value="1">跟进中</option>
+              <option value="2">vertical</option>
+            </select></el-col
+          >
+          <el-col :span="4">处理意见</el-col>
+          <el-col :span="4"
+            ><input type="text" placeholder="记录处理意见"
+          /></el-col>
+        </el-row>
+      </el-card>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      dataList: [
+        {
+          person: "李四",
+          personDate: "2020-09-10 12:12",
+          state: "跟进中",
+          suggest: "业务沟通中",
+        },
+        {
+          person: "李四",
+          personDate: "2020-09-10 12:12",
+          state: "跟进中",
+          suggest: "业务沟通中",
+        },
+        {
+          person: "李四",
+          personDate: "2020-09-10 12:12",
+          state: "跟进中",
+          suggest: "业务沟通中",
+        },
+      ],
+    };
+  },
+  methods: {
+    goBack() {
+      console.log(this.$parent);
+      this.$parent.isShow = true;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.el-card__body {
+  .el-col:nth-child(2n + 1) {
+    background-color: #e8e8e8;
+  }
+  .el-col {
+    border: 1px solid black;
+    height: 48px;
+    text-align: center;
+    line-height: 48px;
+    overflow: hidden;
+    margin: 0px 0px -1px -1px;
+    input {
+      outline: none;
+      border: 0px;
+      height: 48px;
+    }
+  }
+}
+
+.message {
+  margin-top: 10px;
+}
+</style>

+ 287 - 0
src/views/basic_data/dealer/components/dealer_list-detail.vue

@@ -0,0 +1,287 @@
+<template>
+  <div>
+    <div class="sty">
+      <el-page-header @back="goBack" content="详情页面"> </el-page-header>
+    </div>
+    <el-card class="box-card">
+      <div slot="header" class="clearfix">
+        <span>客户</span>
+      </div>
+      <el-row>
+        <el-col :span="8"
+          ><span class="color">创建组织</span><input type="text"
+        /></el-col>
+        <el-col :span="8"><span>客户编码</span><input type="text" /></el-col>
+        <el-col :span="8"
+          ><span class="color">使用组织</span><input type="text"
+        /></el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="8"><span>简称</span><input type="text" /></el-col>
+      </el-row>
+    </el-card>
+    <el-card class="box-card">
+      <div slot="header" class="clearfix">
+        <span>基本信息</span>
+      </div>
+      <div class="baseInfo">
+        <div>
+          <div class="base-header">
+            <span>地址</span>
+          </div>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">国家</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">地区</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">省份</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">城市</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">通讯地址</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">邮政编码</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">公司网址</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">商城订单对应组织</span
+              ><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">联系邮箱</span><input type="text"
+            /></el-col>
+          </el-row>
+        </div>
+        <div>
+          <div class="base-header">
+            <span>管理</span>
+          </div>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">联系电话</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">传真</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">公司类别</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">公司性质</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">公司规模</span><input type="text"
+            /></el-col>
+          </el-row>
+          <div class="base-header">
+            <span>开票信息</span>
+          </div>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">发票抬头</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">纳税登记号</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">开户银行</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">银行账号</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">开票联系电话</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">开票通讯地址</span><input type="text"
+            /></el-col>
+          </el-row>
+        </div>
+        <div>
+          <div class="base-header">
+            <span>相关</span>
+          </div>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">对应供应商</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">对应集团客户</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">集团客户</span><input type="checkbox"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">默认付款方</span><input type="checkbox"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">不校验可发量</span><input type="checkbox"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">客户类别</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">客户分组</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">对应组织</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">备注</span><input type="text"
+            /></el-col>
+          </el-row>
+          <div class="base-header">
+            <span>智慧订货</span>
+          </div>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">允许对智慧订货</span><input type="checkbox"
+            /></el-col>
+          </el-row>
+        </div>
+      </div>
+    </el-card>
+    <el-card class="box-card">
+      <div slot="header" class="clearfix">
+        <span>信用额度</span>
+      </div>
+      <el-row>
+        <el-col :span="8"
+          ><span class="color">信用额度</span><input type="text"
+        /></el-col>
+        <el-col :span="8"><span>有效期</span><input type="text" /></el-col>
+        <el-col :span="8"></el-col>
+      </el-row>
+    </el-card>
+    <el-card class="box-card">
+      <div slot="header" class="clearfix">
+        <span>业务信息</span>
+      </div>
+    </el-card>
+  </div>
+</template>
+
+<script>
+export default {
+  methods: {
+    goBack() {
+      console.log(this.$parent);
+      this.$parent.isShow = true;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.color {
+  color: #1f93ec;
+}
+.el-col-24 {
+  margin: 6px 0;
+}
+
+.marg-r {
+  padding-right: 15px;
+  font-size: 12px;
+  display: inline-block;
+  width: 120px;
+}
+.base-header {
+  height: 20px;
+  width: 60%;
+  border-bottom: 2px solid gray;
+  span {
+    width: 100px;
+    height: 100%;
+    display: block;
+    text-align: center;
+    color: #fff;
+
+    background-color: gray;
+  }
+}
+.box-card {
+  margin-bottom: 20px;
+}
+.el-col-8 {
+  span {
+    padding-right: 10px;
+    display: inline-block;
+    width: 100px;
+  }
+}
+.baseInfo {
+  display: flex;
+  justify-content: space-between;
+  > div {
+    width: 33%;
+  }
+}
+.sty {
+  margin-bottom: 20px;
+}
+.el-row {
+  margin-bottom: 20px;
+  &:last-child {
+    margin-bottom: 0;
+  }
+}
+</style>

+ 228 - 0
src/views/basic_data/dealer/dealer_apply.vue

@@ -0,0 +1,228 @@
+<template>
+  <div class="app-container">
+    <div v-if="isShow">
+      <!-- 筛选条件 -->
+      <div>
+        <el-form label-width="70px" size="small" label-position="left">
+          <el-row :gutter="20">
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="企业名称" prop="account">
+                <el-input placeholder="请输入企业名称"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="联系人" prop="nickname">
+                <el-input placeholder="请输入联系人"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="联系电话" prop="phone">
+                <el-input placeholder="请输入联系电话"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="联系电话" prop="email">
+                <el-input placeholder="请输入联系电话"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="电子邮箱" prop="email">
+                <el-input placeholder="请输入电子邮箱"></el-input>
+              </el-form-item>
+            </el-col>
+
+            <el-col :xs="24" :sm="12" :lg="18" class="tr">
+              <el-form-item label="">
+                <el-button size="small" @click="resetScreenForm"
+                  >清空</el-button
+                >
+                <el-button size="small" type="primary" @click="submitScreenForm"
+                  >搜索</el-button
+                >
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </div>
+      <!-- 按钮 -->
+      <div class="btn-group clearfix">
+        <div class="fl">
+          <el-button type="primary">删除</el-button>
+        </div>
+        <div class="fr">
+          <el-button type="primary">导出</el-button>
+        </div>
+      </div>
+      <div class="mymain-container">
+        <!-- 列表 -->
+        <div class="table">
+          <el-table
+            v-loading="listLoading"
+            :data="dataList"
+            element-loading-text="Loading"
+            border
+            fit
+            highlight-current-row
+            stripe
+          >
+            <el-table-column type="selection" min-width="100"></el-table-column>
+            <el-table-column
+              align="center"
+              label="企业名称"
+              prop="enterprise"
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="联系人"
+              prop="friend"
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="联系电话"
+              prop="telephone"
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="邮箱"
+              prop="email"
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="联系地址"
+              prop="address"
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="申请时间"
+              prop="reqDate"
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="跟进人"
+              prop="person"
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="跟进时间"
+              prop="personDate"
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="跟进状态"
+              prop="state"
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="操作"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <el-button type="text" class="textColor" @click="editFn"
+                >跟进</el-button
+              >
+              <el-button type="text" class="textColor">删除</el-button>
+            </el-table-column>
+          </el-table>
+        </div>
+        <!-- 分页 -->
+        <div class="fr">
+          <el-pagination
+            :current-page="currentPage"
+            :page-sizes="[10, 20, 30, 50]"
+            :page-size="10"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="listTotal"
+          >
+          </el-pagination>
+        </div>
+      </div>
+    </div>
+
+    <DealerApplyDetail v-else />
+  </div>
+</template>
+
+<script>
+import DealerApplyDetail from "./components/dealer-apply-detail.vue";
+export default {
+  data() {
+    return {
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      isShow: true,
+      showDialog: false,
+      dataList: [
+        {
+          enterprise: "佛山市禅城区梁云冷气经营部",
+          friend: "张三",
+          telephone: "17839906442",
+          email: "@163.com",
+          address: "广东深圳市",
+          reqDate: "2022-5-34  12:08",
+          person: "张三",
+          personDate: "2022-5-24   12:09",
+          state: "跟进中",
+        },
+        {
+          enterprise: "佛山市禅城区梁云冷气经营部",
+          friend: "张三",
+          telephone: "17839906442",
+          email: "@163.com",
+          address: "广东深圳市",
+          reqDate: "2022-5-34  12:08",
+          person: "张三",
+          personDate: "2022-5-24   12:09",
+          state: "跟进中",
+        },
+        {
+          enterprise: "佛山市禅城区梁云冷气经营部",
+          friend: "张三",
+          telephone: "17839906442",
+          email: "@163.com",
+          address: "广东深圳市",
+          reqDate: "2022-5-34  12:08",
+          person: "张三",
+          personDate: "2022-5-24   12:09",
+          state: "跟进中",
+        },
+      ],
+      enterprise: {
+        name: "",
+        friend: "",
+        telephone: "",
+        address: "",
+        email: "",
+      },
+    };
+  },
+  components: {
+    DealerApplyDetail,
+  },
+  methods: {
+    editFn() {
+      this.isShow = false;
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+</style>

+ 287 - 0
src/views/basic_data/dealer/dealer_deposit.vue

@@ -0,0 +1,287 @@
+<template>
+  <div class="app-container">
+    <!-- <el-card class="box-card">
+      <el-row>
+        <h4>通用经销商工程机押金比例配置</h4>
+        <h4>
+          工程机押金比例配置
+          <input
+            type="text"
+            class="inp"
+          />%通用工程押金比例配置适用于,没有单独配置工程机押金比例的经销商.
+        </h4>
+      </el-row>
+    </el-card> -->
+    <!-- 筛选条件 -->
+    <div>
+      <el-form label-width="100px" size="small" label-position="left">
+        <el-row :gutter="20">
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="经销商名称" prop="account">
+              <el-input placeholder="请输入经销商名称"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :xs="24" :sm="12" :lg="18">
+            <el-form-item label="" class="fr">
+              <el-button size="small">清空</el-button>
+              <el-button size="small" type="primary">搜索</el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+    <!-- 按钮 -->
+    <div class="btn-group clearfix">
+      <div class="fl">
+        <el-button type="primary">新增</el-button>
+        <el-button type="primary">编辑</el-button>
+        <el-button type="primary">删除</el-button>
+      </div>
+      <div class="fr">
+        <el-button type="primary">导入</el-button>
+        <el-button type="primary">导出</el-button>
+        <el-button type="primary">打印</el-button>
+      </div>
+    </div>
+
+    <div class="mymain-container">
+      <!-- 列表 -->
+      <div class="table">
+        <el-table
+          v-loading="listLoading"
+          :data="dataList"
+          element-loading-text="Loading"
+          border
+          fit
+          highlight-current-row
+          stripe
+        >
+          <el-table-column
+            align="center"
+            label="序号"
+            prop="num"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="center"
+            label="经销商编码"
+            prop="bianma"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="center"
+            label="经销商名称"
+            prop="dealerName"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="center"
+            label="押金比例"
+            prop="yaJin"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="center"
+            label="备注"
+            prop="beiZhu"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="center"
+            label="创建人"
+            prop="createMan"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="center"
+            label="创建时间"
+            prop="createDate"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="center"
+            label="更新人"
+            prop="updateMan"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="center"
+            label="更新时间"
+            prop="updateDate"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="center"
+            label="操作"
+            min-width="160"
+            show-overflow-tooltip
+          >
+            <el-button type="text" class="textColor" @click="editFn"
+              >编辑</el-button
+            >
+            <el-button type="text" class="textColor">删除</el-button>
+          </el-table-column>
+        </el-table>
+      </div>
+      <!-- 分页 -->
+      <div class="fr">
+        <el-pagination
+          :current-page="currentPage"
+          :page-sizes="[10, 20, 30, 50]"
+          :page-size="10"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="listTotal"
+        >
+        </el-pagination>
+      </div>
+    </div>
+
+    <!-- 弹窗 -->
+    <el-dialog
+      title="经销商工程机押金比例设置"
+      :visible.sync="showDialog"
+      width="30%"
+      :show-close="false"
+      :close-on-click-modal="false"
+    >
+      <el-form :model="dialogForm" label-width="100px" label-position="right">
+        <el-form-item label="经销商编码">
+          <el-select
+            v-model="dialogForm.bianma"
+            placeholder="请选择活动区域"
+            class="inputStyle"
+          >
+            <el-option label="区域一" value="shanghai"></el-option>
+            <el-option label="区域二" value="beijing"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="经销商名称">
+          <el-input v-model="dialogForm.name" class="inputStyle"></el-input>
+        </el-form-item>
+        <el-form-item label="押金比例">
+          <el-input v-model="dialogForm.yaJin" class="inputStyle"></el-input>
+        </el-form-item>
+        <el-form-item label="备注">
+          <el-input
+            type="textarea"
+            v-model="dialogForm.beiZhu"
+            placeholder="请输入备注信息"
+            class="inputStyle"
+          ></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="showDialog = false">取 消</el-button>
+        <el-button type="primary" @click="showDialog = false">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表
+      dialogForm: {
+        bianma: "",
+        name: "",
+        yaJin: "",
+        beiZhu: "",
+      },
+      showDialog: false,
+      dataList: [
+        {
+          num: "1",
+          bianma: "1002",
+          dealerName: "佛山市禅城区梁云冷气经营部",
+          yaJin: "0.1",
+          beiZhu: "???",
+          createMan: "??",
+          createDate: "2000/01/01",
+          updateMan: "??",
+          updateDate: "2020/01/01",
+        },
+        {
+          num: "1",
+          bianma: "1002",
+          dealerName: "佛山市禅城区梁云冷气经营部",
+          yaJin: "0.1",
+          beiZhu: "???",
+          createMan: "??",
+          createDate: "2000/01/01",
+          updateMan: "??",
+          updateDate: "2020/01/01",
+        },
+        {
+          num: "1",
+          bianma: "1002",
+          dealerName: "佛山市禅城区梁云冷气经营部",
+          yaJin: "0.1",
+          beiZhu: "???",
+          createMan: "??",
+          createDate: "2000/01/01",
+          updateMan: "??",
+          updateDate: "2020/01/01",
+        },
+      ],
+    };
+  },
+  methods: {
+    editFn() {
+      this.showDialog = true;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-form {
+  .inputStyle {
+    width: 80%;
+  }
+}
+::v-deep .dialog-footer {
+  display: flex;
+  justify-content: center;
+}
+::v-deep .el-dialog__header {
+  background-color: #dddddd;
+}
+.inp {
+  margin: 0 12px;
+}
+
+.right {
+  margin-top: 12px;
+  float: right;
+}
+
+.table {
+  margin-top: 12px;
+}
+.search {
+  display: flex;
+  margin-top: 12px;
+  ::v-deep .el-input {
+    width: 50%;
+    margin-right: 12px;
+  }
+}
+// .main {
+//   padding: 12px;
+// }
+</style>>
+

+ 194 - 0
src/views/basic_data/dealer/dealer_list.vue

@@ -0,0 +1,194 @@
+<template>
+  <div class="app-container">
+    <div v-if="isShow">
+      <!-- 筛选条件 -->
+      <div>
+        <el-form label-width="70px" size="small" label-position="left">
+          <el-row :gutter="20">
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="关键字" prop="account">
+                <el-input placeholder="请输入关键字"></el-input>
+              </el-form-item>
+            </el-col>
+
+            <el-col :xs="24" :sm="12" :lg="18" class="tr">
+              <el-form-item label="">
+                <el-button size="small">清空</el-button>
+                <el-button size="small" type="primary">搜索</el-button>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </div>
+      <div class="mymain-container">
+        <div class="table">
+          <el-table
+            v-loading="listLoading"
+            :data="dataList"
+            element-loading-text="Loading"
+            border
+            fit
+            highlight-current-row
+            stripe
+          >
+            <el-table-column type="selection" min-width="160"></el-table-column>
+            <el-table-column
+              align="center"
+              label="客户编码"
+              prop="bianMa"
+              min-width="160"
+              label-class-name="bianma"
+              class-name="fontstyle"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="客户名称"
+              prop="username"
+              min-width="160"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="简称"
+              prop="jianCheng"
+              min-width="160"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="单据状态"
+              prop="danJuZhuangTai"
+              min-width="160"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="禁用状态"
+              prop="jinYong"
+              min-width="160"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="使用组织"
+              prop="use"
+              min-width="160"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="审核人"
+              prop="shenHeRen"
+              min-width="160"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="审核日期"
+              prop="shenHeDate"
+              min-width="160"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="客户分组"
+              prop="keHu"
+              min-width="160"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="操作"
+              prop="caozuo"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <el-button type="text" class="textColor" @click="editFn"
+                >编辑</el-button
+              >
+              <el-button type="text" class="textColor">删除</el-button>
+            </el-table-column>
+          </el-table>
+        </div>
+        <!-- 分页 -->
+        <div class="fr">
+          <el-pagination
+            :current-page="currentPage"
+            :page-sizes="[10, 20, 30, 50]"
+            :page-size="10"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="listTotal"
+          >
+          </el-pagination>
+        </div>
+      </div>
+    </div>
+    <DealerListDetail v-else />
+  </div>
+</template>
+
+<script>
+import DealerListDetail from "./components/dealer_list-detail.vue";
+export default {
+  data() {
+    return {
+      isShow: true,
+      dataList: [
+        {
+          bianMa: "001",
+          username: "张蕙兰",
+          jianCheng: "zhl",
+          danJuZhuangTai: "已审核",
+          jinYong: "否",
+          use: "广州格匠机电工程科技有限公司",
+          shenHeRen: "郑桂茹",
+          shenHeDate: "2020/11/11",
+          keHu: "花都线",
+        },
+        {
+          bianMa: "001",
+          username: "张蕙兰",
+          jianCheng: "zhl",
+          danJuZhuangTai: "已审核",
+          jinYong: "否",
+          use: "广州格匠机电工程科技有限公司",
+          shenHeRen: "郑桂茹",
+          shenHeDate: "2020/11/11",
+          keHu: "花都线",
+        },
+        {
+          bianMa: "001",
+          username: "张蕙兰",
+          jianCheng: "zhl",
+          danJuZhuangTai: "已审核",
+          jinYong: "否",
+          use: "广州格匠机电工程科技有限公司",
+          shenHeRen: "郑桂茹",
+          shenHeDate: "2020/11/11",
+          keHu: "花都线",
+          zip: 200333,
+        },
+      ], // 列表数据
+
+      listLoading: false, // 列表加载loading
+      screenForm: {
+        // 筛选表单数据
+        name: "", // 名称
+      },
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+    };
+  },
+  components: {
+    DealerListDetail,
+  },
+  created() {},
+  computed: {},
+  methods: {
+    handleSizeChange() {},
+    handleCurrentChange() {},
+    handleNodeClick(data) {
+      console.log(data);
+    },
+    editFn() {
+      this.isShow = false;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+</style>

+ 278 - 0
src/views/basic_data/dealer/dealer_stock.vue

@@ -0,0 +1,278 @@
+<template>
+  <div class="app-container">
+    <!-- 筛选条件 -->
+    <div class="base">
+      <el-form label-width="100px" size="small" label-position="left">
+        <el-row :gutter="20">
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="经销商名称" prop="account">
+              <el-input placeholder="请输入经销商名称"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="存货分类编码" prop="account">
+              <el-input placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="存货分类" prop="account">
+              <el-input placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="" class="fr">
+              <el-button size="small">清空</el-button>
+              <el-button size="small" type="primary">搜索</el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+
+    <div class="btn-group clearfix">
+      <div class="fl">
+        <el-button type="primary">新增</el-button>
+        <el-button type="primary">编辑</el-button>
+        <el-button type="primary">删除</el-button>
+      </div>
+      <div class="fr">
+        <el-button type="primary">导入</el-button>
+        <el-button type="primary">导出</el-button>
+        <el-button type="primary">打印</el-button>
+      </div>
+    </div>
+
+    <div class="mymain-container">
+      <!-- 列表 -->
+      <div class="table">
+        <el-table
+          v-loading="listLoading"
+          :data="dataList"
+          element-loading-text="Loading"
+          border
+          fit
+          highlight-current-row
+          stripe
+        >
+          <el-table-column type="selection" min-width="100"></el-table-column>
+          <el-table-column
+            align="center"
+            label="经销商名称"
+            prop="nname"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="存货分类编码"
+            prop="bianma"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="存货分类名称"
+            prop="selectname"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="创建人"
+            prop="person"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="创建时间"
+            prop="createdata"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="更新人"
+            prop="updateperson"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="更新时间"
+            prop="update"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="操作"
+            prop="caozuo"
+            min-width="160"
+            show-overflow-tooltip
+          >
+            <el-button type="text" class="textColor" @click="editFn"
+              >编辑</el-button
+            >
+            <el-button type="text" class="textColor">删除</el-button>
+          </el-table-column>
+        </el-table>
+      </div>
+      <!-- 分页 -->
+      <div class="fr">
+        <el-pagination
+          :current-page="currentPage"
+          :page-sizes="[10, 20, 30, 50]"
+          :page-size="10"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="listTotal"
+        >
+        </el-pagination>
+      </div>
+    </div>
+
+    <!-- 弹窗 -->
+    <el-dialog
+      title="编辑"
+      :visible.sync="dialogForm"
+      width="30%"
+      :show-close="false"
+      :close-on-click-modal="false"
+    >
+      <el-form :model="form" label-width="100px" label-position="right">
+        <el-form-item label="经销商名称">
+          <el-select v-model="form.name" placeholder="请选择活动区域">
+            <el-option label="区域一" value="shanghai"></el-option>
+            <el-option label="区域二" value="beijing"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="活动分类">
+          <el-select v-model="form.select" placeholder="请选择活动区域">
+            <el-option label="区域一" value="shanghai"></el-option>
+            <el-option label="区域二" value="beijing"></el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="dialogForm = false">取 消</el-button>
+        <el-button type="primary" @click="dialogForm = false">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      dialogForm: false,
+      form: {
+        name: "",
+        select: "",
+      },
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      dealerForm: {
+        name: "",
+        coding: "",
+        select: "",
+      },
+      dataList: [
+        {
+          nname: "佛山市禅城区梁云冷气经营部",
+          bianma: "01",
+          selectname: "家用空调",
+          person: "LID",
+          createdata: "2022-05-18 12:00",
+          updateperson: "LID",
+          update: "2022-05-24  12:00",
+        },
+        {
+          nname: "佛山市禅城区梁云冷气经营部",
+          bianma: "01",
+          selectname: "家用空调",
+          person: "LID",
+          createdata: "2022-05-18 12:00",
+          updateperson: "LID",
+          update: "2022-05-24  12:00",
+        },
+        {
+          nname: "佛山市禅城区梁云冷气经营部",
+          bianma: "01",
+          selectname: "家用空调",
+          person: "LID",
+          createdata: "2022-05-18 12:00",
+          updateperson: "LID",
+          update: "2022-05-24  12:00",
+        },
+        {
+          nname: "佛山市禅城区梁云冷气技术部",
+          bianma: "02",
+          selectname: "家用电视",
+          person: "CCC",
+          createdata: "2022-05-18 12:00",
+          updateperson: "CCC",
+          update: "2022-05-24  12:00",
+        },
+      ], // 列表数据
+      listLoading: false, // 列表加载loading
+    };
+  },
+  created() {},
+  computed: {},
+  methods: {
+    editFn() {
+      this.dialogForm = true;
+    },
+    queryFn() {
+      if (
+        this.dealerForm.name === "" &&
+        this.dealerForm.coding === "" &&
+        this.dealerForm.select === ""
+      ) {
+        return;
+      }
+
+      let res = this.dataList.filter(
+        (v) =>
+          v.nname === this.dealerForm.name &&
+          v.coding === this.dealerForm.bianma &&
+          v.select === this.dealerForm.selectname
+      );
+      this.dataList = res;
+    },
+    resetFn() {
+      this.dealerForm.name = "";
+      this.dealerForm.coding = "";
+      this.dealerForm.select = "";
+      console.log(this.dealerForm);
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.aaa {
+  padding: 10px 0;
+}
+::v-deep .el-input--suffix {
+  width: 300px;
+}
+::v-deep .el-dialog__header {
+  background-color: #dddddd;
+}
+::v-deep .dialog-footer {
+  display: flex;
+  justify-content: center;
+}
+
+.formWidth {
+  width: 70%;
+  margin-right: 20px;
+}
+.right {
+  float: right;
+}
+</style>

+ 5 - 0
src/views/basic_data/logistics.vue

@@ -0,0 +1,5 @@
+<template>
+  <div>
+    <router-view />
+  </div>
+</template>

+ 284 - 0
src/views/basic_data/logistics/logistics_list.vue

@@ -0,0 +1,284 @@
+<template>
+  <div class="app-container">
+    <!-- 筛选条件 -->
+    <div>
+      <el-form label-width="70px" size="small" label-position="left">
+        <el-row :gutter="20">
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="物流公司" prop="account">
+              <el-input placeholder="请输入物流公司名称"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="客服电话" prop="nickname">
+              <el-input placeholder="请输入客服电话"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :xs="24" :sm="12" :lg="12" class="tr">
+            <el-form-item label="">
+              <el-button size="small" @click="resetScreenForm">清空</el-button>
+              <el-button size="small" type="primary" @click="submitScreenForm"
+                >搜索</el-button
+              >
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+    <!-- 按钮 -->
+    <div class="btn-group clearfix">
+      <div class="fl">
+        <el-button type="primary">新增</el-button>
+        <el-button type="primary">编辑</el-button>
+        <el-button type="primary">删除</el-button>
+      </div>
+      <div class="fr">
+        <el-button type="primary">导入</el-button>
+        <el-button type="primary">导出</el-button>
+        <el-button type="primary">打印</el-button>
+      </div>
+    </div>
+    <!-- 列表 -->
+    <div class="mymain-container">
+      <div class="table">
+        <el-table
+          v-loading="listLoading"
+          :data="dataList"
+          element-loading-text="Loading"
+          border
+          fit
+          highlight-current-row
+          stripe
+        >
+          <el-table-column type="selection"></el-table-column>
+          <el-table-column
+            align="center"
+            label="物流公司名称"
+            prop="name"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="物流公司代码"
+            prop="code"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="提货人"
+            prop="consignee"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="提货人电话"
+            prop="consigneePhone"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="客服电话"
+            prop="customerService"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="创建人"
+            prop="createUser"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="创建时间"
+            prop="createDate"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="更新人"
+            prop="updateUser"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="更新时间"
+            prop="updateDate"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="操作"
+            min-width="160"
+            show-overflow-tooltip
+          >
+            <el-button type="text" class="textColor" @click="editFn"
+              >编辑</el-button
+            >
+            <el-button type="text" class="textColor">删除</el-button>
+          </el-table-column>
+        </el-table>
+      </div>
+      <!-- 分页 -->
+      <div class="fr">
+        <el-pagination
+          :current-page="currentPage"
+          :page-sizes="[10, 20, 30, 50]"
+          :page-size="10"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="listTotal"
+        >
+        </el-pagination>
+      </div>
+    </div>
+
+    <!-- 弹窗 -->
+    <el-dialog
+      title="提货车辆档案"
+      :visible.sync="showDialogForm"
+      width="30%"
+      :show-close="false"
+      :close-on-click-modal="false"
+    >
+      <el-form ref="form" :model="diaLogForm" label-width="100px">
+        <el-form-item label="物流公司名称">
+          <el-input v-model="diaLogForm.name"></el-input>
+        </el-form-item>
+        <el-form-item label="物流公司代码">
+          <el-input v-model="diaLogForm.code"></el-input>
+        </el-form-item>
+        <el-form-item label="提货人">
+          <el-input v-model="diaLogForm.consignee"></el-input>
+        </el-form-item>
+        <el-form-item label="提货人电话">
+          <el-input v-model="diaLogForm.consigneePhone"></el-input>
+        </el-form-item>
+        <el-form-item label="客服电话">
+          <el-input v-model="diaLogForm.sparePhone"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="showDialogForm = false">取 消</el-button>
+        <el-button type="primary" @click="showDialogForm = false"
+          >确 定</el-button
+        >
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      diaLogForm: {
+        name: "",
+        code: "",
+        consignee: "",
+        consigneePhone: "",
+        customerService: "",
+      },
+      showDialogForm: false,
+      dataList: [
+        {
+          num: "1",
+          name: "嘉贤",
+          code: "1212",
+          consignee: "",
+          consigneePhone: "",
+          customerService: "12345678901",
+          createUser: "",
+          createDate: "",
+          updateUser: "",
+          updateDate: "",
+        },
+        {
+          num: "1",
+          name: "嘉贤",
+          code: "1212",
+          consignee: "",
+          consigneePhone: "",
+          customerService: "12345678901",
+          createUser: "",
+          createDate: "",
+          updateUser: "",
+          updateDate: "",
+        },
+        {
+          num: "1",
+          name: "嘉贤",
+          code: "1212",
+          consignee: "",
+          consigneePhone: "",
+          customerService: "12345678901",
+          createUser: "",
+          createDate: "",
+          updateUser: "",
+          updateDate: "",
+        },
+        {
+          num: "1",
+          name: "嘉贤",
+          code: "1212",
+          consignee: "",
+          consigneePhone: "",
+          customerService: "12345678901",
+          createUser: "",
+          createDate: "",
+          updateUser: "",
+          updateDate: "",
+        },
+      ],
+      searchForm: {
+        name: "",
+        username: "",
+        telephone: "",
+      },
+    };
+  },
+  methods: {
+    editFn() {
+      this.showDialogForm = true;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.textColor {
+  color: black;
+}
+::v-deep .el-date-editor {
+  width: 100%;
+}
+::v-deep .el-select {
+  width: 100%;
+}
+::v-deep .el-col-9 .el-button {
+  padding: 5px;
+}
+::v-deep .el-dialog__header {
+  background-color: #dddddd;
+}
+.base {
+  padding: 20px 20px 0;
+}
+.table {
+  margin-top: 12px;
+}
+.right {
+  float: right;
+}
+</style>

+ 5 - 0
src/views/basic_data/material.vue

@@ -0,0 +1,5 @@
+<template>
+  <div>
+    <router-view />
+  </div>
+</template>

+ 648 - 0
src/views/basic_data/material/components/material_list-detail.vue

@@ -0,0 +1,648 @@
+<template>
+  <div>
+    <div class="sty">
+      <el-page-header @back="goBack" content="详情页面"> </el-page-header>
+    </div>
+    <el-card class="box-card">
+      <div slot="header" class="clearfix">
+        <span>信息</span>
+      </div>
+      <el-row>
+        <el-col :span="8"><span>创建组织</span><input type="text" /></el-col>
+        <el-col :span="8"><span>使用组织</span><input type="text" /></el-col>
+        <el-col :span="8"><span>编码</span><input type="text" /></el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="8"><span>名称</span><input type="text" /></el-col>
+        <el-col :span="8"></el-col>
+        <el-col :span="8"></el-col>
+      </el-row>
+    </el-card>
+    <el-card class="box-card">
+      <div slot="header" class="clearfix">
+        <span>基本</span>
+      </div>
+      <div class="baseInfo">
+        <div>
+          <div class="base-header">
+            <span>基本信息</span>
+          </div>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">规格型号</span
+              ><select name="" id="" class="selectStyle2">
+                <option value="">普通仓库</option>
+              </select></el-col
+            >
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">助记码</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">旧物料编码</span><input type="text" />
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">条码</span><input type="text" />
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">描述</span
+              ><textarea
+                class="textareaStyle"
+                name=""
+                id=""
+                cols="30"
+                rows="10"
+              ></textarea>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">物料分组</span><input type="text" />
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">物料属性</span
+              ><select name="" id="" class="selectStyle2">
+                <option value="">普通仓库</option>
+              </select>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">配置生产</span
+              ><select name="" id="" class="selectStyle2">
+                <option value="">普通仓库</option>
+              </select></el-col
+            >
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">特征件子项</span
+              ><select name="" id="" class="selectStyle2">
+                <option value="">普通仓库</option>
+              </select></el-col
+            >
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">套件</span
+              ><select name="" id="" class="selectStyle2">
+                <option value="">普通仓库</option>
+              </select></el-col
+            >
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">基本单位</span
+              ><select name="" id="" class="selectStyle2">
+                <option value="">正常</option>
+              </select></el-col
+            >
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">禁用原因</span><input type="text"
+            /></el-col>
+          </el-row>
+        </div>
+        <div>
+          <div class="base-header">
+            <span>控制</span>
+          </div>
+          <el-row>
+            <el-row></el-row>
+            <el-row>
+              <el-col :span="8"
+                ><span class="marg-r">允许采购</span><input type="checkbox"
+              /></el-col>
+              <el-col :span="8"
+                ><span class="marg-r">允许销售</span><input type="checkbox"
+              /></el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8"
+                ><span class="marg-r">允许库存</span><input type="checkbox"
+              /></el-col>
+              <el-col :span="8"
+                ><span class="marg-r">允许生产</span><input type="checkbox"
+              /></el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8"
+                ><span class="marg-r">允许委外</span><input type="checkbox"
+              /></el-col>
+              <el-col :span="8"
+                ><span class="marg-r">允许资产</span><input type="checkbox"
+              /></el-col>
+            </el-row>
+          </el-row>
+
+          <div class="base-header">
+            <span>财务信息</span>
+          </div>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">默认税率</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">存货类别</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">税分类</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">结算成本价加减价比例(%)</span
+              ><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">商城公开价</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">套机码</span><input type="text"
+            /></el-col>
+          </el-row>
+        </div>
+        <div>
+          <div class="base-header">
+            <span>重量信息</span>
+          </div>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">毛重</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">净重</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">重量单位</span><input type="text"
+            /></el-col>
+          </el-row>
+
+          <div class="base-header">
+            <span>尺寸信息</span>
+          </div>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">长</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">宽</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">高</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">体积</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">尺寸单位</span><input type="text"
+            /></el-col>
+          </el-row>
+
+          <div class="base-header">
+            <span>状态</span>
+          </div>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">数据状态</span
+              ><select name="" id="" class="selectStyle2">
+                <option value="">普通仓库</option>
+              </select></el-col
+            >
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">禁用状态</span
+              ><select name="" id="" class="selectStyle2">
+                <option value="">普通仓库</option>
+              </select></el-col
+            >
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">已使用</span
+              ><select name="" id="" class="selectStyle2">
+                <option value="">普通仓库</option>
+              </select></el-col
+            >
+          </el-row>
+        </div>
+      </div>
+    </el-card>
+    <el-card class="box-card">
+      <div slot="header" class="clearfix">
+        <span>库存</span>
+      </div>
+      <div class="baseInfo">
+        <div>
+          <div class="base-header">
+            <span>存储</span>
+          </div>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">库存单位</span
+              ><select name="" id="" class="selectStyle2">
+                <option value="">普通仓库</option>
+              </select></el-col
+            >
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">换算方向</span
+              ><select name="" id="" class="selectStyle2">
+                <option value="">普通仓库</option>
+              </select></el-col
+            >
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">仓库</span><input type="text" />
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">仓位</span><input type="text" />
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">单箱标准数量</span><input type="text"
+            /></el-col>
+          </el-row>
+          <div class="base-header">
+            <span>库存控制</span>
+          </div>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">可锁库</span><input type="checkbox"
+            /></el-col>
+          </el-row>
+        </div>
+        <div>
+          <div class="base-header">
+            <span>管理</span>
+          </div>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">启用批号管理</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">批号编码规则</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">启用保质期管理</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">批号附属信息</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">保质期单位</span
+              ><select name="" id="" class="selectStyle2">
+                <option value="">普通仓库</option>
+              </select></el-col
+            >
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">在架寿命期</span><input type="text"
+            /></el-col>
+          </el-row>
+          <div class="base-header">
+            <span>库存成本</span>
+          </div>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">参考成本</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">成本单位</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">币别</span><input type="text"
+            /></el-col>
+          </el-row>
+        </div>
+        <div>
+          <div class="base-header">
+            <span>库存计划</span>
+          </div>
+          <el-row>
+            <el-col :span="24">
+              <span class="marg-r startUse">启用</span>
+              <div class="start">
+                <div><input type="checkbox" /><span>最小库存预警</span></div>
+                <div><input type="checkbox" /><span>安全库存预警</span></div>
+                <div><input type="checkbox" /><span>最大库存预警</span></div>
+                <div><input type="checkbox" /><span>在订货点预警</span></div>
+              </div>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">最小库存</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">再定货点</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">经济订货批量</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">最大库存</span><input type="text"
+            /></el-col>
+          </el-row>
+        </div>
+      </div>
+      <div>
+        <div class="base-header">
+          <span>客机信息</span>
+        </div>
+        <!-- 列表 -->
+        <br />
+        <el-table
+          v-loading="listLoading"
+          :data="dataList"
+          element-loading-text="Loading"
+          :header-cell-style="{
+            'background-color': '#e8e8e8',
+            color: 'black',
+          }"
+          border=""
+        >
+          <el-table-column
+            align="center"
+            label="序号"
+            prop="nname"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="内机编码"
+            prop="bianma"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="内机名称"
+            prop="selectname"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="型号"
+            prop="person"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="内机体积"
+            prop="createdata"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="外机编码"
+            prop="updateperson"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="外机名称"
+            prop="update"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="型号"
+            prop="update"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="外机体积"
+            prop="update"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+        </el-table>
+        <br />
+        <el-row>
+          <el-col :span="6">
+            <strong class="marg-r">商城分类</strong>
+            <select name="" id="" class="selectStyle2">
+              <option value="">挂式空调</option>
+            </select>
+          </el-col>
+        </el-row>
+        <div>
+          <div class="img">
+            <strong>产品图片</strong>
+          </div>
+          <br />
+          <el-upload list-type="picture-card">
+            <i class="el-icon-plus"></i>
+          </el-upload>
+          <br />
+          <span>(上传图片大小规格: , 最多上传5张)</span>
+          <div class="img"></div>
+        </div>
+        <br />
+        <div>
+          <div class="img">
+            <strong>详情图</strong>
+          </div>
+          <br />
+          <el-upload list-type="picture-card">
+            <i class="el-icon-plus"></i>
+          </el-upload>
+          <br />
+          <span>(上传图片宽度不超过: ,)</span>
+          <div class="img"></div>
+        </div>
+        <br />
+        <el-row>
+          <el-col :span="6">
+            <strong class="marg-r">是否允许订货</strong>
+            <select name="" id="" class="selectStyle2">
+              <option value="">是</option>
+              <option value="">否</option>
+            </select>
+          </el-col>
+        </el-row>
+        <br />
+        <br />
+        <el-button type="info">保存</el-button>
+      </div>
+    </el-card>
+  </div>
+</template>
+
+<script>
+export default {
+  methods: {
+    goBack() {
+      console.log(this.$parent);
+      this.$parent.isShow = true;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-upload {
+  width: 100px;
+  height: 100px;
+  line-height: 100px;
+  border: 1px solid grey;
+}
+.img {
+  width: 30%;
+  height: 25px;
+  //   background-color: aqua;
+  border-bottom: 1px solid gray;
+}
+.startUse {
+  vertical-align: top;
+}
+.start {
+  display: inline-block;
+  width: 35%;
+
+  div {
+    float: left;
+    width: 50%;
+    span {
+      font-size: 12px;
+      vertical-align: text-bottom;
+      padding: 0px 3px;
+    }
+  }
+}
+.baseWidth {
+  width: 46%;
+}
+.inputDate {
+  width: 46%;
+}
+.selectStyle2 {
+  width: 35%;
+}
+.selectStyle {
+  width: 35%;
+}
+.textareaStyle {
+  vertical-align: text-top;
+  resize: none;
+  width: 35%;
+  height: 100px;
+}
+.color {
+  color: #1f93ec;
+}
+.el-col-24 {
+  margin: 6px 0;
+}
+
+.marg-r {
+  padding-right: 15px;
+  font-size: 12px;
+  display: inline-block;
+  width: 120px;
+}
+.base-header {
+  height: 20px;
+  width: 60%;
+  border-bottom: 2px solid gray;
+  span {
+    width: 100px;
+    height: 100%;
+    display: block;
+    text-align: center;
+    color: #fff;
+
+    background-color: gray;
+  }
+}
+.box-card {
+  margin-bottom: 20px;
+}
+.el-col-8 {
+  span {
+    padding-right: 10px;
+    display: inline-block;
+    width: 100px;
+  }
+}
+.baseInfo {
+  display: flex;
+  justify-content: space-between;
+  > div {
+    width: 33%;
+  }
+}
+.sty {
+  margin-bottom: 20px;
+}
+.el-row {
+  margin-bottom: 20px;
+  &:last-child {
+    margin-bottom: 0;
+  }
+}
+</style>

+ 194 - 0
src/views/basic_data/material/material_list.vue

@@ -0,0 +1,194 @@
+<template>
+  <div class="app-container">
+    <div v-if="isShow">
+      <!-- 筛选条件 -->
+      <div>
+        <el-form label-width="70px" size="small" label-position="left">
+          <el-row :gutter="20">
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="关键字" prop="account">
+                <el-input placeholder="请输入关键字"></el-input>
+              </el-form-item>
+            </el-col>
+
+            <el-col :xs="24" :sm="12" :lg="18" class="tr">
+              <el-form-item label="">
+                <el-button size="small" @click="resetScreenForm"
+                  >清空</el-button
+                >
+                <el-button size="small" type="primary" @click="submitScreenForm"
+                  >搜索</el-button
+                >
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </div>
+      <div class="mymain-container">
+        <div class="table">
+          <el-table
+            v-loading="listLoading"
+            :data="dataList"
+            element-loading-text="Loading"
+            border
+            fit
+            highlight-current-row
+            stripe
+          >
+            <el-table-column type="selection" min-width="100"></el-table-column>
+            <el-table-column
+              align="center"
+              label="使用组织"
+              prop="usename"
+              min-width="100"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="编码"
+              prop="bianMa"
+              min-width="100"
+              label-class-name="bianma"
+              class-name="fontstyle"
+            ></el-table-column>
+
+            <el-table-column
+              align="center"
+              label="名称"
+              prop="name"
+              min-width="100"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="规格型号"
+              prop="model"
+              min-width="100"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="数据状态"
+              prop="dataState"
+              min-width="100"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="是否维护商城资料"
+              prop="maintainData"
+              min-width="100"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="是否维护内外机档案"
+              prop="maintainFiles"
+              min-width="100"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="基本单位"
+              prop="baseCompany"
+              min-width="100"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="已使用"
+              prop="used"
+              min-width="100"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="操作"
+              prop="caozuo"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <el-button type="text" class="textColor" @click="editFn"
+                >编辑</el-button
+              >
+              <el-button type="text" class="textColor">删除</el-button>
+            </el-table-column>
+          </el-table>
+        </div>
+        <!-- 分页 -->
+        <div class="fr">
+          <el-pagination
+            :current-page="currentPage"
+            :page-sizes="[10, 20, 30, 50]"
+            :page-size="10"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="listTotal"
+          >
+          </el-pagination>
+        </div>
+      </div>
+    </div>
+    <MaterialListDetail v-else />
+  </div>
+</template>
+
+<script>
+import MaterialListDetail from "./components/material_list-detail.vue";
+export default {
+  data() {
+    return {
+      isShow: true,
+      dataList: [
+        {
+          usename: "广州格匠机电工程有限公司",
+          bianMa: "0021",
+          name: "电器",
+          model: "KFR-50LW/(50530)FNh",
+          dataState: "已审核",
+          maintainData: "是",
+          maintainFiles: "是",
+          baseCompany: "Pcs",
+          used: "否",
+        },
+        {
+          usename: "广州格匠机电工程有限公司",
+          bianMa: "0021",
+          name: "电器",
+          model: "KFR-50LW/(50530)FNh",
+          dataState: "已审核",
+          maintainData: "是",
+          maintainFiles: "是",
+          baseCompany: "Pcs",
+          used: "否",
+        },
+        {
+          usename: "广州格匠机电工程有限公司",
+          bianMa: "0021",
+          name: "电器",
+          model: "KFR-50LW/(50530)FNh",
+          dataState: "已审核",
+          maintainData: "是",
+          maintainFiles: "是",
+          baseCompany: "Pcs",
+          used: "否",
+        },
+      ], // 列表数据
+
+      screenForm: {
+        // 筛选表单数据
+        name: "", // 名称
+      },
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+    };
+  },
+  components: { MaterialListDetail },
+  methods: {
+    editFn() {
+      this.isShow = false;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+// ::v-deep .fontstyle {
+//   color: #0909ff;
+// }
+// ::v-deep .bianma {
+//   color: #409eff;
+// }
+</style>

+ 5 - 0
src/views/basic_data/supplier.vue

@@ -0,0 +1,5 @@
+<template>
+  <div>
+    <router-view />
+  </div>
+</template>

+ 398 - 0
src/views/basic_data/supplier/components/supplier_list-detail.vue

@@ -0,0 +1,398 @@
+<template>
+  <div>
+    <div class="sty">
+      <el-page-header @back="goBack" content="详情页面"> </el-page-header>
+    </div>
+    <el-card class="box-card">
+      <div slot="header" class="clearfix">
+        <span>供应商编码</span>
+      </div>
+      <el-row>
+        <el-col :span="6"
+          ><span class="color">创建组织</span><input type="text"
+        /></el-col>
+        <el-col :span="6"><span>使用组织</span><input type="text" /></el-col>
+        <el-col :span="6"
+          ><span class="color">注册编码</span><input type="text"
+        /></el-col>
+        <el-col :span="6"
+          ><span class="color">编码</span><input type="text"
+        /></el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="6"><span>名称</span><input type="text" /></el-col>
+        <el-col :span="6"><span>简称</span><input type="text" /></el-col>
+      </el-row>
+    </el-card>
+    <el-card class="box-card">
+      <div slot="header" class="clearfix">
+        <span>基本信息</span>
+      </div>
+      <div class="baseInfo">
+        <div>
+          <div class="base-header">
+            <span>地址</span>
+          </div>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">国家</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">地区</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">通讯地址</span
+              ><textarea
+                name=""
+                id=""
+                cols="30"
+                rows="10"
+                class="textareaStyle"
+              ></textarea>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">邮政编码</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">语言</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">公司地址</span
+              ><textarea
+                class="textareaStyle"
+                name=""
+                id=""
+                cols="30"
+                rows="10"
+              ></textarea>
+            </el-col>
+          </el-row>
+        </div>
+        <div>
+          <div class="base-header">
+            <span>注册</span>
+          </div>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">行业</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">创立日期</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">法人代表</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">注册资金(万元)</span
+              ><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">公司规模工商登记号</span
+              ><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">生产经许可证</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">统一社会信用代码</span
+              ><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">注册地址</span
+              ><textarea
+                name=""
+                id=""
+                cols="30"
+                rows="10"
+                class="textareaStyle"
+              ></textarea>
+            </el-col>
+          </el-row>
+        </div>
+        <div>
+          <div class="base-header">
+            <span>管理</span>
+          </div>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">负责部门</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">负责人</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">供应商分类</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">供应类别</span
+              ><select name="" id="" class="selectStyle">
+                <option value="">采购</option>
+              </select></el-col
+            >
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">供应商等级</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">供应商分组</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">公司类别</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">公司性质</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">公司规模</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">对应组织</span><input type="text"
+            /></el-col>
+          </el-row>
+        </div>
+      </div>
+    </el-card>
+    <el-card class="box-card">
+      <div slot="header" class="clearfix">
+        <span>商务信息</span>
+      </div>
+      <el-row>
+        <el-col :span="6"
+          ><span class="color">采购组</span><input type="text"
+        /></el-col>
+        <el-col :span="6"><span>默认价目表</span><input type="text" /></el-col>
+        <el-col :span="6"
+          ><span>业务状态</span
+          ><select name="" id="" class="selectStyle2">
+            <option value="">正常</option>
+          </select></el-col
+        >
+        <el-col :span="6"><span>默认折扣表</span><input type="text" /></el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="6"
+          ><span>冻结范围</span
+          ><select name="" id="" class="selectStyle2">
+            <option value=""></option></select
+        ></el-col>
+        <el-col :span="6"
+          ><span class="color">供货方</span><input type="text"
+        /></el-col>
+        <el-col :span="6"><span>冻结人</span><input type="text" /></el-col>
+        <el-col :span="6"
+          ><span class="color">VMI仓库</span><input type="text"
+        /></el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="6"
+          ><span>冻结日期</span><input type="date" class="inputDate"
+        /></el-col>
+        <el-col :span="6"><span>VMI业务</span><input type="checkbox" /></el-col>
+        <el-col :span="6"
+          ><span class="color">汇总公司</span><input type="text"
+        /></el-col>
+        <el-col :span="6"
+          ><span>启用供应商协同</span><input type="checkbox"
+        /></el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="6"><span>保证金比例</span><input type="text" /></el-col>
+        <el-col :span="6"
+          ><span class="color">默认联系人</span><input type="text"
+        /></el-col>
+        <el-col :span="6"></el-col>
+        <el-col :span="6"></el-col>
+      </el-row>
+    </el-card>
+    <el-card class="box-card">
+      <div slot="header" class="clearfix">
+        <span>财务信息</span>
+      </div>
+      <el-row>
+        <el-col :span="6"
+          ><span class="color">对应客户</span><input type="text"
+        /></el-col>
+        <el-col :span="6"
+          ><span>单次预付额度</span><input type="text"
+        /></el-col>
+        <el-col :span="6"
+          ><span class="color">发票类型</span
+          ><select name="" id="" class="selectStyle2">
+            <option value="">正常</option>
+          </select></el-col
+        >
+        <el-col :span="6"
+          ><span class="color">结算币别</span><input type="text"
+        /></el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="6"
+          ><span class="color">税分类</span><input type="text"
+        /></el-col>
+        <el-col :span="6"
+          ><span class="color">默认税率</span><input type="text"
+        /></el-col>
+        <el-col :span="6"
+          ><span class="color">结算方式</span><input type="text"
+        /></el-col>
+        <el-col :span="6"><span>税务登记号</span><input type="text" /></el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="6"
+          ><span>描述</span
+          ><textarea
+            class="textareaStyle"
+            name=""
+            id=""
+            cols="30"
+            rows="10"
+            style="width: 46%"
+          ></textarea>
+        </el-col>
+        <el-col :span="6"
+          ><span class="color">付款条件</span><input type="text"
+        /></el-col>
+        <el-col :span="6"
+          ><span class="color">经营类型</span><input type="text"
+        /></el-col>
+        <el-col :span="6"
+          ><span class="color">结算方</span><input type="text"
+        /></el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="6"
+          ><span class="color">收款方</span><input type="text"
+        /></el-col>
+        <el-col :span="6"></el-col>
+        <el-col :span="6"></el-col>
+        <el-col :span="6"></el-col>
+      </el-row>
+    </el-card>
+  </div>
+</template>
+
+<script>
+export default {
+  methods: {
+    goBack() {
+      console.log(this.$parent);
+      this.$parent.isShow = true;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.baseWidth {
+  width: 46%;
+}
+.inputDate {
+  width: 46%;
+}
+.selectStyle2 {
+  width: 46%;
+}
+.selectStyle {
+  width: 35%;
+}
+.textareaStyle {
+  vertical-align: text-top;
+  resize: none;
+  width: 35%;
+  height: 100px;
+}
+.color {
+  color: #1f93ec;
+}
+.el-col-24 {
+  margin: 6px 0;
+}
+
+.marg-r {
+  padding-right: 15px;
+  font-size: 12px;
+  display: inline-block;
+  width: 120px;
+}
+.base-header {
+  height: 20px;
+  width: 60%;
+  border-bottom: 2px solid gray;
+  span {
+    width: 100px;
+    height: 100%;
+    display: block;
+    text-align: center;
+    color: #fff;
+
+    background-color: gray;
+  }
+}
+.box-card {
+  margin-bottom: 20px;
+}
+.el-col-6 {
+  span {
+    padding-right: 10px;
+    display: inline-block;
+    width: 100px;
+  }
+}
+.baseInfo {
+  display: flex;
+  justify-content: space-between;
+  > div {
+    width: 33%;
+  }
+}
+.sty {
+  margin-bottom: 20px;
+}
+.el-row {
+  margin-bottom: 20px;
+  &:last-child {
+    margin-bottom: 0;
+  }
+}
+</style>

+ 162 - 0
src/views/basic_data/supplier/supplier_list.vue

@@ -0,0 +1,162 @@
+<template>
+  <div class="app-container">
+    <div v-if="isShow">
+      <!-- 筛选条件 -->
+      <div>
+        <el-form label-width="70px" size="small" label-position="left">
+          <el-row :gutter="20">
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="关键字" prop="account">
+                <el-input placeholder="请输入关键字"></el-input>
+              </el-form-item>
+            </el-col>
+
+            <el-col :xs="24" :sm="12" :lg="18" class="tr">
+              <el-form-item label="">
+                <el-button size="small">清空</el-button>
+                <el-button size="small" type="primary">搜索</el-button>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </div>
+
+      <!-- 表格 -->
+      <div class="mymain-container">
+        <div class="table">
+          <el-table
+            v-loading="listLoading"
+            :data="dataList"
+            element-loading-text="Loading"
+            border
+            fit
+            highlight-current-row
+            stripe
+          >
+            <el-table-column type="selection" min-width="100"></el-table-column>
+            <el-table-column
+              align="center"
+              label="编码"
+              prop="bianMa"
+              min-width="100"
+              label-class-name="bianma"
+              class-name="fontstyle"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="使用组织"
+              prop="useZh"
+              min-width="100"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="名称"
+              prop="name"
+              min-width="100"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="简称"
+              prop="jc"
+              min-width="100"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="供应商分组"
+              prop="gongYing"
+              min-width="100"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="操作"
+              prop="caozuo"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <el-button type="text" class="textColor" @click="editFn"
+                >编辑</el-button
+              >
+              <el-button type="text" class="textColor">删除</el-button>
+            </el-table-column>
+          </el-table>
+        </div>
+
+        <div class="fr">
+          <el-pagination
+            :current-page="currentPage"
+            :page-sizes="[10, 20, 30, 50]"
+            :page-size="10"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="listTotal"
+          >
+          </el-pagination>
+        </div>
+      </div>
+    </div>
+    <SupplierListDetail v-else />
+  </div>
+</template>
+
+<script>
+import SupplierListDetail from "./components/supplier_list-detail.vue";
+export default {
+  data() {
+    return {
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      isShow: true,
+      searchForm: {
+        name: "",
+      },
+      dataList: [
+        {
+          bianMa: "DG0001",
+          useZh: "广州格匠机电工程有限公司",
+          name: "东莞市美信机电工程有限公司",
+          jc: "",
+          gongYing: "东莞",
+        },
+        {
+          bianMa: "DG0001",
+          useZh: "广州格匠机电工程有限公司",
+          name: "东莞市美信机电工程有限公司",
+          jc: "",
+          gongYing: "东莞",
+        },
+        {
+          bianMa: "DG0001",
+          useZh: "广州格匠机电工程有限公司",
+          name: "东莞市美信机电工程有限公司",
+          jc: "",
+          gongYing: "东莞",
+        },
+        {
+          bianMa: "DG0001",
+          useZh: "广州格匠机电工程有限公司",
+          name: "东莞市美信机电工程有限公司",
+          jc: "",
+          gongYing: "东莞",
+        },
+      ],
+    };
+  },
+  components: {
+    SupplierListDetail,
+  },
+  methods: {
+    editFn() {
+      this.isShow = false;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.base {
+  padding: 20px;
+}
+.fr {
+  margin-top: 20px;
+}
+</style>

+ 5 - 0
src/views/basic_data/taker.vue

@@ -0,0 +1,5 @@
+<template>
+  <div>
+    <router-view />
+  </div>
+</template>

+ 236 - 0
src/views/basic_data/taker/taker_car.vue

@@ -0,0 +1,236 @@
+<template>
+  <div class="app-container">
+    <!-- 筛选条件 -->
+    <div>
+      <el-form label-width="100px" size="small" label-position="left">
+        <el-row :gutter="20">
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="经销商名称" prop="account">
+              <el-input placeholder="请输入经销商名称"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="提货人" prop="nickname">
+              <el-input placeholder="请输入提货人"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :xs="24" :sm="12" :lg="12" class="tr">
+            <el-form-item label="">
+              <el-button size="small" @click="resetScreenForm">清空</el-button>
+              <el-button size="small" type="primary" @click="submitScreenForm"
+                >搜索</el-button
+              >
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+    <!-- 按钮 -->
+    <div class="btn-group clearfix">
+      <div class="fl">
+        <el-button type="primary">新增</el-button>
+        <el-button type="primary">编辑</el-button>
+        <el-button type="primary">删除</el-button>
+      </div>
+      <div class="fr">
+        <el-button type="primary">导入</el-button>
+        <el-button type="primary">导出</el-button>
+      </div>
+    </div>
+    <!-- 列表 -->
+    <div class="mymain-container">
+      <div class="table">
+        <el-table
+          v-loading="listLoading"
+          :data="dataList"
+          element-loading-text="Loading"
+          border
+          fit
+          highlight-current-row
+          stripe
+        >
+          <el-table-column type="selection" min-width="100"></el-table-column>
+          <el-table-column
+            align="center"
+            label="经销商名称"
+            prop="name"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="车辆车牌号"
+            prop="carNumber"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="创建者"
+            prop="createUser"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="创建时间"
+            prop="createDate"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="更新者"
+            prop="updateUser"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="更新时间"
+            prop="updateDate"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="操作"
+            min-width="160"
+            show-overflow-tooltip
+          >
+            <el-button type="text" class="textColor" @click="editFn"
+              >编辑</el-button
+            >
+            <el-button type="text" class="textColor">删除</el-button>
+          </el-table-column>
+        </el-table>
+      </div>
+      <!-- 分页 -->
+      <div class="fr">
+        <el-pagination
+          :current-page="currentPage"
+          :page-sizes="[10, 20, 30, 50]"
+          :page-size="10"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="listTotal"
+        >
+        </el-pagination>
+      </div>
+    </div>
+
+    <!-- 弹窗 -->
+    <el-dialog
+      title="提货车辆档案"
+      :visible.sync="dialogForm"
+      width="40%"
+      :show-close="false"
+      :close-on-click-modal="false"
+    >
+      <el-form ref="form" :model="addForm" label-width="120px">
+        <el-form-item label="经销商名称">
+          <el-select v-model="addForm.name" placeholder="选择名称">
+            <el-option> dsdsds</el-option>
+          </el-select>
+        </el-form-item>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="车牌号">
+              <el-input v-model="addForm.username"></el-input> </el-form-item
+          ></el-col>
+          <el-col :span="12">
+            <el-form-item label="联系电话">
+              <el-input v-model="addForm.userID"></el-input> </el-form-item
+          ></el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="车型">
+              <el-input v-model="addForm.telephone"></el-input> </el-form-item
+          ></el-col>
+          <el-col :span="12">
+            <el-form-item label="体积">
+              <el-input v-model="addForm.sparePhone"></el-input> </el-form-item
+          ></el-col>
+        </el-row>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="dialogForm = false">取 消</el-button>
+        <el-button type="primary" @click="dialogForm = false">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      addForm: {
+        name: "",
+        username: "",
+        userID: "",
+        telephone: "",
+        sparePhone: "",
+        valid: "",
+        Verification: "",
+      },
+      dialogForm: false,
+      dataList: [
+        {
+          name: "佛山市禅城区梁云冷气经营部",
+          carNumber: "粤Axxxxx",
+          createUser: "张三",
+          createDate: "2022-01-02 12:12",
+          updateUser: "张三",
+          updateDate: "2022-01-02 12:21",
+        },
+        {
+          name: "佛山市禅城区梁云冷气经营部",
+          carNumber: "粤Axxxxx",
+          createUser: "张三",
+          createDate: "2022-01-02 12:12",
+          updateUser: "张三",
+          updateDate: "2022-01-02 12:21",
+        },
+        {
+          name: "佛山市禅城区梁云冷气经营部",
+          carNumber: "粤Axxxxx",
+          createUser: "张三",
+          createDate: "2022-01-02 12:12",
+          updateUser: "张三",
+          updateDate: "2022-01-02 12:21",
+        },
+      ],
+      searchForm: {
+        name: "",
+        username: "",
+        telephone: "",
+      },
+    };
+  },
+  methods: {
+    editFn() {
+      this.dialogForm = true;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-date-editor {
+  width: 100%;
+}
+::v-deep .el-select {
+  width: 100%;
+}
+::v-deep .el-col-9 .el-button {
+  padding: 5px;
+}
+::v-deep .el-dialog__header {
+  background-color: #dddddd;
+}
+</style>

+ 304 - 0
src/views/basic_data/taker/taker_list.vue

@@ -0,0 +1,304 @@
+<template>
+  <div class="app-container">
+    <!-- 筛选条件 -->
+    <div>
+      <el-form label-width="100px" size="small" label-position="left">
+        <el-row :gutter="20">
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="经销商名称" prop="account">
+              <el-input placeholder="请输入经销商名称"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="提货人姓名" prop="nickname">
+              <el-input placeholder="请输入提货人姓名"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="电话" prop="phone">
+              <el-input placeholder="请输入电话"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :xs="24" :sm="12" :lg="6" class="tr">
+            <el-form-item label="">
+              <el-button size="small">清空</el-button>
+              <el-button size="small" type="primary">搜索</el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+    <!-- 按钮 -->
+    <div class="btn-group clearfix">
+      <div class="fl">
+        <el-button type="primary" @click="addFn">新增</el-button>
+      </div>
+      <div class="fr">
+        <el-button type="primary">导入</el-button>
+        <el-button type="primary">导出</el-button>
+        <el-button type="primary">打印</el-button>
+      </div>
+    </div>
+    <!-- 列表 -->
+    <div class="mymain-container">
+      <div class="table">
+        <el-table
+          v-loading="listLoading"
+          :data="dataList"
+          element-loading-text="Loading"
+          border
+          fit
+          highlight-current-row
+          stripe
+        >
+          <el-table-column type="selection" min-width="100"></el-table-column>
+          <el-table-column
+            align="center"
+            label="经销商名称"
+            prop="name"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="提货人姓名"
+            prop="username"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="身份证"
+            prop="userID"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="联系电话"
+            prop="telephone"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="备用电话"
+            prop="sparePhone"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="附件"
+            prop="enclosure"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="有效期"
+            prop="valid"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="创建人"
+            prop="createUser"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="创建时间"
+            prop="createDate"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="状态"
+            prop="state"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+        </el-table>
+      </div>
+      <!-- 分页 -->
+      <div class="fr">
+        <el-pagination
+          :current-page="currentPage"
+          :page-sizes="[10, 20, 30, 50]"
+          :page-size="10"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="listTotal"
+        >
+        </el-pagination>
+      </div>
+    </div>
+
+    <!-- 弹窗 -->
+    <el-dialog
+      title="提货人档案"
+      :visible.sync="dialogForm"
+      width="40%"
+      :show-close="false"
+      :close-on-click-modal="false"
+    >
+      <el-form ref="form" :model="addForm" label-width="120px">
+        <el-form-item label="经销商名称">
+          <el-select v-model="addForm.name" placeholder="名称">
+            <el-option> dsdsds</el-option>
+          </el-select>
+        </el-form-item>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="提货人姓名">
+              <el-input v-model="addForm.username"></el-input> </el-form-item
+          ></el-col>
+          <el-col :span="12">
+            <el-form-item label="身份证号码">
+              <el-input v-model="addForm.userID"></el-input> </el-form-item
+          ></el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="联系电话">
+              <el-input v-model="addForm.telephone"></el-input> </el-form-item
+          ></el-col>
+          <el-col :span="12">
+            <el-form-item label="备用电话">
+              <el-input v-model="addForm.sparePhone"></el-input> </el-form-item
+          ></el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="有效期">
+              <el-date-picker
+                v-model="addForm.valid"
+                type="date"
+                placeholder="选择日期"
+              >
+              </el-date-picker> </el-form-item
+          ></el-col>
+          <el-col :span="12">
+            <el-form-item label="验证码">
+              <el-row :gutter="6">
+                <el-col :span="14">
+                  <el-input v-model="addForm.Verification" />
+                </el-col>
+                <el-col :span="9">
+                  <el-button type="info">获取验证码</el-button>
+                </el-col>
+              </el-row>
+            </el-form-item></el-col
+          >
+        </el-row>
+        <el-form-item label="上传提货人附件">
+          <el-upload class="upload-demo">
+            <el-button size="small" type="info">点击上传</el-button>
+          </el-upload>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="dialogForm = false">取 消</el-button>
+        <el-button type="primary" @click="dialogForm = false">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      addForm: {
+        name: "",
+        username: "",
+        userID: "",
+        telephone: "",
+        sparePhone: "",
+        valid: "",
+        Verification: "",
+      },
+      dialogForm: false,
+      dataList: [
+        {
+          name: "佛山市禅城区梁云冷气经营部",
+          username: "张三",
+          userID: "01234567891234567689",
+          telephone: "01234567891",
+          sparePhone: "1234567890",
+          enclosure: "",
+          valid: "2022-04-30",
+          createUser: "张三",
+          createDate: "2022-01-02 12:21",
+          state: "失效",
+        },
+        {
+          name: "佛山市禅城区梁云冷气经营部",
+          username: "张三",
+          userID: "01234567891234567689",
+          telephone: "01234567891",
+          sparePhone: "1234567890",
+          enclosure: "",
+          valid: "2022-04-30",
+          createUser: "张三",
+          createDate: "2022-01-02 12:21",
+          state: "失效",
+        },
+        {
+          name: "佛山市禅城区梁云冷气经营部",
+          username: "张三",
+          userID: "01234567891234567689",
+          telephone: "01234567891",
+          sparePhone: "1234567890",
+          enclosure: "",
+          valid: "2022-04-30",
+          createUser: "张三",
+          createDate: "2022-01-02 12:21",
+          state: "失效",
+        },
+      ],
+      searchForm: {
+        name: "",
+        username: "",
+        telephone: "",
+      },
+    };
+  },
+  methods: {
+    addFn() {
+      this.dialogForm = true;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-date-editor {
+  width: 100%;
+}
+::v-deep .el-select {
+  width: 100%;
+}
+::v-deep .el-col-9 .el-button {
+  padding: 5px;
+}
+::v-deep .el-dialog__header {
+  background-color: #dddddd;
+}
+.base {
+  padding: 20px 20px 0;
+}
+.table {
+  margin-top: 12px;
+}
+.right {
+  float: right;
+}
+</style>

+ 5 - 0
src/views/basic_data/warehouse.vue

@@ -0,0 +1,5 @@
+<template>
+  <div>
+    <router-view />
+  </div>
+</template>

+ 288 - 0
src/views/basic_data/warehouse/components/warehouse_list-detail.vue

@@ -0,0 +1,288 @@
+<template>
+  <div>
+    <div class="sty">
+      <el-page-header @back="goBack" content="详情页面"> </el-page-header>
+    </div>
+    <el-card class="box-card">
+      <div slot="header" class="clearfix">
+        <span>组织信息</span>
+      </div>
+      <el-row>
+        <el-col :span="8"><span>创建组织</span><input type="text" /></el-col>
+        <el-col :span="8"><span>编码</span><input type="text" /></el-col>
+        <el-col :span="8"><span>名称</span><input type="text" /></el-col>
+      </el-row>
+    </el-card>
+    <el-card class="box-card">
+      <div slot="header" class="clearfix">
+        <span>基本信息</span>
+      </div>
+      <div class="baseInfo">
+        <div>
+          <div class="base-header">
+            <span>基本信息</span>
+          </div>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">仓库属性</span
+              ><select name="" id="" class="selectStyle2">
+                <option value="">普通仓库</option>
+              </select></el-col
+            >
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">供应商</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">客户</span
+              ><textarea
+                name=""
+                id=""
+                cols="30"
+                rows="10"
+                class="textareaStyle"
+              ></textarea>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">仓库地址</span
+              ><textarea
+                class="textareaStyle"
+                name=""
+                id=""
+                cols="30"
+                rows="10"
+              ></textarea>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">仓库负责人</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">联系电话</span><input type="text" />
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">描述</span
+              ><textarea
+                class="textareaStyle"
+                name=""
+                id=""
+                cols="30"
+                rows="10"
+              ></textarea>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">分组</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">管易仓</span><input type="checkbox"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">管易仓编码</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">第三方仓储类型</span
+              ><select name="" id="" class="selectStyle2">
+                <option value="">正常</option>
+              </select></el-col
+            >
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">第三方仓库编码</span><input type="text"
+            /></el-col>
+          </el-row>
+        </div>
+        <div>
+          <div class="base-header">
+            <span>库存状态</span>
+          </div>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">库存状态类型</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">默认库存状态</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">默认收料状态</span><input type="text"
+            /></el-col>
+          </el-row>
+          <div class="base-header">
+            <span>控制</span>
+          </div>
+          <el-row>
+            <el-row>
+              <el-col :span="24"
+                ><span class="marg-r">允许客户查询</span><input type="checkbox"
+              /></el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8"
+                ><span class="marg-r">允许即时库存负库存</span
+                ><input type="checkbox"
+              /></el-col>
+              <el-col :span="8"
+                ><span class="marg-r">允许MRP计划</span><input type="checkbox"
+              /></el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8"
+                ><span class="marg-r">允许锁库</span><input type="checkbox"
+              /></el-col>
+              <el-col :span="8"
+                ><span class="marg-r">参与预警</span><input type="checkbox"
+              /></el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8"
+                ><span class="marg-r">启用仓位管理</span><input type="checkbox"
+              /></el-col>
+              <el-col :span="8"
+                ><span class="marg-r">参与拣货</span><input type="checkbox"
+              /></el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="8"
+                ><span class="marg-r">不参与可发量统计</span
+                ><input type="checkbox"
+              /></el-col>
+              <el-col :span="8"> </el-col>
+            </el-row>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">拣货优先级(1~9999)</span><input type="text"
+            /></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r color">仓位维度数据列表显示格式</span
+              ><select name="" id="" class="selectStyle2">
+                <option value="">正常</option>
+              </select></el-col
+            >
+          </el-row>
+          <div class="base-header">
+            <span>状态</span>
+          </div>
+          <el-row>
+            <el-col :span="24"
+              ><span class="marg-r">数据状态</span
+              ><select name="" id="" class="selectStyle2">
+                <option value="">暂存</option>
+              </select></el-col
+            >
+          </el-row>
+        </div>
+        <div></div>
+      </div>
+    </el-card>
+  </div>
+</template>
+
+<script>
+export default {
+  methods: {
+    goBack() {
+      console.log(this.$parent);
+      this.$parent.isShow = true;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.baseWidth {
+  width: 46%;
+}
+.inputDate {
+  width: 46%;
+}
+.selectStyle2 {
+  width: 35%;
+}
+.selectStyle {
+  width: 35%;
+}
+.textareaStyle {
+  vertical-align: text-top;
+  resize: none;
+  width: 35%;
+  height: 100px;
+}
+.color {
+  color: #1f93ec;
+}
+.el-col-24 {
+  margin: 6px 0;
+}
+
+.marg-r {
+  padding-right: 15px;
+  font-size: 12px;
+  display: inline-block;
+  width: 120px;
+}
+.base-header {
+  height: 20px;
+  width: 60%;
+  border-bottom: 2px solid gray;
+  span {
+    width: 100px;
+    height: 100%;
+    display: block;
+    text-align: center;
+    color: #fff;
+
+    background-color: gray;
+  }
+}
+.box-card {
+  margin-bottom: 20px;
+}
+.el-col-8 {
+  span {
+    padding-right: 10px;
+    display: inline-block;
+    width: 100px;
+  }
+}
+.baseInfo {
+  display: flex;
+  justify-content: space-between;
+  > div {
+    width: 33%;
+  }
+}
+.sty {
+  margin-bottom: 20px;
+}
+.el-row {
+  margin-bottom: 20px;
+  &:last-child {
+    margin-bottom: 0;
+  }
+}
+</style>

+ 119 - 0
src/views/basic_data/warehouse/warehouse_book.vue

@@ -0,0 +1,119 @@
+<template>
+  <div class="app-container">
+    <el-card class="box-card">
+      <div slot="header" class="clearfix">
+        <span>仓库每天预约提货设置</span>
+      </div>
+      <!-- 列表 -->
+      <div class="">
+        <el-table
+          v-loading="listLoading"
+          :data="dataList"
+          element-loading-text="Loading"
+          border
+          fit
+          highlight-current-row
+          stripe
+        >
+          <el-table-column
+            align="center"
+            label="序号"
+            prop="num"
+            min-width="60"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="center"
+            label="仓库"
+            prop="store"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="center"
+            label="预约存货类型"
+            prop="type"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="center"
+            label="最大预约单量"
+            prop="maxNum"
+            min-width="160"
+            show-overflow-tooltip
+          >
+            <template slot-scope="scope">
+              <el-input v-model="scope.row.maxNum"></el-input>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            label="最大预约台数"
+            prop="maxSets"
+            min-width="160"
+            show-overflow-tooltip
+          >
+            <template slot-scope="scope">
+              <el-input v-model="scope.row.maxSets"></el-input>
+            </template>
+          </el-table-column>
+
+          <el-table-column
+            align="center"
+            label="操作"
+            min-width="160"
+            show-overflow-tooltip
+          >
+            <el-button type="text" class="textColor" @click="editFn"
+              >编辑</el-button
+            >
+            <el-button type="text" class="textColor">删除</el-button>
+          </el-table-column>
+        </el-table>
+      </div>
+    </el-card>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      dataList: [
+        {
+          num: "1",
+          store: "万豪仓",
+          type: "家用空调",
+          maxNum: "1111",
+          maxSets: "12331",
+        },
+        {
+          num: "1",
+          store: "万豪仓",
+          type: "家用空调",
+          maxNum: "1111",
+          maxSets: "",
+        },
+        {
+          num: "1",
+          store: "万豪仓",
+          type: "家用空调",
+          maxNum: "1111",
+          maxSets: "",
+        },
+        {
+          num: "1",
+          store: "万豪仓",
+          type: "家用空调",
+          maxNum: "1111",
+          maxSets: "",
+        },
+      ],
+    };
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+</style>

+ 321 - 0
src/views/basic_data/warehouse/warehouse_cost.vue

@@ -0,0 +1,321 @@
+<template>
+  <div class="app-container">
+    <!-- <el-card class="box-card">
+      <div slot="header" class="clearfix">
+        <span>仓库费规则设施</span>
+      </div>
+      <el-row>
+        <el-col :span="4">
+          <strong>仓储费设置:</strong>
+        </el-col>
+        <el-col :span="16">
+          <div class="set">
+            <strong>货品仓库存放</strong
+            ><input class="inputs" v-model="input" placeholder="10" /> ><strong
+              >天内可免费受存储管理费用.</strong
+            >
+          </div>
+          <div>
+            <strong>当超过</strong
+            ><input class="inputs" v-model="input" placeholder="10" />
+            <strong>天后,按每立方米</strong
+            ><input class="inputs" v-model="input" placeholder="10" /><strong
+              >元/天计算</strong
+            >
+          </div>
+          <h5>当商品不足1立方米时,按一立方米计算</h5>
+        </el-col>
+      </el-row>
+      <h4 class="zhu">
+        注:改规则适用所有经销商,个性化液之后,则不再按该规则执行
+      </h4>
+    </el-card> -->
+
+    <!-- 筛选条件 -->
+    <div>
+      <el-form label-width="70px" size="small" label-position="left">
+        <el-row :gutter="20">
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="条件" prop="account">
+              <el-input placeholder="请输入筛选条件"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :xs="24" :sm="12" :lg="18" class="tr">
+            <el-form-item label="">
+              <el-button size="small" @click="resetScreenForm">清空</el-button>
+              <el-button size="small" type="primary" @click="submitScreenForm"
+                >搜索</el-button
+              >
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+    <!-- 按钮 -->
+    <div class="btn-group clearfix">
+      <div class="fl">
+        <el-button type="primary">新增</el-button>
+        <el-button type="primary">编辑</el-button>
+        <el-button type="primary">删除</el-button>
+      </div>
+      <div class="fr">
+        <el-button type="primary">导入</el-button>
+        <el-button type="primary">导出</el-button>
+        <el-button type="primary">打印</el-button>
+      </div>
+    </div>
+
+    <div class="mymain-container">
+      <!-- 列表 -->
+      <div class="table">
+        <el-table
+          v-loading="listLoading"
+          :data="dataList"
+          element-loading-text="Loading"
+          border
+          fit
+          highlight-current-row
+          stripe
+        >
+          <el-table-column type="selection" min-width="100" />
+
+          <el-table-column
+            align="center"
+            label="经销商编码"
+            prop="bianma"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="center"
+            label="经销商名称"
+            prop="dealerName"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="center"
+            label="存放免费天数"
+            prop="freeDay"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="center"
+            label="收费规则(每立方米)"
+            prop="rule"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="center"
+            label="创建人"
+            prop="createMan"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="center"
+            label="创建时间"
+            prop="createDate"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="center"
+            label="更新人"
+            prop="updateMan"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="center"
+            label="更新时间"
+            prop="updateDate"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="center"
+            label="操作"
+            min-width="160"
+            show-overflow-tooltip
+          >
+            <el-button type="text" class="textColor" @click="editFn"
+              >编辑</el-button
+            >
+            <el-button type="text" class="textColor">删除</el-button>
+          </el-table-column>
+        </el-table>
+      </div>
+      <!-- 分页 -->
+      <div class="fr">
+        <el-pagination
+          :current-page="currentPage"
+          :page-sizes="[10, 20, 30, 50]"
+          :page-size="10"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="listTotal"
+        >
+        </el-pagination>
+      </div>
+    </div>
+
+    <!-- 弹窗 -->
+    <el-dialog
+      title="仓库费规则配置"
+      :visible.sync="showDialog"
+      width="30%"
+      :show-close="false"
+      :close-on-click-modal="false"
+    >
+      <el-form :model="dialogForm" label-width="100px" label-position="right">
+        <el-form-item label="经销商编码">
+          <el-select
+            v-model="dialogForm.bianma"
+            placeholder="请选择活动区域"
+            class="inputStyle"
+          >
+            <el-option label="区域一" value="shanghai"></el-option>
+            <el-option label="区域二" value="beijing"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="经销商名称">
+          <el-input v-model="dialogForm.name" class="inputStyle"></el-input>
+        </el-form-item>
+        <el-form-item label="仓库存放" class="sty">
+          <el-input
+            v-model="dialogForm.freeDay"
+            class="inputStyle"
+          />天内可免费受存储管理费用. 当超过
+          <el-input
+            v-model="dialogForm.day"
+            class="inputStyle"
+          />天后,按每立方米
+          <el-input v-model="dialogForm.money" class="inputStyle" />
+          元/天计算
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="showDialog = false">取 消</el-button>
+        <el-button type="primary" @click="showDialog = false">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      dialogForm: {
+        bianma: "",
+        name: "",
+        day: "",
+        freeDay: "",
+        money: "",
+      },
+      showDialog: false,
+      dataList: [
+        {
+          num: "1",
+          bianma: "1002",
+          dealerName: "佛山市禅城区梁云冷气经营部",
+          rule: "0.1",
+          freeDay: "123",
+          createMan: "张三",
+          createDate: "2000/01/01",
+          updateMan: "张三",
+          updateDate: "2020/01/01",
+        },
+        {
+          num: "1",
+          bianma: "1002",
+          dealerName: "佛山市禅城区梁云冷气经营部",
+          rule: "0.1",
+          freeDay: "123",
+          createMan: "张三",
+          createDate: "2000/01/01",
+          updateMan: "张三",
+          updateDate: "2020/01/01",
+        },
+        {
+          num: "1",
+          bianma: "1002",
+          dealerName: "佛山市禅城区梁云冷气经营部",
+          rule: "0.1",
+          freeDay: "123",
+          createMan: "张三",
+          createDate: "2000/01/01",
+          updateMan: "张三",
+          updateDate: "2020/01/01",
+        },
+      ],
+    };
+  },
+  methods: {
+    editFn() {
+      this.showDialog = true;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .sty {
+  width: 85%;
+  .el-form-item__content .el-input {
+    width: 22%;
+    margin: 0px 10px 16px 0;
+  }
+}
+.zhu {
+  padding-top: 18px;
+}
+.set {
+  margin-bottom: 30px;
+}
+.inputs {
+  margin: 0 18px;
+}
+::v-deep .el-form {
+  .inputStyle {
+    width: 80%;
+  }
+}
+::v-deep .dialog-footer {
+  display: flex;
+  justify-content: center;
+}
+::v-deep .el-dialog__header {
+  background-color: #dddddd;
+}
+.inp {
+  margin: 0 12px;
+}
+
+.right {
+  margin-top: 12px;
+  float: right;
+}
+
+.table {
+  margin-top: 12px;
+}
+.search {
+  display: flex;
+  margin-top: 12px;
+  ::v-deep .el-input {
+    width: 50%;
+    margin-right: 12px;
+  }
+}
+.main {
+  padding: 12px;
+}
+</style>>
+

+ 213 - 0
src/views/basic_data/warehouse/warehouse_list.vue

@@ -0,0 +1,213 @@
+<template>
+  <div class="app-container">
+    <div v-if="isShow">
+      <!-- 筛选条件 -->
+      <div>
+        <el-form label-width="70px" size="small" label-position="left">
+          <el-row :gutter="20">
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="关键字" prop="account">
+                <el-input placeholder="请输入关键字"></el-input>
+              </el-form-item>
+            </el-col>
+
+            <el-col :xs="24" :sm="12" :lg="18" class="tr">
+              <el-form-item label="">
+                <el-button size="small" @click="resetScreenForm"
+                  >清空</el-button
+                >
+                <el-button size="small" type="primary" @click="submitScreenForm"
+                  >搜索</el-button
+                >
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </div>
+      <div class="mymain-container">
+        <div class="table">
+          <el-table
+            v-loading="listLoading"
+            :data="dataList"
+            element-loading-text="Loading"
+            border
+            fit
+            highlight-current-row
+            stripe
+          >
+            <el-table-column type="selection" min-width="100"></el-table-column>
+            <el-table-column
+              align="center"
+              label="编码"
+              prop="bianMa"
+              min-width="100"
+              label-class-name="bianma"
+              class-name="fontstyle"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="名称"
+              prop="name"
+              min-width="100"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="仓库地址"
+              prop="address"
+              min-width="100"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="仓库负责人"
+              prop="storeUser"
+              min-width="100"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="仓库属性"
+              prop="storeAttribute"
+              min-width="100"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="第三方仓储类型"
+              prop="storeType"
+              min-width="100"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="数据状态"
+              prop="dataState"
+              min-width="100"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="允许即时库存负库存"
+              prop="allow"
+              min-width="100"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="启用仓位管理"
+              prop="openStore"
+              min-width="100"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="不参与可发量统计"
+              prop="noStatistics"
+              min-width="100"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="参与预警"
+              prop="warning"
+              min-width="100"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="操作"
+              prop="caozuo"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <el-button type="text" class="textColor" @click="editFn"
+                >编辑</el-button
+              >
+              <el-button type="text" class="textColor">删除</el-button>
+            </el-table-column>
+          </el-table>
+        </div>
+        <!-- 分页 -->
+        <div class="fr">
+          <el-pagination
+            :current-page="currentPage"
+            :page-sizes="[10, 20, 30, 50]"
+            :page-size="10"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="listTotal"
+          >
+          </el-pagination>
+        </div>
+      </div>
+    </div>
+    <WarehouseListDetail v-else />
+  </div>
+</template>
+
+<script>
+import WarehouseListDetail from "./components/warehouse_list-detail.vue";
+export default {
+  data() {
+    return {
+      isShow: true,
+      dataList: [
+        {
+          bianMa: "BXGM001",
+          name: "冰箱美国仓",
+          address: "",
+          storeUser: "",
+          storeAttribute: "普通仓库",
+          storeType: "",
+          dataState: "已审核",
+          allow: "否",
+          openStore: "否",
+          noStatistics: "否",
+          warning: "是",
+        },
+        {
+          bianMa: "BXGM001",
+          name: "冰箱美国仓",
+          address: "",
+          storeUser: "",
+          storeAttribute: "普通仓库",
+          storeType: "",
+          dataState: "已审核",
+          allow: "否",
+          openStore: "否",
+          noStatistics: "否",
+          warning: "是",
+        },
+        {
+          bianMa: "BXGM001",
+          name: "冰箱美国仓",
+          address: "",
+          storeUser: "",
+          storeAttribute: "普通仓库",
+          storeType: "",
+          dataState: "已审核",
+          allow: "否",
+          openStore: "否",
+          noStatistics: "否",
+          warning: "是",
+        },
+      ], // 列表数据
+
+      screenForm: {
+        // 筛选表单数据
+        name: "", // 名称
+      },
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+    };
+  },
+  components: {
+    WarehouseListDetail,
+  },
+  methods: {
+    editFn() {
+      this.isShow = false;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+// ::v-deep .fontstyle {
+//   color: #0909ff;
+// }
+// ::v-deep .bianma {
+//   color: #409eff;
+// }
+</style>

+ 291 - 0
src/views/basic_data/warehouse/warehouse_site.vue

@@ -0,0 +1,291 @@
+<template>
+  <div class="app-container">
+    <!-- 筛选条件 -->
+    <div>
+      <el-form label-width="70px" size="small" label-position="left">
+        <el-row :gutter="20">
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="仓库名称" prop="account">
+              <el-input placeholder="请输入仓库名称"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="仓位名称" prop="nickname">
+              <el-input placeholder="请输入仓位名称"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :xs="24" :sm="12" :lg="12" class="tr">
+            <el-form-item label="">
+              <el-button size="small" @click="resetScreenForm">清空</el-button>
+              <el-button size="small" type="primary" @click="submitScreenForm"
+                >搜索</el-button
+              >
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+    <!-- 按钮 -->
+    <div class="btn-group clearfix">
+      <div class="fl">
+        <el-button type="primary">新增</el-button>
+        <el-button type="primary">编辑</el-button>
+        <el-button type="primary">删除</el-button>
+      </div>
+    </div>
+    <div class="mymain-container">
+      <!-- 列表 -->
+      <div class="table">
+        <el-table
+          v-loading="listLoading"
+          :data="dataList"
+          element-loading-text="Loading"
+          border
+          fit
+          highlight-current-row
+          stripe
+        >
+          <el-table-column
+            align="center"
+            label="序号"
+            prop="num"
+            min-width="60"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="仓库名称"
+            prop="storeName"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="仓位名称"
+            prop="positionName"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="库存警戒线"
+            prop="alert"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="库存充足"
+            prop="adequate"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="创建人"
+            prop="createUser"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="创建时间"
+            prop="createDate"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="更新人"
+            prop="updateUser"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="更新时间"
+            prop="updateDate"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+
+          <el-table-column
+            align="center"
+            label="操作"
+            min-width="160"
+            show-overflow-tooltip
+          >
+            <el-button type="text" class="textColor" @click="editFn"
+              >编辑</el-button
+            >
+            <el-button type="text" class="textColor">删除</el-button>
+          </el-table-column>
+        </el-table>
+      </div>
+      <!-- 分页 -->
+      <div class="fr">
+        <el-pagination
+          :current-page="currentPage"
+          :page-sizes="[10, 20, 30, 50]"
+          :page-size="10"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="listTotal"
+        >
+        </el-pagination>
+      </div>
+    </div>
+
+    <!-- 弹窗 -->
+    <el-dialog
+      title="仓库仓位对应关系"
+      :visible.sync="showDialogForm"
+      width="30%"
+      :show-close="false"
+      :close-on-click-modal="false"
+    >
+      <el-form ref="form" :model="diaLogForm" label-width="100px">
+        <el-form-item label="仓库名称">
+          <el-input v-model="diaLogForm.storeName"></el-input>
+        </el-form-item>
+        <el-form-item label="仓位名称">
+          <el-select
+            v-model="diaLogForm.positionName"
+            multiple
+            placeholder="请选择"
+          >
+            <el-option
+              v-for="item in options"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="库存警戒线">
+          <el-input v-model="diaLogForm.alert"></el-input>
+        </el-form-item>
+        <el-form-item label="库存状态"> - </el-form-item>
+        <el-form-item label="备注">
+          <el-input type="textarea" v-model="diaLogForm.text"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="showDialogForm = false">取 消</el-button>
+        <el-button type="primary" @click="showDialogForm = false"
+          >确 定</el-button
+        >
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      options: [
+        {
+          value: "选项1",
+          label: "1",
+        },
+        {
+          value: "选项2",
+          label: "2",
+        },
+        {
+          value: "选项3",
+          label: "3",
+        },
+        {
+          value: "选项4",
+          label: "4",
+        },
+        {
+          value: "选项5",
+          label: "5",
+        },
+      ],
+      diaLogForm: {
+        storeName: "",
+        positionName: [],
+        alert: "",
+        text: "",
+      },
+      showDialogForm: false,
+      dataList: [
+        {
+          num: "1",
+          storeName: "万豪仓",
+          positionName: "万豪普通仓",
+          alert: "122台",
+          adequate: "充足",
+          createUser: "LID",
+          createDate: "2022-05-12 12:00",
+          updateUser: "LID",
+          updateDate: "2022-05-24 12:08",
+        },
+        {
+          num: "1",
+          storeName: "万豪仓",
+          positionName: "万豪普通仓",
+          alert: "122台",
+          adequate: "充足",
+          createUser: "LID",
+          createDate: "2022-05-12 12:00",
+          updateUser: "LID",
+          updateDate: "2022-05-24 12:08",
+        },
+        {
+          num: "1",
+          storeName: "万豪仓",
+          positionName: "万豪普通仓",
+          alert: "122台",
+          adequate: "充足",
+          createUser: "LID",
+          createDate: "2022-05-12 12:00",
+          updateUser: "LID",
+          updateDate: "2022-05-24 12:08",
+        },
+      ],
+      searchForm: {
+        positionName: "",
+        storeName: "",
+      },
+    };
+  },
+  methods: {
+    addFn() {
+      this.showDialogForm = true;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-date-editor {
+  width: 100%;
+}
+::v-deep .el-select {
+  width: 100%;
+}
+::v-deep .el-col-9 .el-button {
+  padding: 5px;
+}
+::v-deep .el-dialog__header {
+  background-color: #dddddd;
+}
+.base {
+  padding: 20px 20px 0;
+}
+.table {
+  margin-top: 12px;
+}
+.right {
+  float: right;
+}
+</style>

+ 10 - 4
src/views/merchant/merchant_list.vue

@@ -2,9 +2,6 @@
   <div class="app-container">
     <!-- 筛选条件 -->
     <div class="screen-container">
-      <div class="top clearfix">
-        <div class="title fl">条件筛选</div>
-      </div>
       <el-form ref="screenForm" :model="screenForm" label-width="70px" size="small" label-position="left">
         <el-row :gutter="20">
           <el-col :xs="24" :sm="12" :lg="6">
@@ -52,7 +49,7 @@
           <el-button size="small" type="primary" @click="toCreate()">开通账号</el-button>
         </div>
         <div class="fr">
-          <el-button size="small" type="primary" icon="el-icon-download" @click="handleExport">导出数据</el-button>
+          <ExportButton :exUrl="'admin/user/mch/export'" :exParams="exParams" />
         </div>
       </div>
       <div class="table">
@@ -284,6 +281,15 @@ export default {
         openSidebar: this.sidebar.opened
       }
     },
+    exParams() {
+      return {
+        userName: this.screenForm.account,
+        nickName: this.screenForm.nickName,
+        linkPhone: this.screenForm.phone,
+        email: this.screenForm.email,
+        status: this.screenForm.status,
+      }
+    }
   },
   methods: {
    goBack() {

+ 244 - 0
src/views/sales_region/sales_line.vue

@@ -0,0 +1,244 @@
+<template>
+  <div class="app-container">
+    <!-- 筛选条件 -->
+    <div class="screen-container">
+      <div class="top clearfix">
+        <div class="title fl">条件筛选</div>
+      </div>
+      <el-form ref="screenForm" :model="screenForm" label-width="70px" size="small" label-position="left">
+        <el-row :gutter="20">
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="业务线" prop="name">
+              <el-input v-model="screenForm.name" placeholder="请输入业务线"></el-input>
+            </el-form-item>
+          </el-col>
+          
+          <el-col :xs="24" :sm="12" :lg="18" class="tr">
+            <el-form-item label="">
+              <el-button size="small" @click="resetScreenForm">清空</el-button>
+              <el-button size="small" type="primary" @click="submitScreenForm">搜索</el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+
+    <div class="mymain-container">
+      <div class="btn-group clearfix">
+        <div class="fl">
+          <el-button size="small" type="primary" icon="el-icon-plus" @click="openMainForm('add')">新增</el-button>
+        </div>
+        <div class="fr">
+          <el-button size="small" type="primary" icon="el-icon-download" @click="handleExport">导出数据</el-button>
+        </div>
+      </div>
+      <div class="table">
+        <el-table v-loading="listLoading" :data="dataList" element-loading-text="Loading" border fit highlight-current-row stripe>
+          <el-table-column align="center" label="状态" prop="aaa" min-width="100">
+            <template slot-scope="scope">
+              <el-tag :type="scope.row.status ? 'success':'danger'">{{ scope.row.status ? '启用':'禁用' }}</el-tag>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" label="业务线" prop="aaa" min-width="100" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="业务线名称" prop="aaa" min-width="100" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="销售公司" prop="aaa" min-width="200" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="创建人" prop="aaa" min-width="100" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="创建时间" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="更新人" prop="aaa" min-width="100" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="更新时间" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="操作" width="100">
+            <template slot-scope="scope">
+              <el-button type="text" @click="openMainForm('edit', scope.row.id)">编辑</el-button>
+              <el-popconfirm v-if="scope.row.status" style="margin-left: 10px;" title="确定删除吗?" @onConfirm="handleDelete(scope.row.id, 0)" >
+                <el-button slot="reference" type="text">删除</el-button>
+              </el-popconfirm>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+    </div>
+    <div class="pagination clearfix">
+      <div class="fr">
+        <el-pagination
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="currentPage"
+          :page-sizes="[10, 20, 30, 50]"
+          :page-size="10"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="listTotal">
+        </el-pagination>
+      </div>
+    </div>
+
+    <!-- 新增编辑 -->
+    <el-dialog :title="mainFormType == 'add' ? '新增':'编辑'" :visible.sync="mainFormVisible" :show-close="false" width="40%" :close-on-click-modal="false">
+      <el-form ref="mainForm" :model="mainForm" :rules="mainFormRules" label-position="left" label-width="100px">
+        <el-form-item label="业务线名称" prop="name">
+          <el-input placeholder="请输入业务线名称" v-model="mainForm.name"></el-input>
+        </el-form-item>
+        <el-form-item label="业务线" prop="line">
+          <el-select v-model="mainForm.line" placeholder="请选择业务线" style="width: 100%;">
+            <el-option :label="item.name" :value="item.id" v-for="(item, index) in departmentList" :key="index"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="状态" prop="status">
+          <el-radio-group v-model="mainForm.status">
+            <el-radio :label="true">启用</el-radio>
+            <el-radio :label="false">禁用</el-radio>
+          </el-radio-group>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="cancelMainForm">取 消</el-button>
+        <el-button type="primary" @click="submitMainForm">确 定</el-button>
+      </div>
+    </el-dialog>
+
+  </div>
+</template>
+
+<script>
+import { getRelationList } from "@/api/sales_region";
+import { downloadFiles } from '@/utils/util'
+
+export default {
+  data() {
+    return {
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      dataList: null, // 列表数据
+      listLoading: false, // 列表加载loading
+      screenForm: { // 筛选表单数据
+        name: '',
+      },
+
+      mainFormVisible: false,
+      mainFormType: 'add',
+      mainForm: {
+        name: '',
+        line: '',
+        status: true,
+      },
+      mainFormRules: {
+        name: [
+          { required: true, message: '请输入业务线名称', trigger: 'blur' }
+        ],
+        line: [
+          { required: true, message: '请选择业务线', trigger: 'change' }
+        ],
+      },
+      salesManList: [],
+      departmentList: [],
+
+    }
+  },
+
+  created() {
+    this.getList();
+  },
+
+  methods: {
+    // 查询按钮权限
+    checkBtnRole(value) {
+      // let btnRole = this.$route.meta.roles;
+      // if(!btnRole) {return true}
+      // let index = btnRole.indexOf(value);
+      // return index >= 0;
+      return true
+    },
+
+    // 查询列表
+    getList() {
+      this.listLoading = true;
+
+      let params = {
+        pageNum: this.currentPage,
+        pageSize: this.pageSize,
+        userName: this.screenForm.account,
+        nickName: this.screenForm.nickName,
+        linkPhone: this.screenForm.phone,
+        email: this.screenForm.email,
+        status: this.screenForm.status,
+      };
+      getRelationList(params).then((res) => {
+        this.dataList = res.data.records;
+        this.listTotal = res.data.total;
+        this.listLoading = false;
+      })
+    },
+
+    // 提交筛选表单
+    submitScreenForm() {
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 重置筛选表单
+    resetScreenForm() {
+      this.$refs.screenForm.resetFields();
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改每页数量
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改当前页
+    handleCurrentChange(val) {
+      this.currentPage = val;
+      this.getList();
+    },
+
+    // 打开 新增编辑
+    openMainForm(type, id) {
+      this.mainFormType = type;
+      this.mainFormVisible = true;
+    },
+
+    // 取消 新增编辑 账号表单
+    cancelMainForm(){
+      this.mainFormVisible = false;
+      this.$refs.mainForm.resetFields();
+    },
+
+    // 提交
+    submitMainForm() {
+      this.$refs.mainForm.validate((valid) => {
+        if (valid) {
+          let params = {
+            password: this.mainForm.salesMan,
+            password: this.mainForm.salesLine,
+          }
+          resetPassword(params).then(res => {
+            this.getList();
+            this.cancelMainForm();
+            this.$successMsg();
+          })
+        }
+      })
+    },
+
+    // 导出
+    handleExport() {
+      let screenData = {
+        userName: this.screenForm.account,
+        nickName: this.screenForm.nickName,
+        linkPhone: this.screenForm.phone,
+        email: this.screenForm.email,
+        status: this.screenForm.status,
+      };
+      downloadFiles('admin/user/mch/export', screenData);
+    },
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+
+</style>

+ 258 - 0
src/views/sales_region/sales_man.vue

@@ -0,0 +1,258 @@
+<template>
+  <div class="app-container">
+    <!-- 筛选条件 -->
+    <div class="screen-container">
+      <div class="top clearfix">
+        <div class="title fl">条件筛选</div>
+      </div>
+      <el-form ref="screenForm" :model="screenForm" label-width="70px" size="small" label-position="left">
+        <el-row :gutter="20">
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="业务员" prop="name">
+              <el-input v-model="screenForm.name" placeholder="请输入业务员"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="销售公司" prop="company">
+              <el-input v-model="screenForm.company" placeholder="请输入销售公司"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="部门" prop="department">
+              <el-input v-model="screenForm.department" placeholder="请输入部门"></el-input>
+            </el-form-item>
+          </el-col>
+          
+          <el-col :xs="24" :sm="12" :lg="6" class="tr">
+            <el-form-item label="">
+              <el-button size="small" @click="resetScreenForm">清空</el-button>
+              <el-button size="small" type="primary" @click="submitScreenForm">搜索</el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+
+    <div class="mymain-container">
+      <div class="btn-group clearfix">
+        <div class="fl">
+          <el-button size="small" type="primary" icon="el-icon-plus" @click="openMainForm('add')">新增</el-button>
+        </div>
+        <div class="fr">
+          <el-button size="small" type="primary" icon="el-icon-download" @click="handleExport">导出数据</el-button>
+        </div>
+      </div>
+      <div class="table">
+        <el-table v-loading="listLoading" :data="dataList" element-loading-text="Loading" border fit highlight-current-row stripe>
+          <el-table-column align="center" label="状态" prop="aaa" min-width="100">
+            <template slot-scope="scope">
+              <el-tag :type="scope.row.status ? 'success':'danger'">{{ scope.row.status ? '启用':'禁用' }}</el-tag>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" label="业务员" prop="aaa" min-width="100" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="部门名称" prop="aaa" min-width="100" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="销售公司" prop="aaa" min-width="200" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="创建人" prop="aaa" min-width="100" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="创建时间" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="更新人" prop="aaa" min-width="100" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="更新时间" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="操作" width="100">
+            <template slot-scope="scope">
+              <el-button type="text" @click="openMainForm('edit', scope.row.id)">编辑</el-button>
+              <el-popconfirm v-if="scope.row.status" style="margin-left: 10px;" title="确定删除吗?" @onConfirm="handleDelete(scope.row.id, 0)" >
+                <el-button slot="reference" type="text">删除</el-button>
+              </el-popconfirm>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+    </div>
+    <div class="pagination clearfix">
+      <div class="fr">
+        <el-pagination
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="currentPage"
+          :page-sizes="[10, 20, 30, 50]"
+          :page-size="10"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="listTotal">
+        </el-pagination>
+      </div>
+    </div>
+
+    <!-- 新增编辑 -->
+    <el-dialog :title="mainFormType == 'add' ? '新增':'编辑'" :visible.sync="mainFormVisible" :show-close="false" width="40%" :close-on-click-modal="false">
+      <el-form ref="mainForm" :model="mainForm" :rules="mainFormRules" label-position="left" label-width="70px">
+        <el-form-item label="业务员" prop="salesMan">
+          <el-select v-model="mainForm.salesMan" placeholder="请选择业务员" style="width: 100%;">
+            <el-option :label="item.name" :value="item.id" v-for="(item, index) in salesManList" :key="index"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="部门" prop="department">
+          <el-select v-model="mainForm.department" placeholder="请选择部门" style="width: 100%;">
+            <el-option :label="item.name" :value="item.id" v-for="(item, index) in departmentList" :key="index"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="状态" prop="status">
+          <el-radio-group v-model="mainForm.status">
+            <el-radio :label="true">启用</el-radio>
+            <el-radio :label="false">禁用</el-radio>
+          </el-radio-group>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="cancelMainForm">取 消</el-button>
+        <el-button type="primary" @click="submitMainForm">确 定</el-button>
+      </div>
+    </el-dialog>
+
+  </div>
+</template>
+
+<script>
+import { getRelationList } from "@/api/sales_region";
+import { downloadFiles } from '@/utils/util'
+
+export default {
+  data() {
+    return {
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      dataList: null, // 列表数据
+      listLoading: false, // 列表加载loading
+      screenForm: { // 筛选表单数据
+        name: '',
+        company: '',
+        department: '',
+      },
+
+      mainFormVisible: false,
+      mainFormType: 'add',
+      mainForm: {
+        salesMan: '',
+        department: '',
+        status: true,
+      },
+      mainFormRules: {
+        salesMan: [
+          { required: true, message: '请选择业务员', trigger: 'change' }
+        ],
+        department: [
+          { required: true, message: '请选择业务线', trigger: 'change' }
+        ],
+      },
+      salesManList: [],
+      departmentList: [],
+
+    }
+  },
+
+  created() {
+    this.getList();
+  },
+
+  methods: {
+    // 查询按钮权限
+    checkBtnRole(value) {
+      // let btnRole = this.$route.meta.roles;
+      // if(!btnRole) {return true}
+      // let index = btnRole.indexOf(value);
+      // return index >= 0;
+      return true
+    },
+
+    // 查询列表
+    getList() {
+      this.listLoading = true;
+
+      let params = {
+        pageNum: this.currentPage,
+        pageSize: this.pageSize,
+        userName: this.screenForm.account,
+        nickName: this.screenForm.nickName,
+        linkPhone: this.screenForm.phone,
+        email: this.screenForm.email,
+        status: this.screenForm.status,
+      };
+      getRelationList(params).then((res) => {
+        this.dataList = res.data.records;
+        this.listTotal = res.data.total;
+        this.listLoading = false;
+      })
+    },
+
+    // 提交筛选表单
+    submitScreenForm() {
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 重置筛选表单
+    resetScreenForm() {
+      this.$refs.screenForm.resetFields();
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改每页数量
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改当前页
+    handleCurrentChange(val) {
+      this.currentPage = val;
+      this.getList();
+    },
+
+    // 打开 新增编辑
+    openMainForm(type, id) {
+      this.mainFormType = type;
+      this.mainFormVisible = true;
+    },
+
+    // 取消 新增编辑 账号表单
+    cancelMainForm(){
+      this.mainFormVisible = false;
+      this.$refs.mainForm.resetFields();
+    },
+
+    // 提交
+    submitMainForm() {
+      this.$refs.mainForm.validate((valid) => {
+        if (valid) {
+          let params = {
+            password: this.mainForm.salesMan,
+            password: this.mainForm.salesLine,
+          }
+          resetPassword(params).then(res => {
+            this.getList();
+            this.cancelMainForm();
+            this.$successMsg();
+          })
+        }
+      })
+    },
+
+    // 导出
+    handleExport() {
+      let screenData = {
+        userName: this.screenForm.account,
+        nickName: this.screenForm.nickName,
+        linkPhone: this.screenForm.phone,
+        email: this.screenForm.email,
+        status: this.screenForm.status,
+      };
+      downloadFiles('admin/user/mch/export', screenData);
+    },
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+
+</style>

+ 236 - 0
src/views/sales_region/sales_relation.vue

@@ -0,0 +1,236 @@
+<template>
+  <div class="app-container">
+    <!-- 筛选条件 -->
+    <div class="screen-container">
+      <div class="top clearfix">
+        <div class="title fl">条件筛选</div>
+      </div>
+      <el-form ref="screenForm" :model="screenForm" label-width="70px" size="small" label-position="left">
+        <el-row :gutter="20">
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="业务员" prop="salesMan">
+              <el-input v-model="screenForm.salesMan" placeholder="请输入业务员"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="业务线" prop="slaesLine">
+              <el-input v-model="screenForm.slaesLine" placeholder="请输入业务线"></el-input>
+            </el-form-item>
+          </el-col>
+          
+          <el-col :xs="24" :sm="24" :lg="12" class="tr">
+            <el-form-item label="">
+              <el-button size="small" @click="resetScreenForm">清空</el-button>
+              <el-button size="small" type="primary" @click="submitScreenForm">搜索</el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+
+    <div class="mymain-container">
+      <div class="btn-group clearfix">
+        <div class="fl">
+          <el-button size="small" type="primary" icon="el-icon-plus" @click="openMainForm('add')">新增</el-button>
+        </div>
+        <div class="fr">
+          <el-button size="small" type="primary" icon="el-icon-download" @click="handleExport">导出数据</el-button>
+        </div>
+      </div>
+      <div class="table">
+        <el-table v-loading="listLoading" :data="dataList" element-loading-text="Loading" border fit highlight-current-row stripe>
+          <el-table-column align="center" label="业务员" prop="aaa" min-width="100" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="是否负责人" prop="aaa" min-width="100" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="业务线" prop="aaa" min-width="200" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="操作" width="100">
+            <template slot-scope="scope">
+              <el-button type="text" @click="openMainForm('edit', scope.row.id)">编辑</el-button>
+              <el-popconfirm v-if="scope.row.status" style="margin-left: 10px;" title="确定删除吗?" @onConfirm="handleDelete(scope.row.id, 0)" >
+                <el-button slot="reference" type="text">删除</el-button>
+              </el-popconfirm>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+    </div>
+    <div class="pagination clearfix">
+      <div class="fr">
+        <el-pagination
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="currentPage"
+          :page-sizes="[10, 20, 30, 50]"
+          :page-size="10"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="listTotal">
+        </el-pagination>
+      </div>
+    </div>
+
+    <!-- 新增编辑 -->
+    <el-dialog :title="mainFormType == 'add' ? '新增':'编辑'" :visible.sync="mainFormVisible" :show-close="false" width="40%" :close-on-click-modal="false">
+      <el-form ref="mainForm" :model="mainForm" :rules="mainFormRules" label-position="left" label-width="70px">
+        <el-form-item label="业务员" prop="salesMan">
+          <el-select v-model="mainForm.salesMan" placeholder="请选择业务员" style="width: 100%;">
+            <el-option :label="item.name" :value="item.id" v-for="(item, index) in salesManList" :key="index"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="业务线" prop="salesLine">
+          <el-select v-model="mainForm.salesLine" placeholder="请选择业务线" style="width: 100%;">
+            <el-option :label="item.name" :value="item.id" v-for="(item, index) in salesLineList" :key="index"></el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="cancelMainForm">取 消</el-button>
+        <el-button type="primary" @click="submitMainForm">确 定</el-button>
+      </div>
+    </el-dialog>
+
+  </div>
+</template>
+
+<script>
+import { getRelationList } from "@/api/sales_region";
+import { downloadFiles } from '@/utils/util'
+
+export default {
+  data() {
+    return {
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      dataList: null, // 列表数据
+      listLoading: false, // 列表加载loading
+      screenForm: { // 筛选表单数据
+        salesMan: '',
+        salesLine: '',
+      },
+
+      mainFormVisible: false,
+      mainFormType: 'add',
+      mainForm: {
+        salesMan: '',
+        salesLine: '',
+      },
+      mainFormRules: {
+        salesMan: [
+          { required: true, message: '请选择业务员', trigger: 'change' }
+        ],
+        salesLine: [
+          { required: true, message: '请选择业务线', trigger: 'change' }
+        ],
+      },
+      salesManList: [],
+      salesLineList: [],
+
+    }
+  },
+
+  created() {
+    this.getList();
+  },
+
+  methods: {
+    // 查询按钮权限
+    checkBtnRole(value) {
+      // let btnRole = this.$route.meta.roles;
+      // if(!btnRole) {return true}
+      // let index = btnRole.indexOf(value);
+      // return index >= 0;
+      return true
+    },
+
+    // 查询列表
+    getList() {
+      this.listLoading = true;
+
+      let params = {
+        pageNum: this.currentPage,
+        pageSize: this.pageSize,
+        userName: this.screenForm.account,
+        nickName: this.screenForm.nickName,
+        linkPhone: this.screenForm.phone,
+        email: this.screenForm.email,
+        status: this.screenForm.status,
+      };
+      getRelationList(params).then((res) => {
+        this.dataList = res.data.records;
+        this.listTotal = res.data.total;
+        this.listLoading = false;
+      })
+    },
+
+    // 提交筛选表单
+    submitScreenForm() {
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 重置筛选表单
+    resetScreenForm() {
+      this.$refs.screenForm.resetFields();
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改每页数量
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改当前页
+    handleCurrentChange(val) {
+      this.currentPage = val;
+      this.getList();
+    },
+
+    // 打开 新增编辑
+    openMainForm(type, id) {
+      this.mainFormType = type;
+      this.mainFormVisible = true;
+    },
+
+    // 取消 新增编辑 账号表单
+    cancelMainForm(){
+      this.mainFormVisible = false;
+      this.$refs.mainForm.resetFields();
+    },
+
+    // 提交
+    submitMainForm() {
+      this.$refs.mainForm.validate((valid) => {
+        if (valid) {
+          let params = {
+            password: this.mainForm.salesMan,
+            password: this.mainForm.salesLine,
+          }
+          resetPassword(params).then(res => {
+            this.getList();
+            this.cancelMainForm();
+            this.$successMsg();
+          })
+        }
+      })
+    },
+
+    // 导出
+    handleExport() {
+      let screenData = {
+        userName: this.screenForm.account,
+        nickName: this.screenForm.nickName,
+        linkPhone: this.screenForm.phone,
+        email: this.screenForm.email,
+        status: this.screenForm.status,
+      };
+      downloadFiles('admin/user/mch/export', screenData);
+    },
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+
+</style>

+ 196 - 0
src/views/setting/components/log-examine.vue

@@ -0,0 +1,196 @@
+<template>
+  <div class="detail-container">
+    <!-- 筛选条件 -->
+    <div class="screen-container">
+      <el-form ref="screenForm" :model="screenForm" label-width="70px" size="small" label-position="left">
+        <el-row :gutter="20">
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="账号" prop="account">
+              <el-input v-model="screenForm.account" placeholder="请输入账号"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="姓名" prop="name">
+              <el-input v-model="screenForm.name" placeholder="请输入姓名"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="审批时间" prop="examineDate">
+              <el-date-picker
+                v-model="screenForm.examineDate"
+                type="datetimerange"
+                range-separator="至"
+                style="width: 100%;"
+                value-format="yyyy-MM-dd HH:mm:ss"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="提交时间" prop="submitDate">
+              <el-date-picker
+                v-model="screenForm.submitDate"
+                type="datetimerange"
+                range-separator="至"
+                style="width: 100%;"
+                value-format="yyyy-MM-dd HH:mm:ss"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          
+          <el-col :xs="24" :sm="12" :lg="24" class="tr">
+            <el-form-item label="">
+              <el-button size="small" @click="resetScreenForm">清空</el-button>
+              <el-button size="small" type="primary" @click="submitScreenForm">搜索</el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+
+    <div class="mymain-container">
+      <div class="btn-group clearfix">
+        <div class="fl" />
+        <div class="fr">
+          <el-button size="small" type="primary" @click="handleExport">导出</el-button>
+        </div>
+      </div>
+
+      <div class="table">
+        <el-table v-loading="listLoading" :data="dataList" element-loading-text="Loading" border fit highlight-current-row stripe>
+          <el-table-column align="center" label="账号" prop="moduleName" min-width="140"></el-table-column>
+          <el-table-column align="center" label="姓名" prop="moduleName" min-width="140"></el-table-column>
+          <el-table-column align="center" label="审批编号" prop="moduleName" min-width="140"></el-table-column>
+          <el-table-column align="center" label="审批类型" prop="moduleName" min-width="140"></el-table-column>
+          <el-table-column align="center" label="操作时间" prop="createTime" min-width="160"></el-table-column>
+          <el-table-column align="center" label="业务编号" prop="ip" min-width="140"></el-table-column>
+          <el-table-column align="center" label="操作时间" prop="createTime" min-width="160"></el-table-column>
+          <el-table-column align="center" label="审批结果" prop="ip" min-width="140"></el-table-column>
+        </el-table>
+      </div>
+      
+      <div class="pagination clearfix">
+        <div class="fr">
+          <el-pagination
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+            :current-page="currentPage"
+            :page-sizes="[10, 20, 30, 50]"
+            :page-size="10"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="listTotal">
+          </el-pagination>
+        </div>
+      </div>
+    </div>
+
+  </div>
+</template>
+
+<script>
+import { getOplogList } from '@/api/setting'
+import { downloadFiles } from '@/utils/util'
+
+export default {
+  data() {
+    return {
+      dataList: null, // 列表数据
+      listLoading: true, // 列表加载loading
+      screenForm: { // 筛选表单数据
+        account: '',
+        name: '',
+        examineDate: '',
+        submitDate: '',
+      },
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+
+    }
+  },
+
+  created() {
+    this.getList();
+  },
+
+  methods: {
+    // 查询按钮权限
+    checkBtnRole(value) {
+      // let btnRole = this.$route.meta.roles;
+      // if(!btnRole) {return true}
+      // let index = btnRole.indexOf(value);
+      // return index >= 0 ? true : false;
+      return true;
+    },
+
+    getList() {
+      this.listLoading = true;
+
+      let params = {
+        account: this.screenForm.account,
+        name: this.screenForm.name,
+        obj: this.screenForm.obj,
+        startTime: this.screenForm.submitDate ? this.screenForm.submitDate[0] : '',
+        endTime: this.screenForm.submitDate ? this.screenForm.submitDate[1] : '',
+        pageNo: this.currentPage,
+        pageSize: this.pageSize
+      };
+
+      getOplogList(params).then(res => {
+        this.dataList = res.data.records;
+        this.listTotal = res.data.total;
+        this.listLoading = false;
+      })
+    },
+
+    // 筛选后重新获取列表
+    getListByScreen() {
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改每页数量
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改当前页
+    handleCurrentChange(val) {
+      this.currentPage = val;
+      this.getList();
+    },
+
+    // 提交筛选表单
+    submitScreenForm() {
+      this.currentPage = 1;
+      this.getList();
+    },
+    
+    // 重置筛选表单
+    resetScreenForm() {
+      this.$refs.screenForm.resetFields();
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 导出
+    handleExport() {
+      let screenData = {
+        orderId: this.screenForm.orderId,
+        status: this.screenForm.status,
+      };
+      downloadFiles('tax/export', screenData);
+    },
+
+  }
+}
+</script>
+
+<style>
+
+</style>

+ 190 - 0
src/views/setting/components/log-login.vue

@@ -0,0 +1,190 @@
+<template>
+  <div class="detail-container">
+    <!-- 筛选条件 -->
+    <div class="screen-container">
+      <el-form ref="screenForm" :model="screenForm" label-width="70px" size="small" label-position="left">
+        <el-row :gutter="20">
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="账号" prop="account">
+              <el-input v-model="screenForm.account" placeholder="请输入账号"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="姓名" prop="name">
+              <el-input v-model="screenForm.name" placeholder="请输入姓名"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="登陆时间" prop="date">
+              <el-date-picker
+                v-model="screenForm.date"
+                type="datetimerange"
+                range-separator="至"
+                style="width: 100%;"
+                value-format="yyyy-MM-dd HH:mm:ss"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="所在地区" prop="region">
+              <el-input v-model="screenForm.region" placeholder="请输入所在地区"></el-input>
+            </el-form-item>
+          </el-col>
+          
+          <el-col :xs="24" :sm="12" :lg="24" class="tr">
+            <el-form-item label="">
+              <el-button size="small" @click="resetScreenForm">清空</el-button>
+              <el-button size="small" type="primary" @click="submitScreenForm">搜索</el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+
+    <div class="mymain-container">
+      <div class="btn-group clearfix">
+        <div class="fl" />
+        <div class="fr">
+          <el-button size="small" type="primary" @click="handleExport">导出</el-button>
+        </div>
+      </div>
+
+      <div class="table">
+        <el-table v-loading="listLoading" :data="dataList" element-loading-text="Loading" border fit highlight-current-row stripe>
+          <el-table-column align="center" label="账号" prop="moduleName" min-width="140"></el-table-column>
+          <el-table-column align="center" label="姓名" prop="moduleName" min-width="140"></el-table-column>
+          <el-table-column align="center" label="登录时间" prop="createTime" min-width="160"></el-table-column>
+          <el-table-column align="center" label="终端类型" prop="ip" min-width="140"></el-table-column>
+          <el-table-column align="center" label="浏览器/终端版本" prop="ip" min-width="140"></el-table-column>
+          <el-table-column align="center" label="操作系统" prop="ip" min-width="140"></el-table-column>
+          <el-table-column align="center" label="设备名称" prop="ip" min-width="140"></el-table-column>
+          <el-table-column align="center" label="MAC地址" prop="ip" min-width="140"></el-table-column>
+          <el-table-column align="center" label="登录IP" prop="ip" min-width="140"></el-table-column>
+          <el-table-column align="center" label="所在地区" prop="ip" min-width="140"></el-table-column>
+        </el-table>
+      </div>
+      
+      <div class="pagination clearfix">
+        <div class="fr">
+          <el-pagination
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+            :current-page="currentPage"
+            :page-sizes="[10, 20, 30, 50]"
+            :page-size="10"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="listTotal">
+          </el-pagination>
+        </div>
+      </div>
+    </div>
+
+  </div>
+</template>
+
+<script>
+import { getOplogList } from '@/api/setting'
+import { downloadFiles } from '@/utils/util'
+
+export default {
+  data() {
+    return {
+      dataList: null, // 列表数据
+      listLoading: true, // 列表加载loading
+      screenForm: { // 筛选表单数据
+        account: '',
+        name: '',
+        date: '',
+        region: '',
+      },
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+
+    }
+  },
+
+  created() {
+    this.getList();
+  },
+
+  methods: {
+    // 查询按钮权限
+    checkBtnRole(value) {
+      // let btnRole = this.$route.meta.roles;
+      // if(!btnRole) {return true}
+      // let index = btnRole.indexOf(value);
+      // return index >= 0 ? true : false;
+      return true;
+    },
+
+    getList() {
+      this.listLoading = true;
+
+      let params = {
+        account: this.screenForm.account,
+        name: this.screenForm.name,
+        region: this.screenForm.region,
+        startTime: this.screenForm.date ? this.screenForm.date[0] : '',
+        endTime: this.screenForm.date ? this.screenForm.date[1] : '',
+        pageNo: this.currentPage,
+        pageSize: this.pageSize
+      };
+
+      getOplogList(params).then(res => {
+        this.dataList = res.data.records;
+        this.listTotal = res.data.total;
+        this.listLoading = false;
+      })
+    },
+
+    // 筛选后重新获取列表
+    getListByScreen() {
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改每页数量
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改当前页
+    handleCurrentChange(val) {
+      this.currentPage = val;
+      this.getList();
+    },
+
+    // 提交筛选表单
+    submitScreenForm() {
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 重置筛选表单
+    resetScreenForm() {
+      this.$refs.screenForm.resetFields();
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 导出
+    handleExport() {
+      let screenData = {
+        orderId: this.screenForm.orderId,
+        status: this.screenForm.status,
+      };
+      downloadFiles('tax/export', screenData);
+    },
+
+  }
+}
+</script>
+
+<style>
+
+</style>

+ 187 - 0
src/views/setting/components/log-operation.vue

@@ -0,0 +1,187 @@
+<template>
+  <div class="detail-container">
+    <!-- 筛选条件 -->
+    <div class="screen-container">
+      <el-form ref="screenForm" :model="screenForm" label-width="70px" size="small" label-position="left">
+        <el-row :gutter="20">
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="账号" prop="account">
+              <el-input v-model="screenForm.account" placeholder="请输入账号"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="姓名" prop="name">
+              <el-input v-model="screenForm.name" placeholder="请输入姓名"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="操作对象" prop="obj">
+              <el-input v-model="screenForm.obj" placeholder="请输入操作对象"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="操作时间" prop="date">
+              <el-date-picker
+                v-model="screenForm.date"
+                type="datetimerange"
+                range-separator="至"
+                style="width: 100%;"
+                value-format="yyyy-MM-dd HH:mm:ss"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          
+          <el-col :xs="24" :sm="12" :lg="24" class="tr">
+            <el-form-item label="">
+              <el-button size="small" @click="resetScreenForm">清空</el-button>
+              <el-button size="small" type="primary" @click="submitScreenForm">搜索</el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+
+    <div class="mymain-container">
+      <div class="btn-group clearfix">
+        <div class="fl" />
+        <div class="fr">
+          <el-button size="small" type="primary" @click="handleExport">导出</el-button>
+        </div>
+      </div>
+
+      <div class="table">
+        <el-table v-loading="listLoading" :data="dataList" element-loading-text="Loading" border fit highlight-current-row stripe>
+          <el-table-column align="center" label="账号" prop="moduleName" min-width="140"></el-table-column>
+          <el-table-column align="center" label="姓名" prop="moduleName" min-width="140"></el-table-column>
+          <el-table-column align="center" label="操作编号" prop="moduleName" min-width="140"></el-table-column>
+          <el-table-column align="center" label="操作时间" prop="createTime" min-width="160"></el-table-column>
+          <el-table-column align="center" label="所属模块" prop="ip" min-width="140"></el-table-column>
+          <el-table-column align="center" label="操作对象" prop="ip" min-width="140"></el-table-column>
+          <el-table-column align="center" label="操作类型" prop="ip" min-width="140"></el-table-column>
+        </el-table>
+      </div>
+      
+      <div class="pagination clearfix">
+        <div class="fr">
+          <el-pagination
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+            :current-page="currentPage"
+            :page-sizes="[10, 20, 30, 50]"
+            :page-size="10"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="listTotal">
+          </el-pagination>
+        </div>
+      </div>
+    </div>
+
+  </div>
+</template>
+
+<script>
+import { getOplogList } from '@/api/setting'
+import { downloadFiles } from '@/utils/util'
+
+export default {
+  data() {
+    return {
+      dataList: null, // 列表数据
+      listLoading: true, // 列表加载loading
+      screenForm: { // 筛选表单数据
+        account: '',
+        name: '',
+        date: '',
+        obj: '',
+      },
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+
+    }
+  },
+
+  created() {
+    this.getList();
+  },
+
+  methods: {
+    // 查询按钮权限
+    checkBtnRole(value) {
+      // let btnRole = this.$route.meta.roles;
+      // if(!btnRole) {return true}
+      // let index = btnRole.indexOf(value);
+      // return index >= 0 ? true : false;
+      return true;
+    },
+
+    getList() {
+      this.listLoading = true;
+
+      let params = {
+        account: this.screenForm.account,
+        name: this.screenForm.name,
+        obj: this.screenForm.obj,
+        startTime: this.screenForm.date ? this.screenForm.date[0] : '',
+        endTime: this.screenForm.date ? this.screenForm.date[1] : '',
+        pageNo: this.currentPage,
+        pageSize: this.pageSize
+      };
+
+      getOplogList(params).then(res => {
+        this.dataList = res.data.records;
+        this.listTotal = res.data.total;
+        this.listLoading = false;
+      })
+    },
+
+    // 筛选后重新获取列表
+    getListByScreen() {
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改每页数量
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改当前页
+    handleCurrentChange(val) {
+      this.currentPage = val;
+      this.getList();
+    },
+
+    // 提交筛选表单
+    submitScreenForm() {
+      this.currentPage = 1;
+      this.getList();
+    },
+    
+    // 重置筛选表单
+    resetScreenForm() {
+      this.$refs.screenForm.resetFields();
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 导出
+    handleExport() {
+      let screenData = {
+        orderId: this.screenForm.orderId,
+        status: this.screenForm.status,
+      };
+      downloadFiles('tax/export', screenData);
+    },
+
+  }
+}
+</script>
+
+<style>
+
+</style>

+ 18 - 133
src/views/setting/oplog.vue

@@ -1,109 +1,37 @@
 <template>
   <div class="app-container">
-    <div class="setting_title">操作日志</div>
+    <el-radio-group v-model="logType" size="small">
+      <el-radio-button label="login">登录日志</el-radio-button>
+      <el-radio-button label="operation">操作日志</el-radio-button>
+      <el-radio-button label="examine">审批日志</el-radio-button>
+    </el-radio-group>
     <el-divider></el-divider>
 
-    <div class="mymain-container">
-      <div class="btn-group clearfix">
-        <div class="fl">
-          
-        </div>
-        <div class="fr">
-          <el-select v-model="screenForm.moduleName" placeholder="全部" size="small" style="width: 140px;" @change="getListByScreen">
-            <el-option label="选择模块" value=""></el-option>
-            <el-option :label="item" :value="item" v-for="(item, index) in moduleList" :key="index"></el-option>
-          </el-select>
-
-          <el-date-picker
-            v-model="screenForm.date"
-            @change="getListByScreen"
-            type="daterange"
-            size="small"
-            style="margin-left: 20px; width: 250px !important;"
-            value-format="yyyy-MM-dd"
-            range-separator="至"
-            start-placeholder="开始日期"
-            end-placeholder="结束日期">
-          </el-date-picker>
-        </div>
-      </div>
-
-      <div class="table">
-        <el-table v-loading="listLoading" :data="dataList" element-loading-text="Loading" border fit highlight-current-row stripe>
-          <el-table-column type="expand" v-if="checkBtnRole('detail')">
-            <template slot-scope="scope">
-              <el-form label-position="left" inline class="demo-table-expand">
-                <el-form-item label="所在模块">
-                  <span>{{ scope.row.moduleName }}</span>
-                </el-form-item>
-                <el-form-item label="操作类型">
-                  <span>{{ scope.row.shop }}</span>
-                </el-form-item>
-                <el-form-item label="IP">
-                  <span>{{ scope.row.ip }}</span>
-                </el-form-item>
-                <el-form-item label="用户">
-                  <span>{{ scope.row.nickName +'('+scope.row.userName+')' }}</span>
-                </el-form-item>
-                <el-form-item label="记录时间">
-                  <span>{{ scope.row.createTime }}</span>
-                </el-form-item>
-                <el-form-item label="操作">
-                  <span>{{ scope.row.content }}</span>
-                </el-form-item>
-              </el-form>
-            </template>
-          </el-table-column>
-          <el-table-column align="center" label="所在模块" prop="moduleName" min-width="140"></el-table-column>
-          <el-table-column align="center" label="记录时间" prop="createTime" min-width="160"></el-table-column>
-          <el-table-column align="center" label="用户" prop="nickName" min-width="140">
-            <template slot-scope="scope">
-              {{ scope.row.nickName +'('+scope.row.userName+')' }}
-            </template>
-          </el-table-column>
-          <el-table-column align="center" label="IP" prop="ip" min-width="160"></el-table-column>
-        </el-table>
-      </div>
-      
-      <div class="pagination clearfix">
-        <div class="fr">
-          <el-pagination
-            @size-change="handleSizeChange"
-            @current-change="handleCurrentChange"
-            :current-page="currentPage"
-            :page-sizes="[10, 20, 30, 50]"
-            :page-size="10"
-            layout="total, sizes, prev, pager, next, jumper"
-            :total="listTotal">
-          </el-pagination>
-        </div>
-      </div>
-    </div>
+    <LoginLog v-if="logType === 'login'" />
+    <OperationLog v-if="logType === 'operation'" />
+    <ExamineLog v-if="logType === 'examine'" />
 
   </div>
 </template>
 
 <script>
-import { getOplogList, getModuleList } from '@/api/setting'
+import LoginLog from "@/views/setting/components/log-login";
+import OperationLog from "@/views/setting/components/log-operation";
+import ExamineLog from "@/views/setting/components/log-examine";
 
 export default {
+  components: {
+    LoginLog,
+    OperationLog,
+    ExamineLog,
+  },
   data() {
     return {
-      dataList: null, // 列表数据
-      moduleList: null, // 模块列表
-      listLoading: true, // 列表加载loading
-      screenForm: { // 筛选表单数据
-        moduleName: '', // 模块名称
-        date: '', // 日期
-      },
-      currentPage: 1, // 当前页码
-      pageSize: 10, // 每页数量
-      listTotal: 0, // 列表总数
+      logType: 'login',
     }
   },
   created() {
-    this.getList();
-    this.getModuleList();
+    
   },
   methods: {
     // 查询按钮权限
@@ -115,49 +43,6 @@ export default {
       return true;
     },
 
-    getList() {
-      this.listLoading = true;
-
-      let params = {
-        moduleName: this.screenForm.moduleName,
-        startTime: this.screenForm.date ? this.screenForm.date[0] : '',
-        endTime: this.screenForm.date ? this.screenForm.date[1] : '',
-        pageNo: this.currentPage,
-        pageSize: this.pageSize
-      };
-
-      getOplogList(params).then(res => {
-        this.dataList = res.data.records;
-        this.listTotal = res.data.total;
-        this.listLoading = false;
-      })
-    },
-
-    getModuleList() {
-      getModuleList().then(res => {
-        this.moduleList = res.data;
-      })
-    },
-
-    // 筛选后重新获取列表
-    getListByScreen() {
-      this.currentPage = 1;
-      this.getList();
-    },
-
-    // 更改每页数量
-    handleSizeChange(val) {
-      this.pageSize = val;
-      this.currentPage = 1;
-      this.getList();
-    },
-
-    // 更改当前页
-    handleCurrentChange(val) {
-      this.currentPage = val;
-      this.getList();
-    },
-
   }
 }
 </script>

+ 196 - 0
src/views/stock/reserved_stock.vue

@@ -0,0 +1,196 @@
+<template>
+  <div class="app-container">
+    <!-- 筛选条件 -->
+    <div class="screen-container">
+      <div class="top clearfix">
+        <div class="title fl">条件筛选</div>
+      </div>
+      <el-form ref="screenForm" :model="screenForm" label-width="70px" size="small" label-position="left">
+        <el-row :gutter="20">
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="品类" prop="category">
+              <el-select v-model="screenForm.category" placeholder="全部">
+                <el-option label="全部" value=""></el-option>
+                <el-option :label="item.label" :value="item.value" v-for="(item, index) in select_status" :key="index"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="销售类型" prop="saleType">
+              <el-select v-model="screenForm.saleType" placeholder="全部">
+                <el-option label="全部" value=""></el-option>
+                <el-option :label="item.label" :value="item.value" v-for="(item, index) in select_status" :key="index"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="产品名称" prop="name">
+              <el-input v-model="screenForm.name" placeholder="请输入产品名称"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="产品编码" prop="code">
+              <el-input v-model="screenForm.code" placeholder="请输入产品编码"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="规格型号" prop="model">
+              <el-input v-model="screenForm.model" placeholder="请输入规格型号"></el-input>
+            </el-form-item>
+          </el-col>
+          
+          <el-col :xs="24" :sm="12" :lg="18" class="tr">
+            <el-form-item label="">
+              <el-button size="small" @click="resetScreenForm">清空</el-button>
+              <el-button size="small" type="primary" @click="submitScreenForm">搜索</el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+
+    <div class="mymain-container">
+      <div class="btn-group clearfix">
+        <div class="fr">
+          <el-button size="small" type="primary" icon="el-icon-download" @click="handleExport">导出数据</el-button>
+        </div>
+      </div>
+      <div class="table">
+        <el-table v-loading="listLoading" :data="dataList" element-loading-text="Loading" border fit highlight-current-row stripe>
+          <el-table-column align="center" label="经销商编码" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="经销商名称" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="产品品类" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="销售类型" prop="aaa" min-width="100" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="产品编码" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="产品名称" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="规格型号" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="销售类型" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="计量单位" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="单价" prop="aaa" min-width="200" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="经销商预留库存" prop="aaa" min-width="200" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="经销商暂扣库存" prop="aaa" min-width="200" show-overflow-tooltip></el-table-column>
+        </el-table>
+      </div>
+    </div>
+    <div class="pagination clearfix">
+      <div class="fr">
+        <el-pagination
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="currentPage"
+          :page-sizes="[10, 20, 30, 50]"
+          :page-size="10"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="listTotal">
+        </el-pagination>
+      </div>
+    </div>
+
+  </div>
+</template>
+
+<script>
+import { COMMON_SELECT } from '@/utils/select_data'
+import { getStockList } from "@/api/stock";
+import { downloadFiles } from '@/utils/util'
+
+export default {
+  data() {
+    return {
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      dataList: null, // 列表数据
+      listLoading: false, // 列表加载loading
+      screenForm: { // 筛选表单数据
+        warehouse: '',
+        name: '',
+        code: '',
+        model: '',
+        category: '',
+        saleType: '',
+      },
+      select_status: [ // 筛选字段 - 状态
+        { label: '正常', value: true },
+        { label: '冻结', value: false }
+      ],
+    }
+  },
+  created() {
+    this.getList();
+  },
+
+  methods: {
+    // 查询按钮权限
+    checkBtnRole(value) {
+      // let btnRole = this.$route.meta.roles;
+      // if(!btnRole) {return true}
+      // let index = btnRole.indexOf(value);
+      // return index >= 0;
+      return true
+    },
+
+    // 查询列表
+    getList() {
+      this.listLoading = true;
+
+      let params = {
+        pageNum: this.currentPage,
+        pageSize: this.pageSize,
+        userName: this.screenForm.account,
+        nickName: this.screenForm.nickName,
+        linkPhone: this.screenForm.phone,
+        email: this.screenForm.email,
+        status: this.screenForm.status,
+      };
+      getStockList(params).then((res) => {
+        this.dataList = res.data.records;
+        this.listTotal = res.data.total;
+        this.listLoading = false;
+      })
+    },
+
+    // 提交筛选表单
+    submitScreenForm() {
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 重置筛选表单
+    resetScreenForm() {
+      this.$refs.screenForm.resetFields();
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改每页数量
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改当前页
+    handleCurrentChange(val) {
+      this.currentPage = val;
+      this.getList();
+    },
+
+    // 导出
+    handleExport() {
+      let screenData = {
+        userName: this.screenForm.account,
+        nickName: this.screenForm.nickName,
+        linkPhone: this.screenForm.phone,
+        email: this.screenForm.email,
+        status: this.screenForm.status,
+      };
+      downloadFiles('admin/user/mch/export', screenData);
+    },
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+
+</style>

+ 205 - 0
src/views/stock/stock_list.vue

@@ -0,0 +1,205 @@
+<template>
+  <div class="app-container">
+    <!-- 筛选条件 -->
+    <div class="screen-container">
+      <div class="top clearfix">
+        <div class="title fl">条件筛选</div>
+      </div>
+      <el-form ref="screenForm" :model="screenForm" label-width="70px" size="small" label-position="left">
+        <el-row :gutter="20">
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="仓库" prop="warehouse">
+              <el-select v-model="screenForm.warehouse" placeholder="全部">
+                <el-option label="全部" value=""></el-option>
+                <el-option :label="item.label" :value="item.value" v-for="(item, index) in select_status" :key="index"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="产品名称" prop="name">
+              <el-input v-model="screenForm.name" placeholder="请输入产品名称"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="产品编码" prop="code">
+              <el-input v-model="screenForm.code" placeholder="请输入产品编码"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="规格型号" prop="model">
+              <el-input v-model="screenForm.model" placeholder="请输入规格型号"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="品类" prop="category">
+              <el-select v-model="screenForm.category" placeholder="全部">
+                <el-option label="全部" value=""></el-option>
+                <el-option :label="item.label" :value="item.value" v-for="(item, index) in select_status" :key="index"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="销售类型" prop="saleType">
+              <el-select v-model="screenForm.saleType" placeholder="全部">
+                <el-option label="全部" value=""></el-option>
+                <el-option :label="item.label" :value="item.value" v-for="(item, index) in select_status" :key="index"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          
+          <el-col :xs="24" :sm="24" :lg="12" class="tr">
+            <el-form-item label="">
+              <el-button size="small" @click="resetScreenForm">清空</el-button>
+              <el-button size="small" type="primary" @click="submitScreenForm">搜索</el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+
+    <div class="mymain-container">
+      <div class="btn-group clearfix">
+        <div class="fr">
+          <el-button size="small" type="primary" icon="el-icon-download" @click="handleExport">导出数据</el-button>
+        </div>
+      </div>
+      <div class="table">
+        <el-table v-loading="listLoading" :data="dataList" element-loading-text="Loading" border fit highlight-current-row stripe>
+          <el-table-column align="center" label="产品品类" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="销售类型" prop="aaa" min-width="100" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="产品编码" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="产品名称" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="规格型号" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="计量单位" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="总库存数量" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="单价" prop="aaa" min-width="200" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="经销商预留库存" prop="aaa" min-width="200" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="经销商暂扣库存" prop="aaa" min-width="200" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="中转仓" prop="aaa" min-width="200" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="退货仓" prop="aaa" min-width="200" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="破损仓" prop="aaa" min-width="200" show-overflow-tooltip></el-table-column>
+        </el-table>
+      </div>
+    </div>
+    <div class="pagination clearfix">
+      <div class="fr">
+        <el-pagination
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="currentPage"
+          :page-sizes="[10, 20, 30, 50]"
+          :page-size="10"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="listTotal">
+        </el-pagination>
+      </div>
+    </div>
+
+  </div>
+</template>
+
+<script>
+import { COMMON_SELECT } from '@/utils/select_data'
+import { getStockList } from "@/api/stock";
+import { downloadFiles } from '@/utils/util'
+
+export default {
+  data() {
+    return {
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      dataList: null, // 列表数据
+      listLoading: false, // 列表加载loading
+      screenForm: { // 筛选表单数据
+        warehouse: '',
+        name: '',
+        code: '',
+        model: '',
+        category: '',
+        saleType: '',
+      },
+      select_status: [ // 筛选字段 - 状态
+        { label: '正常', value: true },
+        { label: '冻结', value: false }
+      ],
+    }
+  },
+  created() {
+    this.getList();
+  },
+
+  methods: {
+    // 查询按钮权限
+    checkBtnRole(value) {
+      // let btnRole = this.$route.meta.roles;
+      // if(!btnRole) {return true}
+      // let index = btnRole.indexOf(value);
+      // return index >= 0;
+      return true
+    },
+
+    // 查询列表
+    getList() {
+      this.listLoading = true;
+
+      let params = {
+        pageNum: this.currentPage,
+        pageSize: this.pageSize,
+        userName: this.screenForm.account,
+        nickName: this.screenForm.nickName,
+        linkPhone: this.screenForm.phone,
+        email: this.screenForm.email,
+        status: this.screenForm.status,
+      };
+      getStockList(params).then((res) => {
+        this.dataList = res.data.records;
+        this.listTotal = res.data.total;
+        this.listLoading = false;
+      })
+    },
+
+    // 提交筛选表单
+    submitScreenForm() {
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 重置筛选表单
+    resetScreenForm() {
+      this.$refs.screenForm.resetFields();
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改每页数量
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改当前页
+    handleCurrentChange(val) {
+      this.currentPage = val;
+      this.getList();
+    },
+
+    // 导出
+    handleExport() {
+      let screenData = {
+        userName: this.screenForm.account,
+        nickName: this.screenForm.nickName,
+        linkPhone: this.screenForm.phone,
+        email: this.screenForm.email,
+        status: this.screenForm.status,
+      };
+      downloadFiles('admin/user/mch/export', screenData);
+    },
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+
+</style>

+ 5 - 0
src/views/supply/sales.vue

@@ -0,0 +1,5 @@
+<template>
+  <div>
+    <router-view />
+  </div>
+</template>

+ 162 - 0
src/views/supply/sales/components/sales_detail.vue

@@ -0,0 +1,162 @@
+<template>
+  <div class="detail-container">
+    <el-page-header @back="goBack" content="详情"></el-page-header>
+
+    <div id="printMe">
+      <div class="main-title">
+        <div class="title">出库单信息</div>
+        <el-button size="small" type="primary" icon="el-icon-printer" v-print="printObj">打印单据</el-button>
+      </div>
+      <div class="diy-table-1">
+        <el-row :gutter="0">
+          <el-col :span="8" class="item">
+            <div class="label">出库单号</div>
+            <div class="value">2022123233435342</div>
+          </el-col>
+          <el-col :span="8" class="item">
+            <div class="label">单据日期</div>
+            <div class="value">2022123233435342</div>
+          </el-col>
+          <el-col :span="8" class="item">
+            <div class="label">单据状态</div>
+            <div class="value">2022123233435342</div>
+          </el-col>
+          <el-col :span="8" class="item">
+            <div class="label">仓库</div>
+            <div class="value">万豪仓</div>
+          </el-col>
+          <el-col :span="8" class="item">
+            <div class="label">发货单号</div>
+            <div class="value">2022123233435342</div>
+          </el-col>
+          <el-col :span="8" class="item">
+            <div class="label">经销商</div>
+            <div class="value">广州格匠机电有限公司</div>
+          </el-col>
+          <el-col :xs="24" :sm="24" :lg="24" class="item">
+            <div class="label">备注</div>
+            <div class="value">2022123233435342</div>
+          </el-col>
+        </el-row>
+      </div>
+
+      <div class="main-title">
+        <div class="title">货品信息</div>
+      </div>
+      <div class="diy-table-2">
+        <div class="head">
+          <el-row :gutter="20">
+            <el-col :span="2">序号</el-col>
+            <el-col :span="4">产品编号</el-col>
+            <el-col :span="8">产品名称</el-col>
+            <el-col :span="2">规格型号</el-col>
+            <el-col :span="2">内机编码</el-col>
+            <el-col :span="2">外机编码</el-col>
+            <el-col :span="2">单位</el-col>
+            <el-col :span="2">数量</el-col>
+          </el-row>
+        </div>
+        <div class="body">
+          <el-row v-for="(item, index) in goodsList" :key="item.goodsId" :gutter="20">
+            <el-col :span="2">{{ index + 1 }}</el-col>
+            <el-col :span="4">{{ item.goodsId || 0 }}</el-col>
+            <el-col :span="8">{{ item.goodsName || 0 }}</el-col>
+            <el-col :span="2">{{ item.salesUnit || 0 }}</el-col>
+            <el-col :span="2">{{ item.price || 0 }}</el-col>
+            <el-col :span="2">{{ item.saleQty || 0 }}</el-col>
+            <el-col :span="2">{{ item.saleValue || 0 }}</el-col>
+            <el-col :span="2">{{ item.saleValue || 0 }}</el-col>
+          </el-row>
+        </div>
+        <div class="foot">
+          <el-row :gutter="20">
+            <el-col :span="24">合计</el-col>
+          </el-row>
+        </div>
+      </div>
+
+      <div class="main-title">
+        <div class="title">审批记录</div>
+      </div>
+      <div class="diy-table-1">
+        <el-row :gutter="0">
+          <el-col :xs="12" :sm="8" :lg="8" class="item">
+            <div class="label">审批人</div>
+            <div class="value">2022123233435342</div>
+          </el-col>
+          <el-col :xs="12" :sm="8" :lg="8" class="item">
+            <div class="label">审批结果</div>
+            <div class="value">2022123233435342</div>
+          </el-col>
+          <el-col :xs="12" :sm="8" :lg="8" class="item">
+            <div class="label">审批时间</div>
+            <div class="value">2022123233435342</div>
+          </el-col>
+          <el-col :xs="24" :sm="24" :lg="24" class="item">
+            <div class="label">审批说明</div>
+            <div class="value">2022123233435342</div>
+          </el-col>
+        </el-row>
+      </div>
+    </div>
+    
+
+
+  </div>
+</template>
+
+<script>
+import print from 'vue-print-nb'
+import { getList } from "@/api/supply/sales";
+
+export default {
+  name: 'SalesDetail',
+  componentName: 'SalesDetail',
+  props: ['listItem'],
+  directives: {
+    print
+  },
+  data() {
+    return {
+      printObj: {
+        id: 'printMe'
+      },
+      goodsList: [{
+        goodsId: 1,
+      }]
+    }
+  },
+
+  created() {
+
+  },
+
+  methods: {
+    // 返回列表
+    goBack() {
+      this.$emit('backListFormDetail');
+    },
+  }
+}
+</script>
+
+<style scoped lang="scss">
+  .detail-container {
+    width: 100%;
+    height: 100%;
+  }
+  .main-title {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    margin-top: 30px;
+    height: 60px;
+    border-bottom: 1px solid #DCDFE6;
+    margin-bottom: 20px;
+    .title {
+      font-size: 16px;
+      font-weight: 600;
+      padding-left: 10px;
+    }
+  }
+</style>

+ 187 - 0
src/views/supply/sales/components/sales_examine.vue

@@ -0,0 +1,187 @@
+<template>
+  <div class="detail-container">
+    <el-page-header @back="goBack" content="审批"></el-page-header>
+
+    <div class="main-title">
+      <div class="title">出库单信息</div>
+    </div>
+    <div class="diy-table-1">
+      <el-row :gutter="0">
+        <el-col :span="8" class="item">
+          <div class="label">出库单号</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :span="8" class="item">
+          <div class="label">单据日期</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :span="8" class="item">
+          <div class="label">单据状态</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :span="8" class="item">
+          <div class="label">仓库</div>
+          <div class="value">万豪仓</div>
+        </el-col>
+        <el-col :span="8" class="item">
+          <div class="label">发货单号</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :span="8" class="item">
+          <div class="label">经销商</div>
+          <div class="value">广州格匠机电有限公司</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="24" class="item">
+          <div class="label">备注</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+      </el-row>
+    </div>
+
+    <div class="main-title">
+      <div class="title">货品信息</div>
+    </div>
+    <div class="diy-table-2">
+      <div class="head">
+        <el-row :gutter="20">
+          <el-col :span="2">序号</el-col>
+          <el-col :span="4">产品编号</el-col>
+          <el-col :span="8">产品名称</el-col>
+          <el-col :span="2">规格型号</el-col>
+          <el-col :span="2">内机编码</el-col>
+          <el-col :span="2">外机编码</el-col>
+          <el-col :span="2">单位</el-col>
+          <el-col :span="2">数量</el-col>
+        </el-row>
+      </div>
+      <div class="body">
+        <el-row v-for="(item, index) in goodsList" :key="item.goodsId" :gutter="20">
+          <el-col :span="2">{{ index + 1 }}</el-col>
+          <el-col :span="4">{{ item.goodsId || 0 }}</el-col>
+          <el-col :span="8">{{ item.goodsName || 0 }}</el-col>
+          <el-col :span="2">{{ item.salesUnit || 0 }}</el-col>
+          <el-col :span="2">{{ item.price || 0 }}</el-col>
+          <el-col :span="2">{{ item.saleQty || 0 }}</el-col>
+          <el-col :span="2">{{ item.saleValue || 0 }}</el-col>
+          <el-col :span="2">{{ item.saleValue || 0 }}</el-col>
+        </el-row>
+      </div>
+      <div class="foot">
+        <el-row :gutter="20">
+          <el-col :span="24">合计</el-col>
+        </el-row>
+      </div>
+    </div>
+
+    <div class="main-title">
+      <div class="title">审批记录</div>
+    </div>
+    <div class="diy-table-1">
+      <el-row :gutter="0">
+        <el-col :span="12" class="item">
+          <div class="label">审批人</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :span="12" class="item">
+          <div class="label">审批结果</div>
+          <div class="value">
+            <el-radio-group v-model="examineForm.status">
+              <el-radio :label="true">通过</el-radio>
+              <el-radio :label="false">驳回</el-radio>
+            </el-radio-group>
+          </div>
+        </el-col>
+        <el-col :span="24" class="item">
+          <div class="label">审批说明</div>
+          <div class="value">
+            <el-input v-model="examineForm.remark" placeholder="请输入内容"></el-input>
+          </div>
+        </el-col>
+      </el-row>
+    </div>
+    
+    <div class="page-footer">
+      <div class="footer" :class="classObj">
+        <el-button type="primary" @click="clickSubmitForm" :loading="formLoading">{{ formLoading ? '提交中 ...' : '提 交' }}</el-button>
+        <el-popconfirm
+          title="确定关闭吗?"
+          @onConfirm="goBack"
+          style="margin-left: 10px;"
+        >
+          <el-button slot="reference">关 闭</el-button>
+        </el-popconfirm>
+      </div>
+    </div>
+
+  </div>
+</template>
+
+<script>
+import { getList } from "@/api/supply/sales";
+
+export default {
+  name: 'SalesDetail',
+  componentName: 'SalesDetail',
+  props: ['listItem'],
+  data() {
+    return {
+      goodsList: [{
+        goodsId: 1,
+      }],
+      formLoading: false,
+      examineForm: {
+        status: true,
+        remark: '',
+      }
+    }
+  },
+
+  computed: {
+    sidebar() {
+      return this.$store.state.app.sidebar
+    },
+    classObj() {
+      return {
+        hideSidebar: !this.sidebar.opened,
+        openSidebar: this.sidebar.opened
+      }
+    },
+  },
+
+  created() {
+
+  },
+
+  methods: {
+    // 返回列表
+    goBack() {
+      this.$emit('backListFormExamine');
+    },
+
+    clickSubmitForm() {
+
+    },
+  }
+}
+</script>
+
+<style scoped lang="scss">
+  .detail-container {
+    width: 100%;
+    height: 100%;
+  }
+  .main-title {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    margin-top: 30px;
+    height: 60px;
+    border-bottom: 1px solid #DCDFE6;
+    margin-bottom: 20px;
+    .title {
+      font-size: 16px;
+      font-weight: 600;
+      padding-left: 10px;
+    }
+  }
+</style>

+ 262 - 0
src/views/supply/sales/sales_list.vue

@@ -0,0 +1,262 @@
+<template>
+  <div class="app-container">
+    <div v-show="!isShowDetail && !isShowExamine">
+      <!-- 筛选条件 -->
+      <div class="screen-container">
+        <el-form ref="screenForm" :model="screenForm" label-width="90px" size="small" label-position="left">
+          <el-row :gutter="20">
+            <el-col :xs="24" :sm="24" :lg="24">
+              <el-form-item prop="orderNum" label-width="0">
+                <el-radio-group v-model="screenForm.status" size="medium">
+                  <el-radio-button label="1">全部</el-radio-button>
+                  <el-radio-button label="2">待审核</el-radio-button>
+                  <el-radio-button label="3">审核通过</el-radio-button>
+                  <el-radio-button label="4">审核驳回</el-radio-button>
+                </el-radio-group>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="发货单号" prop="orderNum">
+                <el-input v-model="screenForm.orderNum" placeholder="请输入发货单号"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="经销商名称" prop="jxsName">
+                <el-input v-model="screenForm.jxsName" placeholder="请输入经销商名称"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="存货名称" prop="chName">
+                <el-input v-model="screenForm.chName" placeholder="请输入存货名称"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="规格型号" prop="model">
+                <el-input v-model="screenForm.model" placeholder="请输入规格型号"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="发货日期" prop="date">
+                <el-date-picker
+                  v-model="screenForm.date"
+                  type="datetimerange"
+                  range-separator="至"
+                  style="width: 100%;"
+                  value-format="yyyy-MM-dd HH:mm:ss"
+                  start-placeholder="开始日期"
+                  end-placeholder="结束日期">
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="经销商编号" prop="jxsNum">
+                <el-input v-model="screenForm.jxsNum" placeholder="请输入规格型号"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="状态" prop="status">
+                <el-select v-model="screenForm.status" placeholder="全部">
+                  <el-option label="全部" value=""></el-option>
+                  <el-option :label="item.label" :value="item.value" v-for="(item, index) in select_status" :key="index"></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            
+            <el-col :xs="24" :sm="12" :lg="6" class="tr">
+              <el-form-item label="">
+                <el-button size="small" @click="resetScreenForm">清空</el-button>
+                <el-button size="small" type="primary" @click="submitScreenForm">搜索</el-button>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </div>
+
+      <div class="mymain-container">
+        <div class="btn-group clearfix">
+          <div class="fl">
+            <el-button size="small" type="warning" icon="el-icon-close">退单</el-button>
+          </div>
+          <div class="fr">
+            <el-button size="small" type="primary" icon="el-icon-download" @click="handleExport">导出数据</el-button>
+          </div>
+        </div>
+        <div class="table">
+          <el-table v-loading="listLoading" :data="dataList" element-loading-text="Loading" border fit highlight-current-row stripe>
+            <el-table-column align="center" label="出库单号" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
+            <el-table-column align="center" label="发货单号" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
+            <el-table-column align="center" label="仓库" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
+            <el-table-column align="center" label="经销商" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
+            <el-table-column align="center" label="产品名称" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
+            <el-table-column align="center" label="规格型号" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
+            <el-table-column align="center" label="内急条码" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
+            <el-table-column align="center" label="外机条码" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
+            <el-table-column align="center" label="单位" prop="aaa" min-width="100" show-overflow-tooltip></el-table-column>
+            <el-table-column align="center" label="数量" prop="aaa" min-width="100" show-overflow-tooltip></el-table-column>
+            <el-table-column align="center" label="备注" prop="aaa" min-width="200" show-overflow-tooltip></el-table-column>
+            <el-table-column align="center" label="操作" width="120" fixed="right">
+              <template slot-scope="scope">
+                <el-button type="text" @click="toDetail('detail', scope.row)">详情</el-button>
+                <el-button type="text" @click="toDetail('examine', scope.row)">审批</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+      </div>
+      <div class="pagination clearfix">
+        <div class="fr">
+          <el-pagination
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+            :current-page="currentPage"
+            :page-sizes="[10, 20, 30, 50]"
+            :page-size="10"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="listTotal">
+          </el-pagination>
+        </div>
+      </div>
+    </div>
+    
+    <SalesDetail :listItem="queryItem" v-if="isShowDetail" @backListFormDetail="backList" />
+    <SalesExamine :listItem="queryItem" v-if="isShowExamine" @backListFormExamine="backList" />
+
+  </div>
+</template>
+
+<script>
+import { COMMON_SELECT } from '@/utils/select_data'
+import { getList } from "@/api/supply/sales";
+import { downloadFiles } from '@/utils/util'
+import SalesDetail from "@/views/supply/sales/components/sales_detail";
+import SalesExamine from "@/views/supply/sales/components/sales_examine";
+
+export default {
+  components: {
+    SalesDetail,
+    SalesExamine,
+  },
+  data() {
+    return {
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      dataList: null, // 列表数据
+      listLoading: false, // 列表加载loading
+      screenForm: { // 筛选表单数据
+        orderNum: '',
+        jxsName: '',
+        chName: '',
+        model: '',
+        date: '',
+        jxsNum: '',
+        status: '',
+      },
+      select_status: [ // 筛选字段 - 状态
+        { label: '正常', value: true },
+        { label: '冻结', value: false }
+      ],
+
+      jumpType: '',
+      queryItem: {},
+    }
+  },
+
+  computed: {
+    isShowDetail() {
+      return this.queryItem.hasOwnProperty('adminUserId') && this.jumpType == 'detail';
+    },
+    isShowExamine() {
+      return this.queryItem.hasOwnProperty('adminUserId') && this.jumpType == 'examine';
+    },
+  },
+
+  created() {
+    this.getList();
+  },
+
+  methods: {
+    // 查询按钮权限
+    checkBtnRole(value) {
+      // let btnRole = this.$route.meta.roles;
+      // if(!btnRole) {return true}
+      // let index = btnRole.indexOf(value);
+      // return index >= 0;
+      return true
+    },
+
+    // 查询列表
+    getList() {
+      this.listLoading = true;
+
+      let params = {
+        pageNum: this.currentPage,
+        pageSize: this.pageSize,
+        userName: this.screenForm.account,
+        nickName: this.screenForm.nickName,
+        linkPhone: this.screenForm.phone,
+        email: this.screenForm.email,
+        status: this.screenForm.status,
+      };
+      getList(params).then((res) => {
+        this.dataList = res.data.records;
+        this.listTotal = res.data.total;
+        this.listLoading = false;
+      })
+    },
+
+    // 提交筛选表单
+    submitScreenForm() {
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 重置筛选表单
+    resetScreenForm() {
+      this.$refs.screenForm.resetFields();
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改每页数量
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改当前页
+    handleCurrentChange(val) {
+      this.currentPage = val;
+      this.getList();
+    },
+
+    // 进入详情
+    toDetail(type, item) {
+      this.jumpType = type;
+      this.queryItem = item;
+    },
+
+    backList() {
+      this.jumpType = '';
+      this.queryItem = {};
+    },
+
+    // 导出
+    handleExport() {
+      let screenData = {
+        userName: this.screenForm.account,
+        nickName: this.screenForm.nickName,
+        linkPhone: this.screenForm.phone,
+        email: this.screenForm.email,
+        status: this.screenForm.status,
+      };
+      downloadFiles('admin/user/mch/export', screenData);
+    },
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+
+</style>