guhongwei 4 лет назад
Родитель
Сommit
124d983c39
39 измененных файлов с 87 добавлено и 3303 удалено
  1. 1 1
      .env
  2. 10 162
      src/components/common/Sidebar.vue
  3. 0 55
      src/components/page/403.vue
  4. 0 95
      src/components/page/Dashboard.vue
  5. 1 1
      src/components/page/Login.vue
  6. 0 209
      src/components/page/branch/index.vue
  7. 0 245
      src/components/page/business/index.vue
  8. 0 141
      src/components/page/fhSign/fhsjdeta.vue
  9. 0 146
      src/components/page/fhSign/fhxsdeta.vue
  10. 0 139
      src/components/page/fhSign/fhxsstat.vue
  11. 38 0
      src/components/page/homeIndex.vue
  12. 0 170
      src/components/page/homeParts/fhstat.vue
  13. 0 119
      src/components/page/homeParts/sjstat.vue
  14. 0 121
      src/components/page/homeParts/zhstat.vue
  15. 0 210
      src/components/page/peer/index.vue
  16. 0 136
      src/components/page/sale/index.vue
  17. 0 84
      src/components/page/setting/hdimage.vue
  18. 0 67
      src/components/page/setting/personal.vue
  19. 0 66
      src/components/page/setting/qrcode.vue
  20. 0 63
      src/components/page/setting/updatepwd.vue
  21. 0 146
      src/components/page/sjSign/sjxsdeta.vue
  22. 29 0
      src/components/page/test/index.vue
  23. 0 144
      src/components/page/zhSign/fhSign.vue
  24. 0 142
      src/components/page/zhSign/sjSign.vue
  25. 0 124
      src/components/page/zhSign/weixin.vue
  26. 1 1
      src/main.js
  27. 7 85
      src/router/index.js
  28. 0 30
      src/store/count.js
  29. 0 18
      src/store/index.js
  30. 0 43
      src/store/kh.js
  31. 0 43
      src/store/password.js
  32. 0 22
      src/store/select/khselect.js
  33. 0 43
      src/store/sj.js
  34. 0 43
      src/store/user.js
  35. 0 43
      src/store/xs.js
  36. 0 43
      src/store/xt.js
  37. 0 26
      src/store/zf.js
  38. 0 30
      src/util/menus.js
  39. 0 47
      src/util/optionTitles.js

+ 1 - 1
.env

@@ -1,2 +1,2 @@
 VUE_APP_AXIOS_BASE_URL = ''
-VUE_APP_ROUTER="/ccb"
+VUE_APP_ROUTER="/adminsys"

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

