wang jun 2 년 전
부모
커밋
c4461ad5f8

+ 39 - 0
src/api/data.js

@@ -164,3 +164,42 @@ export const updatecookisactive = formData => {
     data: formData
   })
 }
+
+// 获取订餐订单列表
+export const getmealorderlist = searchData => {
+  return axios.request({
+    url: '/admin/meal/getorderlist',
+    method: 'post',
+    data: searchData
+  })
+}
+
+// 获取到访类型
+export const getvbtlist = () => {
+  return axios.request({
+    url: '/admin/visit/getbusinesstyoelist',
+    method: 'post'
+  })
+}
+/**
+ * 新增到防
+ */
+export const newvisitinfo = formData => {
+  return axios.request({
+    url: '/admin/visit/newinfo',
+    method: 'post',
+    data: formData
+  })
+}
+/**
+ * 获取到访列表
+ * @param {*} formData
+ * @returns
+ */
+export const getvisitlist = searchData => {
+  return axios.request({
+    url: '/admin/visit/getlist',
+    method: 'post',
+    data: searchData
+  })
+}

+ 1 - 1
src/config/index.js

@@ -18,7 +18,7 @@ export default {
    */
   baseUrl: {
     dev: 'http://yyky.com/index.php',
-    pro: 'http://app.tjzhxx.cn:4200/index.php'
+    pro: 'https://app.tjzhxx.cn:4200/index.php'
     // dev_lab: 'http://labourunionserver.dev.com/index.php',
     // pro_lab: 'https://app.tjzhxx.cn:1443/index.php'
   },

+ 13 - 0
src/index.less

@@ -3,3 +3,16 @@
 @menu-dark-title: #001529;
 @menu-dark-active-bg: #000c17;
 @layout-sider-background: #001529;
+.my_tab1_primary{
+    color: @primary-color ;
+}
+.title1{
+    font-size: 18px;
+    padding-bottom: 2px;
+    border-bottom: 1px solid @subsidiary-color ;
+    margin-bottom: 0.5em;
+}
+.title_body{
+    margin-bottom: 1.5em;
+}
+

+ 21 - 2
src/locale/lang/zh-CN.js

@@ -57,8 +57,10 @@ export default {
   webuserlist: '用户列表',
   usersetting: '用户设置',
   changepasswd: '改用户密码',
-  cateringcenter: '配餐中心',
+  cateringcenter: '套餐管理',
+  cateringcenter2: '日间照料中心',
   centerlist: '配送中心列表',
+  centerlist2: '中心列表',
   editcenter: '配送中心编辑',
   meallist: '套餐列表',
   editmeal: '套餐编辑',
@@ -71,5 +73,22 @@ export default {
   week_5: '星期五',
   week_6: '星期六',
   week_7: '星期日',
-  cooklist: '菜品列表'
+  cooklist: '菜品列表',
+  orderfood: '订餐管理',
+  orderfoodlist: '订单列表',
+  status_0: '已创建',
+  status_1: '已支付',
+  status_2: '已完结',
+  status_error_1: '支付失败',
+  status_delivery_0: '待处理',
+  status_delivery_1: '已发送',
+  status_delivery_2: '已送达',
+  visitmanage: '到访管理',
+  visitinsert: '到访新增',
+  visitlist: '到访列表',
+  is_member_0: '否',
+  is_member_1: '是',
+  houseserver: '家政服务',
+  houseserverlist: '预定列表',
+  houseservertypelist: '类型列表'
 }

+ 116 - 4
src/router/routers.js

@@ -109,6 +109,52 @@ export default [
       }
     ]
   },
