Sfoglia il codice sorgente

新增生产地,供应商

gcz 4 anni fa
parent
commit
98729c07ce

+ 3 - 1
config/dev.env.js

@@ -4,5 +4,7 @@ const prodEnv = require('./prod.env')
 
 module.exports = merge(prodEnv, {
   NODE_ENV: '"development"',
-  BASE_API: '"http://172.16.90.3:9098/forest-admin"'
+  // BASE_API: '"http://172.16.90.3:9098/forest-admin"'//邱波电脑
+  // BASE_API: '"http://172.16.90.64:9098/forest-admin"'
+  BASE_API: '"http://172.16.90.8:9098/forest-admin"'//东东
 })

+ 1 - 1
config/index.js

@@ -13,7 +13,7 @@ module.exports = {
     proxyTable: {},
 
     // Various Dev Server settings
-    host: 'localhost', // can be overwritten by process.env.HOST
+    host: '172.16.90.25', // can be overwritten by process.env.HOST
     port: 8090, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
     autoOpenBrowser: false,
     errorOverlay: true,

+ 1 - 1
config/prod.env.js

@@ -1,6 +1,6 @@
 'use strict'
 module.exports = {
   NODE_ENV: '"production"',
-  BASE_API: '"http://172.16.90.3:9098/forest-admin"'
+  BASE_API: '"http://172.16.90.64:9098/forest-admin"'
 
 }

+ 4 - 4
index.html

@@ -5,15 +5,15 @@
     <meta name="viewport" content="width=device-width,initial-scale=1.0">
     <title>mall-admin-web</title>
     <!-- Global site tag (gtag.js) - Google Analytics -->
-    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-144208445-2"></script>
+    <!-- <script async src="https://www.googletagmanager.com/gtag/js?id=UA-144208445-2"></script>
     <script>
       window.dataLayer = window.dataLayer || [];
       function gtag(){dataLayer.push(arguments);}
       gtag('js', new Date());
       gtag('config', 'UA-144208445-2');
-    </script>
+    </script> -->
     <!--Baidu Analytics-->
-    <script>
+    <!-- <script>
       var _hmt = _hmt || [];
       (function() {
         var hm = document.createElement("script");
@@ -21,7 +21,7 @@
         var s = document.getElementsByTagName("script")[0];
         s.parentNode.insertBefore(hm, s);
       })();
-    </script>
+    </script> -->
   </head>
   <body>
     <!--<script src="./static/tinymce4.7.5/tinymce.min.js"></script>-->

+ 81 - 14
package-lock.json

@@ -135,7 +135,6 @@
       "version": "1.0.10",
       "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
       "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
-      "dev": true,
       "requires": {
         "sprintf-js": "~1.0.2"
       }
@@ -1275,6 +1274,34 @@
       "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==",
       "dev": true
     },
+    "bmaplib.curveline": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/bmaplib.curveline/-/bmaplib.curveline-1.0.0.tgz",
+      "integrity": "sha512-9wcFMVhiYxNPqpvsLDAADn3qDhNzXp2mA6VyHSHg2XOAgSooC7ZiujdFhy0sp+0QYjTfJ/MjmLuNoUg2HHxH4Q=="
+    },
+    "bmaplib.heatmap": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/bmaplib.heatmap/-/bmaplib.heatmap-1.0.4.tgz",
+      "integrity": "sha512-rmhqUARBpUSJ9jXzUI2j7dIOqnc38bqubkx/8a349U2qtw/ulLUwyzRD535OrA8G7w5cz4aPKm6/rNvUAarg/Q=="
+    },
+    "bmaplib.lushu": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/bmaplib.lushu/-/bmaplib.lushu-1.0.7.tgz",
+      "integrity": "sha512-LVvgpESPii6xGxyjnQjq8u+ic4NjvhdCPV/RiSS/PGTUdZKeTDS7prSpleJLZH3ES0+oc0gYn8bw0LtPYUSz2w=="
+    },
+    "bmaplib.markerclusterer": {
+      "version": "1.0.13",
+      "resolved": "https://registry.npmjs.org/bmaplib.markerclusterer/-/bmaplib.markerclusterer-1.0.13.tgz",
+      "integrity": "sha512-VrLyWSiuDEVNi0yUfwOhFQ6z1oEEHS4w36GNu3iASu6p52QIx9uAXMUkuSCHReNR0bj2Cp9SA1dSx5RpojXajQ==",
+      "requires": {
+        "bmaplib.texticonoverlay": "^1.0.2"
+      }
+    },
+    "bmaplib.texticonoverlay": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/bmaplib.texticonoverlay/-/bmaplib.texticonoverlay-1.0.2.tgz",
+      "integrity": "sha512-4ZTWr4ZP3B6qEWput5Tut16CfZgII38YwM3bpyb4gFTQyORlKYryFp9WHWrwZZaHlOyYDAXG9SX0hka43jTADg=="
+    },
     "bn.js": {
       "version": "4.11.8",
       "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
@@ -2941,8 +2968,7 @@
     "entities": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
-      "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=",
-      "dev": true
+      "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA="
     },
     "errno": {
       "version": "0.1.7",
@@ -4103,10 +4129,10 @@
           "dev": true,
           "optional": true,
           "requires": {
-            "deep-extend": "0.4.2",
-            "ini": "1.3.5",
-            "minimist": "1.2.0",
-            "strip-json-comments": "2.0.1"
+            "deep-extend": "~0.4.0",
+            "ini": "~1.3.0",
+            "minimist": "^1.2.0",
+            "strip-json-comments": "~2.0.1"
           },
           "dependencies": {
             "minimist": {
@@ -4183,9 +4209,9 @@
           "dev": true,
           "optional": true,
           "requires": {
-            "code-point-at": "1.1.0",
-            "is-fullwidth-code-point": "1.0.0",
-            "strip-ansi": "3.0.1"
+            "code-point-at": "^1.0.0",
+            "is-fullwidth-code-point": "^1.0.0",
+            "strip-ansi": "^3.0.0"
           }
         },
         "string_decoder": {
@@ -4194,7 +4220,7 @@
           "dev": true,
           "optional": true,
           "requires": {
-            "safe-buffer": "5.1.1"
+            "safe-buffer": "~5.1.0"
           }
         },
         "strip-ansi": {
@@ -4203,7 +4229,7 @@
           "dev": true,
           "optional": true,
           "requires": {
-            "ansi-regex": "2.1.1"
+            "ansi-regex": "^2.0.0"
           }
         },
         "strip-json-comments": {
@@ -5504,6 +5530,14 @@
         "invert-kv": "^1.0.0"
       }
     },
+    "linkify-it": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz",
+      "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==",
+      "requires": {
+        "uc.micro": "^1.0.1"
+      }
+    },
     "load-json-file": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
@@ -5673,6 +5707,18 @@
         "object-visit": "^1.0.0"
       }
     },
+    "markdown-it": {
+      "version": "8.4.2",
+      "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz",
+      "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==",
+      "requires": {
+        "argparse": "^1.0.7",
+        "entities": "~1.1.1",
+        "linkify-it": "^2.0.0",
+        "mdurl": "^1.0.1",
+        "uc.micro": "^1.0.5"
+      }
+    },
     "math-expression-evaluator": {
       "version": "1.2.17",
       "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz",
@@ -5689,6 +5735,11 @@
         "inherits": "^2.0.1"
       }
     },
