wxy 4 tahun lalu
induk
melakukan
8b71e1c630

+ 10 - 0
src/components/common/Sidebar.vue

@@ -57,6 +57,16 @@ export default {
           index: 'company',
           title: '企业信息',
         },
+        {
+          icon: 'el-icon-s-home',
+          index: 'user',
+          title: '客户信息',
+        },
+        {
+          icon: 'el-icon-s-home',
+          index: 'repair',
+          title: '维修信息',
+        },
       ],
     };
   },

+ 10 - 0
src/router/index.js

@@ -25,6 +25,16 @@ export default new Router({
           component: () => import('../views/company/index.vue'),
           meta: { title: '企业信息' },
         },
+        {
+          path: '/user',
+          component: () => import('../views/user/index.vue'),
+          meta: { title: '用户信息' },
+        },
+        {
+          path: '/repair',
+          component: () => import('../views/repair/index.vue'),
+          meta: { title: '维修信息' },
+        },
       ],
     },
     {

+ 54 - 0
src/store/car.js

@@ -0,0 +1,54 @@
+//第一步
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  //接口地址
+  car: `/api/servicetest/carorder`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  //查询列表 skip:第一页,limit:第一页显示的数据,info:其余查询参数
+  async query({ commit }, { skip = 0, limit, ...info } = {}) {
+    //连接接口。。。。
+    const res = await this.$axios.$get(`${api.car}`, {
+      skip,
+      limit,
+      ...info,
+    });
+    //把数据集合res返回
+    return res;
+  },
+  //创建数据  payload是添加form表单中的数据集合  创建数据的时候需要拿到form表单里面的数据
+  async create({ commit }, payload) {
+    //通过$axios提交post请求????
+    const res = await this.$axios.$post(`${api.car}`, payload);
+    return res;
+  },
+  //查询详情,payload:参数位,一般传当前数据id
+  async fetch({ commit }, payload) {
+    //有/一般都是路径
+    const res = await this.$axios.$get(`${api.car}/${payload}`);
+    return res;
+  },
+  //修改:id: 当前数据id, data: 当前修改数据的新form表单
+  async update({ commit }, { id, ...data }) {
+    const res = await this.$axios.$post(`${api.car}/update/${id}`, data);
+    return res;
+  },
+  //删除:payload:参数位,一般传当前数据id
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.car}/${payload}`);
+    return res;
+  },
+};
+
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 4 - 0
src/store/index.js

@@ -6,6 +6,8 @@ import login from './login';
 import company from './company';
 import testmess from './testmess';
 import password from './password';
+import repair from './repair';
+import car from './car';
 
 Vue.use(Vuex);
 
@@ -18,5 +20,7 @@ export default new Vuex.Store({
     company,
     testmess,
     password,
+    repair,
+    car,
   },
 });

+ 54 - 0
src/store/repair.js

@@ -0,0 +1,54 @@
+//第一步
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  //接口地址
+  repair: `/api/servicetest/repair`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  //查询列表 skip:第一页,limit:第一页显示的数据,info:其余查询参数
+  async query({ commit }, { skip = 0, limit, ...info } = {}) {
+    //连接接口。。。。
+    const res = await this.$axios.$get(`${api.repair}`, {
+      skip,
+      limit,
+      ...info,
+    });
+    //把数据集合res返回
+    return res;
+  },
+  //创建数据  payload是添加form表单中的数据集合  创建数据的时候需要拿到form表单里面的数据
+  async create({ commit }, payload) {
+    //通过$axios提交post请求????
+    const res = await this.$axios.$post(`${api.repair}`, payload);
+    return res;
+  },
+  //查询详情,payload:参数位,一般传当前数据id
+  async fetch({ commit }, payload) {
+    //有/一般都是路径
+    const res = await this.$axios.$get(`${api.repair}/${payload}`);
+    return res;
+  },
+  //修改:id: 当前数据id, data: 当前修改数据的新form表单
+  async update({ commit }, { id, ...data }) {
+    const res = await this.$axios.$post(`${api.repair}/update/${id}`, data);
+    return res;
+  },
+  //删除:payload:参数位,一般传当前数据id
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.repair}/${payload}`);
+    return res;
+  },
+};
+
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 10 - 3
src/views/company/index.vue

@@ -4,7 +4,7 @@
       <el-col :span="24" class="main">
         <breadcrumb :breadcrumbTitle="this.$route.meta.title"></breadcrumb>
         <el-col :span="24" class="container">