+  {
+    path: '/center',
+    name: 'cateringcenter2',
+    meta: {
+      icon: 'ios-home-outline',
+      title: 'cateringcenter',
+      access: ['admin', 'meal'],
+      showAlways: true
+    },
+    component: Main,
+    children: [
+      {
+        path: 'centerlist2',
+        name: 'centerlist2',
+        meta: {
+          icon: 'ios-menu-outline',
+          title: 'centerlist2',
+          access: ['admin']
+        },
+        component: () => import('@/view/center/centerlist.vue')
+      }
+    ]
+  },
+  {
+    path: '/orderfood',
+    name: 'orderfood',
+    meta: {
+      icon: 'ios-ionic',
+      title: 'orderfood',
+      access: ['admin', 'meal'],
+      showAlways: true
+    },
+    component: Main,
+    children: [
+      {
+        path: 'orderfoodlist',
+        name: 'orderfoodlist',
+        meta: {
+          icon: 'ios-menu-outline',
+          title: 'orderfoodlist',
+          access: ['admin', 'meal']
+        },
+        component: () => import('@/view/orderfood/orderfoodlist.vue')
+      }
+    ]
+  },
   {
     path: '/meal',
     name: 'cateringcenter',
@@ -120,7 +166,7 @@ export default [
     },
     component: Main,
     children: [
-      {
+      /* {
         path: 'centerlist',
         name: 'centerlist',
         meta: {
@@ -129,9 +175,9 @@ export default [
           access: ['admin']
         },
         component: () => import('@/view/meal/centerlist.vue')
-      },
+      }, */
       // 暂不使用
-      {
+      /* {
         path: 'editcenter',
         name: 'editcenter',
         meta: {
@@ -141,7 +187,7 @@ export default [
           hideInMenu: true
         },
         component: () => import('@/view/meal/centerlist.vue')
-      },
+      }, */
       {
         path: 'meallist',
         name: 'meallist',
@@ -196,6 +242,72 @@ export default [
       }
     ]
   },
+  {
+    path: '/visit',
+    name: 'visitmanage',
+    meta: {
+      icon: 'md-happy',
+      title: 'visitmanage',
+      access: ['admin', 'meal'],
+      showAlways: true
+    },
+    component: Main,
+    children: [
+      {
+        path: 'visitinsert',
+        name: 'visitinsert',
+        meta: {
+          icon: 'ios-menu-outline',
+          title: 'visitinsert',
+          access: ['admin', 'meal']
+        },
+        component: () => import('@/view/visit/visitinsert.vue')
+      },
+      {
+        path: 'visitlist',
+        name: 'visitlist',
+        meta: {
+          icon: 'ios-menu-outline',
+          title: 'visitlist',
+          access: ['admin', 'meal']
+        },
+        component: () => import('@/view/visit/visitlist.vue')
+      }
+    ]
+  },
+  {
+    path: '/houseserver',
+    name: 'houseserver',
+    meta: {
+      icon: 'ios-flower',
+      title: 'houseserver',
+      access: ['admin', 'meal'],
+      showAlways: true
+    },
+    component: Main,
+    children: [
+      {
+        path: 'houseservertypelist',
+        name: 'houseservertypelist',
+        meta: {
+          icon: 'ios-menu-outline',
+          title: 'houseservertypelist',
+          access: ['admin', 'meal']
+        },
+        component: () => import('@/view/visit/visitinsert.vue')
+      },
+      {
+        path: 'houseserverlist',
+        name: 'houseserverlist',
+        meta: {
+          icon: 'ios-menu-outline',
+          title: 'houseserverlist',
+          access: ['admin', 'meal']
+        },
+        component: () => import('@/view/visit/visitinsert.vue')
+      }
+    ]
+  },
   {
     path: '/401',
     name: 'error_401',

+ 161 - 0
src/view/center/centerlist.vue

@@ -0,0 +1,161 @@
+<style>
+    .table-tools{
+        text-align: left;
+        padding: 0.5em;
+        background: #dcdee2;
+    }
+</style>
+<template>
+    <div>
+        <Row type="flex" justify="center" align="middle">
+            <Col span="24">
+                <Form ref="searchForm" :model="searchData" inline>
+                    <Form-item prop="name_center">
+                        <Input type="text" style="width:250px" v-model="searchData.name_center" placeholder="配送中心">
+                        </Input>
+                    </Form-item>
+                    <Form-item prop="address">
+                        <Input type="text" style="width:250px" v-model="searchData.address" placeholder="地址">
+                        </Input>
+                    </Form-item>
+                     <Form-item prop="is_active">
+                         <Select v-model="searchData.is_active" style="width:200px" placeholder="状态">
+                           <Option value="">全部</Option>
+                            <Option value="0">{{ $t('isactive_0') }}</Option>
+                            <Option value="1">{{ $t('isactive_1') }}</Option>
+                        </Select>
+                    </Form-item>
+                    <Form-item>
+                        <Button type="primary" @click="search">搜索</Button>
+                    </Form-item>
+                </Form>
+            </Col>
+            <!--<Col span="24" class="table-tools">
+                <Button type="info" @click="search">添加</Button>
+            </Col>-->
+            <Col span="24">
+                <Table :columns="column" :data="list" ></Table>
+                <Page :total="pagedata.total" size="small" :current="pagedata.current" :page-size="pagedata.pageSize" :page-size-opts="pagedata.pageSizeOpts"
+                    @on-change="pageChange" @on-page-size-change="sizeChange"
+                show-elevator show-sizer show-total></Page>
+            </Col>
+        </Row>
+    </div>
+</template>
+<script>
+import { getcenterlist } from '@/api/data'
+export default {
+  name: 'centerlist',
+  data () {
+    var self = this
+    return {
+      list: [],
+      column: [
+        {
+          title: 'ID',
+          key: 'id',
+          width: 70
+        },
+        {
+          title: '中心名',
+          key: 'name_center',
+          width: 200
+        },
+        {
+          title: '地址',
+          key: 'address'
+          // width: 70
+        },
+        {
+          title: '状态',
+          key: 'is_active',
+          width: 70,
+          render: function (h, params) {
+            const usestr = self.$t('isactive_' + params.row.is_active)
+            var div = h('div', {}, usestr)
+            return div
+          }
+        },
+        {
+          title: '创建时间',
+          key: 'createtime',
+          width: 150
+        }/*,
+        {
+          title: '操作',
+          key: 'option',
+          align: 'left',
+          width: 150,
+          render: function (h, params) {
+            var btn1 = h('Button', {
+              props: {
+                type: 'primary',
+                size: 'small'
+              },
+              on: {
+                click: (data) => {
+                  // 编辑
+                }
+              }
+            }, '编辑')
+            var btns = []
+            btns.push(btn1)
+            return btns
+          }
+        } */
+      ],
+      searchData: {
+        name_center: '',
+        is_active: '',
+        address: ''
+      },
+      pagedata: {
+        total: 10,
+        current: 1,
+        pageSize: 10,
+        pageSizeOpts: [10, 50, 100]
+      },
+      updateisrightData: {
+        userid: 0,
+        wname: '',
+        node: ''
+      }
+    }
+  },
+  methods: {
+    search () {
+      this.pagedata.current = 1
+      this.getList()
+    },
+    getList () {
+      this.searchData.page = this.pagedata.current
+      this.searchData.size = this.pagedata.pageSize
+      getcenterlist(this.searchData).then(res => {
+        const data = res.data
+        if (data.code !== 200) {
+          this.$Message.error(data.msg)
+          this.list = []
+          this.pagedata.total = 0
+          this.pagedata.current = 1
+        } else {
+          const usedata = data.data
+          this.pagedata.total = usedata.count
+          this.list = usedata.list
+        }
+      })
+    },
+    pageChange (current) {
+      this.pagedata.current = current
+      this.getList()
+    },
+    sizeChange (pageSize) {
+      this.pagedata.pageSize = pageSize
+      this.pagedata.current = 1
+      this.getList()
+    }
+  },
+  mounted () {
+    this.getList()
+  }
+}
+</script>

+ 1 - 1
src/view/meal/meallist.vue

@@ -59,7 +59,7 @@ export default {
         {
           title: '中心名',
           key: 'name_center',
-          width: 150
+          width: 200
         },
         {
           title: '套餐名',

+ 229 - 0
src/view/orderfood/orderfoodlist.vue

@@ -0,0 +1,229 @@
+<template>
+    <div>
+        <Row type="flex" justify="center" align="middle">
+            <Col span="24">
+                <Form ref="searchForm" :model="searchData" inline>
+                    <Form-item prop="name_center">
+                        <Input type="text" style="width:250px" v-model="searchData.name_center" placeholder="配送中心">
+                        </Input>
+                    </Form-item>
+                    <Form-item prop="orderno">
+                        <Input type="text" style="width:250px" v-model="searchData.orderno" placeholder="订单号">
+                        </Input>
+                    </Form-item>
+                    <Form-item>
+                        <Date-picker type="datetimerange" placeholder="创建时间" style="width: 300px" @on-change="timechange"></Date-picker>
+                    </Form-item>
+                    <Form-item prop="status">
+                        <Select v-model="searchData.status" style="width:150px" placeholder="状态">
+                            <Option value="">全部</Option>
+                            <Option value="0">{{ $t('status_0') }}</Option>
+                            <Option value="1">{{ $t('status_1') }}</Option>
+                            <Option value="2">{{ $t('status_2') }}</Option>
+                            <Option value="-1">{{ $t('status_error_1') }}</Option>
+                        </Select>
+                    </Form-item>
+                    <Form-item prop="status_delivery">
+                        <Select v-model="searchData.status_delivery" style="width:150px" placeholder="配送状态">
+                            <Option value="">全部</Option>
+                            <Option value="0">{{ $t('status_delivery_0') }}</Option>
+                            <Option value="1">{{ $t('status_delivery_1') }}</Option>
+                            <Option value="2">{{ $t('status_delivery_2') }}</Option>
+                        </Select>
+                    </Form-item>
+                    <Form-item>
+                        <Button type="primary" @click="search">搜索</Button>
+                    </Form-item>
+                </Form>
+            </Col>
+            <Col span="24">
+                <Table :columns="column" :data="list" ></Table>
+                <Page :total="pagedata.total" size="small" :current="pagedata.current" :page-size="pagedata.pageSize" :page-size-opts="pagedata.pageSizeOpts"
+                    @on-change="pageChange" @on-page-size-change="sizeChange"
+                show-elevator show-sizer show-total></Page>
+            </Col>
+        </Row>
+        <Modal v-model="showdetail" title="订单详细" width="1000">
+            <div class="title1"> {{ detailinfo.orderno }}</div>
+            <Row :gutter="10" class="title_body">
+                <Col span="8">中心名称:{{detailinfo.name_center}}</Col>
+                <Col span="8">订购份数:{{detailinfo.quantity}}</Col>
+                <Col span="8">价格:{{detailinfo.money}}</Col>
+                <Col span="8">
+                    <span class="my_tab1_primary">状态</span>:
+                    <span v-if="detailinfo.status>=0">{{$t('status_' + detailinfo.status)}}</span>
+                    <span v-else>{{$t('status_error' + Math.abs(detailinfo.status))}}</span>
+                </Col>
+                <Col span="8">
+                    <span class="my_tab1_primary">配送状态</span>:
+                    {{$t("status_delivery_"+detailinfo.status_delivery)}}
+                </Col>
+                <Col span="8">创建时间:{{detailinfo.createtime}}</Col>
+                <Col span="8">支付时间:{{detailinfo.paytime}}</Col>
+                <Col span="8">到货时间:{{detailinfo.deliverytime}}</Col>
+                <Col span="24">备注:{{detailinfo.remark}}</Col>
+                <Col span="24">
+                    菜品:
+                    <span v-for="item in detailinfo.detail" :key="item.id" style="margin-right: 10px;">{{item.name_cook}}</span>
+                </Col>
+            </Row>
+            <div class="title1">收货人</div>
+            <Row :gutter="10" class="title_body">
+                <Col span="6">收货地址:{{detailinfo.receiver_address}}</Col>
+                <Col span="6">收货人姓名:{{detailinfo.receiver_username}}</Col>
+                <Col span="6">收货人手机号:{{detailinfo.receiver_phone}}</Col>
+            </Row>
+            <div slot="footer">
+            </div>
+        </Modal>
+    </div>
+</template>
+<script>
+import { getmealorderlist } from '@/api/data'
+export default {
+  data () {
+    var self = this
+    return {
+      searchData: {
+        name_center: '',
+        orderno: '',
+        createtime: [],
+        status_delivery: ''
+      },
+      detailinfo: [],
+      showdetail: false,
+      column: [
+        {
+          title: 'ID',
+          key: 'id',
+          width: 70
+        },
+        {
+          title: '中心名',
+          key: 'name_center',
+          width: 200
+        },
+        {
+          title: '订单号',
+          key: 'orderno'
+          // width: 70
+        },
+        {
+          title: '订购份数',
+          key: 'quantity'
+        },
+        {
+          title: '价格',
+          key: 'money'
+        },
+        {
+          title: '状态',
+          key: 'status',
+          width: 100,
+          render: function (h, params) {
+            let status = params.row.status
+            let statusstr = ''
+            if (status >= 0) {
+              statusstr = self.$t('status_' + params.row.status)
+            } else {
+              statusstr = self.$t('status_error' + Math.abs(status))
+            }
+            var div = h('div', {}, statusstr)
+            return div
+          }
+        },
+        {
+          title: '配送状态',
+          key: 'status_delivery',
+          width: 100,
+          render: function (h, params) {
+            let status = params.row.status_delivery
+            let statusstr = self.$t('status_delivery_' + status)
+            var div = h('div', {}, statusstr)
+            return div
+          }
+        },
+        {
+          title: '创建时间',
+          key: 'createtime',
+          width: 150
+        },
+        {
+          title: '支付时间',
+          key: 'paytime',
+          width: 150
+        },
+        {
+          title: '操作',
+          key: 'option',
+          align: 'left',
+          width: 150,
+          render: function (h, params) {
+            var btn1 = h('Button', {
+              props: {
+                type: 'primary',
+                size: 'small'
+              },
+              on: {
+                click: (data) => {
+                  self.detailinfo = params.row
+                  self.showdetail = true
+                }
+              }
+            }, '详细')
+            var btns = []
+            btns.push(btn1)
+            return btns
+          }
+        }
+      ],
+      list: [],
+      pagedata: {
+        total: 10,
+        current: 1,
+        pageSize: 10,
+        pageSizeOpts: [10, 50, 100]
+      }
+    }
+  },
+  methods: {
+    timechange (value) {
+      this.searchData.createtime = value
+    },
+    search () {
+      this.pagedata.current = 1
+      this.getList()
+    },
+    getList () {
+      this.searchData.page = this.pagedata.current
+      this.searchData.size = this.pagedata.pageSize
+      getmealorderlist(this.searchData).then(res => {
+        const data = res.data
+        console.log(data)
+        if (data.code !== 200) {
+          this.$Message.error(data.msg)
+          this.list = []
+          this.pagedata.total = 0
+          this.pagedata.current = 1
+        } else {
+          const usedata = data.data
+          this.pagedata.total = usedata.count
+          this.list = usedata.list
+        }
+      })
+    },
+    pageChange (current) {
+      this.pagedata.current = current
+      this.getList()
+    },
+    sizeChange (pageSize) {
+      this.pagedata.pageSize = pageSize
+      this.pagedata.current = 1
+      this.getList()
+    }
+  },
+  mounted () {
+    this.getList()
+  }
+}
+</script>

+ 154 - 0
src/view/visit/visitinsert.vue

@@ -0,0 +1,154 @@
+<template>
+    <div>
+        <Row type="flex" justify="center" align="middle" >
+            <Col span="10">
+                <Form ref="editfrom" :model="fromdata" :label-width="100" :rules="fromdata_rule">
+                        <Form-item prop="name" label="姓名">
+                            <Input type="text" v-model="fromdata.name" placeholder="姓名">
+                            </Input>
+                        </Form-item>
+                        <Form-item prop="age" label="年龄">
+                            <Input type="number" v-model="fromdata.age" placeholder="年龄">
+                            </Input>
+                        </Form-item>
+                        <Form-item prop="gender" label="性别">
+                            <Radio-group v-model="fromdata.gender">
+                                <Radio label="男">男</Radio>
+                                <Radio label="女">女</Radio>
+                            </Radio-group>
+                        </Form-item>
+                        <Form-item prop="telno" label="电话">
+                            <Input type="text" v-model="fromdata.telno" placeholder="电话">
+                            </Input>
+                        </Form-item>
+                        <Form-item prop="address" label="地址">
+                            <Input type="text" v-model="fromdata.address" placeholder="地址">
+                            </Input>
+                        </Form-item>
+                        <Form-item prop="business_type" label="到访事由">
+                            <Select v-model="fromdata.business_type" placeholder="到访事由">
+                                <Option v-for="item in vbtlist" :value="item.id"  :key="item.id">
+                                    {{ item.name }}
+                                </Option>
+                            </Select>
+                        </Form-item>
+                        <Form-item prop="remark" label="备注">
+                            <Input type="textarea" v-model="fromdata.remark" placeholder="备注">
+                            </Input>
+                        </Form-item>
+                        <Form-item prop="remark" label="是否为会员">
+                            <i-switch v-model="fromdata.is_member" @on-change="ismemberchange">
+                                <span slot="open">是</span>
+                                <span slot="close">否</span>
+                            </i-switch>
+                        </Form-item>
+                        <Form-item>
+                            <Button type="primary" @click="saveinfo">提交</Button>
+                        </Form-item>
+                </Form>
+            </Col>
+        </Row>
+    </div>
+</template>
+<script>
+import { getvbtlist, newvisitinfo } from '@/api/data'
+export default {
+  name: 'visitinsert',
+  data () {
+    var self = this
+    return {
+      fromdata_rule: {
+        name: [
+          { type: 'string', required: true, message: '姓名必填' }
+        ],
+        age: [
+          {
+            required: true,
+            validator (rule, value, callback, source, options) {
+              if (value >= 100 || value <= 10 || parseInt(value) <= 0) {
+                callback(new Error('年龄错误'))
+              } else {
+                callback()
+              }
+            }
+          }
+        ],
+        telno: [
+          { type: 'string', required: true, message: '手机号必填' },
+          {
+            validator (rule, value, callback, source, options) {
+              var pattern = /^1[3-9]\d{9}$/
+              var match = value.match(pattern)
+              if (value.length === 11) {
+                if (!match) {
+                  callback(new Error('手机号错误'))
+                } else {
+                  callback()
+                }
+              } else {
+                callback(new Error('手机号错误'))
+              }
+            }
+          }
+        ],
+        business_type: [
+          { required: true, type: 'number', trigger: 'change' }
+        ]
+      },
+      vbtlist: [],
+      fromdata: {
+        id: 0,
+        business_type: 1,
+        name: '',
+        age: 20,
+        gender: '男',
+        address: '',
+        telno: '',
+        is_member: false,
+        remark: ''
+      }
+    }
+  },
+  methods: {
+    getvbtlist () {
+      getvbtlist().then(res => {
+        const data = res.data
+        if (data.code !== 200) {
+          this.$Message.error(data.msg)
+        } else {
+          this.vbtlist = data.data
+        }
+      })
+    },
+    saveinfo () {
+      this.$refs['editfrom'].validate((valid) => {
+        if (valid) {
+          if (this.fromdata.id <= 0) {
+            delete this.fromdata.id
+          }
+          newvisitinfo(this.fromdata).then(res => {
+            const data = res.data
+            if (data.code !== 200) {
+              this.$Message.error(data.msg)
+            } else {
+              this.$Message.success('新增成功')
+            }
+          })
+        } else {
+          this.$Message.error('验证失败!')
+        }
+      })
+    },
+    ismemberchange (result) {
+      if (result) {
+        this.fromdata.is_member = 1
+      } else {
+        this.fromdata.is_member = 0
+      }
+    }
+  },
+  mounted () {
+    this.getvbtlist()
+  }
+}
+</script>

+ 228 - 0
src/view/visit/visitlist.vue

@@ -0,0 +1,228 @@
+<template>
+    <div>
+        <Row type="flex" justify="center" align="middle">
+            <Col span="24">
+                <Form ref="searchForm" :model="searchData" inline>
+                    <Form-item prop="name">
+                        <Input type="text" style="width:250px" v-model="searchData.name" placeholder="姓名">
+                        </Input>
+                    </Form-item>
+                    <Form-item prop="telno">
+                        <Input type="text" style="width:250px" v-model="searchData.telno" placeholder="手机号">
+                        </Input>
+                    </Form-item>
+                    <Form-item prop="business_type" style="width:250px">
+                        <Select v-model="searchData.business_type" placeholder="到访事由">
+                            <Option value="">全部</Option>
+                            <Option v-for="item in vbtlist" :value="item.id"  :key="item.id">
+                                {{ item.name }}
+                            </Option>
+                        </Select>
+                    </Form-item>
+                    <Form-item>
+                        <Date-picker type="datetimerange" placeholder="创建时间" style="width: 300px" @on-change="timechange"></Date-picker>
+                    </Form-item>
+                    <Form-item prop="is_member">
+                        <Select v-model="searchData.is_member" style="width:150px" placeholder="是否会员">
+                            <Option value="">全部</Option>
+                            <Option value="0">{{ $t('is_member_0') }}</Option>
+                            <Option value="1">{{ $t('is_member_1') }}</Option>
+                        </Select>
+                    </Form-item>
+                    <Form-item>
+                        <Button type="primary" @click="search">搜索</Button>
+                    </Form-item>
+                </Form>
+            </Col>
+            <Col span="24">
+                <Table :columns="column" :data="list" ></Table>
+                <Page :total="pagedata.total" size="small" :current="pagedata.current" :page-size="pagedata.pageSize" :page-size-opts="pagedata.pageSizeOpts"
+                    @on-change="pageChange" @on-page-size-change="sizeChange"
+                show-elevator show-sizer show-total></Page>
+            </Col>
+        </Row>
+        <!--<Modal v-model="showdetail" title="订单详细" width="1000">
+            <div class="title1"> {{ detailinfo.orderno }}</div>
+            <Row :gutter="10" class="title_body">
+                <Col span="8">中心名称:{{detailinfo.name_center}}</Col>
+                <Col span="8">订购份数:{{detailinfo.quantity}}</Col>
+                <Col span="8">价格:{{detailinfo.money}}</Col>
+                <Col span="8">
+                    <span class="my_tab1_primary">状态</span>:
+                    <span v-if="detailinfo.status>=0">{{$t('status_' + detailinfo.status)}}</span>
+                    <span v-else>{{$t('status_error' + Math.abs(detailinfo.status))}}</span>
+                </Col>
+                <Col span="8">
+                    <span class="my_tab1_primary">配送状态</span>:
+                    {{$t("status_delivery_"+detailinfo.status_delivery)}}
+                </Col>
+                <Col span="8">创建时间:{{detailinfo.createtime}}</Col>
+                <Col span="8">支付时间:{{detailinfo.paytime}}</Col>
+                <Col span="8">到货时间:{{detailinfo.deliverytime}}</Col>
+                <Col span="24">备注:{{detailinfo.remark}}</Col>
+                <Col span="24">
+                    菜品:
+                    <span v-for="item in detailinfo.detail" :key="item.id" style="margin-right: 10px;">{{item.name_cook}}</span>
+                </Col>
+            </Row>
+            <div class="title1">收货人</div>
+            <Row :gutter="10" class="title_body">
+                <Col span="6">收货地址:{{detailinfo.receiver_address}}</Col>
+                <Col span="6">收货人姓名:{{detailinfo.receiver_username}}</Col>
+                <Col span="6">收货人手机号:{{detailinfo.receiver_phone}}</Col>
+            </Row>
+            <div slot="footer">
+            </div>
+        </Modal>-->
+    </div>
+</template>
+<script>
+import { getvisitlist, getvbtlist } from '@/api/data'
+export default {
+  name: 'visitlist',
+  data () {
+    var self = this
+    return {
+      vbtlist: [],
+      searchData: {
+        name: '',
+        business_type: '',
+        createtime: '',
+        is_member: '',
+        telno: ''
+      },
+      detailinfo: [],
+      showdetail: false,
+      column: [
+        {
+          title: 'ID',
+          key: 'id',
+          width: 70
+        },
+        {
+          title: '姓名',
+          key: 'name'
+        },
+        {
+          title: '年龄',
+          key: 'age'
+        },
+        {
+          title: '性别',
+          key: 'gender'
+        },
+        {
+          title: '地址',
+          key: 'address'
+        },
+        {
+          title: '手机号',
+          key: 'telno'
+        },
+        {
+          title: '是否会员',
+          key: 'is_member',
+          render: function (h, params) {
+            let ismember = params.row.is_member
+            let ismembersstr = self.$t('is_member_' + ismember)
+            var div = h('div', {}, ismembersstr)
+            return div
+          }
+        },
+        {
+          title: '到访事由',
+          key: 'business'
+        },
+        {
+          title: '备注',
+          key: 'remark'
+        },
+        {
+          title: '到访时间',
+          key: 'createtime'
+        }/*,
+        {
+          title: '操作',
+          key: 'option',
+          align: 'left',
+          width: 150,
+          render: function (h, params) {
+            var btn1 = h('Button', {
+              props: {
+                type: 'primary',
+                size: 'small'
+              },
+              on: {
+                click: (data) => {
+                  self.detailinfo = params.row
+                  self.showdetail = true
+                }
+              }
+            }, '详细')
+            var btns = []
+            btns.push(btn1)
+            return btns
+          }
+        } */
+      ],
+      list: [],
+      pagedata: {
+        total: 10,
+        current: 1,
+        pageSize: 10,
+        pageSizeOpts: [10, 50, 100]
+      }
+    }
+  },
+  methods: {
+    timechange (value) {
+      this.searchData.createtime = value
+    },
+    search () {
+      this.pagedata.current = 1
+      this.getList()
+    },
+    getList () {
+      this.searchData.page = this.pagedata.current
+      this.searchData.size = this.pagedata.pageSize
+      getvisitlist(this.searchData).then(res => {
+        const data = res.data
+        console.log(data)
+        if (data.code !== 200) {
+          this.$Message.error(data.msg)
+          this.list = []
+          this.pagedata.total = 0
+          this.pagedata.current = 1
+        } else {
+          const usedata = data.data
+          this.pagedata.total = usedata.count
+          this.list = usedata.list
+        }
+      })
+    },
+    pageChange (current) {
+      this.pagedata.current = current
+      this.getList()
+    },
+    sizeChange (pageSize) {
+      this.pagedata.pageSize = pageSize
+      this.pagedata.current = 1
+      this.getList()
+    },
+    getvbtlist () {
+      getvbtlist().then(res => {
+        const data = res.data
+        if (data.code !== 200) {
+          this.$Message.error(data.msg)
+        } else {
+          this.vbtlist = data.data
+        }
+      })
+    }
+  },
+  mounted () {
+    this.getList()
+    this.getvbtlist()
+  }
+}
+</script>