+    "mdurl": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
+      "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4="
+    },
     "media-typer": {
       "version": "0.3.0",
       "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
@@ -10376,8 +10427,7 @@
     "sprintf-js": {
       "version": "1.0.3",
       "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
-      "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
-      "dev": true
+      "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
     },
     "sshpk": {
       "version": "1.16.1",
@@ -11002,6 +11052,11 @@
       "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
       "dev": true
     },
+    "uc.micro": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
+      "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA=="
+    },
     "uglify-js": {
       "version": "3.3.23",
       "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.23.tgz",
@@ -11428,6 +11483,18 @@
       "resolved": "https://registry.npmjs.org/vue/-/vue-2.5.16.tgz",
       "integrity": "sha512-/ffmsiVuPC8PsWcFkZngdpas19ABm5mh2wA7iDqcltyCTwlgZjHGeJYOXkBMo422iPwIcviOtrTCUpSfXmToLQ=="
     },
+    "vue-baidu-map": {
+      "version": "0.21.22",
+      "resolved": "https://registry.npmjs.org/vue-baidu-map/-/vue-baidu-map-0.21.22.tgz",
+      "integrity": "sha512-WQMPCih4UTh0AZCKKH/OVOYnyAWjfRNeK6BIeoLmscyY5aF8zzlJhz/NOHLb3mdztIpB0Z6aohn4Jd9mfCSjQw==",
+      "requires": {
+        "bmaplib.curveline": "^1.0.0",
+        "bmaplib.heatmap": "^1.0.4",
+        "bmaplib.lushu": "^1.0.7",
+        "bmaplib.markerclusterer": "^1.0.13",
+        "markdown-it": "^8.4.0"
+      }
+    },
     "vue-hot-reload-api": {
       "version": "2.3.0",
       "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.0.tgz",

+ 1 - 0
package.json

@@ -19,6 +19,7 @@
     "v-charts": "^1.19.0",
     "v-distpicker": "^1.0.20",
     "vue": "^2.5.2",
+    "vue-baidu-map": "^0.21.22",
     "vue-router": "^3.0.1",
     "vuex": "^3.0.1"
   },

+ 4 - 0
src/App.vue

@@ -11,4 +11,8 @@
 </script>
 
 <style>
+/* 滚动条样式 */
+::-webkit-scrollbar {width: .5rem;height: .625rem;}
+::-webkit-scrollbar-thumb {background-color: #249ffd;border-radius: 2em;background-image: -webkit-linear-gradient(45deg,rgba(255,255,255,.4) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.4) 50%,rgba(255,255,255,.4) 75%,transparent 75%,transparent);}
+/* 滚动条样式 */
 </style>

+ 39 - 0
src/api/company.js

@@ -0,0 +1,39 @@
+import request from '@/utils/request'
+export function fetchList(params) {
+  return request({
+    url:'/umsCompany/dt/list',
+    method:'get',
+    params:params
+  })
+}
+export function createCompany(data) {
+  return request({
+    url:'/umsCompany/info/add',
+    method:'put',
+    data:data
+  })
+}
+
+
+export function deleteCompany(id) {
+  return request({
+    url:'/umsCompany/info/delete?'+id,
+    method:'get',
+  })
+}
+
+export function getCompany(id) {
+  return request({
+    url:'/umsCompany/dt/detail?compId='+id,
+    method:'get',
+  })
+}
+
+export function updateCompany(id,data) {
+  return request({
+    url:'/umsCompany/info/update?compId='+id,
+    method:'put',
+    data:data
+  })
+}
+

+ 39 - 0
src/api/origin.js

@@ -0,0 +1,39 @@
+import request from '@/utils/request'
+export function fetchList(data) {
+  return request({
+    url:'/origin/list',
+    method:'post',
+    data:data
+  })
+}
+export function createOrigin(data) {
+  return request({
+    url:'/origin/save',
+    method:'post',
+    data:data
+  })
+}
+
+
+export function deleteOrigin(id) {
+  return request({
+    url:'/origin/delete?'+id,
+    method:'get',
+  })
+}
+
+export function getOrigin(id) {
+  return request({
+    url:'/origin/findById?id='+id,
+    method:'get',
+  })
+}
+
+export function updateOrigin(id,data) {
+  return request({
+    url:'/origin/update',
+    method:'post',
+    data:data
+  })
+}
+

+ 8 - 0
src/api/product.js

@@ -70,3 +70,11 @@ export function getProduct(id) {
   })
 }
 
+export function updateVerifyStatus(id) {
+  return request({
+    url:'/product/update/verify/'+id,
+    method:'put',
+    // params:params
+  })
+}
+

+ 44 - 1
src/router/index.js

@@ -41,7 +41,8 @@ export const asyncRouterMap = [
     redirect: '/pms/product',
     name: 'pms',
     meta: {title: '商品', icon: 'product'},
-    children: [{
+    children: [
+      {
       path: 'product',
       name: 'product',
       component: () => import('@/views/pms/product/index'),
@@ -355,7 +356,49 @@ export const asyncRouterMap = [
         component: () => import('@/views/ums/resource/categoryList'),
         meta: {title: '资源分类'},
         hidden: true
+      },
+      {
+        path: 'company',
+        name: 'company',
+        component: () => import('@/views/ums/company/index'),
+        meta: {title: '供应商管理', icon: 'sms-new'}
+      },
+      {
+        path: 'addCompany',
+        name: 'addCompany',
+        component: () => import('@/views/ums/company/add'),
+        meta: {title: '添加供应商'},
+        hidden: true
+      },
+      {
+        path: 'updateCompany',
+        name: 'updateCompany',
+        component: () => import('@/views/ums/company/update'),
+        meta: {title: '供应商'},
+        hidden: true
+      },
+      {
+        path: 'origin',
+        name: 'origin',
+        component: () => import('@/views/ums/origin/index'),
+        meta: {title: '生产地管理', icon: 'tree'}
+      },
+      {
+        path: 'addOrigin',
+        name: 'addOrigin',
+        component: () => import('@/views/ums/origin/add'),
+        meta: {title: '添加生产地'},
+        hidden: true
+      },
+      {
+        path: 'updateOrigin',
+        name: 'updateOrigin',
+        component: () => import('@/views/ums/origin/update'),
+        meta: {title: '生产地'},
+        hidden: true
       }
+      
+
     ]
   },
   {path: '*', redirect: '/404', hidden: true}

+ 1 - 0
src/views/layout/components/Sidebar/SidebarItem.vue

@@ -47,6 +47,7 @@ export default {
   methods: {
     hasOneShowingChildren(children) {
       const showingChildren = children.filter(item => {
+        // console.log('hasOneShowingChildren',JSON.parse(JSON.stringify(item)))
         return !item.hidden
       })
       if (showingChildren.length === 1) {

+ 1 - 0
src/views/layout/components/Sidebar/index.vue

@@ -27,6 +27,7 @@ export default {
       'routers'
     ]),
     routes() {
+      // console.log('this.routers',JSON.parse(JSON.stringify(this.routers)))
       // return this.$router.options.routes
       return this.routers
     },

+ 1 - 1
src/views/pms/product/components/ProductSaleDetail.vue

@@ -94,7 +94,7 @@
 
       </el-form-item>
       <el-form-item v-show="value.promotionType===2">
-        <div v-for="(item, index) in value.memberPriceList" :class="{littleMargin:index!==0}">
+        <div v-for="(item, index) in value.memberPriceList" :key="index" :class="{littleMargin:index!==0}">
           {{item.memberLevelName}}:
           <el-input v-model="item.memberPrice" style="width: 200px"></el-input>
         </div>

+ 30 - 7
src/views/pms/product/index.vue

@@ -145,29 +145,32 @@
           <template slot-scope="scope">
             <p>{{scope.row.verifyStatus | verifyStatusFilter}}</p>
             <p>
-              <el-button
+              <!-- <el-button
                 type="text"
                 @click="handleShowVerifyDetail(scope.$index, scope.row)">审核详情
-              </el-button>
+              </el-button> -->
             </p>
           </template>
         </el-table-column>
         <el-table-column label="操作" width="160" align="center">
           <template slot-scope="scope">
             <p>
-              <el-button
+              <!-- <el-button
                 size="mini"
                 @click="handleShowProduct(scope.$index, scope.row)">查看
-              </el-button>
+              </el-button> -->
               <el-button
                 size="mini"
                 @click="handleUpdateProduct(scope.$index, scope.row)">编辑
               </el-button>
             </p>
             <p>
-              <el-button
+              <!-- <el-button
                 size="mini"
                 @click="handleShowLog(scope.$index, scope.row)">日志
+              </el-button> -->
+              <el-button size="mini" v-if="scope.row.verifyStatus==0" @click="handleVerify(scope.$index, scope.row)">
+                审核
               </el-button>
               <el-button
                 size="mini"
@@ -277,13 +280,13 @@
     updateDeleteStatus,
     updateNewStatus,
     updateRecommendStatus,
-    updatePublishStatus
+    updatePublishStatus,
+    updateVerifyStatus,
   } from '@/api/product'
   import {fetchList as fetchSkuStockList,update as updateSkuStockList} from '@/api/skuStock'
   import {fetchList as fetchProductAttrList} from '@/api/productAttr'
   import {fetchList as fetchBrandList} from '@/api/brand'
   import {fetchListWithChildren} from '@/api/productCate'
-
   const defaultListQuery = {
     keyword: null,
     pageNum: 1,
@@ -640,7 +643,27 @@
           });
         });
         this.getList();
+      },
+      handleVerify(index,row){
+        this.$confirm('是否审核通过此产品?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          let id = row.id;
+          updateVerifyStatus(id).then(res => {
+            this.$message({
+              message: res.message,
+              type: 'success',
+              duration: 1000
+            });
+            this.getList();
+          });
+        });
+        // console.log(row)
       }