-          <el-form ref="form" :model="formData" label-width="120px" :inline="true">
+          <el-form ref="form" :model="form" label-width="120px" :inline="true">
             <el-form-item label="顾客姓名">
               <el-input v-model="form.name"></el-input>
             </el-form-item>
@@ -35,11 +35,18 @@
             <el-form-item label="行驶证日期">
               <el-date-picker type="date" placeholder="选择日期" v-model="form.date3" style="width: 100%;"></el-date-picker>
             </el-form-item>
-            <el-form-item class="btn">
+            <!-- <el-form-item class="btn">
               <el-button type="primary" size="medium" @click="addData">添加</el-button>
               <el-button type="primary" size="medium">保存</el-button>
-            </el-form-item>
+            </el-form-item> -->
             <el-divider></el-divider>
+          </el-form>
+          <el-form :model="formData" ref="formData">
+            <el-col :span="24" class="btn">
+              <el-button type="primary" size="medium" @click="addData">添加</el-button>
+              <el-button type="primary" size="medium">保存</el-button>
+              <el-divider></el-divider>
+            </el-col>
             <el-table :data="formData.tableData" border stripe style="width: 100%;">
               <el-table-column prop="project" label="维修项目" class="tab1">
                 <template slot-scope="scope">

+ 42 - 0
src/views/repair/index.vue

@@ -0,0 +1,42 @@
+<template>
+  <div id="Dashboard">
+    <el-row>
+      <el-col :span="24" class="main">
+        <breadcrumb :breadcrumbTitle="this.$route.meta.title"></breadcrumb>
+        <el-col :span="24" class="container">
+          维修
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import breadcrumb from '@c/common/breadcrumb.vue';
+
+import { mapState, createNamespacedHelpers } from 'vuex';
+
+import bus from '@/components/common/bus';
+export default {
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  name: 'index',
+  props: {},
+  components: {
+    breadcrumb,
+  },
+  data: function() {
+    return {
+      breadcrumbTitle: '',
+    };
+  },
+  created() {},
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+  },
+};
+</script>
+
+<style lang="less" scoped></style>

+ 232 - 0
src/views/user/index.vue

