瀏覽代碼

Merge branch 'master' of http://git.cc-lotus.info/service-platform/web-website

guhongwei 5 年之前
父節點
當前提交
c7c3819a87

+ 124 - 0
src/components/enterprise/enterpisedg.vue

@@ -0,0 +1,124 @@
+<template>
+  <div id="adviserList">
+    <el-row>
+      <el-col :span="24" class="top">
+        <top></top>
+      </el-col>
+      <el-col :span="24" class="logo">
+        <div class="w_1200">
+          <logo :info="info"></logo>
+        </div>
+      </el-col>
+      <el-col :span="24" class="menu">
+        <div class="w_1200">
+          <menuInfo></menuInfo>
+        </div>
+      </el-col>
+      <el-col :span="24" class="main">
+        <div class="w_1200">
+          <el-col :span="5" class="left">
+            <el-col :span="24" class="leftTop">
+              <mainMenu :liebiaoList="liebiaoList" v-on="$listeners"></mainMenu>
+            </el-col>
+            <el-col :span="24" class="leftDiao">
+              <examine></examine>
+            </el-col>
+          </el-col>
+          <el-col :span="19" class="right">
+            <context v-on="$listeners" :total="total" :columnName="columnName" :recruitData="recruitData"></context>
+          </el-col>
+        </div>
+      </el-col>
+      <el-col :span="24" class="foot">
+        <div class="w_1200">
+          <foot :info="info"></foot>
+        </div>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import top from '@/layout/index/top.vue';
+import logo from '@/layout/index/logo.vue';
+import menuInfo from '@/layout/index/menuInfo.vue';
+import foot from '@/layout/index/foot.vue';
+import examine from '@/layout/personCenter/question.vue';
+import mainMenu from '@/layout/enterprise/mainMenu.vue';
+import context from '@/layout/enterprise/context.vue';
+export default {
+  name: 'adviserList',
+  props: {
+    info: null, //站点信息
+    liebiaoList: null, //分类导航
+    columnName: null, //栏目名称
+    recruitData: null,
+    total: null,
+  },
+  components: {
+    top, //头部
+    logo, //logo
+    menuInfo, //导航
+    foot, //底部
+    examine, //网上调查
+    mainMenu, //分类导航
+    context, //列表
+  },
+  data: () => ({}),
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="less" scoped>
+.w_1200 {
+  width: 1200px;
+  margin: 0 auto;
+}
+.top {
+  height: 40px;
+  overflow: hidden;
+  background-color: rgba(11, 58, 125, 0.8);
+}
+.logo {
+  height: 200px;
+  overflow: hidden;
+}
+.menu {
+  height: 70px;
+  overflow: hidden;
+}
+.main {
+  height: 740px;
+  overflow: hidden;
+  margin: 10px 0;
+}
+.left {
+  height: 740px;
+  margin: 0 10px 0 0;
+}
+.leftDiao {
+  background: #fff;
+  height: 370px;
+  overflow: hidden;
+}
+.leftTop {
+  background: #fff;
+  height: 360px;
+  overflow: hidden;
+  margin: 0 0 10px 0;
+}
+.right {
+  width: 940px;
+  height: 740px;
+  background: #fff;
+  overflow: hidden;
+}
+.foot {
+  float: left;
+  width: 100%;
+  height: 120px;
+  overflow: hidden;
+}
+</style>

+ 124 - 0
src/components/enterprise/enterprisejb.vue

@@ -0,0 +1,124 @@
+<template>
+  <div id="adviserList">
+    <el-row>
+      <el-col :span="24" class="top">
+        <top></top>
+      </el-col>
+      <el-col :span="24" class="logo">
+        <div class="w_1200">
+          <logo :info="info"></logo>
+        </div>
+      </el-col>
+      <el-col :span="24" class="menu">
+        <div class="w_1200">
+          <menuInfo></menuInfo>
+        </div>
+      </el-col>
+      <el-col :span="24" class="main">
+        <div class="w_1200">
+          <el-col :span="5" class="left">
+            <el-col :span="24" class="leftTop">
+              <mainMenu :liebiaoList="liebiaoList" v-on="$listeners"></mainMenu>
+            </el-col>
+            <el-col :span="24" class="leftDiao">
+              <examine></examine>
+            </el-col>
+          </el-col>
+          <el-col :span="19" class="right">
+            <adviserLists v-on="$listeners" :columnName="columnName" :recruitData="recruitData"></adviserLists>
+          </el-col>
+        </div>
+      </el-col>
+      <el-col :span="24" class="foot">
+        <div class="w_1200">
+          <foot :info="info"></foot>
+        </div>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import top from '@/layout/index/top.vue';
+import logo from '@/layout/index/logo.vue';
+import menuInfo from '@/layout/index/menuInfo.vue';
+import foot from '@/layout/index/foot.vue';
+import examine from '@/layout/personCenter/question.vue';
+import mainMenu from '@/layout/enterprise/mainMenu.vue';
+import adviserLists from '@/layout/enterprise/adviserLists.vue';
+export default {
+  name: 'adviserList',
+  props: {
+    info: null, //站点信息
+    liebiaoList: null, //分类导航
+    columnName: null, //栏目名称
+    recruitData: null,
+    total: null,
+  },
+  components: {
+    top, //头部
+    logo, //logo
+    menuInfo, //导航
+    foot, //底部
+    examine, //网上调查
+    mainMenu, //分类导航
+    adviserLists, //列表
+  },
+  data: () => ({}),
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="less" scoped>
+.w_1200 {
+  width: 1200px;
+  margin: 0 auto;
+}
+.top {
+  height: 40px;
+  overflow: hidden;
+  background-color: rgba(11, 58, 125, 0.8);
+}
+.logo {
+  height: 200px;
+  overflow: hidden;
+}
+.menu {
+  height: 70px;
+  overflow: hidden;
+}
+.main {
+  height: 740px;
+  overflow: hidden;
+  margin: 10px 0;
+}
+.left {
+  height: 740px;
+  margin: 0 10px 0 0;
+}
+.leftDiao {
+  background: #fff;
+  height: 370px;
+  overflow: hidden;
+}
+.leftTop {
+  background: #fff;
+  height: 360px;
+  overflow: hidden;
+  margin: 0 0 10px 0;
+}
+.right {
+  width: 940px;
+  height: 740px;
+  background: #fff;
+  overflow: hidden;
+}
+.foot {
+  float: left;
+  width: 100%;
+  height: 120px;
+  overflow: hidden;
+}
+</style>

+ 87 - 0
src/layout/enterprise/adviserLists.vue

@@ -0,0 +1,87 @@
+<template>
+  <div id="rightcont">
+    <el-col class="zhengce">
+      <el-col :span="24" class="topTitle">
+        基本信息
+      </el-col>
+      <el-col :span="24" class="info">
+        <el-col :span="24">{{ recruitData.name }}</el-col>
+        <el-col :span="24">{{ recruitData.phone }}</el-col>
+        <el-col :span="24">{{ recruitData.email }}</el-col>
+        <el-col :span="24">{{ recruitData.addr }}</el-col>
+      </el-col>
+    </el-col>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'rightcont',
+  props: {
+    columnName: null,
+    recruitData: null,
+  },
+  components: {},
+  data: () => ({
+    currentPage: 1,
+  }),
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="less" scoped>
+ul {
+  margin: 0;
+}
+li {
+  padding: 0;
+  margin: 0;
+  color: #a8abb7;
+}
+.zhengce {
+  padding: 20px;
+  overflow: hidden;
+}
+.topTitle {
+  font-size: 22px;
+  color: #22529a;
+  margin: 0 0 20px 0;
+}
+.info {
+  overflow: hidden;
+}
+.info ul {
+  height: 678px;
+  overflow: hidden;
+  padding: 0 0 0 20px;
+}
+.info ul li {
+  float: left;
+  width: 100%;
+  padding: 0 0 13px 0;
+}
+.info ul li .title {
+  font-size: 16px;
+  color: #60636d;
+}
+.info ul li .date {
+  font-size: 16px;
+  color: #a8abb7;
+  text-align: right;
+}
+.info ul li:hover {
+  cursor: pointer;
+}
+.info ul li:hover .title {
+  color: #22529a;
+}
+.info ul li:hover .date {
+  color: #22529a;
+}
+.page {
+  padding: 11px 0;
+  text-align: center;
+}
+</style>

+ 121 - 0
src/layout/enterprise/context.vue

@@ -0,0 +1,121 @@
+<template>
+  <div id="recruitLists">
+    <el-row>
+      <el-col :span="24" class="list">
+        <el-col :span="24" class="topTitle">
+          <el-col class="rightTopL"> 我的订购</el-col>
+        </el-col>
+
+        <el-col :span="24" class="tit">
+          <el-col> 我的订购</el-col>
+        </el-col>
+        <el-col :span="24" class="fbList">
+          <el-col class="fbListTop">信息号</el-col>
+          <el-col class="fbListCenter"></el-col>
+        </el-col>
+        <el-col :span="24">
+          <el-table :data="recruitData" style="width: 100%" border>
+            <el-table-column label="名称" align="center">
+              <template slot-scope="scoped">
+                <el-tooltip effect="dark" content="点击显示详情" placement="left">
+                  <el-col :span="24" @click.native="clickDetailcm(scoped.row)">{{ scoped.row.name }}</el-col>
+                </el-tooltip>
+              </template>
+            </el-table-column>
+            <el-table-column prop="infotype" label="信息类型" align="center"> </el-table-column>
+            <el-table-column prop="user_name" label="发布人" align="center"> </el-table-column>
+          </el-table>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'recruitLists',
+  props: {
+    recruitData: null,
+    columnName: null,
+    total: null,
+  },
+  components: {},
+  data: () => ({
+    currentPage: 1,
+  }),
+  created() {},
+  computed: {},
+  methods: {
+    handleSizeChange(val) {
+      console.log(`每页 ${val} 条`);
+    },
+    handleCurrentChange(val) {
+      console.log(`当前页: ${val}`);
+    },
+    clickDetailcm(row) {
+      this.$emit('detailcm', { data: row });
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.list {
+  height: 740px;
+
+  overflow: hidden;
+}
+.topTitle {
+  height: 60px;
+  width: 950px;
+  line-height: 60px;
+  border-bottom: 1px solid #215299;
+}
+.rightTopL {
+  width: 130px;
+  height: 60px;
+  float: left;
+  color: rgb(255, 255, 255);
+  font-size: 18px;
+  text-align: center;
+  font-family: 微软雅黑, Tahoma, Arial, Helvetica, STHeiti;
+  background: rgb(33, 82, 153);
+}
+
+.tit {
+  background-color: #ffffff;
+  padding: 30px 30px 0 30px;
+  line-height: 50px;
+  width: 890px;
+  height: 80px;
+  border-bottom: 1px solid #ccc;
+  background-color: #ffffff;
+  color: #215299;
+}
+.fbList {
+  width: 888px;
+  height: 183px;
+  border: 1px solid #ccc;
+  margin: 20px 0 0 20px;
+}
+
+.fbListTop {
+  height: 43px;
+  margin-left: 1px;
+  background: #fafafa;
+  line-height: 43px;
+  text-indent: 10px;
+  font-size: 13px;
+  color: #888888;
+}
+
+.fbListCenter {
+  width: 870px;
+  height: 119px;
+  margin: 20px 0 0 12px;
+}
+.page {
+  padding: 11px 0 0 0;
+  text-align: center;
+}
+</style>

+ 64 - 0
src/layout/enterprise/mainMenu.vue

@@ -0,0 +1,64 @@
+<template>
+  <div id="fenlei">
+    <el-col class="swfl" :span="24">
+      <el-image style="width:22px;height:22px;margin:0 5px -5px 0;" :src="src"></el-image>
+      <span>个人中心</span>
+    </el-col>
+    <el-col>
+      <el-menu default-active="1" class="el-menu-vertical-demo" @open="handleOpen" @close="handleClose" text-color="#215299" active-text-color="#215299">
+        <el-menu-item index="1" v-for="(item, index) in liebiaoList" :key="index"
+          ><span slot="title" @click="clickUrl(item.id)">{{ item.name }}</span></el-menu-item
+        >
+      </el-menu>
+    </el-col>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'fenlei',
+  props: {
+    liebiaoList: null,
+  },
+  components: {},
+  data: () => ({
+    src: require('@/assets/swfl.png'),
+  }),
+  created() {},
+  computed: {},
+  methods: {
+    clickUrl(id) {
+      this.$emit('onsave', { id });
+    },
+    handleOpen(key, keyPath) {
+      console.log(key, keyPath);
+    },
+    handleClose(key, keyPath) {
+      console.log(key, keyPath);
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.swfl {
+  height: 60px;
+  line-height: 60px;
+  background-color: #22529a;
+  text-align: center;
+}
+.swfl span {
+  font-size: 22px;
+  color: #ffffff;
+}
+/deep/.el-menu-item {
+  height: 60px;
+  text-align: center;
+  line-height: 60px;
+  border-bottom: 1px dashed;
+  font-size: 22px;
+}
+/deep/.el-menu-item:last-child {
+  border-bottom: none;
+}
+</style>

+ 23 - 0
src/router/index.js

@@ -238,6 +238,29 @@ const routes = [
     name: 'census',
     component: () => import('../views/personCenter/census.vue'),
   },
+  //企业-订购
+  {
+    path: '/enterprise/enterprisedg',
+    name: 'enterprisedg',
+    component: () => import('../views/enterprise/enterprisedg.vue'),
+  },
+  {
+    path: '/enterprise/enterprisedg',
+    name: 'enterprisedg',
+    component: () => import('../views/enterprise/enterprisedg.vue'),
+  },
+  //企业-发布
+  {
+    path: '/enterprise/enterprisefabu',
+    name: 'enterprisefabu',
+    component: () => import('../views/enterprise/enterprisefabu.vue'),
+  },
+  //企业-基本
+  {
+    path: '/enterprise/enterprisejb',
+    name: 'enterprisefabu',
+    component: () => import('../views/enterprise/enterprisejb.vue'),
+  },
 ];
 
 const router = new VueRouter({

+ 2 - 0
src/store/index.js

@@ -15,6 +15,7 @@ import policiesNew from './policiesNew';
 import policiesxinxi from './policiesxinxi';
 import policieszhuanjia from './policieszhuanjia';
 import policiesjbxx from './policiesjbxx';
+import market from './market';
 
 Vue.use(Vuex);
 
@@ -35,6 +36,7 @@ export default new Vuex.Store({
     policiesxinxi,
     policieszhuanjia,
     policiesjbxx,
+    market,
   },
   state: {},
   mutations: {},

+ 38 - 0
src/store/market.js

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

+ 92 - 0
src/views/enterprise/enterprisedg.vue

@@ -0,0 +1,92 @@
+<template>
+  <div id="adviserList">
+    <enterprisedg-detail
+      :info="info"
+      @detailcm="clickDetailcm"
+      :recruitData="recruitData"
+      :liebiaoList="liebiaoList"
+      @onsave="onsaveClick"
+      :columnName="columnName"
+      :total="total"
+    ></enterprisedg-detail>
+  </div>
+</template>
+
+<script>
+import enterprisedgDetail from '@/components/enterprise/enterpisedg.vue';
+import { createNamespacedHelpers, mapGetters } from 'vuex';
+const { mapActions: mapSite } = createNamespacedHelpers('site');
+const { mapActions: mapColumn } = createNamespacedHelpers('policiesColumn');
+const { mapActions: mapRecruit } = createNamespacedHelpers('policiesjbxx');
+export default {
+  name: 'adviserList',
+  props: {},
+  components: {
+    enterprisedgDetail,
+  },
+  data: () => ({
+    info: {},
+    liebiaoList: [],
+    columnName: '',
+    recruitData: [],
+  }),
+  created() {
+    this.searchSite();
+    this.searchColumn();
+    this.searchName();
+    this.searchList();
+  },
+  computed: {},
+  methods: {
+    ...mapSite(['showInfo']),
+    ...mapColumn({ columnList: 'query', columnInfo: 'fetch' }),
+    ...mapRecruit({ recruitList: 'query' }),
+    // 查询站点信息
+    async searchSite() {
+      let res = await this.showInfo();
+      let object = JSON.parse(JSON.stringify(res.data));
+      if (object) {
+        this.$set(this, `info`, res.data);
+      } else {
+        this.$message.error(res.errmsg ? res.errmsg : 'error');
+      }
+    },
+    // 查询科技政务栏目
+    async searchColumn({ ...info } = {}) {
+      const res = await this.columnList({ ...info });
+      this.$set(this, `liebiaoList`, res.data);
+    },
+    async onsaveClick({ id }) {
+      const res = await this.columnInfo(id);
+      if (res.data.name === '招聘信息') {
+        this.$router.push({ path: '/personnel/recruitList', query: { id: id } });
+      } else if (res.data.name === '就业指导') {
+        this.$router.push({ path: '/personnel/guidanceList', query: { id: id } });
+      } else if (res.data.name === '学习实践') {
+        this.$router.push({ path: '/personnel/practiceList', query: { id: id } });
+      } else if (res.data.name === '勤工俭学') {
+        this.$router.push({ path: '/personnel/diligenceList', query: { id: id } });
+      } else if (res.data.name === '工作顾问') {
+        this.$router.push({ path: '/personnel/adviserList', query: { id: id } });
+      }
+    },
+    async searchName() {
+      let nameId = this.$route.query.id;
+      const res = await this.columnInfo(nameId);
+      this.$set(this, `columnName`, res.data.name);
+    },
+    async searchList({ skip = 0, limit = 10, column_id } = {}) {
+      const res = await this.recruitList({ skip, limit, column_id: this.$route.query.id });
+      if (this.$checkRes(res)) {
+        this.$set(this, `recruitData`, res.data);
+        console.log(res.data);
+      }
+    },
+    clickDetailcm({ data }) {
+      this.$router.push({ path: '/personnel/personnelcmdetail', query: { id: data.id } });
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped></style>

+ 19 - 0
src/views/enterprise/enterprisefabu.vue

@@ -0,0 +1,19 @@
+<template>
+  <div id="enterprisefabu">
+    <p>enterprisefabu</p>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'enterprisefabu',
+  props: {},
+  components: {},
+  data: () => ({}),
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 61 - 0
src/views/enterprise/enterprisejb.vue

@@ -0,0 +1,61 @@
+<template>
+  <div id="adviserList">
+    <enterprisejb-detail :info="info" :recruitData="recruitData" :liebiaoList="liebiaoList"></enterprisejb-detail>
+    <!-- @detailcm="clickDetailcm" -->
+  </div>
+</template>
+
+<script>
+import enterprisejbDetail from '@/components/enterprise/enterprisejb.vue';
+import { createNamespacedHelpers, mapGetters } from 'vuex';
+const { mapActions: mapSite } = createNamespacedHelpers('site');
+const { mapActions: mapRecruit } = createNamespacedHelpers('market');
+export default {
+  name: 'adviserList',
+  props: {},
+  components: {
+    enterprisejbDetail,
+  },
+  data: () => ({
+    info: {},
+    liebiaoList: [{ name: '基本信息' }, { name: '消息管理' }, { name: '我的发布' }, { name: '我的订购' }, { name: '注销账号' }],
+    columnName: '',
+    recruitData: [],
+  }),
+  created() {
+    this.searchSite();
+
+    this.searchName();
+    this.searchInfo();
+  },
+  computed: {},
+  methods: {
+    ...mapSite(['showInfo']),
+    ...mapRecruit({ columnList: 'query', columnInfo: 'fetch' }),
+
+    // 查询站点信息
+    async searchSite() {
+      let res = await this.showInfo();
+      let object = JSON.parse(JSON.stringify(res.data));
+      if (object) {
+        this.$set(this, `info`, res.data);
+      } else {
+        this.$message.error(res.errmsg ? res.errmsg : 'error');
+      }
+    },
+    // 查询科技政务栏目
+    async searchColumn({ ...info } = {}) {},
+
+    async searchName() {},
+
+    async searchInfo() {
+      let detailId = 13144;
+
+      const res = await this.columnInfo(detailId);
+      this.$set(this, `recruitData`, res.data);
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped></style>

+ 7 - 0
vue.config.js

@@ -57,6 +57,13 @@ module.exports = {
         ws: true,
         // pathRewrite: { '^/api/affairs': '/api' },
       },
+
+      '/api/market': {
+        target: 'http://free.liaoningdoupo.com',
+        changeOrigin: true,
+        ws: true,
+        // pathRewrite: { '^/api/affairs': '/api' },
+      },
     },
   },
 };