+
+
     }
   }
 </script>

+ 12 - 0
src/views/ums/company/add.vue

@@ -0,0 +1,12 @@
+<template> 
+  <company-detail :is-edit='false'></company-detail>
+</template>
+<script>
+  import companyDetail from './components/companyDetail'
+  export default {
+    name: 'addCompany',
+    components: { companyDetail }
+  }
+</script>
+<style>
+</style>

+ 313 - 0
src/views/ums/company/components/companyDetail.vue

@@ -0,0 +1,313 @@
+<template> 
+  <el-card class="form-container" shadow="never">
+    <el-form :model="company" :rules="rules" ref="companyFrom" label-width="150px">
+
+      <el-form-item label="供应商名称:" prop="compName">
+        <el-input v-model="company.compName"></el-input>
+      </el-form-item>
+      <el-form-item label="供应商类型:">
+        <el-input v-model="company.companyType"></el-input>
+      </el-form-item>
+      <el-form-item label="供应商评级">
+        <el-input v-model="company.compLevel"></el-input>
+      </el-form-item>
+      <el-form-item label="供应商资质">
+        <el-input v-model="company.compQual"></el-input>
+      </el-form-item>
+      <el-form-item label="供应商图片">
+        <single-upload v-model="company.compImgs"></single-upload>
+      </el-form-item>
+      <el-form-item label="供应商资质图片">
+        <single-upload v-model="company.compQual"></single-upload>
+      </el-form-item>
+      <el-form-item label="企业logo图片">
+         <single-upload v-model="company.compQual"></single-upload>
+      </el-form-item>
+      <el-form-item label="公众号二维码图片">
+        <single-upload v-model="company.compQual"></single-upload>
+      </el-form-item>
+      <el-form-item label="淘宝店地址">
+        <el-input v-model="company.compLevel"></el-input>
+      </el-form-item>
+      <el-form-item label="京东店地址">
+        <el-input v-model="company.compLevel"></el-input>
+      </el-form-item>
+      <el-form-item label="自主商城地址">
+        <el-input v-model="company.compLevel"></el-input>
+      </el-form-item>
+      <el-form-item label="是否认证">
+        <el-switch          
+          :active-value="1"
+          :inactive-value="0"
+          v-model="company.isCert">
+        </el-switch>
+      </el-form-item>
+      <el-form-item label="生产许可证号">
+        <el-input v-model="company.compProdLicenseNum"></el-input>
+      </el-form-item>
+      <el-form-item label="经营许可证号">
+        <el-input v-model="company.compManageLicenseNum"></el-input>
+      </el-form-item>
+      <el-form-item label="社会信用代码">
+        <el-input v-model="company.compSocialCode"></el-input>
+      </el-form-item>
+      <el-form-item label="联系人">
+        <el-input v-model="company.compConPerson"></el-input>
+      </el-form-item>
+      <el-form-item label="联系方式">
+        <el-input v-model="company.compConType"></el-input>
+      </el-form-item>
+      <el-form-item label="对外企业qq">
+        <el-input v-model="company.compQq"></el-input>
+      </el-form-item>
+      <el-form-item label="经营产品">
+        <el-input v-model="company.compManageProduct"></el-input>
+      </el-form-item>
+      <el-form-item label="简介">
+        <el-input
+          placeholder="请输入内容"
+          type="textarea"
+          v-model="company.compSum"
+          :autosize="true"></el-input>
+      </el-form-item>
+      <el-form-item label="所在省">
+        <el-input v-model="company.provinceId"></el-input>
+      </el-form-item>
+      <el-form-item label="所在市">
+        <el-input v-model="company.cityId"></el-input>
+      </el-form-item>
+      <el-form-item label="所在县">
+        <el-input v-model="company.countyId"></el-input>
+      </el-form-item>
+      <el-form-item label="详细地址">
+        <el-input v-model="company.detailAddress"></el-input>
+      </el-form-item>
+      <el-form-item label="经度(°)">
+        <el-input placeholder=""  style="width: 80%;" size="samll" v-model.number="company.longitude"></el-input>
+      </el-form-item>
+      <el-form-item label="维度(°)">
+        <el-input v-model="company.latitude"></el-input>
+      </el-form-item>
+      <el-form-item>
+          <baidu-map  class="map" :center="center" :zoom="zoom" @ready="handlermap"
+          :scroll-wheel-zoom="true"
+          @click="clickEvent"
+          ak="33B192o1jPaqOHASGGAIkoMuwi8W76j3">
+            <!-- 地图控件位置 -->
+              <bm-navigation anchor="BMAP_ANCHOR_TOP_RIGHT"></bm-navigation>
+              <!-- 获取城市列表 -->
+              <bm-city-list anchor="BMAP_ANCHOR_TOP_LEFT"></bm-city-list>
+              <!-- 定位当前位置 -->
+              <bm-geolocation anchor="BMAP_ANCHOR_BOTTOM_RIGHT"  :showAddressBar="true" :autoLocation="true" @locationSuccess="getLoctionSuccess" ></bm-geolocation>
+              <!-- 地图容器 -->
+              <bm-view :style="{width:'100%',height: '500px'}"></bm-view>
+          </baidu-map>
+      </el-form-item>
+      <el-form-item label="带动农户人数">
+        <!-- <el-input v-model="company.countyId"></el-input> -->
+      </el-form-item>
+      <el-form-item label="其中建档立卡人数">
+        <!-- <el-input v-model="company.countyId"></el-input> -->
+      </el-form-item>
+
+      <el-form-item>
+        <el-button type="primary" @click="onSubmit('companyFrom')">提交</el-button>
+        <el-button v-if="!isEdit" @click="resetForm('companyFrom')">重置</el-button>
+      </el-form-item>
+    </el-form>
+  </el-card>
+</template>
+<script>
+  import {createCompany, getCompany, updateCompany} from '@/api/company'
+  import SingleUpload from '@/components/Upload/singleUpload'
+  import {BaiduMap,BmNavigation,BmView,BmGeolocation,BmCityList} from 'vue-baidu-map'
+  const defaultCompany={
+    cityId: "",
+    compConNum: "",
+    compConPerson: "",
+    compConType: null,
+    compImgs: null,
+    compLevel: null,
+    compManageLicenseNum: null,
+    compManageProduct: "",
+    compName: "",
+    compProdLicenseNum: "",
+    compQq: "",
+    compQual: "",
+    compSocialCode: "",
+    compStatus: null,
+    compSum: "",
+    compUrl: null,
+    companyType: "",
+    countyId: "",
+    createId: null,
+    createTime: "",
+    detailAddress: "",
+    files:[],
+    id: null,
+    isCert: 0,
+    latitude: "",
+    longitude: "",
+    origins: null,
+    provinceId: "",
+    shops: [],
+    townId: null,
+    updateId: null,
+    updateTime: null,
+    villageId: null,
+  };
+  export default {
+    name: 'companyDetail',
+    components:{
+      SingleUpload,
+      BaiduMap,
+      BmNavigation,
+      BmView,
+      BmGeolocation,
+      BmCityList,
+      
+    },
+    props: {
+      isEdit: {
+        type: Boolean,
+        default: false
+      }
+    },
+    data() {
+      return {
+        company:Object.assign({}, defaultCompany),
+        rules: {
+          compName: [
+            {required: true, message: '请输入品牌名称', trigger: 'blur'},
+            {min: 2, max: 140, message: '长度在 2 到 140 个字符', trigger: 'blur'}
+          ],
+          logo: [
+            {required: true, message: '请输入品牌logo', trigger: 'blur'}
+          ],
+          sort: [
+            {type: 'number', message: '排序必须为数字'}
+          ],
+        },
+        center: {lng: 106.632713, lat: 26.653157},
+        zoom: 12,
+        mapVisible:false,
+        clientHeight:document.documentElement.clientHeight-90, // 设置屏幕高度
+      }
+    },
+    created() {
+      if (this.isEdit) {
+        getCompany(this.$route.query.id).then(response => {
+          this.company = response.data;
+        });
+      }else{
+        this.company = Object.assign({},defaultCompany);
+      }
+    },
+    methods: {
+      onSubmit(formName) {
+        console.log('this.company',JSON.parse(JSON.stringify(this.company)))
+        // return false;
+        this.$refs[formName].validate((valid) => {
+          if (valid) {
+            this.$confirm('是否提交数据', '提示', {
+              confirmButtonText: '确定',
+              cancelButtonText: '取消',
+              type: 'warning'
+            }).then(() => {
+              if (this.isEdit) {
+                updateCompany(this.$route.query.id, this.company).then(response => {
+                  this.$refs[formName].resetFields();
+                  this.$message({
+                    message: '修改成功',
+                    type: 'success',
+                    duration:1000
+                  });
+                  setTimeout(() =>{
+                    this.$router.back();
+                  },1000);
+                });
+              } else {
+                createCompany(this.company).then(response => {
+                  this.$refs[formName].resetFields();
+                  this.company = Object.assign({},defaultCompany);
+                  this.$message({
+                    message: '提交成功',
+                    type: 'success',
+                    duration:1000
+                  });
+                  setTimeout(() =>{
+                    this.$router.back();
+                  },1000);
+                });
+              }
+            });
+
+          } else {
+            this.$message({
+              message: '验证失败',
+              type: 'error',
+              duration:1000
+            });
+            return false;
+          }
+        });
+      },
+      resetForm(formName) {
+        this.$refs[formName].resetFields();
+        this.company = Object.assign({},defaultCompany);
+      },
+      handlermap ({BMap, map}) {
+          let _this = this;	// 设置一个临时变量指向vue实例;
+          var geolocation = new BMap.Geolocation();
+          geolocation.getCurrentPosition(function(r){
+            console.log(r);
+            _this.center = {lng: r.longitude, lat: r.latitude};		// 设置center属性值
+            _this.autoLocationPoint = {lng: r.longitude, lat: r.latitude};		// 自定义覆盖物
+            _this.initLocation = true;
+          },{enableHighAccuracy: true})
+            window.map = map;
+        },
+        //点击地图监听
+        clickEvent(e){
+          map.clearOverlays();
+          let Icon_0 = new BMap.Icon("static/zuobiao.gif", new BMap.Size(64, 64), {anchor: new BMap.Size(18, 32),imageSize: new BMap.Size(36, 36)});
+          var myMarker = new BMap.Marker(new BMap.Point(e.point.lng, e.point.lat),{icon: Icon_0});
+          map.addOverlay(myMarker);
+          //用所定位的经纬度查找所在地省市街道等信息
+          var point = new BMap.Point(e.point.lng, e.point.lat);
+          var gc = new BMap.Geocoder();
+          let _this = this;
+          gc.getLocation(point, function (rs) {
+            var addComp = rs.addressComponents;
+            // console.log(rs);//地址信息
+            _this.company.provinceId = rs.addressComponents.province;
+            _this.company.cityId = rs.addressComponents.city;
+            _this.company.countyId = rs.addressComponents.district;
+            _this.company.detailAddress = rs.address;
+          });
+            this.company.longitude = e.point.lng;
+            this.company.latitude = e.point.lat;
+        },
+        //定位成功回调
+        getLoctionSuccess(point, AddressComponent, marker){
+          map.clearOverlays();
+          let Icon_0 = new BMap.Icon("/static/zuobiao.gif", new BMap.Size(64, 64), {anchor: new BMap.Size(18, 32),imageSize: new BMap.Size(36, 36)});
+          var myMarker = new BMap.Marker(new BMap.Point(point.point.lng, point.point.lat),{icon: Icon_0});
+          map.addOverlay(myMarker);
+          this.company.longitude = point.point.lng;
+          this.company.latitude = point.point.lat;
+        },
+        findlocation(){
+          this.$emit("findlocdata",this.company)
+          this.mapVisible = false
+        },
+        mapShow(){
+          this.mapVisible = true
+        },
+    }
+  }
+</script>
+<style>
+</style>
+
+