@@ -0,0 +1,232 @@
+<template>
+  <div id="Dashboard">
+    <el-row>
+      <el-col :span="24" class="main">
+        <breadcrumb :breadcrumbTitle="this.$route.meta.title"></breadcrumb>
+        <el-col :span="24" class="container">
+          <el-col :span="6" class="txt">
+            用户列表
+          </el-col>
+          <el-col :span="18" class="btn">
+            <el-button type="primary" size="mini" @click="addnews()">添加</el-button>
+          </el-col>
+          <dataTable :fields="newfields" :data="newdata" :opera="newopera" :total="total" @query="searchUser"> </dataTable>
+        </el-col>
+      </el-col>
+    </el-row>
+    <el-dialog :visible.sync="coldialog" title="客户信息" @close="coltoClose" width="30%">
+      <data-form :data="form1" :fields="colFields" :rules="{}">
+        <template #options="{item}">
+          <template v-if="item.model === 'site'">
+            <el-option label="政策卡片" value="zckp"></el-option>
+            <el-option label="政策报告" value="zcbg"></el-option>
+            <el-option label="政策书籍" value="zcsj"></el-option>
+            <el-option label="政策解读" value="zcjd"></el-option>
+            <el-option label="创新平台园区" value="cxptyq"></el-option>
+            <el-option label="税收与金融" value="ssyjr"></el-option>
+            <el-option label="知识产权" value="zscq"></el-option>
+            <el-option label="科技人才" value="kjrc"></el-option>
+            <el-option label="科技成果转化" value="kjcgzh"></el-option>
+            <el-option label="综合政策指导" value="zhzczd"></el-option>
+          </template>
+        </template>
+      </data-form>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import breadcrumb from '@c/common/breadcrumb.vue';
+import dataTable from '@/components/frame/filter-page-table.vue';
+import dataForm from '@/components/frame/form.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: car } = createNamespacedHelpers('car');
+
+import bus from '@/components/common/bus';
+export default {
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  name: 'index',
+  props: {},
+  components: {
+    breadcrumb,
+    dataTable,
+    dataForm,
+  },
+  data: function() {
+    return {
+      breadcrumbTitle: '',
+      newdata: [
+        // {
+        //   name: '11',
+        //   license: '22',
+        //   mobile: '33',
+        //   model: '44',
+        //   carcolor: '55',
+        //   mileage: '66',
+        //   vin: '77',
+        //   insurance: '88',
+        //   drive: '99',
+        //   travel: '00',
+        // },
+      ],
+      newfields: [
+        {
+          label: '顾客姓名',
+          prop: 'name',
+          filter: 'input',
+        },
+        {
+          label: '车牌号',
+          prop: 'license',
+        },
+        {
+          label: '电话',
+          prop: 'mobile',
+        },
+        {
+          label: '车型',
+          prop: 'model',
+        },
+        {
+          label: '车辆颜色',
+          prop: 'carcolor',
+        },
+        {
+          label: '行驶里程',
+          prop: 'mileage',
+        },
+        {
+          label: 'vin号',
+          prop: 'vin',
+        },
+        {
+          label: '保险日期',
+          prop: 'insurance',
+        },
+        {
+          label: '驾驶证日期',
+          prop: 'drive',
+        },
+        {
+          label: '行驶证日期',
+          prop: 'travel',
+        },
+      ],
+      newopera: [
+        {
+          label: '修改',
+          // icon: 'el-icon-edit',
+          method: 'edit',
+        },
+        {
+          label: '删除',
+          // icon: 'el-icon-delete',
+          method: 'delete',
+        },
+        {
+          label: '添加维修',
+          // icon: 'el-icon-delete',
+          method: 'repair',
+        },
+      ],
+      total: 0,
+      coldialog: false,
+      form1: {},
+      colFields: [
+        {
+          label: '顾客姓名',
+          model: 'name',
+        },
+        {
+          label: '车牌号',
+          model: 'license',
+        },
+        {
+          label: '电话',
+          model: 'mobile',
+        },
+        {
+          label: '车型',
+          model: 'model',
+        },
+        {
+          label: '车辆颜色',
+          model: 'carcolor',
+        },
+        {
+          label: '行驶里程',
+          model: 'mileage',
+        },
+        {
+          label: 'vin号',
+          model: 'vin',
+        },
+        {
+          label: '保险日期',
+          model: 'insurance',
+        },
+        {
+          label: '驾驶证日期',
+          model: 'drive',
+        },
+        {
+          label: '行驶证日期',
+          model: 'travel',
+        },
+      ],
+    };
+  },
+  created() {
+    this.search();
+  },
+  methods: {
+    ...car({ newquery: 'query', newfetch: 'fetch', newdelete: 'delete', newcreate: 'create', newupdate: 'update' }),
+    // 查询列表
+    async search({ skip = 0, limit = 10, ...info } = {}) {
+      const res = await this.newquery({ skip, limit, ...info });
+      console.log(res);
+      // if (this.$checkRes(res)) {
+      //   this.$set(this, `newdata`, res.data);
+      //   this.$set(this, `total`, res.total);
+      // } else {
+      //   this.$message({
+      //     message: res.errmsg,
+      //     type: 'error',
+      //   });
+      // }
+    },
+    searchUser() {
+      console.log('我被触发');
+    },
+    coltoClose() {
+      console.log('取消');
+      this.coldialog = false;
+    },
+    edit() {
+      this.coldialog = true;
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+};
+</script>
+
+<style lang="less" scoped>
+/deep/.el-table th.is-leaf > .cell {
+  padding: 0px;
+}
+/deep/.el-table th.is-leaf:nth-child(10) > .cell {
+  padding: 0px;
+}
+.txt {
+  margin: 0 0 15px 0;
+  padding-left: 34px;
+}
+.btn {
+  text-align: right;
+  margin: 0 0 15px 0;
+}
+</style>

+ 3 - 3
vue.config.js

@@ -20,15 +20,15 @@ module.exports = {
     //api地址前缀
     proxy: {
       '/files': {
-        target: 'http://free.liaoningdoupo.com',
+        target: 'http://192.168.1.43:8081',
       },
       '/api': {
-        target: 'http://free.liaoningdoupo.com',
+        target: 'http://192.168.1.43:8081',
         changeOrigin: true,
         ws: true,
       },
       '/ws': {
-        target: 'http://free.liaoningdoupo.com',
+        target: 'http://192.168.1.43:8081',
         ws: true,
       },
     },