@@ -48,7 +48,7 @@ export default {
       items: [
         {
           icon: 'el-icon-s-home',
-          index: 'dashboard',
+          index: 'homeIndex',
           title: '系统首页',
         },
       ],
@@ -74,167 +74,15 @@ export default {
       let user = this.user;
       // 复制列表
       let list = _.cloneDeep(this.items);
-      // 用户为省行
-      if (user.js == '0') {
-        let data = [
-          {
-            icon: 'el-icon-copy-document',
-            index: 'peer',
-            title: '同级账号管理',
-          },
-          {
-            icon: 'el-icon-user-solid',
-            index: 'branch',
-            title: '分行用户管理',
-          },
-          {
-            icon: 'el-icon-setting',
-            index: '2',
-            title: '系统设置',
-            subs: [
-              // {
-              //   index: 'personal',
-              //   title: '个人信息',
-              // },
-              {
-                index: 'updatepwd',
-                title: '修改登录密码',
-              },
-              {
-                index: 'qrcode',
-                title: '二维码查看',
-              },
-              {
-                index: 'hdimage',
-                title: '活动设置图',
-              },
-            ],
-          },
-          {
-            icon: 'el-icon-pie-chart',
-            index: '3',
-            title: '报名统计',
-            subs: [
-              {
-                index: 'fhSign',
-                title: '分行客户报名统计',
-              },
-              {
-                index: 'sjSign',
-                title: '商家客户报名统计',
-              },
-              {
-                index: 'weixin',
-                title: '微信宣传转发统计',
-              },
-            ],
-          },
-        ];
-        list.push(...data);
-        this.$set(this, `items`, _.uniqBy(list, 'index'));
-        // 用户为分行
-      } else if (user.js == '1') {
-        let data = [
-          {
-            icon: 'el-icon-user-solid',
-            index: 'business',
-            title: '商家用户管理',
-          },
-          {
-            icon: 'el-icon-s-custom',
-            index: 'sale',
-            title: '销售员管理',
-          },
-          {
-            icon: 'el-icon-setting',
-            index: '2',
-            title: '系统设置',
-            subs: [
-              // {
-              //   index: 'personal',
-              //   title: '个人信息',
-              // },
-              {
-                index: 'updatepwd',
-                title: '修改登录密码',
-              },
-              {
-                index: 'qrcode',
-                title: '二维码查看',
-              },
-            ],
-          },
-          {
-            icon: 'el-icon-pie-chart',
-            index: '3',
-            title: '报名统计',
-            subs: [
-              {
-                index: 'fhxsdeta',
-                title: '销售员业绩明细',
-              },
-              {
-                index: 'fhxsstat',
-                title: '销售员业绩统计',
-              },
-              {
-                index: 'fhsjdeta',
-                title: '商家报名统计',
-              },
-              {
-                index: 'weixin',
-                title: '微信宣传转发统计',
-              },
-            ],
-          },
-        ];
-        list.push(...data);
-        this.$set(this, `items`, _.uniqBy(list, 'index'));
-      } else if (user.js == '2') {
-        let data = [
-          {
-            icon: 'el-icon-s-custom',
-            index: 'sale',
-            title: '销售员管理',
-          },
-          {
-            icon: 'el-icon-setting',
-            index: '2',
-            title: '系统设置',
-            subs: [
-              // {
-              //   index: 'personal',
-              //   title: '个人信息',
-              // },
-              {
-                index: 'updatepwd',
-                title: '修改登录密码',
-              },
-              {
-                index: 'qrcode',
-                title: '二维码查看',
-              },
-            ],
-          },
-          {
-            icon: 'el-icon-s-home',
-            index: '3',
-            title: '报名统计',
-            subs: [
-              {
-                index: 'sjxsdeta',
-                title: '销售员业绩明细',
-              },
-              {
-                index: 'weixin',
-                title: '微信宣传转发统计',
-              },
-            ],
-          },
-        ];
-        list.push(...data);
-        this.$set(this, `items`, _.uniqBy(list, 'index'));
-      }
+      let data = [
+        {
+          icon: 'el-icon-s-home',
+          index: 'test',
+          title: '测试菜单',
+        },
+      ];
+      list.push(...data);
+      this.$set(this, `items`, _.uniqBy(list, 'index'));
     },
   },
   watch: {

+ 0 - 55
src/components/page/403.vue

@@ -1,55 +0,0 @@
-<template>
-  <div class="error-page">
-    <div class="error-code">4<span>0</span>3</div>
-    <div class="error-desc">啊哦~ 你没有权限访问该页面哦</div>
-    <div class="error-handle">
-      <router-link to="/">
-        <el-button type="primary" size="large">返回首页</el-button>
-      </router-link>
-      <el-button class="error-btn" type="primary" size="large" @click="goBack">返回上一页</el-button>
-    </div>
-  </div>
-</template>
-
-<script>
-export default {
-  methods: {
-    goBack() {
-      this.$router.go(-1);
-    },
-  },
-};
-</script>
-
-<style scoped>
-.error-page {
-  display: flex;
-  justify-content: center;
-  align-items: center;
-  flex-direction: column;
-  width: 100%;
-  height: 100%;
-  background: #f3f3f3;
-  box-sizing: border-box;
-}
-.error-code {
-  line-height: 1;
-  font-size: 250px;
-  font-weight: bolder;
-  color: #f02d2d;
-}
-.error-code span {
-  color: #00a854;
-}
-.error-desc {
-  font-size: 30px;
-  color: #777;
-}
-.error-handle {
-  margin-top: 30px;
-  padding-bottom: 200px;
-}
-.error-btn {
-  margin-left: 100px;
-}
-</style>

+ 0 - 95
src/components/page/Dashboard.vue

@@ -1,95 +0,0 @@
-<template>
-  <div id="Dashboard">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="crumbs">
-          <el-breadcrumb separator="/">
-            <el-breadcrumb-item> <i class="el-icon-lx-cascades"></i> 系统首页 </el-breadcrumb-item>
-          </el-breadcrumb>
-        </el-col>
-        <el-col :span="24" class="container">
-          <span v-if="user.js == '0'">
-            <zhstat :list="zhstatList" :sjstatList="sjstatList" :xsstatList="xsstatList" :khstatList="khstatList"></zhstat>
-          </span>
-          <span v-else-if="user.js == '1'">
-            <fhstat :sjstatList="sjstatList" :xsstatList="xsstatList" :khstatList="khstatList"></fhstat>
-          </span>
-          <span v-else>
-            <sjstat :xsstatList="xsstatList" :khstatList="khstatList"></sjstat>
-          </span>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import zhstat from './homeParts/zhstat.vue';
-import fhstat from './homeParts/fhstat.vue';
-import sjstat from './homeParts/sjstat.vue';
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: sj } = createNamespacedHelpers('sj');
-const { mapActions: xs } = createNamespacedHelpers('xs');
-const { mapActions: kh } = createNamespacedHelpers('kh');
-import bus from '../common/bus';
-export default {
-  metaInfo: { title: '系统首页' },
-  name: 'Dashboard',
-  props: {},
-  components: {
-    // 总行统计图
-    zhstat,
-    // 分行统计图
-    fhstat,
-    // 商家统计图
-    sjstat,
-  },
-  data: function() {
-    return {
-      // 总行
-      zhstatList: [],
-      // 商家
-      sjstatList: [],
-      // 销售
-      xsstatList: [],
-      // 客户
-      khstatList: [],
-    };
-  },
-  created() {
-    this.search();
-  },
-  methods: {
-    ...sj({ sJQuery: 'query' }),
-    ...xs({ xsQuery: 'query' }),
-    ...kh({ khQuery: 'query' }),
-    async search() {
-      // 支行
-      let res = await this.sJQuery({ js: 1 });
-      if (this.$checkRes(res)) {
-        this.$set(this, `zhstatList`, res.data);
-      }
-      // 商家
-      res = await this.sJQuery({ js: 2 });
-      if (this.$checkRes(res)) {
-        this.$set(this, `sjstatList`, res.data);
-      }
-      // 销售
-      res = await this.xsQuery();
-      if (this.$checkRes(res)) {
-        this.$set(this, `xsstatList`, res.data);
-      }
-      // 客户
-      res = await this.khQuery();
-      if (this.$checkRes(res)) {
-        this.$set(this, `khstatList`, res.data);
-      }
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-};
-</script>
-
-<style lang="less" scoped></style>

+ 1 - 1
src/components/page/Login.vue

@@ -48,7 +48,7 @@ export default {
           if (this.$checkRes(res)) {
             this.$message.success('登录成功');
             // localStorage.setItem('user', JSON.stringify(res.data));
-            this.$router.push('/dashboard');
+            this.$router.push('/homeIndex');
           }
         } else {
           this.$message.error('请输入账号和密码');

+ 0 - 209
src/components/page/branch/index.vue

@@ -1,209 +0,0 @@
-<template>
-  <div id="index">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="crumbs">
-          <el-breadcrumb separator="/">
-            <el-breadcrumb-item> <i class="el-icon-lx-cascades"></i> 分行管理 </el-breadcrumb-item>
-          </el-breadcrumb>
-        </el-col>
-        <el-col :span="24" class="container down">
-          <el-col :span="24" class="downTop">
-            <el-col :span="12" class="left">
-              <el-input v-model="searchInput" placeholder="名字"></el-input>
-              <el-button type="primary" icon="el-icon-search" @click="search">搜索</el-button>
-            </el-col>
-            <el-col :span="12" class="right">
-              <el-button type="primary" size="small" @click="dialog = true">添加</el-button>
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="downList">
-            <data-table :fields="fields" :opera="opera" :data="list" :total="total" @view="toView" @edit="toEdit" @query="search"></data-table>
-          </el-col>
-        </el-col>
-      </el-col>
-    </el-row>
-    <el-dialog :visible.sync="dialog" title="分行用户信息" @close="toClose" :destroy-on-close="true" width="50%">
-      <data-form :data="form" :fields="formFields" :rules="rules" @save="turnSave"> </data-form>
-    </el-dialog>
-    <el-dialog :visible.sync="qrdialog" title="分行二维码" @close="toqrClose" width="20%">
-      <div style="text-align:center">
-        <img :src="qc" />
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import Vue from 'vue';
-import dataTable from '@/components/frame/filter-page-table.vue';
-import dataForm from '@/components/frame/form.vue';
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: sj } = createNamespacedHelpers('sj');
-import QRCode from 'qrcode';
-export default {
-  metaInfo: { title: '分行用户管理' },
-  name: 'index',
-  props: {},
-  components: {
-    dataTable, //列表组件
-    dataForm, //表单组件
-  },
-  data: function() {
-    return {
-      // 搜索
-      searchInput: '',
-      // 分行用户功能操作+列表
-      opera: [
-        {
-          label: '查看二维码',
-          icon: 'el-icon-view',
-          method: 'view',
-        },
-        {
-          label: '修改',
-          icon: 'el-icon-edit',
-          method: 'edit',
-        },
-        // {
-        //   label: '删除',
-        //   icon: 'el-icon-delete',
-        //   method: 'delete',
-        // },
-      ],
-      fields: [
-        { label: '名字', prop: 'name' },
-        { label: '地址', prop: 'addr' },
-        { label: '电话', prop: 'tel' },
-      ],
-      list: [],
-      total: 0,
-      // 添加用户
-      dialog: false,
-      form: {},
-      formFields: [
-        { label: '名字', required: true, model: 'name' },
-        { label: '地址', required: false, model: 'addr' },
-        { label: '手机号', required: true, model: 'tel', options: { maxlength: 11, minlength: 11 } },
-        { label: '系统登录密码', required: false, model: 'pwd', type: 'password' },
-      ],
-      // 验证
-      rules: {
-        name: [{ required: true, message: '请输入名字', trigger: 'blur' }],
-        addr: [{ required: false, message: '请输入地址', trigger: 'blur' }],
-        tel: [{ required: true, message: '请输入电话', trigger: 'blur' }],
-        pwd: [{ required: false, message: '请输入密码', trigger: 'blur' }],
-      },
-      // 查看二维码
-      qrdialog: false,
-      qc: '',
-    };
-  },
-  created() {
-    this.search();
-  },
-  methods: {
-    ...sj(['query', 'fetch', 'create', 'update', 'delete']),
-    // 搜索数据
-    async search({ skip = 0, limit = 10, ...info } = {}) {
-      if (this.searchInput) {
-        info = {
-          name: this.searchInput,
-        };
-      }
-      const res = await this.query({ skip, limit, js: '1', ...info });
-      if (this.$checkRes(res)) {
-        this.$set(this, `list`, res.data);
-        this.$set(this, `total`, res.total);
-      }
-    },
-    // 查看二维码
-    // 分行二维码,扫码注册分行销售员,ssid:存储为分行id
-    async toView({ data }) {
-      this.qrdialog = true;
-      let url = `${process.env.NODE_ENV != 'development' ? 'http://jh.tgoodsoft.net' : Vue.config.weixin.baseUrl}/ccbmobile/saleRegister?ssid=${
-        data.id
-      }&ssjs=1`; // 需要转换为二维码的内容
-      let el = document.getElementById('qrCodeUrl');
-      this.qc = await QRCode.toDataURL(url, { height: 300, width: 300 });
-    },
-    // 修改
-    toEdit({ data }) {
-      this.$set(this, `form`, data);
-      this.dialog = true;
-    },
-    // 删除
-    // async toDelete({ data }) {
-    //   const res = await this.delete(data.tableid);
-    //   if (this.$checkRes(res)) {
-    //     this.$message({
-    //       message: '删除信息成功',
-    //       type: 'success',
-    //     });
-    //     this.search();
-    //   }
-    // },
-    // 保存用户
-    async turnSave({ data }) {
-      if (data.id) {
-        const res = await this.update({ ...data, id: data.tableid });
-        if (this.$checkRes(res)) {
-          this.$message({
-            message: '修改信息成功',
-            type: 'success',
-          });
-          this.toClose();
-          this.search();
-        }
-      } else {
-        data.ssjs = '0';
-        data.ssid = this.user.id;
-        data.js = '1';
-        data.srpt = '1';
-        const res = await this.create(data);
-        if (this.$checkRes(res)) {
-          this.$message({
-            message: '创建信息成功',
-            type: 'success',
-          });
-          this.toClose();
-          this.search();
-        }
-      }
-    },
-    // 取消添加
-    toClose() {
-      this.form = {};
-      this.dialog = false;
-    },
-    // 关闭二维码
-    toqrClose() {
-      this.qrdialog = false;
-    },
-    // 图片
-    uploadSuccess({ type, data }) {
-      this.$set(this.form, `${type}`, data.uri);
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.down {
-  .downTop {
-    margin-bottom: 20px;
-    .left {
-      .el-input {
-        width: 89%;
-        margin: 0 10px 0 0;
-      }
-    }
-    .right {
-      text-align: right;
-    }
-  }
-}
-</style>

+ 0 - 245
src/components/page/business/index.vue

@@ -1,245 +0,0 @@
-<template>
-  <div id="index">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="crumbs">
-          <el-breadcrumb separator="/">
-            <el-breadcrumb-item> <i class="el-icon-lx-cascades"></i> 商家用户管理 </el-breadcrumb-item>
-          </el-breadcrumb>
-        </el-col>
-        <el-col :span="24" class="container down">
-          <el-col :span="24" class="downTop">
-            <el-col :span="12" class="left">
-              <el-input v-model="searchInput" placeholder="名字"></el-input>
-              <el-button type="primary" icon="el-icon-search" @click="search">搜索</el-button>
-            </el-col>
-            <el-col :span="12" class="right">
-              <el-button type="primary" size="small" @click="dialog = true">添加</el-button>
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="downList">
-            <data-table
-              :fields="fields"
-              :opera="opera"
-              :data="list"
-              :total="total"
-              @view="toView"
-              @edit="toEdit"
-              @delete="toDelete"
-              @query="search"
-            ></data-table>
-          </el-col>
-        </el-col>
-      </el-col>
-    </el-row>
-    <el-dialog :visible.sync="dialog" title="商家用户信息" @close="toClose" :destroy-on-close="true" width="50%">
-      <data-form :data="form" :fields="formFields" :rules="rules" @save="turnSave">
-        <template #radios="{item}">
-          <template v-if="item.model == 'srpt'">
-            <el-radio :label="0">不可以</el-radio>
-            <el-radio :label="1">可以</el-radio>
-          </template>
-        </template>
-        <template #custom="{item}">
-          <template v-if="item.model == 'logo'">
-            <el-col :span="24">
-              <upload :limit="1" :data="form.logo" type="logo" :url="'/files/ccb/upload'" @upload="uploadSuccess"></upload>
-            </el-col>
-          </template>
-          <template v-if="item.model == 'advertpic'">
-            <el-col :span="24">
-              <upload :limit="1" :data="form.advertpic" type="advertpic" :url="'/files/ccb/upload'" @upload="uploadSuccess"></upload>
-            </el-col>
-          </template>
-        </template>
-      </data-form>
-    </el-dialog>
-    <el-dialog :visible.sync="qrdialog" title="商家二维码" @close="toqrClose" width="20%">
-      <div style="text-align:center">
-        <img :src="qc" />
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import Vue from 'vue';
-import dataTable from '@/components/frame/filter-page-table.vue';
-import dataForm from '@/components/frame/form.vue';
-import upload from '@/components/frame/uploadone.vue';
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: sj } = createNamespacedHelpers('sj');
-import QRCode from 'qrcode';
-export default {
-  metaInfo: { title: '商家用户管理' },
-  name: 'index',
-  props: {},
-  components: {
-    dataTable, //列表组件
-    dataForm, //表单组件
-    upload, //图片组件
-  },
-  data: function() {
-    return {
-      // 搜索
-      searchInput: '',
-      // 商家用户功能操作+列表
-      opera: [
-        {
-          label: '查看二维码',
-          icon: 'el-icon-view',
-          method: 'view',
-        },
-        {
-          label: '修改',
-          icon: 'el-icon-edit',
-          method: 'edit',
-        },
-        {
-          label: '删除',
-          icon: 'el-icon-delete',
-          method: 'delete',
-        },
-      ],
-      fields: [
-        { label: '名字', prop: 'name' },
-        { label: '地址', prop: 'addr' },
-        { label: '电话', prop: 'tel' },
-        { label: '是否可登录系统', prop: 'srpt', format: i => (i == 0 ? '不可以' : '可以') },
-      ],
-      list: [],
-      total: 0,
-      // 添加用户
-      dialog: false,
-      form: {
-        srpt: 0,
-      },
-      formFields: [
-        { label: '名字', required: true, model: 'name' },
-        { label: '地址', required: false, model: 'addr' },
-        { label: '手机号', required: true, model: 'tel', placeholder: '系统登录用户名', options: { maxlength: 11, minlength: 11 } },
-        { label: '系统登录密码', required: true, model: 'pwd', type: 'password' },
-        { label: '是否可登录系统', required: true, model: 'srpt', type: 'radio' },
-        { label: '商家LOGO', required: false, model: 'logo', custom: true },
-        { label: '广告图', required: false, model: 'advertpic', custom: true },
-        { label: '商家说明', required: false, model: 'explain', type: 'textarea', options: { maxlength: 200 } },
-      ],
-      // 验证
-      rules: {
-        name: [{ required: true, message: '请输入名字', trigger: 'blur' }],
-        tel: [{ required: true, message: '请输入电话', trigger: 'blur' }],
-        pwd: [{ required: true, message: '请输入密码', trigger: 'blur' }],
-      },
-      // 查看二维码
-      qrdialog: false,
-      qc: '',
-    };
-  },
-  created() {
-    this.search();
-  },
-  methods: {
-    // 搜索数据
-    ...sj(['query', 'fetch', 'create', 'update', 'delete']),
-    // 搜索数据
-    async search({ skip = 0, limit = 10, ...info } = {}) {
-      if (this.searchInput) {
-        info = {
-          name: this.searchInput,
-        };
-      }
-      const res = await this.query({ skip, limit, js: '2', ...info });
-      if (this.$checkRes(res)) {
-        this.$set(this, `list`, res.data);
-        this.$set(this, `total`, res.total);
-      }
-    },
-    // 查看二维码
-    // 商家二维码,扫码注册商家销售员,ssid:存储为商家id
-    async toView({ data }) {
-      this.qrdialog = true;
-      let url = `${process.env.NODE_ENV === 'development' ? 'http://jh.tgoodsoft.net' : Vue.config.weixin.baseUrl}/ccbmobile/saleRegister?ssid=${
-        data.tableid
-      }&ssjs=2`; // 需要转换为二维码的内容
-      let el = document.getElementById('qrCodeUrl');
-      this.qc = await QRCode.toDataURL(url, { height: 300, width: 300 });
-    },
-    // 修改
-    toEdit({ data }) {
-      this.$set(this, `form`, data);
-      this.dialog = true;
-    },
-    // 删除
-    async toDelete({ data }) {
-      const res = await this.delete(data.tableid);
-      if (this.$checkRes(res)) {
-        this.$message({
-          message: '删除信息成功',
-          type: 'success',
-        });
-        this.search();
-      }
-    },
-    // 保存用户
-    async turnSave({ data }) {
-      if (data.id) {
-        const res = await this.update({ ...data, id: data.tableid });
-        if (this.$checkRes(res)) {
-          this.$message({
-            message: '修改信息成功',
-            type: 'success',
-          });
-          this.toClose();
-          this.search();
-        }
-      } else {
-        data.ssjs = '1';
-        data.ssid = this.user.tableid;
-        data.js = '2';
-        const res = await this.create(data);
-        if (this.$checkRes(res)) {
-          this.$message({
-            message: '创建信息成功',
-            type: 'success',
-          });
-          this.toClose();
-          this.search();
-        }
-      }
-    },
-    // 取消添加
-    toClose() {
-      this.form = {};
-      this.dialog = false;
-    },
-    // 关闭二维码
-    toqrClose() {
-      this.qrdialog = false;
-    },
-    // 图片
-    uploadSuccess({ type, data }) {
-      this.$set(this.form, `${type}`, data.uri);
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.down {
-  .downTop {
-    margin-bottom: 20px;
-    .left {
-      .el-input {
-        width: 89%;
-        margin: 0 10px 0 0;
-      }
-    }
-    .right {
-      text-align: right;
-    }
-  }
-}
-</style>

+ 0 - 141
src/components/page/fhSign/fhsjdeta.vue

@@ -1,141 +0,0 @@
-<template>
-  <div id="fhsjdeta">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="crumbs">
-          <el-breadcrumb separator="/">
-            <el-breadcrumb-item> <i class="el-icon-lx-cascades"></i> 商家报名统计 </el-breadcrumb-item>
-          </el-breadcrumb>
-        </el-col>
-        <el-col :span="24" class="container down">
-          <el-col :span="24" class="downTop">
-            <el-col :span="4">
-              <el-select v-model="searchForm.sjid" clearable placeholder="请选择商家">
-                <el-option v-for="item in sjList" :key="item.id" :label="item.name" :value="item.tableid"> </el-option>
-              </el-select>
-            </el-col>
-            <el-col :span="6">
-              <el-date-picker
-                v-model="searchForm.date"
-                value-format="yyyy-MM-dd"
-                format="yyyy-MM-dd"
-                type="daterange"
-                range-separator="-"
-                start-placeholder="开始日期"
-                end-placeholder="结束日期"
-                clearable
-              >
-              </el-date-picker>
-            </el-col>
-            <el-col :span="14">
-              <el-button type="primary" icon="el-icon-search" @click="search">搜索</el-button>
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="downList">
-            <el-col :span="24" class="downListOne">
-              <el-col :span="12"> 客户总数{{ khtotal }}人 </el-col>
-              <el-col :span="12" style="text-align:right;">
-                <el-button type="primary" size="mini" @click="selectBtn()">导出数据</el-button>
-              </el-col>
-            </el-col>
-            <el-col :span="24" class="downListTwo">
-              <data-table :fields="fields" :opera="opera" :data="list" :total="total" @query="search"> </data-table>
-            </el-col>
-          </el-col>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import _ from 'lodash';
-import dataTable from '@/components/frame/filter-page-table.vue';
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: sj } = createNamespacedHelpers('sj');
-const { mapActions: xs } = createNamespacedHelpers('xs');
-const { mapActions: kh } = createNamespacedHelpers('kh');
-const { mapActions: count } = createNamespacedHelpers('count');
-export default {
-  metaInfo: { title: '商家报名统计' },
-  name: 'fhsjdeta',
-  props: {},
-  components: {
-    dataTable, //列表组件
-  },
-  data: function() {
-    return {
-      // 查询
-      searchForm: {},
-      sjList: [],
-      // 客户列表
-      opera: [],
-      fields: [
-        { label: '销售员姓名', prop: 'name' },
-        { label: '客户总数', prop: 'khtotal' },
-      ],
-      list: [],
-      total: 0,
-      // 客户总数
-      khtotal: 0,
-    };
-  },
-  created() {
-    this.searchSj();
-  },
-  methods: {
-    ...sj({ sjQuery: 'query' }),
-    ...xs({ xsQuery: 'query' }),
-    ...kh({ khQuery: 'query' }),
-    ...count({ countQuery: 'query', otherselectQuery: 'otherselectQuery' }),
-    async searchSj() {
-      let res = await this.sjQuery({ js: '2' });
-      if (this.$checkRes(res)) {
-        let data = res.data;
-        data.push({ name: '全部' });
-        this.$set(this, `sjList`, data);
-      }
-    },
-    async search({ skip = 0, limit = 10, ...info } = {}) {
-      info = {
-        ssid: this.searchForm.sjid,
-        start: _.get(this.searchForm, 'date[0]'),
-        end: _.get(this.searchForm, 'date[1]'),
-        table: 'xs',
-      };
-      let res = await this.countQuery({ skip, limit, ...info });
-      if (this.$checkRes(res)) {
-        this.$set(this, `list`, res.data);
-        this.$set(this, `total`, res.total);
-        let khtotal = res.data.reduce((p, n) => p + (n['khtotal'] * 1 || 0), 0);
-        if (khtotal) this.$set(this, `khtotal`, khtotal);
-      }
-    },
-    async selectBtn() {
-      let info = {
-        ssid: this.searchForm.sjid,
-        start: _.get(this.searchForm, 'date[0]'),
-        end: _.get(this.searchForm, 'date[1]'),
-        table: 'xs',
-      };
-      let res = await this.otherselectQuery({ ...info });
-      if (this.$checkRes(res)) {
-        window.open(res.data);
-      }
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.down {
-  .downList {
-    .downListOne {
-      padding: 15px 0;
-    }
-  }
-}
-</style>

+ 0 - 146
src/components/page/fhSign/fhxsdeta.vue

@@ -1,146 +0,0 @@
-<template>
-  <div id="fhxsdeta">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="crumbs">
-          <el-breadcrumb separator="/">
-            <el-breadcrumb-item> <i class="el-icon-lx-cascades"></i> 销售员业绩明细 </el-breadcrumb-item>
-          </el-breadcrumb>
-        </el-col>
-        <el-col :span="24" class="container down">
-          <el-col :span="24" class="downTop">
-            <el-col :span="4">
-              <el-select v-model="searchForm.xsid" clearable placeholder="请选择销售员">
-                <el-option v-for="item in xsList" :key="item.id" :label="item.name" :value="item.id"> </el-option>
-              </el-select>
-            </el-col>
-            <el-col :span="6">
-              <el-date-picker
-                v-model="searchForm.date"
-                value-format="yyyy-MM-dd"
-                format="yyyy-MM-dd"
-                type="daterange"
-                range-separator="-"
-                start-placeholder="开始日期"
-                end-placeholder="结束日期"
-                clearable
-              >
-              </el-date-picker>
-            </el-col>
-            <el-col :span="4">
-              <el-input v-model="searchForm.tel" placeholder="请输入销售员手机号"></el-input>
-            </el-col>
-            <el-col :span="10" style="padding: 0 50px;">
-              <el-button type="primary" icon="el-icon-search" @click="search">搜索</el-button>
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="downList">
-            <el-col :span="24" class="downListOne">
-              <el-col :span="12"> 客户总数{{ khtotal }}人 </el-col>
-              <el-col :span="12" style="text-align:right;">
-                <el-button type="primary" size="mini" @click="selectBtn()">导出数据</el-button>
-              </el-col>
-            </el-col>
-            <el-col :span="24" class="downListTwo">
-              <data-table :fields="fields" :opera="opera" :data="list" :total="total" @query="search"></data-table>
-            </el-col>
-          </el-col>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import _ from 'lodash';
-import dataTable from '@/components/frame/filter-page-table.vue';
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: xs } = createNamespacedHelpers('xs');
-const { mapActions: kh } = createNamespacedHelpers('kh');
-const { mapActions: count } = createNamespacedHelpers('count');
-const { mapActions: khselect } = createNamespacedHelpers('khselect');
-export default {
-  metaInfo: { title: '销售员业绩明细' },
-  name: 'fhxsdeta',
-  props: {},
-  components: {
-    dataTable, //列表组件
-  },
-  data: function() {
-    return {
-      // 查询
-      searchForm: {},
-      xsList: [],
-      // 客户列表
-      opera: [],
-      fields: [
-        { label: '名字', prop: 'name' },
-        { label: '手机号', prop: 'tel' },
-      ],
-      list: [],
-      total: 0,
-      // 客户总数
-      khtotal: 0,
-    };
-  },
-  created() {
-    this.searchXs();
-  },
-  methods: {
-    ...xs({ xsQuery: 'query' }),
-    ...kh({ khQuery: 'query' }),
-    ...count({ countQuery: 'query' }),
-    ...khselect({ khselectQuery: 'khselectQuery' }),
-    async searchXs() {
-      let res = await this.xsQuery({ ssid: this.user.tableid });
-      if (this.$checkRes(res)) {
-        let data = res.data;
-        data.push({ name: '全部' });
-        this.$set(this, `xsList`, data);
-      }
-    },
-    async search({ skip = 0, limit = 10, ...info } = {}) {
-      info = {
-        id: this.searchForm.xsid,
-        tel: this.searchForm.tel,
-        start: _.get(this.searchForm, 'date[0]'),
-        end: _.get(this.searchForm, 'date[1]'),
-        table: 'xs',
-        needdata: true,
-      };
-      let res = await this.countQuery({ skip, limit, ...info });
-      if (this.$checkRes(res)) {
-        this.$set(this, `list`, _.get(res.data[0], 'list'));
-        this.$set(this, `total`, _.get(res.data[0], 'khtotal'));
-        this.$set(this, `khtotal`, _.get(res.data[0], 'khtotal'));
-      }
-    },
-    // 导出数据
-    async selectBtn() {
-      let info = {
-        xsid: this.searchForm.xsid,
-        tel: this.searchForm.tel,
-        start: _.get(this.searchForm, 'date[0]'),
-        end: _.get(this.searchForm, 'date[1]'),
-      };
-      let res = await this.khselectQuery({ ...info });
-      if (this.$checkRes(res)) {
-        window.open(res.data);
-      }
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.down {
-  .downList {
-    .downListOne {
-      padding: 15px 0;
-    }
-  }
-}
-</style>

+ 0 - 139
src/components/page/fhSign/fhxsstat.vue

@@ -1,139 +0,0 @@
-<template>
-  <div id="fhxsstat">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="crumbs">
-          <el-breadcrumb separator="/">
-            <el-breadcrumb-item> <i class="el-icon-lx-cascades"></i> 销售员业绩统计 </el-breadcrumb-item>
-          </el-breadcrumb>
-        </el-col>
-        <el-col :span="24" class="container down">
-          <el-col :span="24" class="downTop">
-            <el-col :span="4">
-              <el-select v-model="searchForm.xsid" clearable placeholder="请选择销售员">
-                <el-option v-for="item in xsList" :key="item.id" :label="item.name" :value="item.id"> </el-option>
-              </el-select>
-            </el-col>
-            <el-col :span="6">
-              <el-date-picker
-                v-model="searchForm.date"
-                value-format="yyyy-MM-dd"
-                format="yyyy-MM-dd"
-                type="daterange"
-                range-separator="-"
-                start-placeholder="开始日期"
-                end-placeholder="结束日期"
-                clearable
-              >
-              </el-date-picker>
-            </el-col>
-            <el-col :span="14">
-              <el-button type="primary" icon="el-icon-search" @click="search">搜索</el-button>
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="downList">
-            <el-col :span="24" class="downListOne">
-              <el-col :span="12"> 客户总数{{ khtotal }}人 </el-col>
-              <el-col :span="12" style="text-align:right;">
-                <el-button type="primary" size="mini" @click="selectBtn()">导出数据</el-button>
-              </el-col>
-            </el-col>
-            <el-col :span="24" class="downListTwo">
-              <data-table :fields="fields" :opera="opera" :data="list" :total="total" @query="search"> </data-table>
-            </el-col>
-          </el-col>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import _ from 'lodash';
-import dataTable from '@/components/frame/filter-page-table.vue';
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: xs } = createNamespacedHelpers('xs');
-const { mapActions: kh } = createNamespacedHelpers('kh');
-const { mapActions: count } = createNamespacedHelpers('count');
-export default {
-  metaInfo: { title: '销售员业绩统计' },
-  name: 'fhxsstat',
-  props: {},
-  components: {
-    dataTable, //列表组件
-  },
-  data: function() {
-    return {
-      // 查询
-      searchForm: {},
-      xsList: [],
-      // 客户列表
-      opera: [],
-      fields: [
-        { label: '销售员姓名', prop: 'name' },
-        { label: '客户总数', prop: 'khtotal' },
-      ],
-      list: [],
-      total: 0,
-      // 客户总数
-      khtotal: 0,
-    };
-  },
-  created() {
-    this.searchXs();
-  },
-  methods: {
-    ...xs({ xsQuery: 'query' }),
-    ...kh({ khQuery: 'query' }),
-    ...count({ countQuery: 'query', otherselectQuery: 'otherselectQuery' }),
-    async searchXs() {
-      let res = await this.xsQuery({ ssid: this.user.tableid });
-      if (this.$checkRes(res)) {
-        let data = res.data;
-        data.push({ name: '全部' });
-        this.$set(this, `xsList`, data);
-      }
-    },
-    async search({ skip = 0, limit = 10, ...info } = {}) {
-      info = {
-        id: this.searchForm.xsid,
-        start: _.get(this.searchForm, 'date[0]'),
-        end: _.get(this.searchForm, 'date[1]'),
-        table: 'xs',
-      };
-      let res = await this.countQuery({ skip, limit, ...info });
-      if (this.$checkRes(res)) {
-        this.$set(this, `list`, res.data);
-        this.$set(this, `total`, res.total);
-        let khtotal = res.data.reduce((p, n) => p + (n['khtotal'] * 1 || 0), 0);
-        if (khtotal) this.$set(this, `khtotal`, khtotal);
-      }
-    },
-    async selectBtn() {
-      let info = {
-        id: this.searchForm.xsid,
-        start: _.get(this.searchForm, 'date[0]'),
-        end: _.get(this.searchForm, 'date[1]'),
-        table: 'xs',
-      };
-      let res = await this.otherselectQuery({ ...info });
-      if (this.$checkRes(res)) {
-        window.open(res.data);
-      }
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.down {
-  .downList {
-    .downListOne {
-      padding: 15px 0;
-    }
-  }
-}
-</style>

+ 38 - 0
src/components/page/homeIndex.vue

@@ -0,0 +1,38 @@
+<template>
+  <div id="Dashboard">
+    <el-row>
+      <el-col :span="24" class="main">
+        <el-col :span="24" class="crumbs">
+          <el-breadcrumb separator="/">
+            <el-breadcrumb-item> <i class="el-icon-lx-cascades"></i> 系统首页 </el-breadcrumb-item>
+          </el-breadcrumb>
+        </el-col>
+        <el-col :span="24" class="container">
+          首页
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+
+import bus from '../common/bus';
+export default {
+  metaInfo: { title: '系统首页' },
+  name: 'Dashboard',
+  props: {},
+  components: {},
+  data: function() {
+    return {};
+  },
+  created() {},
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+  },
+};
+</script>
+
+<style lang="less" scoped></style>

+ 0 - 170
src/components/page/homeParts/fhstat.vue

@@ -1,170 +0,0 @@
-<template>
-  <div id="fhstat">
-    <el-row>
-      <el-col :span="24" class="main">
-        <h3 class="h3">商家</h3>
-        <el-col :span="4" class="sjList" v-for="(item, sjindex) in sjList.slice(0, 6)" :key="`${sjindex}`">
-          <p>{{ item.name }}</p>
-          <p>
-            销售注册数:<span>{{ xsgetnum(item) || 0 }}</span
-            >&nbsp;人
-          </p>
-          <p>
-            客户报名数:<span>{{ khgetnum(item) || 0 }}</span
-            >&nbsp;人
-          </p>
-        </el-col>
-        <h3 class="h3 two">销售员</h3>
-        <el-col :span="4" class="xsList" v-for="(tag, xsindex) in xsList.slice(0, 6)" :key="xsindex + 'only'">
-          <p>{{ tag.name }}</p>
-          <p>
-            客户报名数:<span>{{ xskhgetnum(tag) || 0 }}&nbsp;人</span>
-          </p>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import { mapState, createNamespacedHelpers } from 'vuex';
-export default {
-  metaInfo: { title: 'fhstat' },
-  name: 'fhstat',
-  props: {
-    // 商家
-    sjstatList: { type: Array },
-    // 销售
-    xsstatList: { type: Array },
-    // 客户
-    khstatList: { type: Array },
-  },
-  components: {},
-  data: function() {
-    return {
-      sjList: [],
-      xsList: [],
-    };
-  },
-  created() {},
-  methods: {
-    searchfilter() {
-      let sjList = this.sjstatList.filter(i => i.ssid == this.user.tableid);
-      if (sjList) this.$set(this, `sjList`, sjList);
-      let xsList = this.xsstatList.filter(i => i.ssid == this.user.tableid);
-      if (xsList) this.$set(this, `xsList`, xsList);
-    },
-    // 获取商家销售数
-    xsgetnum(data) {
-      let res = this.xsstatList.filter(i => i.ssid == data.tableid);
-      if (res) {
-        return res.length;
-      }
-    },
-    // 商家客户总数
-    khgetnum(data) {
-      let res = this.khstatList.filter(i => i.sjid == data.tableid);
-      if (res) {
-        return res.length;
-      }
-    },
-    // 销售员客户总数
-    xskhgetnum(data) {
-      let res = this.khstatList.filter(i => i.xsid == data.tableid);
-      if (res) {
-        return res.length;
-      }
-    },
-  },
-  watch: {
-    sjstatList: {
-      handler(val) {
-        this.searchfilter();
-      },
-    },
-    xsstatList: {
-      handler(val) {
-        this.searchfilter();
-      },
-    },
-    khstatList: {
-      handler(val) {
-        this.searchfilter();
-      },
-    },
-    immediate: true,
-    deep: true,
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.main {
-  .h3 {
-    float: left;
-    width: 100%;
-    margin: 15px 0;
-  }
-  .two {
-    margin: 70px 0 15px 0;
-  }
-  .sjList {
-    text-align: center;
-    border-radius: 360px;
-    margin: 5px 10px;
-    width: 15%;
-    height: 240px;
-    box-shadow: 0 0 6px #ccc;
-    p:nth-child(1) {
-      font-size: 20px;
-      font-family: 微软雅黑;
-      font-weight: bold;
-      padding: 50px 0 20px 0;
-    }
-    p:nth-child(2) {
-      font-size: 16px;
-      font-family: 微软雅黑;
-      font-weight: bold;
-      padding: 10px 0;
-      span {
-        color: red;
-      }
-    }
-    p:nth-child(3) {
-      font-size: 16px;
-      font-family: 微软雅黑;
-      font-weight: bold;
-      padding: 10px 0;
-      span {
-        color: red;
-      }
-    }
-  }
-  .xsList {
-    text-align: center;
-    border-radius: 360px;
-    margin: 5px 0 90px 10px;
-    width: 15%;
-    height: 240px;
-    box-shadow: 0 0 6px #ccc;
-    p:nth-child(1) {
-      font-size: 20px;
-      font-family: 微软雅黑;
-      font-weight: bold;
-      padding: 70px 0 20px 0;
-    }
-    p:nth-child(2) {
-      font-size: 16px;
-      font-family: 微软雅黑;
-      font-weight: bold;
-      padding: 15px 0;
-      span {
-        color: red;
-      }
-    }
-  }
-}
-</style>

+ 0 - 119
src/components/page/homeParts/sjstat.vue

@@ -1,119 +0,0 @@
-<template>
-  <div id="sjstat">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="5" class="list" v-for="(item, index) in xsList.slice(0, 8)" :key="index">
-          <p>{{ item.name }}</p>
-
-          <p>
-            客户报名数:<span>{{ khgetnum(item) || 0 }}</span
-            >&nbsp;人
-          </p>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import { mapState, createNamespacedHelpers } from 'vuex';
-export default {
-  metaInfo: { title: 'sjstat' },
-  name: 'sjstat',
-  props: {
-    // 销售
-    xsstatList: { type: Array },
-    // 客户
-    khstatList: { type: Array },
-  },
-  components: {},
-  data: function() {
-    return {
-      xsList: [],
-    };
-  },
-  created() {},
-  methods: {
-    searchfilter() {
-      let xsList = this.xsstatList.filter(i => i.ssid == this.user.tableid);
-      if (xsList) this.$set(this, `xsList`, xsList);
-    },
-    khgetnum(data) {
-      let res = this.khstatList.filter(i => i.sjid == data.tableid);
-      if (res) {
-        return res.length;
-      }
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-  watch: {
-    xsstatList: {
-      handler(val) {
-        this.searchfilter();
-      },
-    },
-    khstatList: {
-      handler(val) {
-        this.searchfilter();
-      },
-    },
-    immediate: true,
-    deep: true,
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.list {
-  text-align: center;
-  border-radius: 360px;
-  margin: 28px 30px;
-  height: 320px;
-  -webkit-box-shadow: 0 0 6px #ccc;
-  box-shadow: 0 0 6px #ccc;
-  p:nth-child(1) {
-    font-size: 30px;
-    font-family: 微软雅黑;
-    font-weight: bold;
-    padding: 80px 0 40px 0;
-  }
-  p:nth-child(2) {
-    font-size: 18px;
-    font-family: 微软雅黑;
-    font-weight: bold;
-    padding: 10px 0;
-    span {
-      color: red;
-    }
-  }
-  p:nth-child(3) {
-    font-size: 18px;
-    font-family: 微软雅黑;
-    font-weight: bold;
-    padding: 10px 0;
-    span {
-      color: red;
-    }
-  }
-  p:nth-child(4) {
-    font-size: 18px;
-    font-family: 微软雅黑;
-    font-weight: bold;
-    padding: 10px 0;
-    span {
-      color: red;
-    }
-  }
-}
-.list:hover {
-  -webkit-transform: translateY(-6px);
-  -ms-transform: translateY(-6px);
-  transform: translateY(-6px);
-  -webkit-box-shadow: 0 0 6px #242f42;
-  box-shadow: 0 0 6px #242f42;
-  -webkit-transition: all 0.5s ease-out;
-  transition: all 0.5s ease-out;
-}
-</style>

+ 0 - 121
src/components/page/homeParts/zhstat.vue

@@ -1,121 +0,0 @@
-<template>
-  <div id="zhstat">
-    <el-row>
-      <el-col :span="24" class="zhstat">
-        <el-col :span="5" class="list" v-for="(item, index) in list.slice(0, 8)" :key="index">
-          <p>{{ item.name }}</p>
-          <p>
-            商家注册数:<span>{{ getsjnum(item) || 0 }}</span
-            >&nbsp;人
-          </p>
-          <p>
-            销售注册数:<span>{{ getxsnum(item) || 0 }}</span
-            >&nbsp;人
-          </p>
-          <p>
-            客户报名数:<span>{{ getkhnum(item) || 0 }}</span
-            >&nbsp;人
-          </p>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import { mapState, createNamespacedHelpers } from 'vuex';
-export default {
-  metaInfo: { title: 'zhstat' },
-  name: 'zhstat',
-  props: {
-    list: { type: Array },
-    // 商家
-    sjstatList: { type: Array },
-    // 销售
-    xsstatList: { type: Array },
-    // 客户
-    khstatList: { type: Array },
-  },
-  components: {},
-  data: function() {
-    return {};
-  },
-  created() {},
-  methods: {
-    getsjnum(data) {
-      let res = this.sjstatList.filter(i => i.ssid == data.tableid);
-      if (res) {
-        return res.length;
-      }
-    },
-    getxsnum(data) {
-      let res = this.xsstatList.filter(i => i.ssid == data.tableid);
-      if (res) {
-        return res.length;
-      }
-    },
-    getkhnum(data) {
-      let res = this.khstatList.filter(i => i.fhid == data.tableid);
-      if (res) {
-        return res.length;
-      }
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.list {
-  text-align: center;
-  border-radius: 360px;
-  margin: 28px 30px;
-  height: 320px;
-  -webkit-box-shadow: 0 0 6px #ccc;
-  box-shadow: 0 0 6px #ccc;
-  p:nth-child(1) {
-    font-size: 30px;
-    font-family: 微软雅黑;
-    font-weight: bold;
-    padding: 60px 0 30px 0;
-  }
-  p:nth-child(2) {
-    font-size: 18px;
-    font-family: 微软雅黑;
-    font-weight: bold;
-    padding: 10px 0;
-    span {
-      color: red;
-    }
-  }
-  p:nth-child(3) {
-    font-size: 18px;
-    font-family: 微软雅黑;
-    font-weight: bold;
-    padding: 10px 0;
-    span {
-      color: red;
-    }
-  }
-  p:nth-child(4) {
-    font-size: 18px;
-    font-family: 微软雅黑;
-    font-weight: bold;
-    padding: 10px 0;
-    span {
-      color: red;
-    }
-  }
-}
-.list:hover {
-  -webkit-transform: translateY(-6px);
-  -ms-transform: translateY(-6px);
-  transform: translateY(-6px);
-  -webkit-box-shadow: 0 0 6px #242f42;
-  box-shadow: 0 0 6px #242f42;
-  -webkit-transition: all 0.5s ease-out;
-  transition: all 0.5s ease-out;
-}
-</style>

+ 0 - 210
src/components/page/peer/index.vue

@@ -1,210 +0,0 @@
-<template>
-  <div id="index">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="crumbs">
-          <el-breadcrumb separator="/">
-            <el-breadcrumb-item> <i class="el-icon-lx-cascades"></i> 同级账号管理 </el-breadcrumb-item>
-          </el-breadcrumb>
-        </el-col>
-        <el-col :span="24" class="container down">
-          <el-col :span="24" class="downTop">
-            <el-col :span="12" class="left">
-              <el-input v-model="searchInput" placeholder="名字"></el-input>
-              <el-button type="primary" icon="el-icon-search" @click="search">搜索</el-button>
-            </el-col>
-            <el-col :span="12" class="right">
-              <el-button type="primary" size="small" @click="dialog = true">添加</el-button>
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="downList">
-            <data-table
-              :fields="fields"
-              :opera="opera"
-              :data="list"
-              :total="total"
-              @view="toView"
-              @edit="toEdit"
-              @delete="toDelete"
-              @query="search"
-            ></data-table>
-          </el-col>
-        </el-col>
-      </el-col>
-    </el-row>
-    <el-dialog :visible.sync="dialog" title="用户信息" @close="toClose" :destroy-on-close="true" width="50%">
-      <data-form :data="form" :fields="formFields" :rules="rules" @save="turnSave"> </data-form>
-    </el-dialog>
-    <el-dialog :visible.sync="qrdialog" title="账号二维码" @close="toqrClose" width="20%">
-      <div style="text-align:center">
-        <img :src="qc" />
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import Vue from 'vue';
-import dataTable from '@/components/frame/filter-page-table.vue';
-import dataForm from '@/components/frame/form.vue';
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: user } = createNamespacedHelpers('user');
-import QRCode from 'qrcode';
-export default {
-  metaInfo: { title: '同级账号管理' },
-  name: 'index',
-  props: {},
-  components: {
-    dataTable, //列表组件
-    dataForm, //表单组件
-  },
-  data: function() {
-    return {
-      // 搜索
-      searchInput: '',
-      // 分行用户功能操作+列表
-      opera: [
-        {
-          label: '查看二维码',
-          icon: 'el-icon-view',
-          method: 'view',
-        },
-        {
-          label: '修改',
-          icon: 'el-icon-edit',
-          method: 'edit',
-        },
-        {
-          label: '删除',
-          icon: 'el-icon-delete',
-          method: 'delete',
-        },
-      ],
-      fields: [
-        { label: '名字', prop: 'name' },
-        { label: '电话', prop: 'tel' },
-      ],
-      list: [],
-      total: 0,
-      // 添加用户
-      dialog: false,
-      form: {},
-      formFields: [
-        { label: '名字', required: true, model: 'name' },
-        { label: '手机号', required: true, model: 'tel', options: { maxlength: 11, minlength: 11 } },
-        { label: '系统登录密码', required: false, model: 'pwd', type: 'password' },
-      ],
-      // 验证
-      rules: {
-        name: [{ required: true, message: '请输入名字', trigger: 'blur' }],
-        tel: [{ required: true, message: '请输入电话', trigger: 'blur' }],
-        pwd: [{ required: false, message: '请输入密码', trigger: 'blur' }],
-      },
-      // 查看二维码
-      qrdialog: false,
-      qc: '',
-    };
-  },
-  created() {
-    this.search();
-  },
-  methods: {
-    ...user(['query', 'fetch', 'create', 'update', 'delete']),
-    // 搜索数据
-    async search({ skip = 0, limit = 10, ...info } = {}) {
-      if (this.searchInput) {
-        info = {
-          name: this.searchInput,
-        };
-      }
-      const res = await this.query({ skip, limit, js: '0', ...info });
-      if (this.$checkRes(res)) {
-        this.$set(this, `list`, res.data);
-        this.$set(this, `total`, res.total);
-      }
-    },
-    // 查看二维码s
-    async toView({ data }) {
-      this.qrdialog = true;
-      let url = `${process.env.NODE_ENV === 'development' ? 'http://jh.tgoodsoft.net' : Vue.config.weixin.baseUrl}/ccbmobile/`; // 需要转换为二维码的内容
-      let el = document.getElementById('qrCodeUrl');
-      this.qc = await QRCode.toDataURL(url, { height: 300, width: 300 });
-    },
-    // 修改
-    toEdit({ data }) {
-      this.$set(this, `form`, data);
-      this.dialog = true;
-    },
-    // 删除
-    async toDelete({ data }) {
-      const res = await this.delete(data.id);
-      if (this.$checkRes(res)) {
-        this.$message({
-          message: '删除信息成功',
-          type: 'success',
-        });
-        this.search();
-      }
-    },
-    // 保存用户
-    async turnSave({ data }) {
-      if (data.id) {
-        const res = await this.update(data);
-        if (this.$checkRes(res)) {
-          this.$message({
-            message: '修改信息成功',
-            type: 'success',
-          });
-          this.toClose();
-          this.search();
-        }
-      } else {
-        data.js = '0';
-        data.srpt = '1';
-        const res = await this.create(data);
-        if (this.$checkRes(res)) {
-          this.$message({
-            message: '创建信息成功',
-            type: 'success',
-          });
-          this.toClose();
-          this.search();
-        }
-      }
-    },
-    // 取消添加
-    toClose() {
-      this.form = {};
-      this.dialog = false;
-    },
-    // 关闭二维码
-    toqrClose() {
-      this.qrdialog = false;
-    },
-    // 图片
-    uploadSuccess({ type, data }) {
-      this.$set(this.form, `${type}`, data.uri);
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.down {
-  .downTop {
-    margin-bottom: 20px;
-    .left {
-      .el-input {
-        width: 89%;
-        margin: 0 10px 0 0;
-      }
-    }
-    .right {
-      text-align: right;
-    }
-  }
-}
-</style>

+ 0 - 136
src/components/page/sale/index.vue

@@ -1,136 +0,0 @@
-<template>
-  <div id="index">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="crumbs">
-          <el-breadcrumb separator="/">
-            <el-breadcrumb-item> <i class="el-icon-lx-cascades"></i> 销售员管理 </el-breadcrumb-item>
-          </el-breadcrumb>
-        </el-col>
-        <el-col :span="24" class="container down">
-          <el-col :span="24" class="downTop">
-            <el-col :span="12" class="left">
-              <el-input v-model="searchInput" placeholder="名字"></el-input>
-              <el-button type="primary" icon="el-icon-search" @click="search">搜索</el-button>
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="downList">
-            <data-table :fields="fields" :opera="opera" :data="list" :total="total" @view="toView" @delete="toDelete" @query="search"></data-table>
-          </el-col>
-        </el-col>
-      </el-col>
-    </el-row>
-    <el-dialog :visible.sync="dialog" title="销售员二维码" @close="toClose" width="20%">
-      <div style="text-align:center">
-        <img :src="qc" />
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import Vue from 'vue';
-import dataTable from '@/components/frame/filter-page-table.vue';
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: xs } = createNamespacedHelpers('xs');
-import QRCode from 'qrcode';
-export default {
-  metaInfo: { title: '销售员管理' },
-  name: 'index',
-  props: {},
-  components: {
-    dataTable, //列表组件
-  },
-  data: function() {
-    return {
-      // 搜索
-      searchInput: '',
-      // 分行用户功能操作+列表
-      opera: [
-        {
-          label: '二维码',
-          icon: 'el-icon-view',
-          method: 'view',
-        },
-        {
-          label: '删除',
-          icon: 'el-icon-delete',
-          method: 'delete',
-        },
-      ],
-      fields: [
-        { label: '名字', prop: 'name' },
-        { label: '手机号', prop: 'tel' },
-      ],
-      list: [],
-      total: 0,
-      // 二维码生成
-      vercode: '',
-      dialog: false,
-      qc: '',
-    };
-  },
-  created() {
-    this.search();
-  },
-
-  methods: {
-    // 搜索数据
-    ...xs(['query', 'fetch', 'create', 'update', 'delete']),
-    // 搜索数据
-    async search({ skip = 0, limit = 10, ...info } = {}) {
-      if (this.searchInput) {
-        info = {
-          name: this.searchInput,
-        };
-      }
-      const res = await this.query({ skip, limit, ssid: this.user.tableid, ...info });
-      if (this.$checkRes(res)) {
-        this.$set(this, `list`, res.data);
-        this.$set(this, `total`, res.total);
-      }
-    },
-    // 生成二维码
-    async toView({ data }) {
-      this.dialog = true;
-      let url = `${process.env.NODE_ENV === 'development' ? 'http://jh.tgoodsoft.net' : Vue.config.weixin.baseUrl}/ccbmobile/user?xsid=${data.id}&js=${
-        this.user.js
-      }&ssid=${data.ssid}`; // 需要转换为二维码的内容
-      let el = document.getElementById('qrCodeUrl');
-      this.qc = await QRCode.toDataURL(url, { height: 300, width: 300 });
-    },
-    // 关闭二维码
-    toClose() {
-      this.dialog = false;
-    },
-    // 删除
-    async toDelete({ data }) {
-      const res = await this.delete(data.id);
-      if (this.$checkRes(res)) {
-        this.$message({
-          message: '删除信息成功',
-          type: 'success',
-        });
-        this.search();
-      }
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.down {
-  .downTop {
-    margin-bottom: 20px;
-    .left {
-      .el-input {
-        width: 89%;
-        margin: 0 10px 0 0;
-      }
-    }
-  }
-}
-</style>

+ 0 - 84
src/components/page/setting/hdimage.vue

@@ -1,84 +0,0 @@
-<template>
-  <div id="hdimage">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="crumbs">
-          <el-breadcrumb separator="/">
-            <el-breadcrumb-item> <i class="el-icon-lx-cascades"></i> 活动设置图管理 </el-breadcrumb-item>
-          </el-breadcrumb>
-        </el-col>
-        <el-col :span="24" class="container">
-          <data-form :data="form" :fields="fields" :rules="rules" @save="turnSave">
-            <template #custom="{item}">
-              <template v-if="item.model == 'hdimage'">
-                <el-col :span="24">
-                  <upload :limit="1" :data="form.hdimage" type="hdimage" :url="'/files/ccb/upload'" @upload="uploadSuccess" v-if="form.hdimage"></upload>
-                  <upload :limit="1" :data="nullImage" type="hdimage" :url="'/files/ccb/upload'" @upload="uploadSuccess" v-else></upload>
-                </el-col>
-              </template>
-              <template v-if="item.model == 'advertpic'">
-                <el-col :span="24">
-                  <upload :limit="1" :data="form.advertpic" type="advertpic" :url="'/files/ccb/upload'" @upload="uploadSuccess" v-if="form.advertpic"></upload>
-                  <upload :limit="1" :data="nullImage" type="advertpic" :url="'/files/ccb/upload'" @upload="uploadSuccess" v-else></upload>
-                </el-col>
-              </template>
-            </template>
-          </data-form>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import dataForm from '@/components/frame/form.vue';
-import upload from '@/components/frame/uploadone.vue';
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: xt } = createNamespacedHelpers('xt');
-export default {
-  metaInfo: { title: '活动设置图管理' },
-  name: 'hdimage',
-  props: {},
-  components: {
-    dataForm, //表单组件
-    upload, //上传图片
-  },
-  data: function() {
-    return {
-      form: {},
-      fields: [
-        { label: '宣传图设置', required: false, model: 'hdimage', custom: true },
-        { label: '广告图设置', required: false, model: 'advertpic', custom: true },
-      ],
-      // 验证
-      rules: {},
-      nullImage: '',
-    };
-  },
-  created() {
-    this.search();
-  },
-  methods: {
-    ...xt(['query', 'update']),
-    async search() {
-      let res = await this.query();
-      if (this.$checkRes(res)) {
-        this.$set(this, `form`, res.data);
-      }
-    },
-    // 活动图设置保存
-    async turnSave({ data }) {
-      let res = await this.update(data);
-    },
-    // 图片
-    uploadSuccess({ type, data }) {
-      this.$set(this.form, `${type}`, data.uri);
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-};
-</script>
-
-<style lang="less" scoped></style>

+ 0 - 67
src/components/page/setting/personal.vue

@@ -1,67 +0,0 @@
-<template>
-  <div id="personal">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="crumbs">
-          <el-breadcrumb separator="/">
-            <el-breadcrumb-item> <i class="el-icon-lx-cascades"></i> 个人信息维护管理 </el-breadcrumb-item>
-          </el-breadcrumb>
-        </el-col>
-        <el-col :span="24" class="container">
-          <data-form :data="form" :fields="fields" :rules="rules" @save="turnSave"> </data-form>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import dataForm from '@/components/frame/form.vue';
-import { mapState, mapMutations, createNamespacedHelpers } from 'vuex';
-const { mapActions: user } = createNamespacedHelpers('user');
-export default {
-  metaInfo: { title: '个人信息维护管理' },
-  name: 'personal',
-  props: {},
-  components: { dataForm },
-  data: function() {
-    return {
-      form: {},
-      fields: [
-        { label: '名字', required: true, model: 'name', options: {} },
-        { label: '手机号', required: true, model: 'tel', options: { maxlength: 11, minlength: 11, placeholder: '请谨慎修改手机,此处关联系统登录' } },
-      ],
-      // 验证
-      rules: {
-        name: [{ required: true, message: '请输入名字', trigger: 'blur' }],
-        tel: [{ required: true, message: '请输入电话,请谨慎修改手机,此处关联系统登录', trigger: 'blur' }],
-      },
-    };
-  },
-  created() {
-    if (this.user) {
-      this.$set(this, `form`, this.user);
-    }
-  },
-  methods: {
-    ...user(['update']),
-    ...mapMutations(['setUser']),
-    // 修改保存个人信息
-    async turnSave({ data }) {
-      let res = await this.update(data);
-      this.$message({
-        message: '修改信息成功',
-        type: 'success',
-      });
-      localStorage.setItem('user', JSON.stringify(res.data));
-      this.setUser();
-      location.reload();
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-};
-</script>
-
-<style lang="less" scoped></style>

+ 0 - 66
src/components/page/setting/qrcode.vue

@@ -1,66 +0,0 @@
-<template>
-  <div id="qrcode">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="crumbs">
-          <el-breadcrumb separator="/">
-            <el-breadcrumb-item> <i class="el-icon-lx-cascades"></i> 二维码查看 </el-breadcrumb-item>
-          </el-breadcrumb>
-        </el-col>
-        <el-col :span="24" class="container">
-          <img :src="qc" />
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import Vue from 'vue';
-import { mapState, createNamespacedHelpers } from 'vuex';
-import QRCode from 'qrcode';
-export default {
-  metaInfo: { title: '二维码查看' },
-  name: 'qrcode',
-  props: {},
-  components: {},
-  data: function() {
-    return {
-      qc: '',
-    };
-  },
-  created() {
-    if (this.user) {
-      this.createQrcode();
-    }
-  },
-  methods: {
-    async createQrcode() {
-      let user = this.user;
-      console.log(this.user);
-      if (user.js == '0') {
-        let url = `${process.env.NODE_ENV === 'development' ? 'http://192.168.31.194:8002' : Vue.config.weixin.baseUrl}/ccbmobile/`; // 需要转换为二维码的内容
-        let el = document.getElementById('qrCodeUrl');
-        this.qc = await QRCode.toDataURL(url, { height: 300, width: 300 });
-      } else if (user.js == '1') {
-        let url = `${process.env.NODE_ENV === 'development' ? 'http://192.168.31.194:8002' : Vue.config.weixin.baseUrl}/ccbmobile/saleRegister?ssid=${
-          user.tableid
-        }&ssjs=1`; // 需要转换为二维码的内容
-        let el = document.getElementById('qrCodeUrl');
-        this.qc = await QRCode.toDataURL(url, { height: 300, width: 300 });
-      } else if (user.js == '2') {
-        let url = `${process.env.NODE_ENV === 'development' ? 'http://192.168.31.194:8002' : Vue.config.weixin.baseUrl}/ccbmobile/saleRegister?ssid=${
-          user.tableid
-        }&ssjs=2`; // 需要转换为二维码的内容
-        let el = document.getElementById('qrCodeUrl');
-        this.qc = await QRCode.toDataURL(url, { height: 300, width: 300 });
-      }
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-};
-</script>
-
-<style lang="less" scoped></style>

+ 0 - 63
src/components/page/setting/updatepwd.vue

@@ -1,63 +0,0 @@
-<template>
-  <div id="updatepwd">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="crumbs">
-          <el-breadcrumb separator="/">
-            <el-breadcrumb-item> <i class="el-icon-lx-cascades"></i> 修改密码 </el-breadcrumb-item>
-          </el-breadcrumb>
-        </el-col>
-        <el-col :span="24" class="container">
-          <data-form :data="form" :fields="fields" :rules="rules" @save="turnSave"> </data-form>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import dataForm from '@/components/frame/form.vue';
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: password } = createNamespacedHelpers('password');
-export default {
-  metaInfo: { title: '修改密码' },
-  name: 'updatepwd',
-  props: {},
-  components: {
-    dataForm,
-  },
-  data: function() {
-    return {
-      form: {},
-      fields: [{ label: '新密码', required: true, model: 'pwd', type: 'password' }],
-      // 验证
-      rules: {
-        pwd: [{ required: true, message: '请输入新密码', trigger: 'blur' }],
-      },
-    };
-  },
-  created() {},
-  methods: {
-    ...password(['update']),
-    // 修改保存修改密码
-    async turnSave({ data }) {
-      data.id = this.user.id;
-      console.log(data);
-      let res = await this.update(data);
-      if (this.$checkRes(res)) {
-        this.$message({
-          message: '修改密码成功',
-          type: 'success',
-        });
-        localStorage.removeItem('user');
-        this.$router.push('/login');
-      }
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-};
-</script>
-
-<style lang="less" scoped></style>

+ 0 - 146
src/components/page/sjSign/sjxsdeta.vue

@@ -1,146 +0,0 @@
-<template>
-  <div id="sjxsdeta">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="crumbs">
-          <el-breadcrumb separator="/">
-            <el-breadcrumb-item> <i class="el-icon-lx-cascades"></i> 销售员业绩明细 </el-breadcrumb-item>
-          </el-breadcrumb>
-        </el-col>
-        <el-col :span="24" class="container down">
-          <el-col :span="24" class="downTop">
-            <el-col :span="4">
-              <el-select v-model="searchForm.xsid" clearable placeholder="请选择销售员">
-                <el-option v-for="item in xsList" :key="item.id" :label="item.name" :value="item.id"> </el-option>
-              </el-select>
-            </el-col>
-            <el-col :span="6">
-              <el-date-picker
-                v-model="searchForm.date"
-                value-format="yyyy-MM-dd"
-                format="yyyy-MM-dd"
-                type="daterange"
-                range-separator="-"
-                start-placeholder="开始日期"
-                end-placeholder="结束日期"
-                clearable
-              >
-              </el-date-picker>
-            </el-col>
-            <el-col :span="4">
-              <el-input v-model="searchForm.tel" placeholder="请输入手机号"></el-input>
-            </el-col>
-            <el-col :span="10" style="padding: 0 50px;">
-              <el-button type="primary" icon="el-icon-search" @click="search">搜索</el-button>
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="downList">
-            <el-col :span="24" class="downListOne">
-              <el-col :span="12"> 客户总数{{ khtotal }}人 </el-col>
-              <el-col :span="12" style="text-align:right;">
-                <el-button type="primary" size="mini" @click="selectBtn()">导出数据</el-button>
-              </el-col>
-            </el-col>
-            <el-col :span="24" class="downListTwo">
-              <data-table :fields="fields" :opera="opera" :data="list" :total="total" @query="search"></data-table>
-            </el-col>
-          </el-col>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import _ from 'lodash';
-import dataTable from '@/components/frame/filter-page-table.vue';
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: xs } = createNamespacedHelpers('xs');
-const { mapActions: kh } = createNamespacedHelpers('kh');
-const { mapActions: count } = createNamespacedHelpers('count');
-const { mapActions: khselect } = createNamespacedHelpers('khselect');
-export default {
-  metaInfo: { title: '销售员业绩明细' },
-  name: 'sjxsdeta',
-  props: {},
-  components: {
-    dataTable, //列表组件
-  },
-  data: function() {
-    return {
-      // 查询
-      searchForm: {},
-      xsList: [],
-      // 客户列表
-      opera: [],
-      fields: [
-        { label: '名字', prop: 'name' },
-        { label: '手机号', prop: 'tel' },
-      ],
-      list: [],
-      total: 0,
-      // 客户总数
-      khtotal: 0,
-    };
-  },
-  created() {
-    this.searchXs();
-  },
-  methods: {
-    ...xs({ xsQuery: 'query' }),
-    ...kh({ khQuery: 'query' }),
-    ...count({ countQuery: 'query' }),
-    ...khselect({ khselectQuery: 'khselectQuery' }),
-    async searchXs() {
-      let res = await this.xsQuery({ ssid: this.user.tableid });
-      if (this.$checkRes(res)) {
-        let data = res.data;
-        data.push({ name: '全部' });
-        this.$set(this, `xsList`, data);
-      }
-    },
-    async search({ skip = 0, limit = 10, ...info } = {}) {
-      info = {
-        id: this.searchForm.xsid,
-        tel: this.searchForm.tel,
-        start: _.get(this.searchForm, 'date[0]'),
-        end: _.get(this.searchForm, 'date[1]'),
-        table: 'xs',
-        needdata: true,
-      };
-      let res = await this.countQuery({ skip, limit, ...info });
-      if (this.$checkRes(res)) {
-        this.$set(this, `list`, _.get(res.data[0], 'list'));
-        this.$set(this, `total`, _.get(res.data[0], 'khtotal'));
-        this.$set(this, `khtotal`, _.get(res.data[0], 'khtotal'));
-      }
-    },
-    // 导出数据
-    async selectBtn() {
-      let info = {
-        xsid: this.searchForm.xsid,
-        tel: this.searchForm.tel,
-        start: _.get(this.searchForm, 'date[0]'),
-        end: _.get(this.searchForm, 'date[1]'),
-      };
-      let res = await this.khselectQuery({ ...info });
-      if (this.$checkRes(res)) {
-        window.open(res.data);
-      }
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.down {
-  .downList {
-    .downListOne {
-      padding: 15px 0;
-    }
-  }
-}
-</style>

+ 29 - 0
src/components/page/test/index.vue

@@ -0,0 +1,29 @@
+<template>
+  <div id="index">
+    <el-row>
+      <el-col :span="24">
+        <p>index</p>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  metaInfo: { title: 'index' },
+  name: 'index',
+  props: {},
+  components: {},
+  data: function() {
+    return {};
+  },
+  created() {},
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+  },
+};
+</script>
+
+<style lang="less" scoped></style>

+ 0 - 144
src/components/page/zhSign/fhSign.vue

@@ -1,144 +0,0 @@
-<template>
-  <div id="fhSign">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="crumbs">
-          <el-breadcrumb separator="/">
-            <el-breadcrumb-item> <i class="el-icon-lx-cascades"></i> 分行客户报名统计 </el-breadcrumb-item>
-          </el-breadcrumb>
-        </el-col>
-        <el-col :span="24" class="container down">
-          <el-col :span="24" class="downTop">
-            <el-col :span="4">
-              <el-select v-model="searchForm.fhid" clearable placeholder="请选择分行" :popper-append-to-body="false">
-                <el-option v-for="item in fnList" :key="item.id" :label="item.name" :value="item.tableid"> </el-option>
-              </el-select>
-            </el-col>
-            <el-col :span="6">
-              <el-date-picker
-                v-model="searchForm.date"
-                value-format="yyyy-MM-dd"
-                format="yyyy-MM-dd"
-                type="daterange"
-                range-separator="-"
-                start-placeholder="开始日期"
-                end-placeholder="结束日期"
-                clearable
-              >
-              </el-date-picker>
-            </el-col>
-            <el-col :span="14">
-              <el-button type="primary" icon="el-icon-search" @click="search">搜索</el-button>
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="downList">
-            <el-col :span="24" class="downListOne">
-              <el-col :span="12"> 分行客户总数{{ khtotal }}人 </el-col>
-              <el-col :span="12" style="text-align:right;">
-                <el-button type="primary" size="mini" @click="selectBtn()">导出数据</el-button>
-              </el-col>
-            </el-col>
-            <el-col :span="24" class="downListTwo">
-              <data-table :fields="fields" :opera="opera" :data="list" :total="total" @query="search"> </data-table>
-            </el-col>
-          </el-col>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import _ from 'lodash';
-import dataTable from '@/components/frame/filter-page-table.vue';
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: sj } = createNamespacedHelpers('sj');
-const { mapActions: xs } = createNamespacedHelpers('xs');
-const { mapActions: kh } = createNamespacedHelpers('kh');
-const { mapActions: count } = createNamespacedHelpers('count');
-export default {
-  metaInfo: { title: '分行客户报名统计' },
-  name: 'fhSign',
-  props: {},
-  components: {
-    dataTable, //列表组件
-  },
-  data: function() {
-    return {
-      // 查询
-      searchForm: {},
-      fnList: [],
-      // 销售员列表
-      opera: [],
-      fields: [
-        { label: '销售员', prop: 'name' },
-        { label: '客户总数', prop: 'khtotal' },
-      ],
-      list: [],
-      total: 0,
-      khtotal: 0,
-    };
-  },
-  created() {
-    this.searchSj();
-  },
-  methods: {
-    ...sj(['query']),
-    ...xs({ xsQuery: 'query' }),
-    ...kh({ khQuery: 'query' }),
-    ...count({ countQuery: 'query', otherselectQuery: 'otherselectQuery' }),
-    // 查询分行列表
-    async searchSj() {
-      let res = await this.query({ js: '1' });
-      if (this.$checkRes(res)) {
-        let data = res.data;
-        data.push({ name: '全部' });
-        this.$set(this, `fnList`, data);
-      }
-    },
-    async search({ skip = 0, limit = 10, ...info } = {}) {
-      info = {
-        ssid: this.searchForm.fhid,
-        start: _.get(this.searchForm, 'date[0]'),
-        end: _.get(this.searchForm, 'date[1]'),
-        table: 'xs',
-      };
-      let res = await this.countQuery({ skip, limit, ...info });
-      if (this.$checkRes(res)) {
-        this.$set(this, `list`, res.data);
-        this.$set(this, `total`, res.total);
-        let khtotal = res.data.reduce((p, n) => p + (n['khtotal'] * 1 || 0), 0);
-        if (khtotal) this.$set(this, `khtotal`, khtotal);
-      }
-    },
-    async selectBtn() {
-      let info = {
-        ssid: this.searchForm.fhid,
-        start: _.get(this.searchForm, 'date[0]'),
-        end: _.get(this.searchForm, 'date[1]'),
-        table: 'xs',
-      };
-      let res = await this.otherselectQuery({ ...info });
-      if (this.$checkRes(res)) {
-        window.open(res.data);
-      }
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.down {
-  .downList {
-    .downListOne {
-      padding: 15px 0;
-    }
-  }
-}
-/deep/.el-select-dropdown__wrap {
-  max-height: 340px;
-}
-</style>

+ 0 - 142
src/components/page/zhSign/sjSign.vue

@@ -1,142 +0,0 @@
-<template>
-  <div id="sjSign">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="crumbs">
-          <el-breadcrumb separator="/">
-            <el-breadcrumb-item> <i class="el-icon-lx-cascades"></i> 商家客户报名统计 </el-breadcrumb-item>
-          </el-breadcrumb>
-        </el-col>
-        <el-col :span="24" class="container down">
-          <el-col :span="24" class="downTop">
-            <el-col :span="4">
-              <el-select v-model="searchForm.sjid" clearable placeholder="请选择商家">
-                <el-option v-for="item in sjList" :key="item.id" :label="item.name" :value="item.tableid"> </el-option>
-              </el-select>
-            </el-col>
-            <el-col :span="6">
-              <el-date-picker
-                v-model="searchForm.date"
-                value-format="yyyy-MM-dd"
-                format="yyyy-MM-dd"
-                type="daterange"
-                range-separator="-"
-                start-placeholder="开始日期"
-                end-placeholder="结束日期"
-                clearable
-              >
-              </el-date-picker>
-            </el-col>
-            <el-col :span="14">
-              <el-button type="primary" icon="el-icon-search" @click="search">搜索</el-button>
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="downList">
-            <el-col :span="24" class="downListOne">
-              <el-col :span="12"> 商家客户总数{{ khtotal }}人 </el-col>
-              <el-col :span="12" style="text-align:right;">
-                <el-button type="primary" size="mini" @click="selectBtn()">导出数据</el-button>
-              </el-col>
-            </el-col>
-            <el-col :span="24" class="downListTwo">
-              <data-table :fields="fields" :opera="opera" :data="list" :total="total" @query="search"> </data-table>
-            </el-col>
-          </el-col>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import _ from 'lodash';
-import dataTable from '@/components/frame/filter-page-table.vue';
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: sj } = createNamespacedHelpers('sj');
-const { mapActions: xs } = createNamespacedHelpers('xs');
-const { mapActions: kh } = createNamespacedHelpers('kh');
-const { mapActions: count } = createNamespacedHelpers('count');
-export default {
-  metaInfo: { title: '商家客户报名统计' },
-  name: 'sjSign',
-  props: {},
-  components: {
-    dataTable, //列表组件
-  },
-  data: function() {
-    return {
-      // 查询
-      searchForm: {},
-      sjList: [],
-      // 客户列表
-      opera: [],
-      fields: [
-        { label: '销售员', prop: 'name' },
-        { label: '客户总数', prop: 'khtotal' },
-      ],
-      list: [],
-      total: 0,
-      // 客户总数
-      khtotal: 0,
-    };
-  },
-  created() {
-    this.searchSj();
-  },
-  methods: {
-    // 查询商家
-    ...sj({ sjQuery: 'query' }),
-    ...xs({ xsQuery: 'query' }),
-    ...kh({ khQuery: 'query' }),
-    ...count({ countQuery: 'query', otherselectQuery: 'otherselectQuery' }),
-    async searchSj() {
-      let res = await this.sjQuery({ js: '2' });
-      if (this.$checkRes(res)) {
-        let data = res.data;
-        data.push({ name: '全部' });
-        this.$set(this, `sjList`, data);
-      }
-    },
-    async search({ skip = 0, limit = 10, ...info } = {}) {
-      info = {
-        ssid: this.searchForm.sjid,
-        start: _.get(this.searchForm, 'date[0]'),
-        end: _.get(this.searchForm, 'date[1]'),
-        table: 'xs',
-      };
-      let res = await this.countQuery({ skip, limit, ...info });
-      if (this.$checkRes(res)) {
-        this.$set(this, `list`, res.data);
-        this.$set(this, `total`, res.total);
-        let khtotal = res.data.reduce((p, n) => p + (n['khtotal'] * 1 || 0), 0);
-        if (khtotal) this.$set(this, `khtotal`, khtotal);
-      }
-    },
-    async selectBtn() {
-      let info = {
-        ssid: this.searchForm.sjid,
-        start: _.get(this.searchForm, 'date[0]'),
-        end: _.get(this.searchForm, 'date[1]'),
-        table: 'xs',
-      };
-      let res = await this.otherselectQuery({ ...info });
-      if (this.$checkRes(res)) {
-        window.open(res.data);
-      }
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.down {
-  .downList {
-    .downListOne {
-      padding: 15px 0;
-    }
-  }
-}
-</style>

+ 0 - 124
src/components/page/zhSign/weixin.vue

@@ -1,124 +0,0 @@
-<template>
-  <div id="weixin">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="crumbs">
-          <el-breadcrumb separator="/">
-            <el-breadcrumb-item> <i class="el-icon-lx-cascades"></i> 微信宣传转发统计 </el-breadcrumb-item>
-          </el-breadcrumb>
-        </el-col>
-        <el-col :span="24" class="container down">
-          <el-col :span="24" class="downTop">
-            <el-col :span="4">
-              <el-select v-model="searchForm.xsid" clearable placeholder="请选择销售员">
-                <el-option v-for="item in xsList" :key="item.id" :label="item.name" :value="item.id"> </el-option>
-              </el-select>
-            </el-col>
-            <el-col :span="6">
-              <el-date-picker
-                v-model="searchForm.date"
-                value-format="yyyy-MM-dd"
-                format="yyyy-MM-dd"
-                type="daterange"
-                range-separator="-"
-                start-placeholder="开始日期"
-                end-placeholder="结束日期"
-                clearable
-              >
-              </el-date-picker>
-            </el-col>
-            <el-col :span="14">
-              <el-button type="primary" icon="el-icon-search" @click="search">搜索</el-button>
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="downList">
-            <el-col :span="24" class="downListOne"> 微信转发总{{ wxtotal }}次 </el-col>
-            <el-col :span="24" class="downListTwo">
-              <data-table :fields="fields" :opera="opera" :data="list" :total="total" @query="search">
-                <template #custom="{item, row}">
-                  <template v-if="item.prop == 'num'">
-                    <span>{{ getkhTotal(row) }}</span>
-                  </template>
-                </template>
-              </data-table>
-            </el-col>
-          </el-col>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import _ from 'lodash';
-import dataTable from '@/components/frame/filter-page-table.vue';
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: xs } = createNamespacedHelpers('xs');
-const { mapActions: zf } = createNamespacedHelpers('zf');
-export default {
-  metaInfo: { title: '微信宣传转发统计' },
-  name: 'weixin',
-  props: {},
-  components: {
-    dataTable, //列表组件
-  },
-  data: function() {
-    return {
-      // 查询
-      searchForm: {},
-      xsList: [],
-      // 客户列表
-      opera: [],
-      fields: [
-        { label: '销售员姓名', prop: 'xsname' },
-        { label: '微信转发数', prop: 'times' },
-      ],
-      list: [],
-      total: 0,
-      // 微信转发总数
-      wxtotal: 0,
-    };
-  },
-  created() {
-    this.searchXs();
-  },
-  methods: {
-    ...xs({ xsQuery: 'query' }),
-    ...zf({ zfQuery: 'query' }),
-    async searchXs() {
-      let res = await this.xsQuery({ ssid: this.user.tableid });
-      if (this.$checkRes(res)) {
-        let data = res.data;
-        data.push({ name: '全部' });
-        this.$set(this, `xsList`, data);
-      }
-    },
-    async search({ skip = 0, limit = 10, ...info } = {}) {
-      info = {
-        xsid: this.searchForm.xsid,
-        start: _.get(this.searchForm, 'date[0]'),
-        end: _.get(this.searchForm, 'date[1]'),
-      };
-      let res = await this.zfQuery({ skip, limit, ...info });
-      if (this.$checkRes(res)) {
-        this.$set(this, `list`, res.data);
-        let wxtotal = res.data.reduce((p, n) => p + (n['times'] * 1 || 0), 0);
-        if (wxtotal) this.$set(this, `wxtotal`, wxtotal);
-      }
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.down {
-  .downList {
-    .downListOne {
-      padding: 15px 0;
-    }
-  }
-}
-</style>

+ 1 - 1
src/main.js

@@ -31,7 +31,7 @@ const i18n = new VueI18n({
 
 //使用钩子函数对路由进行权限跳转
 router.beforeEach((to, from, next) => {
-  document.title = `${to.meta.title} | ccb`;
+  document.title = `${to.meta.title} | adminsys`;
   const user = localStorage.getItem('user');
   if (!user && to.path !== '/login') {
     next('/login');

+ 7 - 85
src/router/index.js

@@ -4,11 +4,11 @@ import Router from 'vue-router';
 Vue.use(Router);
 export default new Router({
   mode: 'history',
-  base: process.env.NODE_ENV === 'development' ? '' : 'ccb',
+  base: process.env.NODE_ENV === 'development' ? '' : 'adminsys',
   routes: [
     {
       path: '/',
-      redirect: '/dashboard',
+      redirect: '/homeIndex',
     },
     {
       path: '/',
@@ -16,92 +16,14 @@ export default new Router({
       meta: { title: '自述文件' },
       children: [
         {
-          path: '/dashboard',
-          component: () => import('../components/page/Dashboard.vue'),
+          path: '/homeIndex',
+          component: () => import('../components/page/homeIndex.vue'),
           meta: { title: '系统首页' },
         },
-        // 系统设置(个人信息,修改密码,二维码查看,活动设置图[总行])
         {
-          path: '/personal',
-          component: () => import('../components/page/setting/personal.vue'),
-          meta: { title: '个人信息维护' },
-        },
-        {
-          path: '/updatepwd',
-          component: () => import('../components/page/setting/updatepwd.vue'),
-          meta: { title: '修改密码' },
-        },
-        {
-          path: '/qrcode',
-          component: () => import('../components/page/setting/qrcode.vue'),
-          meta: { title: '二维码查看' },
-        },
-        {
-          path: '/hdimage',
-          component: () => import('../components/page/setting/hdimage.vue'),
-          meta: { title: '活动设置图' },
-        },
-        // 总行菜单
-        // 同级账号管理
-        {
-          path: '/peer',
-          component: () => import('../components/page/peer/index.vue'),
-          meta: { title: '同级账号管理' },
-        },
-        // 分行用户管理
-        {
-          path: '/branch',
-          component: () => import('../components/page/branch/index.vue'),
-          meta: { title: '分行用户管理' },
-        },
-        // 总行报名统计
-        {
-          path: '/fhSign',
-          component: () => import('../components/page/zhSign/fhSign.vue'),
-          meta: { title: '分行客户报名统计' },
-        },
-        {
-          path: '/sjSign',
-          component: () => import('../components/page/zhSign/sjSign.vue'),
-          meta: { title: '商家客户报名统计' },
-        },
-        {
-          path: '/weixin',
-          component: () => import('../components/page/zhSign/weixin.vue'),
-          meta: { title: '微信宣传转发统计' },
-        },
-        // 分行菜单
-        {
-          path: '/business',
-          component: () => import('../components/page/business/index.vue'),
-          meta: { title: '商家用户管理' },
-        },
-        {
-          path: '/sale',
-          component: () => import('../components/page/sale/index.vue'),
-          meta: { title: '销售员管理' },
-        },
-        // 分行报名统计
-        {
-          path: '/fhxsdeta',
-          component: () => import('../components/page/fhSign/fhxsdeta.vue'),
-          meta: { title: '销售员业绩明细' },
-        },
-        {
-          path: '/fhxsstat',
-          component: () => import('../components/page/fhSign/fhxsstat.vue'),
-          meta: { title: '销售员业绩统计' },
-        },
-        {
-          path: '/fhsjdeta',
-          component: () => import('../components/page/fhSign/fhsjdeta.vue'),
-          meta: { title: '商家报名统计' },
-        },
-        // 商家报名统计
-        {
-          path: '/sjxsdeta',
-          component: () => import('../components/page/sjSign/sjxsdeta.vue'),
-          meta: { title: '销售员业绩明细' },
+          path: '/test',
+          component: () => import('../components/page/test/index.vue'),
+          meta: { title: '测试页面' },
         },
       ],
     },

+ 0 - 30
src/store/count.js

@@ -1,30 +0,0 @@
-import Vue from 'vue';
-import Vuex from 'vuex';
-import _ from 'lodash';
-Vue.use(Vuex);
-const api = {
-  countInfo: `/api/jh/v1/count`,
-};
-const state = () => ({});
-const mutations = {};
-
-const actions = {
-  async query({ commit }, { skip = 0, limit, ...info } = {}) {
-    const res = await this.$axios.$get(`${api.countInfo}`, {
-      skip,
-      limit,
-      ...info,
-    });
-    return res;
-  },
-  async otherselectQuery({ commit }, payload) {
-    const res = await this.$axios.$get(`${api.countInfo}/excel`, payload);
-    return res;
-  },
-};
-export default {
-  namespaced: true,
-  state,
-  mutations,
-  actions,
-};

+ 0 - 18
src/store/index.js

@@ -3,15 +3,6 @@ import Vuex from 'vuex';
 import * as ustate from './user/state';
 import * as umutations from './user/mutations';
 import login from './login';
-import sj from './sj';
-import kh from './kh';
-import xs from './xs';
-import xt from './xt';
-import zf from './zf';
-import user from './user';
-import password from './password';
-import count from './count';
-import khselect from './select/khselect';
 
 Vue.use(Vuex);
 
@@ -21,14 +12,5 @@ export default new Vuex.Store({
   actions: {},
   modules: {
     login,
-    sj,
-    kh,
-    xs,
-    xt,
-    zf,
-    user,
-    password,
-    count,
-    khselect,
   },
 });

+ 0 - 43
src/store/kh.js

@@ -1,43 +0,0 @@
-import Vue from 'vue';
-import Vuex from 'vuex';
-import _ from 'lodash';
-Vue.use(Vuex);
-const api = {
-  khInfo: `/api/jh/v1/kh`,
-};
-const state = () => ({});
-const mutations = {};
-
-const actions = {
-  async query({ commit }, { skip = 0, limit, ...info } = {}) {
-    const res = await this.$axios.$get(`${api.khInfo}`, {
-      skip,
-      limit,
-      ...info,
-    });
-    return res;
-  },
-  async create({ commit }, payload) {
-    const res = await this.$axios.$post(`${api.khInfo}`, payload);
-    return res;
-  },
-  async fetch({ commit }, payload) {
-    const res = await this.$axios.$get(`${api.khInfo}/${payload}`);
-    return res;
-  },
-  async update({ commit }, { id, ...data }) {
-    const res = await this.$axios.$post(`${api.khInfo}/${id}`, data);
-    return res;
-  },
-
-  async delete({ commit }, payload) {
-    const res = await this.$axios.$delete(`${api.khInfo}/${payload}`);
-    return res;
-  },
-};
-export default {
-  namespaced: true,
-  state,
-  mutations,
-  actions,
-};

+ 0 - 43
src/store/password.js

@@ -1,43 +0,0 @@
-import Vue from 'vue';
-import Vuex from 'vuex';
-import _ from 'lodash';
-Vue.use(Vuex);
-const api = {
-  passwordInfo: `/api/jh/v1/password`,
-};
-const state = () => ({});
-const mutations = {};
-
-const actions = {
-  async query({ commit }, { skip = 0, limit, ...info } = {}) {
-    const res = await this.$axios.$get(`${api.passwordInfo}`, {
-      skip,
-      limit,
-      ...info,
-    });
-    return res;
-  },
-  async create({ commit }, payload) {
-    const res = await this.$axios.$post(`${api.passwordInfo}`, payload);
-    return res;
-  },
-  async fetch({ commit }, payload) {
-    const res = await this.$axios.$get(`${api.passwordInfo}/${payload}`);
-    return res;
-  },
-  async update({ commit }, payload) {
-    const res = await this.$axios.$post(`${api.passwordInfo}`, payload);
-    return res;
-  },
-
-  async delete({ commit }, payload) {
-    const res = await this.$axios.$delete(`${api.passwordInfo}/${payload}`);
-    return res;
-  },
-};
-export default {
-  namespaced: true,
-  state,
-  mutations,
-  actions,
-};

+ 0 - 22
src/store/select/khselect.js

@@ -1,22 +0,0 @@
-import Vue from 'vue';
-import Vuex from 'vuex';
-import _ from 'lodash';
-Vue.use(Vuex);
-const api = {
-  khselectInfo: `/api/jh/v1/kh/excel`,
-};
-const state = () => ({});
-const mutations = {};
-
-const actions = {
-  async khselectQuery({ commit }, payload) {
-    const res = await this.$axios.$post(`${api.khselectInfo}`, payload);
-    return res;
-  },
-};
-export default {
-  namespaced: true,
-  state,
-  mutations,
-  actions,
-};

+ 0 - 43
src/store/sj.js

@@ -1,43 +0,0 @@
-import Vue from 'vue';
-import Vuex from 'vuex';
-import _ from 'lodash';
-Vue.use(Vuex);
-const api = {
-  sjInfo: `/api/jh/v1/sj`,
-};
-const state = () => ({});
-const mutations = {};
-
-const actions = {
-  async query({ commit }, { skip = 0, limit, ...info } = {}) {
-    const res = await this.$axios.$get(`${api.sjInfo}`, {
-      skip,
-      limit,
-      ...info,
-    });
-    return res;
-  },
-  async create({ commit }, payload) {
-    const res = await this.$axios.$post(`${api.sjInfo}`, payload);
-    return res;
-  },
-  async fetch({ commit }, payload) {
-    const res = await this.$axios.$get(`${api.sjInfo}/${payload}`);
-    return res;
-  },
-  async update({ commit }, { id, ...data }) {
-    const res = await this.$axios.$post(`${api.sjInfo}/${id}`, data);
-    return res;
-  },
-
-  async delete({ commit }, payload) {
-    const res = await this.$axios.$delete(`${api.sjInfo}/${payload}`);
-    return res;
-  },
-};
-export default {
-  namespaced: true,
-  state,
-  mutations,
-  actions,
-};

+ 0 - 43
src/store/user.js

@@ -1,43 +0,0 @@
-import Vue from 'vue';
-import Vuex from 'vuex';
-import _ from 'lodash';
-Vue.use(Vuex);
-const api = {
-  userInfo: `/api/jh/v1/user`,
-};
-const state = () => ({});
-const mutations = {};
-
-const actions = {
-  async query({ commit }, { skip = 0, limit, ...info } = {}) {
-    const res = await this.$axios.$get(`${api.userInfo}`, {
-      skip,
-      limit,
-      ...info,
-    });
-    return res;
-  },
-  async create({ commit }, payload) {
-    const res = await this.$axios.$post(`${api.userInfo}`, payload);
-    return res;
-  },
-  async fetch({ commit }, payload) {
-    const res = await this.$axios.$get(`${api.userInfo}/${payload}`);
-    return res;
-  },
-  async update({ commit }, { id, ...data }) {
-    const res = await this.$axios.$post(`${api.userInfo}/${id}`, data);
-    return res;
-  },
-
-  async delete({ commit }, payload) {
-    const res = await this.$axios.$delete(`${api.userInfo}/${payload}`);
-    return res;
-  },
-};
-export default {
-  namespaced: true,
-  state,
-  mutations,
-  actions,
-};

+ 0 - 43
src/store/xs.js

@@ -1,43 +0,0 @@
-import Vue from 'vue';
-import Vuex from 'vuex';
-import _ from 'lodash';
-Vue.use(Vuex);
-const api = {
-  xsInfo: `/api/jh/v1/xs`,
-};
-const state = () => ({});
-const mutations = {};
-
-const actions = {
-  async query({ commit }, { skip = 0, limit, ...info } = {}) {
-    const res = await this.$axios.$get(`${api.xsInfo}`, {
-      skip,
-      limit,
-      ...info,
-    });
-    return res;
-  },
-  async create({ commit }, payload) {
-    const res = await this.$axios.$post(`${api.xsInfo}`, payload);
-    return res;
-  },
-  async fetch({ commit }, payload) {
-    const res = await this.$axios.$get(`${api.xsInfo}/${payload}`);
-    return res;
-  },
-  async update({ commit }, { id, ...data }) {
-    const res = await this.$axios.$post(`${api.xsInfo}/${id}`, data);
-    return res;
-  },
-
-  async delete({ commit }, payload) {
-    const res = await this.$axios.$delete(`${api.xsInfo}/${payload}`);
-    return res;
-  },
-};
-export default {
-  namespaced: true,
-  state,
-  mutations,
-  actions,
-};

+ 0 - 43
src/store/xt.js

@@ -1,43 +0,0 @@
-import Vue from 'vue';
-import Vuex from 'vuex';
-import _ from 'lodash';
-Vue.use(Vuex);
-const api = {
-  xtInfo: `/api/jh/v1/xt`,
-};
-const state = () => ({});
-const mutations = {};
-
-const actions = {
-  async query({ commit }, { skip = 0, limit, ...info } = {}) {
-    const res = await this.$axios.$get(`${api.xtInfo}`, {
-      skip,
-      limit,
-      ...info,
-    });
-    return res;
-  },
-  async create({ commit }, payload) {
-    const res = await this.$axios.$post(`${api.xtInfo}`, payload);
-    return res;
-  },
-  async fetch({ commit }, payload) {
-    const res = await this.$axios.$get(`${api.xtInfo}/${payload}`);
-    return res;
-  },
-  async update({ commit }, { id, ...data }) {
-    const res = await this.$axios.$post(`${api.xtInfo}/${id}`, data);
-    return res;
-  },
-
-  async delete({ commit }, payload) {
-    const res = await this.$axios.$delete(`${api.xtInfo}/${payload}`);
-    return res;
-  },
-};
-export default {
-  namespaced: true,
-  state,
-  mutations,
-  actions,
-};

+ 0 - 26
src/store/zf.js

@@ -1,26 +0,0 @@
-import Vue from 'vue';
-import Vuex from 'vuex';
-import _ from 'lodash';
-Vue.use(Vuex);
-const api = {
-  zfInfo: `/api/jh/v1/zf`,
-};
-const state = () => ({});
-const mutations = {};
-
-const actions = {
-  async query({ commit }, { skip = 0, limit, ...info } = {}) {
-    const res = await this.$axios.$get(`${api.zfInfo}`, {
-      skip,
-      limit,
-      ...info,
-    });
-    return res;
-  },
-};
-export default {
-  namespaced: true,
-  state,
-  mutations,
-  actions,
-};

+ 0 - 30
src/util/menus.js

@@ -1,30 +0,0 @@
-export const coreMenu = [
-  {
-    path: '/talk/list/in',
-    name: '校内宣讲会',
-  },
-  {
-    path: '/talk/list/out',
-    name: '校外宣讲会',
-  },
-  {
-    path: '/jobfair/list/in',
-    name: '校内招聘会',
-  },
-  {
-    path: '/jobfair/list/out',
-    name: '校外招聘会',
-  },
-  {
-    path: '/jobinfo/list',
-    name: '在线招聘',
-  },
-  {
-    path: '/jobs/list/official',
-    name: '正式岗位',
-  },
-  {
-    path: '/jobs/list/internship',
-    name: '实习岗位',
-  },
-];

+ 0 - 47
src/util/optionTitles.js

@@ -1,47 +0,0 @@
-export const JOBFAIR_TITLE = [
-  { prop: 'subject', label: '' },
-  { prop: 'address', label: '举办地址' },
-  { prop: 'date', label: '举办日期' },
-  { prop: 'unit', label: '分站信息' },
-];
-
-export const CAMPUS_TITLE = [
-  { prop: 'subject', label: '' },
-  { prop: 'address', label: '举办地址' },
-  { prop: 'status', label: '审核状态' },
-  { prop: 'date', label: '举办日期' },
-  { prop: 'unit', label: '分站信息' },
-];
-
-export const JOBINFO_TITLE = [
-  { prop: 'title', label: '' },
-  { prop: 'count', label: '需求人数' },
-  { prop: 'nature.name', label: '工作性质' },
-  { prop: 'salary.name', label: '薪资待遇' },
-  { prop: 'xlreqs.name', label: '最低学历' },
-  { prop: 'city.name', label: '所在城市' },
-  // { prop: 'expired', label: '状态' },
-];
-
-export const RESUME_TITLE = [{ prop: 'title', label: '' }];
-
-export const LETTER_TITLE = [
-  { prop: 'title', label: '' },
-  { prop: 'corpname', label: '企业名称' },
-  { prop: 'type', label: '类型' },
-  { prop: 'status', label: '状态' },
-];
-
-export const TICKET_TITLE = [
-  { prop: 'subject', label: '' },
-  { prop: 'type', label: '门票类型' },
-  { prop: 'origin', label: '' },
-  { prop: 'date', label: '举办日期' },
-];
-
-export const CORP_JOBFAIR = [
-  { prop: 'subject', label: '' },
-  { prop: 'time', label: '举办时间' },
-  { prop: 'date', label: '举办日期' },
-  { prop: 'unit', label: '分站信息' },
-];