+ 249 - 0
src/views/ums/company/index.vue

@@ -0,0 +1,249 @@
+<template> 
+  <div class="app-container">
+    <el-card class="filter-container" shadow="never">
+      <div>
+        <i class="el-icon-search"></i>
+        <span>筛选搜索</span>
+        <el-button
+          style="float:right"
+          type="primary"
+          @click="handleSearchList()"
+          size="small">
+          查询搜索
+        </el-button>
+        <el-button
+          style="float:right;margin-right: 15px"
+          @click="handleResetSearch()"
+          size="small">
+          重置
+        </el-button>
+      </div>
+      <div style="margin-top: 15px">
+        <el-form :inline="true" :model="listQuery" size="small" label-width="140px">
+          <el-form-item label="输入搜索:">
+            <el-input v-model="listQuery.keyword" class="input-width" placeholder="供应商名称" clearable></el-input>
+          </el-form-item>
+        </el-form>
+      </div>
+    </el-card>
+    <el-card class="operate-container" shadow="never">
+      <i class="el-icon-tickets"></i>
+      <span>数据列表</span>
+      <el-button size="mini" class="btn-add" @click="handleAddCompany()" style="margin-left: 20px">添加</el-button>
+    </el-card>
+    <div class="table-container">
+      <el-table ref="roleTable"
+                :data="list"
+                style="width: 100%;"
+                v-loading="listLoading" border>
+        <!-- <el-table-column label="编号" width="80" align="center">
+          <template slot-scope="scope">{{scope.row.id}}</template>
+        </el-table-column> -->
+        <el-table-column label="供应商名称" width="100px" show-overflow-tooltip align="center">
+          <template slot-scope="scope">{{scope.row.compName}}</template>
+        </el-table-column>
+        <el-table-column label="供应商类型" width="100px" align="center">
+          <template slot-scope="scope">{{scope.row.companyType}}</template>
+        </el-table-column>
+        <el-table-column label="供应商评级"  width="100" align="center">
+          <template slot-scope="scope">{{scope.row.compLevel}}</template>
+        </el-table-column>
+        <el-table-column label="供应商资质" width="100px" show-overflow-tooltip align="center">
+          <template slot-scope="scope">{{scope.row.compQual}}</template>
+        </el-table-column>
+        <el-table-column label="供应商图片" width="100px" align="center">
+          <template slot-scope="scope">{{scope.row.compImgs}}</template>
+        </el-table-column>
+        <el-table-column label="供应商资质图片" width="100px" align="center">
+          <template slot-scope="scope">{{scope.row.companyType}}</template>
+        </el-table-column>
+        <el-table-column label="企业logo图片" align="center">
+          <template slot-scope="scope">{{scope.row.companyType}}</template>
+        </el-table-column>
+        <el-table-column label="公众号二维码图片" align="center">
+          <template slot-scope="scope">{{scope.row.companyType}}</template>
+        </el-table-column>
+        <el-table-column label="淘宝店地址" width="100px" align="center">
+          <template slot-scope="scope">{{scope.row.companyType}}</template>
+        </el-table-column>
+        <el-table-column label="京东店地址" width="100px" align="center">
+          <template slot-scope="scope">{{scope.row.companyType}}</template>
+        </el-table-column>
+        <el-table-column label="自主商城地址" width="120px" align="center">
+          <template slot-scope="scope">{{scope.row.companyType}}</template>
+        </el-table-column>
+        <el-table-column label="是否认证" align="center">
+          <template slot-scope="scope">{{scope.row.isCert}}</template>
+        </el-table-column>
+        <el-table-column label="生产许可证号" align="center">
+          <template slot-scope="scope">{{scope.row.compProdLicenseNum}}</template>
+        </el-table-column>
+        <el-table-column label="经营许可证号" align="center">
+          <template slot-scope="scope">{{scope.row.compManageLicenseNum}}</template>
+        </el-table-column>
+        <el-table-column label="社会信用代码" align="center">
+          <template slot-scope="scope">{{scope.row.compSocialCode}}</template>
+        </el-table-column>
+        <el-table-column label="联系人" align="center">
+          <template slot-scope="scope">{{scope.row.compConPerson}}</template>
+        </el-table-column>
+        <el-table-column label="联系方式" align="center">
+          <template slot-scope="scope">{{scope.row.compConType}}</template>
+        </el-table-column>
+        <el-table-column label="对外企业qq" align="center">
+          <template slot-scope="scope">{{scope.row.compQq}}</template>
+        </el-table-column>
+        <el-table-column label="经营产品" show-overflow-tooltip align="center">
+          <template slot-scope="scope">{{scope.row.compManageProduct}}</template>
+        </el-table-column>
+        <el-table-column label="简介" align="center">
+          <template slot-scope="scope">{{scope.row.compSum}}</template>
+        </el-table-column>
+        <el-table-column label="所在省" align="center">
+          <template slot-scope="scope">{{scope.row.provinceId}}</template>
+        </el-table-column>
+        <el-table-column label="所在市" align="center">
+          <template slot-scope="scope">{{scope.row.cityId}}</template>
+        </el-table-column>
+        <el-table-column label="所在县" align="center">
+          <template slot-scope="scope">{{scope.row.countyId}}</template>
+        </el-table-column>
+        <el-table-column label="详细地址" show-overflow-tooltip align="center">
+          <template slot-scope="scope">{{scope.row.detailAddress}}</template>
+        </el-table-column>
+        <el-table-column label="经度(°)" align="center">
+          <template slot-scope="scope">{{scope.row.longitude}}</template>
+        </el-table-column>
+        <el-table-column label="维度(°)" align="center">
+          <template slot-scope="scope">{{scope.row.latitude}}</template>
+        </el-table-column>
+        <el-table-column label="带动农户人数" align="center">
+          <!-- <template slot-scope="scope">{{scope.row.countyId}}</template> -->
+        </el-table-column>
+        <el-table-column label="其中建档立卡人数" align="center">
+          <!-- <template slot-scope="scope">{{scope.row.countyId}}</template> -->
+        </el-table-column>
+        <el-table-column label="操作" width="160" fixed="right" align="center">
+          <template slot-scope="scope">
+            <el-row>
+            <el-button size="mini"
+                       type="text"
+                       @click="handleUpdateCompany(scope.$index, scope.row)">
+              编辑
+            </el-button>
+            <el-button size="mini"
+                       type="text"
+                       @click="handleDelete(scope.$index, scope.row)">删除
+            </el-button>
+            </el-row>
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
+    <div class="pagination-container" style="maring-bottom:30px">
+      <el-pagination
+        background
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        layout="total, sizes,prev, pager, next,jumper"
+        :current-page.sync="listQuery.pageNo"
+        :page-size="listQuery.pageSize"
+        :page-sizes="[5,10,15]"
+        :total="total">
+      </el-pagination>
+    </div>
+  </div>
+</template>
+<script>
+  import {fetchList,createCompany,deleteCompany,getCompany,updateCompany} from '@/api/company';
+  import {formatDate} from '@/utils/date';
+
+  const defaultListQuery = {
+    pageNo: 1,
+    pageSize: 5,
+    keyword: null
+  };
+
+  export default {
+    name: 'roleList',
+    data() {
+      return {
+        listQuery: Object.assign({}, defaultListQuery),
+        list: null,
+        total: null,
+        listLoading: false,
+        dialogVisible: false,
+        isEdit: false
+      }
+    },
+    created() {
+      this.getList();
+    },
+    filters: {
+      formatDateTime(time) {
+        if (time == null || time === '') {
+          return 'N/A';
+        }
+        let date = new Date(time);
+        return formatDate(date, 'yyyy-MM-dd hh:mm:ss')
+      }
+    },
+    methods: {
+      handleResetSearch() {
+        this.listQuery = Object.assign({}, defaultListQuery);
+      },
+      handleSearchList() {
+        this.listQuery.pageNum = 1;
+        this.getList();
+      },
+      handleSizeChange(val) {
+        this.listQuery.pageNum = 1;
+        this.listQuery.pageSize = val;
+        this.getList();
+      },
+      handleCurrentChange(val) {
+        this.listQuery.pageNum = val;
+        this.getList();
+      },
+      handleAddCompany() {
+        this.$router.push({path:'/ums/addCompany'});
+      },
+      handleDelete(index, row) {
+        this.$confirm('是否要删除该供应商?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          let compId = [];
+          compId.push(row.id);
+          let params=new URLSearchParams();
+          params.append("compId",compId);
+          console.log('del-params',params);
+          // return false;
+          deleteCompany(params).then(response => {
+            this.$message({
+              type: 'success',
+              message: '删除成功!'
+            });
+            this.getList();
+          });
+        });
+      },
+      handleUpdateCompany(index,row){
+        this.$router.push({path:'/ums/updateCompany',query:{id:row.id}});
+      },
+      getList() {
+        this.listLoading = true;
+        fetchList(this.listQuery).then(response => {
+          console.log('response',JSON.parse(JSON.stringify(response)));
+          this.listLoading = false;
+          this.list = response.data.list;
+          this.total = response.data.total;
+        });
+      }
+    }
+  }
+</script>
+<style></style>
+
+

+ 12 - 0
src/views/ums/company/update.vue

@@ -0,0 +1,12 @@
+<template> 
+  <company-detail :is-edit='true'></company-detail>
+</template>
+<script>
+  import companyDetail from './components/companyDetail'
+  export default {
+    name: 'updateCompany',
+    components: { companyDetail }
+  }
+</script>
+<style>
+</style>

+ 1 - 1
src/views/ums/menu/index.vue

@@ -96,7 +96,7 @@
         listLoading: true,
         listQuery: {
           pageNum: 1,
-          pageSize: 5
+          pageSize: 20
         },
         parentId: 0
       }

+ 12 - 0
src/views/ums/origin/add.vue

@@ -0,0 +1,12 @@
+<template> 
+  <origin-detail :is-edit='false'></origin-detail>
+</template>
+<script>
+  import originDetail from './components/originDetail'
+  export default {
+    name: 'addOrigin',
+    components: { originDetail }
+  }
+</script>
+<style>
+</style>

+ 333 - 0
src/views/ums/origin/components/originDetail.vue

@@ -0,0 +1,333 @@
+<template> 
+  <el-card class="form-container" shadow="never">
+    <el-form :model="origin" :rules="rules" ref="originFrom" label-width="150px">
+
+      <el-form-item label="生产地名称" prop="originName">
+        <el-input v-model="origin.originName"></el-input>
+      </el-form-item>
+      <el-form-item label="生产地面积(亩)">
+        <el-input v-model="origin.originArea"></el-input>
+      </el-form-item>
+      <el-form-item label="生产地图片">
+        <multi-upload v-model="selectOriginPics"></multi-upload>
+      </el-form-item>
+      <el-form-item label="生产地宣传视频">
+        <el-input v-model="origin.videoUrl"></el-input>
+      </el-form-item>
+      <el-form-item label="生产地vr">
+        <el-input v-model="origin.vrUrl"></el-input>
+      </el-form-item>
+      <el-form-item label="实时监控视频">
+        <el-input v-model="origin.cameraUrl"></el-input>
+      </el-form-item>
+      <el-form-item label="人员数">
+        <el-input v-model="origin.peopleNum"></el-input>
+      </el-form-item>
+      <el-form-item label="建立日期(年)">
+        <el-input v-model="origin.foundDate"></el-input>
+      </el-form-item>
+      <el-form-item label="联系人">
+        <el-input v-model="origin.linkUser"></el-input>
+      </el-form-item>
+      <el-form-item label="联系方式">
+        <el-input v-model="origin.linkPhone"></el-input>
+      </el-form-item>
+      <el-form-item label="简介">
+        <el-input
+          placeholder="请输入内容"
+          type="textarea"
+          v-model="origin.summary"
+          :autosize="true"></el-input>
+      </el-form-item>
+      <el-form-item label="产出物">
+        <el-input v-model="origin.isCert"></el-input>
+      </el-form-item>
+      <el-form-item label="产出物种植面积(亩)">
+        <el-input v-model="origin.originArea"></el-input>
+      </el-form-item>
+      <el-form-item label="产出物总产量(吨)">
+        <el-input v-model="origin.compManageLicenseNum"></el-input>
+      </el-form-item>
+      <el-form-item label="产出物亩产值(万元)">
+        <el-input v-model="origin.compSocialCode"></el-input>
+      </el-form-item>
+      <el-form-item label="所在省">
+        <el-input v-model="origin.provinceId"></el-input>
+      </el-form-item>
+      <el-form-item label="所在市">
+        <el-input v-model="origin.cityId"></el-input>
+      </el-form-item>
+      <el-form-item label="所在县">
+        <el-input v-model="origin.countyId"></el-input>
+      </el-form-item>
+      <el-form-item label="详细地址">
+        <el-input v-model="origin.detailAddress"></el-input>
+      </el-form-item>
+      <el-form-item label="经度(°)">
+        <el-input v-model="origin.longitude"></el-input>
+      </el-form-item>
+      <el-form-item label="维度(°)">
+        <el-input v-model="origin.latitude"></el-input>
+      </el-form-item>
+      <el-form-item>
+          <baidu-map  class="map" :center="center" :zoom="zoom" @ready="handlermap"
+          :scroll-wheel-zoom="true"
+          @click="clickEvent"
+          ak="33B192o1jPaqOHASGGAIkoMuwi8W76j3">
+            <!-- 地图控件位置 -->
+              <bm-navigation anchor="BMAP_ANCHOR_TOP_RIGHT"></bm-navigation>
+              <!-- 获取城市列表 -->
+              <bm-city-list anchor="BMAP_ANCHOR_TOP_LEFT"></bm-city-list>
+              <!-- 定位当前位置 -->
+              <bm-geolocation anchor="BMAP_ANCHOR_BOTTOM_RIGHT"  :showAddressBar="true" :autoLocation="true" @locationSuccess="getLoctionSuccess" ></bm-geolocation>
+              <!-- 地图容器 -->
+              <bm-view :style="{width:'100%',height: '500px'}"></bm-view>
+          </baidu-map>
+      </el-form-item>
+      <el-form-item label="供应商名称" >
+        <el-input v-model="origin.compName"></el-input>
+      </el-form-item>
+
+      <el-form-item>
+        <el-button type="primary" @click="onSubmit('originFrom')">提交</el-button>
+        <el-button v-if="!isEdit" @click="resetForm('originFrom')">重置</el-button>
+      </el-form-item>
+    </el-form>
+  </el-card>
+</template>
+<script>
+  import {createOrigin, getOrigin, updateOrigin} from '@/api/origin'
+  import SingleUpload from '@/components/Upload/singleUpload'
+  import MultiUpload from '@/components/Upload/multiUpload'
+  import {BaiduMap,BmNavigation,BmView,BmGeolocation,BmCityList} from 'vue-baidu-map'
+  const defaultorigin={
+    altitude: null,
+    cameraUrl: null,
+    cityName: null,
+    compId: null,
+    compName: "",
+    countyName: null,
+    createId: null,
+    createTime: "",
+    detailAddress: null,
+    foundDate: null,
+    id: null,
+    imgUrl: null,
+    latitude: null,
+    linkPhone: null,
+    linkUser: null,
+    longitude: null,
+    originArea: null,
+    originName: "",
+    pageNum: 1,
+    pageSize: 10,
+    peopleNum: null,
+    productlist: [],
+    provinceName: null,
+    remark: null,
+    state: 0,
+    summary: null,
+    updateId: null,
+    updateTime: null,
+    videoUrl: null,
+    vrUrl: null,
+  };
+  export default {
+    name: 'originDetail',
+    components:{
+      SingleUpload,
+      MultiUpload,
+      BaiduMap,
+      BmNavigation,
+      BmView,
+      BmGeolocation,
+      BmCityList,
+    },
+    props: {
+      isEdit: {
+        type: Boolean,
+        default: false
+      }
+    },
+    data() {
+      return {
+        origin:Object.assign({}, defaultorigin),
+        rules: {
+          originName: [
+            {required: true, message: '请输入品牌名称', trigger: 'blur'},
+            {min: 2, max: 140, message: '长度在 2 到 140 个字符', trigger: 'blur'}
+          ],
+          logo: [
+            {required: true, message: '请输入品牌logo', trigger: 'blur'}
+          ],
+          sort: [
+            {type: 'number', message: '排序必须为数字'}
+          ],
+        },
+        center: {lng: 106.632713, lat: 26.653157},
+        zoom: 12,
+        mapVisible:false,
+        clientHeight:document.documentElement.clientHeight-90, // 设置屏幕高度
+
+
+      }
+    },
+    computed: {
+      //生产地图片
+      selectOriginPics:{
+
+        get:function () {
+          let pics=[];
+          // if(this.origin.pic===undefined||this.origin.pic==null||this.origin.pic===''){
+          //   return pics;
+          // }
+          // pics.push(this.origin.pic);
+          if(this.origin.imgUrl===undefined||this.origin.imgUrl==null||this.origin.imgUrl===''){
+            return pics;
+          }
+          let albumPics = this.origin.imgUrl.split(',');
+          for(let i=0;i<albumPics.length;i++){
+            pics.push(albumPics[i]);
+          }
+          return pics;
+        },
+        set:function (newValue) {
+          console.log('newValue',newValue);
+          if (newValue == null || newValue.length === 0) {
+            // this.origin.pic = null;
+            this.origin.imgUrl = null;
+          } else {
+            // this.origin.pic = newValue[0];
+            this.origin.imgUrl = '1';
+            if (newValue.length > 1) {
+              for (let i = 1; i < newValue.length; i++) {
+                this.origin.imgUrl += newValue[i];
+                if (i !== newValue.length - 1) {
+                  this.origin.imgUrl += ',';                  
+                }
+              }
+            }
+          }
+          console.log(' this.origin.imgUrl', this.origin.imgUrl);
+        }
+
+      }
+
+    },
+    created() {
+      if (this.isEdit) {
+        getOrigin(this.$route.query.id).then(response => {
+          this.origin = response.data;
+        });
+      }else{
+        this.origin = Object.assign({},defaultorigin);
+      }
+    },
+    methods: {
+      onSubmit(formName) {
+        // console.log('this.origin',JSON.parse(JSON.stringify(this.origin)))
+        // return false;
+        this.$refs[formName].validate((valid) => {
+          if (valid) {
+            this.$confirm('是否提交数据', '提示', {
+              confirmButtonText: '确定',
+              cancelButtonText: '取消',
+              type: 'warning'
+            }).then(() => {
+              if (this.isEdit) {
+                updateOrigin(this.$route.query.id, this.origin).then(response => {
+                  this.$refs[formName].resetFields();
+                  this.$message({
+                    message: '修改成功',
+                    type: 'success',
+                    duration:1000
+                  });
+                  setTimeout(() =>{
+                    this.$router.back();
+                  },1000);
+                });
+              } else {
+                createOrigin(this.origin).then(response => {
+                  this.$refs[formName].resetFields();
+                  this.origin = Object.assign({},defaultorigin);
+                  this.$message({
+                    message: '提交成功',
+                    type: 'success',
+                    duration:1000
+                  });
+                  setTimeout(() =>{
+                    this.$router.back();
+                  },1000);
+                });
+              }
+            });
+
+          } else {
+            this.$message({
+              message: '验证失败',
+              type: 'error',
+              duration:1000
+            });
+            return false;
+          }
+        });
+      },
+      resetForm(formName) {
+        this.$refs[formName].resetFields();
+        this.origin = Object.assign({},defaultorigin);
+      },
+      handlermap ({BMap, map}) {
+          let _this = this;	// 设置一个临时变量指向vue实例;
+          var geolocation = new BMap.Geolocation();
+          geolocation.getCurrentPosition(function(r){
+            // console.log(r);
+            _this.center = {lng: r.longitude, lat: r.latitude};		// 设置center属性值
+            _this.autoLocationPoint = {lng: r.longitude, lat: r.latitude};		// 自定义覆盖物
+            _this.initLocation = true;
+          },{enableHighAccuracy: true})
+            window.map = map;
+        },
+        //点击地图监听
+        clickEvent(e){
+          map.clearOverlays();
+          let Icon_0 = new BMap.Icon("static/zuobiao.gif", new BMap.Size(64, 64), {anchor: new BMap.Size(18, 32),imageSize: new BMap.Size(36, 36)});
+          var myMarker = new BMap.Marker(new BMap.Point(e.point.lng, e.point.lat),{icon: Icon_0});
+          map.addOverlay(myMarker);
+          //用所定位的经纬度查找所在地省市街道等信息
+          var point = new BMap.Point(e.point.lng, e.point.lat);
+          var gc = new BMap.Geocoder();
+          let _this = this;
+          gc.getLocation(point, function (rs) {
+            var addComp = rs.addressComponents;
+            // console.log(rs);//地址信息
+            _this.origin.provinceId = rs.addressComponents.province;
+            _this.origin.cityId = rs.addressComponents.city;
+            _this.origin.countyId = rs.addressComponents.district;
+            _this.origin.detailAddress = rs.address;
+          });
+            this.origin.longitude = e.point.lng;
+            this.origin.latitude = e.point.lat;
+        },
+        //定位成功回调
+        getLoctionSuccess(point, AddressComponent, marker){
+          map.clearOverlays();
+          let Icon_0 = new BMap.Icon("/static/zuobiao.gif", new BMap.Size(64, 64), {anchor: new BMap.Size(18, 32),imageSize: new BMap.Size(36, 36)});
+          var myMarker = new BMap.Marker(new BMap.Point(point.point.lng, point.point.lat),{icon: Icon_0});
+          map.addOverlay(myMarker);
+          this.company.longitude = point.point.lng;
+          this.company.latitude = point.point.lat;
+        },
+        findlocation(){
+          this.$emit("findlocdata",this.company)
+          this.mapVisible = false
+        },
+        mapShow(){
+          this.mapVisible = true
+        },
+    }
+  }
+</script>
+<style>
+</style>
+
+

+ 245 - 0
src/views/ums/origin/index.vue

@@ -0,0 +1,245 @@
+<template> 
+  <div class="app-container">
+    <el-card class="filter-container" shadow="never">
+      <div>
+        <i class="el-icon-search"></i>
+        <span>筛选搜索</span>
+        <el-button
+          style="float:right"
+          type="primary"
+          @click="handleSearchList()"
+          size="small">
+          查询搜索
+        </el-button>
+        <el-button
+          style="float:right;margin-right: 15px"
+          @click="handleResetSearch()"
+          size="small">
+          重置
+        </el-button>
+      </div>
+      <div style="margin-top: 15px">
+        <el-form :inline="true" :model="listQuery" size="small" label-width="140px">
+          <el-form-item label="输入搜索:">
+            <el-input v-model="listQuery.keyword" class="input-width" placeholder="生产地名称" clearable></el-input>
+          </el-form-item>
+        </el-form>
+      </div>
+    </el-card>
+    <el-card class="operate-container" shadow="never">
+      <i class="el-icon-tickets"></i>
+      <span>数据列表</span>
+      <el-button size="mini" class="btn-add" @click="handleAddorigin()" style="margin-left: 20px">添加</el-button>
+    </el-card>
+    <div class="table-container">
+      <el-table ref="roleTable"
+                :data="list"
+                style="width: 100%;"
+                v-loading="listLoading" border>
+        <!-- <el-table-column label="编号" width="80" align="center">
+          <template slot-scope="scope">{{scope.row.id}}</template>
+        </el-table-column> -->
+        <el-table-column label="生产地名称" width="100px" show-overflow-tooltip align="center">
+          <template slot-scope="scope">{{scope.row.originName}}</template>
+        </el-table-column>
+        <el-table-column label="生产地面积(亩)" width="100px" align="center">
+          <template slot-scope="scope">{{scope.row.originArea}}</template>
+        </el-table-column>
+        <el-table-column label="生产地图片" width="100" align="center">
+          <template slot-scope="scope">
+            <div v-if="scope.row.imgUrl">
+              <el-image 
+              v-for="(img,index) in scope.row.imgUrl.split(',')" :key="index" 
+                style="width: 100px; height: 100px"
+                :src="img" 
+                :preview-src-list="scope.row.imgUrl">
+              </el-image>
+              <!-- <img style="height: 80px"  v-for="(img,index) in scope.row.imgUrl.split(',')" :key="index" :src="img"> -->
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column label="生产地宣传视频" show-overflow-tooltip  width="100px" align="center">
+          <template slot-scope="scope">{{scope.row.videoUrl}}</template>
+        </el-table-column>
+        <el-table-column label="生产地vr" show-overflow-tooltip  width="100px" align="center">
+          <template slot-scope="scope">{{scope.row.vrUrl}}</template>
+        </el-table-column>
+        <el-table-column label="实时监控视频" show-overflow-tooltip  width="100px" align="center">
+          <template slot-scope="scope">{{scope.row.cameraUrl}}</template>
+        </el-table-column>
+        <el-table-column label="人员数" align="center">
+          <template slot-scope="scope">{{scope.row.peopleNum}}</template>
+        </el-table-column>
+        <el-table-column label="建立日期(年)" align="center">
+          <template slot-scope="scope">{{scope.row.foundDate}}</template>
+        </el-table-column>
+        <el-table-column label="联系人" width="100px" align="center">
+          <template slot-scope="scope">{{scope.row.linkUser}}</template>
+        </el-table-column>
+        <el-table-column label="联系方式" width="110px" align="center">
+          <template slot-scope="scope">{{scope.row.linkPhone}}</template>
+        </el-table-column>
+        <el-table-column label="简介" show-overflow-tooltip  width="120px" align="center">
+          <template slot-scope="scope">{{scope.row.summary}}</template>
+        </el-table-column>
+        <el-table-column label="产出物" align="center">
+          <!-- <template slot-scope="scope">{{scope.row.isCert}}</template> -->
+        </el-table-column>
+        <el-table-column label="产出物种植面积(亩)" align="center">
+          <template slot-scope="scope">{{scope.row.originArea}}</template>
+        </el-table-column>
+        <el-table-column label="产出物总产量(吨)" align="center">
+          <!-- <template slot-scope="scope">{{scope.row.compManageLicenseNum}}</template> -->
+        </el-table-column>
+        <el-table-column label="产出物亩产值(万元)" align="center">
+          <template slot-scope="scope">{{scope.row.compSocialCode}}</template>
+        </el-table-column>
+        <el-table-column label="所在省" align="center">
+          <template slot-scope="scope">{{scope.row.provinceId}}</template>
+        </el-table-column>
+        <el-table-column label="所在市" align="center">
+          <template slot-scope="scope">{{scope.row.cityId}}</template>
+        </el-table-column>
+        <el-table-column label="所在县" align="center">
+          <template slot-scope="scope">{{scope.row.countyId}}</template>
+        </el-table-column>
+        <el-table-column label="详细地址" show-overflow-tooltip align="center">
+          <template slot-scope="scope">{{scope.row.detailAddress}}</template>
+        </el-table-column>
+        <el-table-column label="经度(°)" align="center">
+          <template slot-scope="scope">{{scope.row.longitude}}</template>
+        </el-table-column>
+        <el-table-column label="维度(°)" align="center">
+          <template slot-scope="scope">{{scope.row.latitude}}</template>
+        </el-table-column>
+        <el-table-column label="海拔" align="center">
+          <template slot-scope="scope">{{scope.row.countyId}}</template>
+        </el-table-column>
+        <el-table-column label="供应商名称" show-overflow-tooltip align="center">
+          <template slot-scope="scope">{{scope.row.compName}}</template>
+        </el-table-column>
+        <el-table-column label="操作" width="160" fixed="right" align="center">
+          <template slot-scope="scope">
+            <el-row>
+            <el-button size="mini"
+                       type="text"
+                       @click="handleUpdateorigin(scope.$index, scope.row)">
+              编辑
+            </el-button>
+            <el-button size="mini"
+                       type="text"
+                       @click="handleDelete(scope.$index, scope.row)">删除
+            </el-button>
+            </el-row>
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
+    <div class="pagination-container">
+      <el-pagination
+        background
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        layout="total, sizes,prev, pager, next,jumper"
+        :current-page.sync="listQuery.pageNum"
+        :page-size="listQuery.pageSize"
+        :page-sizes="[5,10,15]"
+        :total="total">
+      </el-pagination>
+    </div>
+  </div>
+</template>
+<script>
+  import {fetchList,createorigin,deleteOrigin,getorigin,updateorigin} from '@/api/origin';
+  import {formatDate} from '@/utils/date';
+
+  const defaultListQuery = {
+    pageNum: 1,
+    pageSize: 5,
+    keyword: null
+  };
+
+  export default {
+    name: 'roleList',
+    data() {
+      return {
+        listQuery: Object.assign({}, defaultListQuery),
+        list: null,
+        total: null,
+        listLoading: false,
+        dialogVisible: false,
+        isEdit: false
+      }
+    },
+    created() {
+      this.getList();
+    },
+    filters: {
+      formatDateTime(time) {
+        if (time == null || time === '') {
+          return 'N/A';
+        }
+        let date = new Date(time);
+        return formatDate(date, 'yyyy-MM-dd hh:mm:ss')
+      }
+    },
+    methods: {
+      handleResetSearch() {
+        this.listQuery = Object.assign({}, defaultListQuery);
+      },
+      handleSearchList() {
+        this.listQuery.pageNum = 1;
+        this.getList();
+      },
+      handleSizeChange(val) {
+        this.listQuery.pageNum = 1;
+        this.listQuery.pageSize = val;
+        this.getList();
+      },
+      handleCurrentChange(val) {
+        this.listQuery.pageNum = val;
+        this.getList();
+      },
+      handleAddorigin() {
+        this.$router.push({path:'/ums/addorigin'});
+      },
+      handleDelete(index, row) {
+        this.$confirm('是否要删除该供应商?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          let id = [];
+          id.push(row.id);
+          let params=new URLSearchParams();
+          params.append("id",id);
+          console.log('del-params',params);
+          deleteOrigin(params).then(response => {
+            this.$message({
+              type: 'success',
+              message: '删除成功!'
+            });
+            this.getList();
+          });
+        });
+      },
+      handleUpdateorigin(index,row){
+        this.$router.push({path:'/ums/updateorigin',query:{id:row.id}});
+      },
+      getList() {
+        this.listLoading = true;
+        fetchList(this.listQuery).then(response => {
+          console.log('response',JSON.parse(JSON.stringify(response)));
+          this.listLoading = false;
+          this.list = response.data.list;
+          this.total = response.data.total;
+        }).catch(err => {
+          this.listLoading = false;
+        });
+      }
+    }
+  }
+</script>
+<style></style>
+
+

+ 12 - 0
src/views/ums/origin/update.vue

@@ -0,0 +1,12 @@
+<template> 
+  <origin-detail :is-edit='true'></origin-detail>
+</template>
+<script>
+  import originDetail from './components/originDetail'
+  export default {
+    name: 'updateOrigin',
+    components: { originDetail }
+  }
+</script>
+<style>
+</style>

BIN
static/zuobiao.gif