浏览代码

feat: pc policy

jiangzixin 1 年之前
父节点
当前提交
9e596de165

+ 1 - 1
pc/assets/css/common.scss

@@ -79,7 +79,7 @@
 
 
 // 内、外边距[1-60]
-@for $i from 0 through 60 {
+@for $i from 0 through 100 {
 	// 只要偶数和能被5整除的数
 	@if $i % 2 == 0 or $i % 5 == 0 {
 		// 如:m-30

+ 4 - 1
pc/components/layout/header.vue

@@ -39,7 +39,10 @@
 								<nuxt-link to="/">首页</nuxt-link>
 							</li>
 							<li>
-								<nuxt-link to="/">人才看板</nuxt-link>
+								<nuxt-link to="/policy/search">政策查询</nuxt-link>
+							</li>
+                            <li>
+								<nuxt-link to="/policy">政策计算器</nuxt-link>
 							</li>
 							<li>
 								<nuxt-link to="/footprint/footprint">我的足迹</nuxt-link>

+ 347 - 0
pc/components/layout/policy-header.vue

@@ -0,0 +1,347 @@
+<template>
+	<header>
+		<div class="header-wrap">
+			<div class="header-con xs">
+				<div class="wrapper1180 flex row-between">
+					<div class="flex" style="height: 100%">
+						<template v-if="
+			                    publicData.article && publicData.article.length
+			                ">
+							<img style="
+			                        width: 16px;
+			                        height: 16px;
+			                        margin-right: 10px;
+			                    " src="~/static/images/header_notice.png" />
+							<client-only>
+								<swiper ref="headerSwiper" :options="swiperOptions">
+									<swiper-slide class="swiper-item" v-for="(
+			                                item, index
+			                            ) in publicData.article" :key="index">
+										<nuxt-link class="flex-col row-center" style="height: 100%" :to="
+			                                    '/news_list/news_list_detail?id=' +
+			                                    item.id
+			                                ">
+											<div class="line1">
+												{{ item.title }}
+											</div>
+										</nuxt-link>
+									</swiper-slide>
+								</swiper>
+							</client-only>
+						</template>
+					</div>
+					<div class="user flex flex-none">
+						<div v-if="config.name">
+							您好,欢迎来到 {{ config.name }}!
+						</div>
+						<ul class="flex flex-none">
+							<li>
+								<nuxt-link to="/">首页</nuxt-link>
+							</li>
+							<li>
+								<nuxt-link to="/">人才看板</nuxt-link>
+							</li>
+                            <li>
+								<nuxt-link to="/policy">政策计算器</nuxt-link>
+							</li>
+							<li>
+								<nuxt-link to="/footprint/footprint">我的足迹</nuxt-link>
+							</li>
+							<li>
+								<div
+									@click.stop="showCompanyAdd = true">
+									企业反馈</div>
+							</li>
+							<li>
+								<div
+									@click.stop="showFeedbackAdd = true">
+									意见反馈</div>
+							</li>
+
+							<li v-if="publicData.nickname">
+								<el-popover placement="bottom" trigger="hover" width="300">
+									<!-- 统计 -->
+									<div class="flex row-around w-full user-count">
+										<div class="flex-1 flex flex-col col-center"
+											v-for="(item, index) in publicData.count" :key="index"
+											@tap="menuJump(item)">
+											<div class="lg primary">{{ item.count }}</div>
+											<div>{{ item.title }}</div>
+										</div>
+									</div>
+									<div class="user-nav">
+										<div class="lighter xs item" @click="onLogout">
+											退出登录
+										</div>
+									</div>
+									<div slot="reference">
+										{{ publicData.nickname }}
+										<i class="el-icon-arrow-down"></i>
+									</div>
+								</el-popover>
+							</li>
+							<li v-else>
+								<nuxt-link to="/account/login">聚才网登录</nuxt-link>
+							</li>
+						</ul>
+					</div>
+				</div>
+			</div>
+			<div class="header-main" :style="{
+            'background-image': `url(${policyBg})`}">
+				<div class="wrapper1180 flex flex-col row-center">
+					<div class="app-name">晋江市人才政策计算器</div>
+				</div>
+			</div>
+		</div>
+		<feedback-add v-model="showFeedbackAdd" />
+		<company-add v-model="showCompanyAdd" />
+	</header>
+</template>
+
+<script>
+	import {
+		directive
+	} from 'vue-awesome-swiper'
+	import {
+		mapState,
+		mapMutations,
+		mapActions
+	} from 'vuex'
+	export default {
+		directives: {
+			swiper: directive,
+		},
+		data() {
+			return {
+				name: '',
+				search: false,
+				swiperOptions: {
+					direction: 'vertical',
+					// autoHeight: true,
+					height: 40,
+					initialSlide: 0,
+					autoplay: true,
+				},
+				showFeedbackAdd: false,
+				showCompanyAdd: false,
+                policyBg: 'images/policy-bg.png'
+			}
+		},
+		mounted() {
+			this.$nuxt.$on('keyword', (val) => {
+				this.name = val
+			})
+		},
+		methods: {
+			...mapMutations(['logout']),
+			...mapActions(['getPublicData']),
+			toSearch() {
+				// if (!this.name) return this.$message.error('请输入商品名称')
+				if (this.search) {
+					this.$nuxt.$emit('search', this.name);
+				}
+			},
+			toFocus() {
+				if (!this.search) {
+					this.$router.push({
+						path: '/search/search',
+						// query: {
+						// 	name: this.name,
+						// },
+					})
+				} else {
+					this.$nuxt.$emit('searchFouce', true);
+				}
+			},
+			onLogout() {
+				this.logout()
+				this.$message({
+					message: '退出成功',
+					type: 'success',
+				})
+				setTimeout(() => location.reload(), 1500)
+			},
+		},
+		watch: {
+			$route: {
+				immediate: true,
+				handler: function(val) {
+					console.log(val)
+					if (val.path == '/search/search') {
+						this.search = true
+					} else {
+						this.search = false
+					}
+				},
+			},
+		},
+		computed: {
+			...mapState(['publicData', 'config']),
+		},
+	}
+</script>
+
+<style lang="scss" scoped>
+	.header-wrap {
+		min-width: 1180px;
+		position: relative;
+		z-index: 1000;
+
+		::v-deep .swiper-container {
+			margin-left: 0;
+			margin-right: 0;
+			height: 100%;
+			width: 400px;
+		}
+
+		.swiper-item {
+			color: #ccc;
+			height: 17px;
+		}
+
+		.header-con {
+			background-color: rgba(4, 4, 4, 0.56);
+			border: 1px solid #707070;
+			height: 57px;
+			color: #f2f2f2;
+
+			>div {
+				height: 100%;
+				color: #FFFFFF;
+
+				a {
+					color: #FFFFFF;
+
+					&:hover {
+						color: #fff;
+					}
+				}
+
+				ul {
+					li {
+						margin-left: 20px;
+					}
+
+					#tel-phone-block {
+						position: relative;
+
+						&:hover .float-code {
+							display: flex;
+							box-shadow: 0 2px 8px 0 rgb(0 0 0 / 10%);
+						}
+
+						.float-code {
+							display: none;
+							position: absolute;
+							padding: 22px 16px;
+							background-color: white;
+							top: 24px;
+							right: -20px;
+
+							&::after {
+								content: '';
+								width: 8px;
+								box-shadow: 0 2px 8px 0 rgb(0 0 0 / 10%);
+								transform: matrix(0.71, 0.71, -0.71, 0.71, 0, 0);
+								right: 35px;
+								top: -4px;
+								height: 8px;
+								background-color: #fff;
+								position: absolute;
+							}
+						}
+					}
+				}
+			}
+		}
+
+		.header-main {
+			height: 170px;
+			background-size: 100% 100%;
+
+			.wrapper1180 {
+				height: 170px;
+
+				.app-name {
+					font-size: 40px;
+					font-weight: bold;
+					color: #303133;
+					// text-shadow: 1px 1px 2px black;
+				}
+
+				.search-wrap {
+					margin-top: 30px;
+					height: 80px;
+
+					//.logo {
+					//    height: 48px;
+					//    width: auto;
+					//}
+					.search {
+						width: 460px;
+						height: 42px;
+						overflow: hidden;
+
+						input {
+							flex: 1;
+							height: 100%;
+							border-radius: 4px 0 0 4px;
+							border: 1px solid $--color-primary;
+							border-right-width: 0;
+							padding: 0 10px;
+						}
+
+						.search-btn {
+							width: 82px;
+							height: 42px;
+							cursor: pointer;
+							border-radius: 0 4px 4px 0;
+						}
+					}
+
+					.cart {
+						cursor: pointer;
+						border-radius: 4px;
+						width: 108px;
+						height: 42px;
+						margin-left: 16px;
+					}
+				}
+			}
+		}
+		.user li {
+			cursor: pointer;
+		}
+	}
+
+	.user-nav {
+		.item {
+			text-align: center;
+			line-height: 34px;
+			display: block;
+			cursor: pointer;
+
+			&:not(:last-child) {
+				border-bottom: 1px solid #e5e5e5;
+			}
+
+			&:hover {
+				color: $--color-primary;
+			}
+		}
+	}
+
+	.user-opts {
+		padding: 50rpx;
+
+		image {
+			width: 70rpx;
+			height: 70rpx;
+		}
+	}
+
+	.user-count {
+		color: #5D5D5D;
+	}
+</style>

+ 2 - 2
pc/config/app.js

@@ -1,8 +1,8 @@
 
 // 本地访问域名
-const testUrl = "https://rcmap.jucai.gov.cn";
+const testUrl = "https://rencai.jiangzi.xin"
 //线上域名
-const productUrl = '';
+const productUrl = 'https://rcmap.jucai.gov.cn'
 const config = {
   baseUrl:  process.env.NODE_ENV == 'production' ? productUrl : testUrl
 }

+ 34 - 0
pc/layouts/policy.vue

@@ -0,0 +1,34 @@
+<template>
+    <div class="default-layout flex-col">
+        <ls-header></ls-header>
+
+        <main class="content-container wrapper1180 flex-1 flex col-top">
+            <nuxt class="flex-1"/>
+        </main>
+        <ls-footer></ls-footer>
+        <!-- <float-nav></float-nav> -->
+    </div>
+</template>
+<script>
+    import LsHeader from '~/components/layout/policy-header'
+    import LsFooter from '~/components/layout/footer'
+    // import FloatNav from '~/components/layout/float-nav'
+
+    export default {
+        components: {
+            LsHeader,
+            LsFooter,
+            // FloatNav,
+        },
+        methods: {
+            getChainList(list){
+                console.log(list)
+            }
+        }
+    }
+</script>
+<style scoped>
+    .default-layout {
+        min-height: 100vh;
+    }
+</style>

+ 198 - 0
pc/pages/policy/detail.vue

@@ -0,0 +1,198 @@
+<template>
+    <div class="news-details-container mt16">
+        <div class="nav-container flex">
+            <div class="nr" style="width: 70px">当前位置:</div>
+            <el-breadcrumb style="flex: 1;" separator="/">
+                <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
+                <el-breadcrumb-item>
+                    <nuxt-link to="/policy/search">政策查询</nuxt-link>
+                </el-breadcrumb-item>
+                <el-breadcrumb-item class="line1" style="max-width: 800px;">{{detailsObj.title}}</el-breadcrumb-item>
+            </el-breadcrumb>
+        </div>
+        <div class="content-box">
+            <div class="news-detail-box m-r-16">
+                <div class="content-header bg-white">
+                    <div class="news-detail-title">
+                        {{detailsObj.title}}
+                    </div>
+                    <div class="flex">
+                        <div class="sm muted m-r-20" v-if="detailsObj.author">
+                            {{detailsObj.author}}
+                        </div>
+                         <div class="sm muted">
+                            发布时间:{{timeFormat(detailsObj.created_at)}}
+                        </div>
+                        <!-- <div class="flex" style="margin-left: 40px">
+                            <i class="el-icon-view muted"></i>
+                            <div class="muted" style="margin-left: 3px;">{{detailsObj.visit}} 人浏览</div>
+                        </div> -->
+                    </div>
+                </div>
+                <div class="content-html-box bg-white">
+                    <div v-html="detailsObj.content"></div>
+                </div>
+            </div>
+            <div class="recommend-box">
+                <div class="recommend-box-header flex bg-white">
+                    <div class="primary-line"></div>
+                    <div class="xxl" style="font-weight: 500">为您推荐</div>
+                </div>
+                <div class="recommend-box-content bg-white">
+                    <div class="recommend-list-container">
+                        <div class="recommend-list-item" v-for="(item) in recommend_list" :key="item.id"
+                            @click="toOther(item.id)">
+                            <el-image style="width: 244px; height:183px;border-radius: 6px" fit="cover"
+                                :src="item.image" />
+                            <div class="goods-info">
+                                <div class="line2 goods-name">{{item.title}}</div>
+                                <div class="flex" style="margin-top: 10px">
+                                    <i class="el-icon-view muted"></i>
+                                    <div class="muted xs" style="margin-left: 4px;">{{item.visit}} 人浏览</div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+    import {
+    	timeFormat
+    } from '@/utils/date'
+    export default {
+        head() {
+            return {
+                title: this.$store.getters.headTitle,
+                link: [{
+                    rel: "icon",
+                    type: "image/x-icon",
+                    href: this.$store.getters.favicon
+                }],
+            };
+        },
+        async asyncData({
+            $get,
+            $post,
+            query
+        }) {
+            let detailsObj = {};
+            let recommend_list = [];
+            let res = await $get("policy/details", {
+                params: {
+                    id: query.id,
+                    client: 2
+                }
+            });
+            if (res.code == 1) {
+                detailsObj = res.data;
+                recommend_list = res.data.recommend_list
+            }
+            return {
+                detailsObj,
+                recommend_list,
+            };
+        },
+        watchQuery: ['id'],
+        data() {
+            return {
+                recommend_list: []
+            }
+        },
+        mounted() {
+            console.log('route', this.$route)
+            // this.getNewsDetails(this.$route.query.id);
+        },
+        methods: {
+            async getNewsDetails(id) {
+                let res = await this.$get("help/detail", {params: {id: id, client: 2}});
+                if(res.code == 1) {
+                    this.detailsObj = res.data;
+                    this.recommend_list = res.data.recommend_list
+                }
+            },
+            toOther(id) {
+                this.$router.push('/help_center/help_center_detail?id=' + id)
+            },
+            timeFormat(time) {
+            	return timeFormat(time)
+            },
+        }
+    }
+</script>
+
+<style lang="scss" scoped>
+    .news-details-container {
+        .nav-container {
+            padding: 15px 16px;
+        }
+
+        .content-box {
+            display: flex;
+            flex-direction: row;
+
+            .news-detail-box {
+                background-color: #FFFFFF;
+                width: 900px;
+
+                .content-header {
+                    margin: 0px 20px;
+                    padding: 20px 0px;
+                    border-bottom: 1px solid #e5e5e5;
+
+                    .news-detail-title {
+                        color: #222;
+                        font-size: 24px;
+                        font-weight: 500;
+                        margin-bottom: 43px;
+                    }
+                }
+
+                .content-html-box {
+                    padding: 24px 20px;
+
+                    &>div {
+                        width: 100%;
+                        overflow: hidden;
+
+                        ::v-deep img {
+                            width: 100%;
+                        }
+                    }
+                }
+            }
+
+            .recommend-box {
+                width: 264px;
+
+                .recommend-box-header {
+                    padding: 15px 10px;
+                    border-bottom: 1px solid #e5e5e5;
+
+                    .primary-line {
+                        margin-right: 10px;
+                        background-color: $--color-primary;
+                        width: 4px;
+                        height: 20px;
+                    }
+                }
+
+                .recommend-box-content {
+                    .recommend-list-container {
+                        .recommend-list-item {
+                            padding: 10px;
+                            cursor: pointer;
+
+                            .goods-info {
+                                margin-top: 8px;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+</style>

+ 397 - 0
pc/pages/policy/footprint.vue

@@ -0,0 +1,397 @@
+<template>
+	
+	<div>
+	    <!-- tab -->
+	    <el-tabs v-model="currentTab" :stretch="false" @tab-click="changeTab">
+	    	<el-tab-pane :label="item.name" v-for="(item, index) in typeList" :key="index">
+	    	</el-tab-pane>
+	    </el-tabs>
+	 <!--   <u-tabs :list="typeList" :is-scroll="false" :bold="true" active-color="#DD4250" height="80" font-size="28"
+	        :current="currentTab" @change="changeTab" /> -->
+	    <!-- 我是人才 -->
+	    <div class="p-70 p-t-40 talent-tab" v-if="currentTab == 0">
+	        <div class="flex-col col-center">
+	            <div class="title">您所从事的行业:</div>
+	            <nuxt-link :to="'/pages/policy/talent'" class="m-t-40" v-for="(item,index) in talentTypeList" :key="index">
+	                <img :src="item.image" mode="widthFix"></img>
+	            </nuxt-link>
+	        </div>
+	    </div>
+	    <!-- 我是企业 -->
+	    <div v-if="currentTab == 1">
+	        <div class="huodong-details">
+	
+	            <div class="p-30 ">
+	                <div class="detail-title">
+	                    一、企业基本信息
+	                </div>
+	                <div class="content-box bg-white m-t-30">
+	                    <div class="detail-cell row-between u-border-bottom">
+	                        <div class="width75">
+	                            企业名称
+	                        </div>
+	                        <div class="text-right flex-1">
+	                            <input type="text" v-model="info.title" placeholder="请输入">
+	                        </div>
+	                    </div>
+	                    <div class="detail-cell row-between u-border-bottom">
+	                        <div class="bold">
+	                            企业成立日期
+	                        </div>
+	                        <div class="text-right flex-1">
+	                            <input type="text" v-model="info.title" placeholder="请输入">
+	                        </div>
+	                    </div>
+	                    <div class="detail-cell row-between u-border-bottom">
+	                        <div class="bold">
+	                            企业注册地
+	                        </div>
+	                        <div class="text-right flex-1">
+	                            <input type="text" v-model="info.title" placeholder="请输入">
+	                        </div>
+	                    </div>
+	                    <div class="detail-cell row-between u-border-bottom">
+	                        <div class="bold">
+	                            企业实际经营地
+	                        </div>
+	                        <div class="text-right flex-1">
+	                            <input type="text" v-model="info.title" placeholder="请输入">
+	                        </div>
+	                    </div>
+	                    <div class="detail-cell row-between u-border-bottom">
+	                        <div class="bold">
+	                            企业有效l类知识产权数
+	                        </div>
+	                        <div class="text-right flex-1">
+	                            <input type="text" v-model="info.title" placeholder="请输入">
+	                        </div>
+	                    </div>
+	                    <div class="detail-cell row-between u-border-bottom">
+	                        <div class="bold" style="width: 400rpx;">
+	                            有效、高企认定中未使用过的II类知识产权数
+	                        </div>
+	                        <div class="text-right flex-1">
+	                            <input type="text" v-model="info.title" placeholder="请输入">
+	                        </div>
+	                    </div>
+	                    <div class="detail-cell row-between u-border-bottom">
+	                        <div class="bold">
+	                            知识产权获取方式
+	                        </div>
+	                        <div class="text-right flex-1">
+	                            <input type="text" v-model="info.title" placeholder="请输入">
+	                        </div>
+	                    </div>
+	                    <div class="detail-cell row-between u-border-bottom">
+	                        <div class="bold" style="width: 400rpx;">
+	                            企业参与编制国家标准、行业标准检测方法、技术规范的情况
+	                        </div>
+	                        <div class="text-right flex-1">
+	                            <input type="text" v-model="info.title" placeholder="请输入">
+	                        </div>
+	                    </div>
+	                    <div class="detail-cell row-between u-border-bottom">
+	                        <div class="bold flex" style="width: 400rpx;">
+	                            <div>科技成果数</div>
+	                            <div class="m-l-8 m-r-8 primary" style="font-size: 20rpx;">科技成果数有效期提示</div>
+	                            <i class="el-icon-info"></i>
+	
+	                        </div>
+	                        <div class="text-right flex-1">
+	                            <input type="text" v-model="info.title" placeholder="请输入">
+	                        </div>
+	                    </div>
+	                </div>
+	
+	                <div class="detail-title m-t-30">
+	                    二、研发组织管理水平评测(多选)
+	                </div>
+	                <div class="content-box m-t-30  bj-w ">
+	
+	                    <!-- <u-checkbox-group shape="circle" active-color="#DD4250" wrap="true"
+	                        @change="checkboxGroupChange">
+	                        <div class="m-t-15 m-b-15" v-for="(item, index) in testList" :key="index">
+	                            <u-checkbox @change="checkboxChange" v-model="item.checked"
+	                                :name="item.name">{{item.name}}</u-checkbox>
+	                        </div>
+	                    </u-checkbox-group> -->
+	                </div>
+	
+	                <div class="detail-title m-t-30">
+	                    三、企业成长性评测
+	                </div>
+	                <div class="content-box m-t-30  bj-w ">
+	                    <div class="detail-title p-t-30">
+	                        第一年
+	                    </div>
+	                    <div class="detail-cell row-between ">
+	                        <div class="bold">
+	                            净资产(万元)
+	                        </div>
+	                        <div class="text-right flex-1">
+	                            <input type="text" v-model="info.title" placeholder="请输入">
+	                        </div>
+	                    </div>
+	                    <div class="detail-cell row-between u-border-bottom">
+	                        <div class="bold">
+	                            销售收入(万元)
+	                        </div>
+	                        <div class="text-right flex-1">
+	                            <input type="text" v-model="info.title" placeholder="请输入">
+	                        </div>
+	                    </div>
+	                    <div class="detail-title p-t-30">
+	                        第二年
+	                    </div>
+	                    <div class="detail-cell row-between ">
+	                        <div class="bold">
+	                            净资产(万元)
+	                        </div>
+	                        <div class="text-right flex-1">
+	                            <input type="text" v-model="info.title" placeholder="请输入">
+	                        </div>
+	                    </div>
+	                    <div class="detail-cell row-between u-border-bottom">
+	                        <div class="bold">
+	                            销售收入(万元)
+	                        </div>
+	                        <div class="text-right flex-1">
+	                            <input type="text" v-model="info.title" placeholder="请输入">
+	                        </div>
+	                    </div>
+	                    <div class="detail-cell row-between u-border-bottom">
+	                        <div class="bold">
+	                            验证码
+	                        </div>
+	                        <div class="text-right flex-1 flex row-right">
+	                            <input type="text" v-model="info.title" placeholder="请输入">
+	                            <img src="https://jiangzi.xin/coffee/login/captcha?" mode="heightFix" style="height: 54rpx;" class=m-l-10></img>
+	                        </div>
+	                    </div>
+	
+	
+	                </div>
+	            </div>
+	
+	            <div class="footer">
+	                <el-button type="primary" class="white btn lg" @click="handleConsult">提交</el-button>
+	            </div>
+	
+	          
+	        </div>
+	    </div>
+	</div>
+</template>
+
+<script>
+	import {
+	    mapState
+	} from 'vuex'
+	export default {
+	    head() {
+	    	return {
+	    		title: this.$store.getters.headTitle,
+	    		link: [{
+	    			rel: 'icon',
+	    			type: 'image/x-icon',
+	    			href: this.$store.getters.favicon,
+	    		}, ],
+	    	}
+	    },
+	    
+	    layout: 'policy',
+	    data() {
+	        return {
+	            typeList: [{
+	                name: '我是人才',
+	            }, {
+	                name: '我是企业',
+	            }],
+	            currentTab: 0,
+	            talentTypeList: [{
+	                'image': '/static/images/type-1.png'
+	            }, {
+	                'image': '/static/images/type-2.png'
+	            }, {
+	                'image': '/static/images/type-3.png'
+	            }, {
+	                'image': '/static/images/type-4.png'
+	            }, ],
+	
+	            info: {
+	                category_id: 0,
+	                title: '',
+	                tel: '',
+	                address: '',
+	                chain: '',
+	                module: '',
+	                intro: '',
+	                principal: '',
+	            },
+	
+	            testList: [{
+	                    name: '1、制定了企业研究开发的组织管理制度',
+	                },
+	                {
+	                    name: '2、建立了研发投入核算体系',
+	                },
+	                {
+	                    name: '3、编制了研发费用辅组账',
+	                },
+	                {
+	                    name: '4、设立了内部科学技术研究开发机构并具备相应的科技',
+	                },
+	                {
+	                    name: '5、与国内外研究开发机构开展多种形式产学研合作',
+	                }
+	            ],
+	            top: 172
+	        }
+	    },
+	    created() {
+	        // this.getHomeFun();
+	        // this.getUser();
+	    },
+	    methods: {
+	        // ...mapActions(['getUser']),
+	        // 改变当前的Tabs位置
+	        changeTab(index) {
+	            this.currentTab = index;
+	        },
+	        handleConsult(){
+	            // uni.navigateTo({
+	            //     url: '/pages/policy/score'
+	            // })
+	        },
+	    },
+	    computed: {
+	
+	        ...mapState(['config']),
+	    }
+	}
+</script>
+
+<style lang="scss" scoped>
+    .huodong-details {
+        padding-bottom: calc(200rpx + env(safe-area-inset-bottom));
+    }
+
+    .details-images {
+        height: 408rpx;
+        border-radius: 20rpx;
+        overflow: hidden;
+        width: 100%;
+
+        img {
+            width: 100%;
+            height: 100%;
+        }
+    }
+
+    .detail-title {
+        // font-size: 36rpx;
+        font-weight: bold;
+        // padding: 30rpx 0;
+    }
+
+    .detail-cell {
+        display: flex;
+        // align-items: center;
+        padding: 30rpx 0;
+
+        .cell-img {
+            padding: 5rpx 0;
+
+            img {
+                width: 48rpx;
+                height: 48rpx;
+                display: block
+            }
+        }
+
+    }
+
+    // .muted {
+    //     color: #989898;
+    //     padding-left: 10rpx;
+    // }
+
+    .detail-biaoti {
+        // font-size: 36rpx;
+        height: 88rpx;
+        line-height: 88rpx;
+    }
+
+    .bj-w {
+        background-color: #fff;
+    }
+
+    .padding-30 {
+        padding: 0 30rpx !important;
+
+    }
+
+    .content-box {
+        padding: 0 24rpx;
+        box-shadow: 0rpx 8rpx 16rpx 2rpx rgba(0, 0, 0, 0.03);
+        border-radius: 12rpx 12rpx 12rpx 12rpx;
+
+        input {
+            font-size: 28rpx;
+        }
+
+        textarea {
+            width: 100%;
+            height: 100rpx;
+            font-size: 28rpx;
+        }
+    }
+
+    .btn-r-border {
+        position: relative;
+
+        &::after {
+            content: ' ';
+            width: 1rpx;
+            height: 36rpx;
+            background-color: #CCCCCC;
+            right: 0;
+            top: 50%;
+            margin-top: -18rpx;
+            position: absolute;
+        }
+    }
+
+    .width75 {
+        width: 150rpx;
+        font-weight: bold;
+    }
+    .footer {
+        left: 0%;
+        bottom: 150rpx;
+        width: 100%;
+        padding: 0 24rpx;
+        position: fixed;
+        z-index: 99;
+
+        .btn {
+            height: 84rpx;
+            line-height: 84rpx;
+            background-color: $--color-primary;
+            box-shadow: 0rpx 6rpx 12rpx 2rpx rgba(243, 113, 113, 0.39);
+            border-radius: 18rpx 18rpx 18rpx 18rpx;
+        }
+    }
+
+    page {
+        padding: 0;
+    }
+
+    .talent-tab {
+        .title {
+            font-size: 36rpx;
+            font-weight: 400;
+            color: #333333;
+        }
+    }
+</style>

+ 889 - 0
pc/pages/policy/index.vue

@@ -0,0 +1,889 @@
+<template>
+
+    <div>
+        <!-- tab -->
+        <div class="flex row-center m-t-60">
+            <div class="tab-item" :class="{ 'tat-active': currentTab==0 }" @click="changeTab(0)">我是人才</div>
+            <div class="tab-item" :class="{ 'tat-active': currentTab==1 }" @click="changeTab(1)">我是企业</div>
+        </div>
+
+        <!-- 我是人才 -->
+        <div class="m-t-40 talent-tab" v-if="currentTab == 0">
+            <div v-if="showType">
+                <div class="title flex">
+                    <div class="title-left"></div>
+                    <div class="m-l-16">您所从事的行业</div>
+                </div>
+                <div class="flex flex-wrap row-center">
+                    <div class="m-t-40" v-for="(item,index) in talentTypeList" :key="index" @click="showType = false">
+                        <img :src="item.image" width="380px" style="margin: 28px 20px;" mode="widthFix"></img>
+                    </div>
+                </div>
+            </div>
+            <div v-else>
+                <div v-if="showPolicy == false">
+                    <div class="title flex">
+                        <div class="title-left"></div>
+                        <div class="m-l-16">人才信息填写</div>
+                    </div>
+
+                    <div class="content-box bg-white m-t-30">
+                        <div class="flex">
+                            <div class="flex-1 flex row-center">
+                                <div class="flex-1 text-right">您来自哪里</div>
+                                <div class="flex-2 m-l-15">
+                                    <el-radio v-model="radio" label="1">中国大陆</el-radio>
+                                    <el-radio v-model="radio" label="2">中国台湾</el-radio>
+                                    <el-radio v-model="radio" label="3">其他</el-radio>
+                                </div>
+                            </div>
+                            <div class="flex-1 flex row-center">
+                                <div class="flex-1 text-right">您的职务</div>
+                                <div class="flex-2">
+                                    <input type="text" class="m-l-15" v-model="info.title" placeholder="请输入">
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="flex m-t-18">
+                            <div class="flex-1 flex row-center">
+                                <div class="flex-1 text-right">您的学历</div>
+                                <div class="flex-2 m-l-15">
+                                    <el-radio v-model="radio" label="1">本科</el-radio>
+                                    <el-radio v-model="radio" label="2">硕士</el-radio>
+                                    <el-radio v-model="radio" label="3">博士</el-radio>
+                                </div>
+                            </div>
+                            <div class="flex-1 flex row-center">
+                                <div class="flex-1 text-right">称号奖章</div>
+                                <div class="flex-2">
+                                    <input type="text" class="m-l-15" v-model="info.title" placeholder="请输入">
+                                </div>
+                            </div>
+                        </div>
+                        <div class="flex m-t-18">
+                            <div class="flex-1 flex row-center">
+                                <div class="flex-1 text-right">您的职称</div>
+                                <div class="flex-2 m-l-15">
+                                    <el-radio v-model="radio" label="1">初级</el-radio>
+                                    <el-radio v-model="radio" label="2">中级</el-radio>
+                                    <el-radio v-model="radio" label="3">高级</el-radio>
+                                    <el-radio v-model="radio" label="4">无</el-radio>
+                                </div>
+                            </div>
+                            <div class="flex-1 flex row-center">
+                                <div class="flex-1 text-right">专业技术领域</div>
+                                <div class="flex-2">
+                                    <input type="text" class="m-l-15" v-model="info.title" placeholder="请输入">
+                                </div>
+                            </div>
+                        </div>
+                        <div class="flex m-t-18">
+                            <div class="flex-1 flex row-center">
+                                <div class="flex-1 text-right">您的年龄</div>
+                                <div class="flex-2 m-l-15">
+                                    <el-radio v-model="radio" label="1">30周岁以下</el-radio>
+                                    <el-radio v-model="radio" label="2">40周岁以下</el-radio>
+                                    <el-radio v-model="radio" label="3">55周岁以下</el-radio>
+                                </div>
+                            </div>
+                            <div class="flex-1 flex row-center">
+                                <div class="flex-1 text-right">专业技术领域工作年限</div>
+                                <div class="flex-2">
+                                    <input type="text" class="m-l-15" v-model="info.title" placeholder="请输入">
+                                </div>
+                            </div>
+                        </div>
+                        <div class="flex m-t-18">
+                            <div class="flex-1 flex row-center">
+                                <div class="flex-1 text-right">您的薪酬</div>
+                                <div class="flex-2 flex">
+                                    <input type="text" class="m-l-15" v-model="info.title" placeholder="请输入">
+                                    <div class="m-l-8 m-r-8 primary" style="font-size: 20rpx;">(22年社平工资为124463元)</div>
+                                </div>
+                            </div>
+                            <div class="flex-1 flex row-center">
+                                <div class="flex-1 text-right">重大奖项</div>
+                                <div class="flex-2 flex">
+                                    <input type="text" class="m-l-15" v-model="info.title" placeholder="请输入">
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="flex m-t-18">
+                            <div class="flex-1 flex row-center">
+                                <div class="flex-1 text-right">验证码</div>
+                                <div class="flex-2 flex ">
+                                    <input type="text" class="m-l-15" v-model="info.title" placeholder="请输入">
+                                    <img src="https://jiangzi.xin/coffee/login/captcha?" mode="heightFix"
+                                        style="height: 54rpx;" class=m-l-10></img>
+                                </div>
+                            </div>
+                            <div class="flex-1 flex row-center">
+                            </div>
+                        </div>
+                    </div>
+
+                    <div class="flex row-center m-t-35">
+                        <el-button type="primary" class="white btn lg submit-btn"
+                            @click="handleConsult">提交匹配</el-button>
+                    </div>
+                </div>
+                <!-- 匹配结果 -->
+                <div class="pilicy-list p-30" v-else>
+                    <div style="background: #FDF2F4;">
+                        <div style="height: 230px;background-size: 100% 100%;" :style="{
+                       'background-image': `url(${policyResultBg})`}">
+                            <div class="flex flex-col row-center p-t-45">
+                                <div style="font-size: 28px;font-weight: 500;color: #DD4250;">亲爱的用户,为您匹配如下人才政策</div>
+                            </div>
+                        </div>
+                        <div class="p-30" style="margin-top: -100px;">
+                            <div class="bg-white p-t-25 p-b-25 p-l-50 p-r-50">
+                                <div style="font-size: 20px;font-weight: 500;color: #303133;">您可能符合的人才类型:</div>
+                                <!-- 标签 -->
+                                <div class="flex flex-wrap m-t-20">
+                                    <div class="tag-item" :class="{ 'tat-active': activeIndex == index }"
+                                        v-for="(item, index) in policyList" :key="index" @click="changeTag(index)">
+                                        {{ item.type }}
+                                    </div>
+                                </div>
+                            </div>
+
+                            <div class="bg-white p-t-25 p-b-25 p-l-50 p-r-50 m-t-25">
+                                <!-- 政策详情 -->
+                                <div v-for="(item, index) in policyList" :key="index" v-if="activeIndex == index">
+                                    <div style="font-size: 20px;font-weight: 500;color: #303133;">{{item.type}}详情:
+                                    </div>
+                                    <div class="detail m-t-20">{{ item.content }}</div>
+                                    <div class="flex m-t-20">
+                                        <div class="user-logout flex col-center row-center white"
+                                            to="/pages/policy/detail">
+                                            <div class="m-r-12">{{ item.title }}</div>
+                                            <i class="el-icon-caret-right"></i>
+                                            <!-- <u-icon name="arrow-rightward" size="28"></u-icon> -->
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="flex row-center m-t-100">
+                <div class="flex-col col-center policy-hot">
+                    <div class="flex">
+                        <img src="images/icon-hot.png" style="height: 29px;"></img>
+                        <div class="hot-title">热门政策</div>
+                    </div>
+                    <div class="flex flex-wrap m-t-30">
+                        <div class="m-b-15 m-r-26" v-for="(item, index) in hotList">
+                            <el-tag type="info" color="#F7F8FA">{{ item }}</el-tag>
+                        </div>
+                    </div>
+
+                    <div class="hot-title m-t-15">省、市政策</div>
+                    <div class="flex flex-wrap m-t-30">
+                        <div class="m-b-15 m-r-26" v-for="(item, index) in hotList">
+                            <el-tag type="info" color="#F7F8FA">{{ item }}</el-tag>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+
+
+        <!-- 我是企业 -->
+        <div class="m-t-40" v-if="currentTab == 1">
+            <div class="" v-if="showCompany">
+
+                <div>
+                    <div class="detail-title flex">
+                        <div class="title-left"></div>
+                        <div class="m-l-16">一、企业基本信息</div>
+                    </div>
+                    <div class="content-box bg-white m-t-30">
+                        <div class="flex">
+                            <div class="flex-1 flex row-center">
+                                <div class="flex-1 text-right">企业名称</div>
+                                <div class="flex-2">
+                                    <input type="text" class="m-l-15" v-model="info.title" placeholder="请输入企业名称">
+                                </div>
+                            </div>
+                            <div class="flex-1 flex row-center">
+                                <div class="flex-1 text-right">企业成立日期</div>
+                                <div class="flex-2">
+                                    <input type="text" class="m-l-15" v-model="info.title" placeholder="请输入企业成立日期">
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="flex m-t-18">
+                            <div class="flex-1 flex row-center">
+                                <div class="flex-1 text-right">企业注册地</div>
+                                <div class="flex-2">
+                                    <input type="text" class="m-l-15" v-model="info.title" placeholder="请输入企业注册地">
+                                </div>
+                            </div>
+                            <div class="flex-1 flex row-center">
+                                <div class="flex-1 text-right">企业实际经营地</div>
+                                <div class="flex-2">
+                                    <input type="text" class="m-l-15" v-model="info.title" placeholder="请输入企业实际经营地">
+                                </div>
+                            </div>
+                        </div>
+                        <div class="flex m-t-18">
+                            <div class="flex-1 flex row-center">
+                                <div class="flex-1 text-right">企业有效l类知识产权数</div>
+                                <div class="flex-2">
+                                    <input type="text" class="m-l-15" v-model="info.title" placeholder="请输入l类知识产权数">
+                                </div>
+                            </div>
+                            <div class="flex-1 flex row-center">
+                                <div class="flex-1 text-right">有效、高企认定中未使用过的II类知识产权数</div>
+                                <div class="flex-2">
+                                    <input type="text" class="m-l-15" v-model="info.title" placeholder="请输入II类知识产权数">
+                                </div>
+                            </div>
+                        </div>
+                        <div class="flex m-t-18">
+                            <div class="flex-1 flex row-center">
+                                <div class="flex-1 text-right">知识产权获取方式</div>
+                                <div class="flex-2 m-l-15">
+                                    <el-radio v-model="radio" label="1">自主研发</el-radio>
+                                    <el-radio v-model="radio" label="2">仅有受让、受赠和并购等</el-radio>
+                                </div>
+                            </div>
+                            <div class="flex-1 flex row-center">
+                                <div class="flex-1 text-right">企业参与编制国家标准、行业标准、检测方法、技术规范的情况</div>
+
+                                <div class="flex-2 m-l-15">
+                                    <el-radio v-model="radio" label="1">是</el-radio>
+                                    <el-radio v-model="radio" label="2">否</el-radio>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="flex m-t-18">
+                            <div class="flex-1 flex row-center">
+                                <div class="flex-1 text-right">科技成果数</div>
+                                <div class="flex-2 flex">
+                                    <input type="text" class="m-l-15" v-model="info.title" placeholder="请输入科技成果数">
+                                    <div class="m-l-8 m-r-8 primary" style="font-size: 20rpx;">科技成果数有效期提示</div>
+                                    <i class="el-icon-info"></i>
+                                </div>
+                            </div>
+                            <div class="flex-1 flex row-center">
+                            </div>
+                        </div>
+
+                    </div>
+
+                    <div class="detail-title flex m-t-30">
+                        <div class="title-left"></div>
+                        <div class="m-l-16">二、研发组织管理水平评测(多选)</div>
+                    </div>
+                    <div class="content-box m-t-30  bj-w ">
+
+                        <!-- <u-checkbox-group shape="circle" active-color="#DD4250" wrap="true"
+	                        @change="checkboxGroupChange">
+	                        <div class="m-t-15 m-b-15" v-for="(item, index) in testList" :key="index">
+	                            <u-checkbox @change="checkboxChange" v-model="item.checked"
+	                                :name="item.name">{{item.name}}</u-checkbox>
+	                        </div>
+	                    </u-checkbox-group> -->
+                        <div class="flex">
+                            <el-checkbox v-model="checked1" class="flex-1" label="1.制定了企业研究开发的组织管理制度"
+                                border></el-checkbox>
+                            <el-checkbox v-model="checked2" class="flex-1" label="2.建立了研发投入核算体系" border></el-checkbox>
+                            <el-checkbox v-model="checked3" class="flex-1" label="3.编制了研发费用辅组账" border></el-checkbox>
+                        </div>
+                        <div class="flex m-t-15">
+                            <el-checkbox v-model="checked4" class="flex-1" label="4.设立了内部科学技术研究开发机构并具备相应的科"
+                                border></el-checkbox>
+                            <el-checkbox v-model="checked5" class="flex-1" label="5.与国内外研究开发机构开展多种形式产学研合作"
+                                border></el-checkbox>
+                            <el-checkbox v-model="checked6" class="flex-1" label="6.建立了科技成果转化的组织实施与激励奖励制度"
+                                border></el-checkbox>
+                        </div>
+                        <div class="flex m-t-15">
+                            <el-checkbox v-model="checked7" class="flex-1" label="7.建立开放式的创新创业平台" border
+                                size="medium"></el-checkbox>
+                            <el-checkbox v-model="checked8" class="flex-1" label="8.建立了科技人员的培养进修制度" border
+                                size="medium"></el-checkbox>
+                            <el-checkbox v-model="checked9" class="flex-1" label="9.建立了职工技能培训制度" border
+                                size="medium"></el-checkbox>
+                        </div>
+                    </div>
+                    <div class="detail-title flex m-t-30">
+                        <div class="title-left"></div>
+                        <div class="m-l-16"> 三、企业成长性评测</div>
+                    </div>
+                    <div class="content-box m-t-30  bj-w ">
+
+                        <div class="flex">
+                            <div class="flex-1 flex row-center">
+                                <div class="flex-1 text-right">第一年<span class="m-l-20">净资产</span></div>
+                                <div class="flex-2">
+                                    <input type="text" class="m-l-15" v-model="info.title" placeholder="请输入">(万元)
+                                </div>
+                            </div>
+                            <div class="flex-1 flex row-center">
+                                <div class="flex-1 text-right">销售收入</div>
+                                <div class="flex-2">
+                                    <input type="text" class="m-l-15" v-model="info.title" placeholder="请输入">(万元)
+                                </div>
+                            </div>
+                        </div>
+                        <div class="flex m-t-15">
+                            <div class="flex-1 flex row-center">
+                                <div class="flex-1 text-right">第二年<span class="m-l-20">净资产</span></div>
+                                <div class="flex-2">
+                                    <input type="text" class="m-l-15" v-model="info.title" placeholder="请输入">(万元)
+                                </div>
+                            </div>
+                            <div class="flex-1 flex row-center">
+                                <div class="flex-1 text-right">销售收入</div>
+                                <div class="flex-2">
+                                    <input type="text" class="m-l-15" v-model="info.title" placeholder="请输入">(万元)
+                                </div>
+                            </div>
+                        </div>
+                        <div class="flex m-t-15">
+                            <div class="flex-1 flex row-center">
+                                <div class="flex-1 text-right">第三年<span class="m-l-20">净资产</span></div>
+                                <div class="flex-2">
+                                    <input type="text" class="m-l-15" v-model="info.title" placeholder="请输入">(万元)
+                                </div>
+                            </div>
+                            <div class="flex-1 flex row-center">
+                                <div class="flex-1 text-right">销售收入</div>
+                                <div class="flex-2">
+                                    <input type="text" class="m-l-15" v-model="info.title" placeholder="请输入">(万元)
+                                </div>
+                            </div>
+                        </div>
+                        <div class="flex m-t-15">
+                            <div class="flex-1 flex row-center">
+                                <div class="flex-1 text-right">验证码</span></div>
+                                <div class="flex-2 flex m-l-15">
+                                    <input type="text" v-model="info.title" placeholder="请输入">
+                                    <img src="https://jiangzi.xin/coffee/login/captcha?" mode="heightFix"
+                                        style="height: 54rpx;" class=m-l-10></img>
+                                </div>
+                            </div>
+                            <div class="flex-1 flex row-center">
+                            </div>
+                        </div>
+                    </div>
+                </div>
+
+                <div class="flex row-center m-t-30">
+                    <el-button type="primary" class="white btn lg submit-btn" @click="handleConsult">提交测评</el-button>
+                </div>
+            </div>
+
+            <!-- 匹配结果 -->
+            <div class="pilicy-list p-30" v-else>
+                <div style="background: #FDF2F4;">
+                    <div style="height: 230px;background-size: 100% 100%;" :style="{
+                   'background-image': `url(${policyResultBg})`}">
+                        <div class="flex flex-col row-center p-t-45">
+                            <div style="font-size: 28px;font-weight: 500;color: #DD4250;">国家级高新技术企业认定创新能力测试</div>
+                        </div>
+                    </div>
+                    <div class="p-30" style="margin-top: -100px;">
+                        <div class="bg-white p-t-25 p-b-25 p-l-50 p-r-50 text-center">
+                            <div style="font-size: 20px;font-weight: 500;color: #303133;">企业评测总得分</div>
+                            <div style="font-size: 48px;color: #DD4250;">100</div>
+                            <div style="font-size: 16px;color: #DD4250;">综合得分达70分以上(不含70) 为符合认定要求,最终分数以专家评审为主</div>
+                        </div>
+
+                        <div class="bg-white p-t-25 p-b-25 p-l-50 p-r-50 m-t-25">
+                            <div class="detail-title flex">
+                                <div class="title-left"></div>
+                                <div class="m-l-16">企业基本信息</div>
+                            </div>
+                            <div class="content-box bg-white m-t-30">
+                                <div class="flex">
+                                    <div class="flex-1 flex row-center">
+                                        <div class="flex-1">企业名称:福建省晋江人力资本有限公司</div>
+                                    </div>
+                                    <div class="flex-1 flex row-center">
+                                        <div class="flex-1">企业成立日期:1990-10-1</div>
+                                    </div>
+                                </div>
+
+                                <div class="flex m-t-18">
+                                    <div class="flex-1 flex row-center">
+                                        <div class="flex-1">企业注册地:晋江</div>
+                                    </div>
+                                    <div class="flex-1 flex row-center">
+                                        <div class="flex-1">企业实际经营地:晋江</div>
+                                    </div>
+                                </div>
+                                <div class="flex m-t-18">
+                                    <div class="flex-1 flex row-center">
+                                        <div class="flex-1">企业有效l类知识产权数:100</div>
+                                    </div>
+                                    <div class="flex-1 flex row-center">
+                                        <div class="flex-1">有效、高企认定中未使用过的II类知识产权数:100</div>
+                                    </div>
+                                </div>
+                                <div class="flex m-t-18">
+                                    <div class="flex-1 flex row-center">
+                                        <div class="flex-1">知识产权获取方式:自主研发</div>
+                                    </div>
+                                    <div class="flex-1 flex row-center">
+                                        <div class="flex-1">企业参与编制国家标准、行业标准、检测方法、技术规范的情况:是</div>
+                                    </div>
+                                </div>
+                                <!-- <div class="flex m-t-18">
+                                    <div class="flex-1 flex row-center">
+                                        <div class="flex-1 text-right">科技成果数</div>
+                                        <div class="flex-2 flex">
+                                            <input type="text" class="m-l-15" v-model="info.title"
+                                                placeholder="请输入科技成果数">
+                                            <div class="m-l-8 m-r-8 primary" style="font-size: 20rpx;">科技成果数有效期提示</div>
+                                            <i class="el-icon-info"></i>
+                                        </div>
+                                    </div>
+                                    <div class="flex-1 flex row-center">
+                                    </div>
+                                </div> -->
+
+                            </div>
+
+                            <div class="detail-title flex m-t-30">
+                                <div class="title-left"></div>
+                                <div class="m-l-16">知识产权 (总分:30, 获得 30 分)</div>
+                            </div>
+                            <div class="content-box m-t-30  bj-w ">
+
+                                <div class="flex">
+                                    <div class="flex-1 flex row-center">
+                                        <div class="flex-1">技术的先进程度(8分)</div>
+                                        <div class="flex-1">得分:8分</div>
+                                    </div>
+                                    <div class="flex-1 flex row-center">
+                                        <div class="flex-1">对主要产品(服务)在技术上发挥核心支持作用(8分)</div>
+                                        <div class="flex-1">得分:8分</div>
+                                    </div>
+                                </div>
+                                <div class="flex m-t-18">
+                                    <div class="flex-1 flex row-center">
+                                        <div class="flex-1">知识产权数量(8分)</div>
+                                        <div class="flex-1">得分:8分</div>
+                                    </div>
+                                    <div class="flex-1 flex row-center">
+                                        <div class="flex-1">对主要产品(服务)在技术上发挥核心支持作用(8分)</div>
+                                        <div class="flex-1">得分:8分</div>
+                                    </div>
+                                </div>
+                                <div class="flex m-t-18">
+                                    <div class="flex-1 flex row-center">
+                                        <div class="flex-1">技术的先进程度(8分)</div>
+                                        <div class="flex-1">得分:8分</div>
+                                    </div>
+                                    <div class="flex-1 flex row-center">
+                                        <div class="flex-1">知识产权获得方式(6分)</div>
+                                        <div class="flex-1">得分:8分</div>
+                                    </div>
+                                </div>
+                                <div class="flex m-t-18">
+                                    <div class="flex-1 flex row-center">
+                                        <div class="flex-1">企业参与编制国家标准、行业标准、 检测方法、技术规范的情况(2分)</div>
+                                        <div class="flex-1">得分:8分</div>
+                                    </div>
+                                    <div class="flex-1 flex row-center">
+                                    </div>
+                                </div>
+
+                            </div>
+                            <div class="detail-title flex m-t-30">
+                                <div class="title-left"></div>
+                                <div class="m-l-16"> 科技成果转化能力(总分:30,获得 30 分)</div>
+                            </div>
+                            <div class="detail-title flex m-t-30">
+                                <div class="title-left"></div>
+                                <div class="m-l-16"> 研究开发组织管理水平(总分:20,获得 20 分)</div>
+                            </div>
+                            <div class="detail-title flex m-t-30">
+                                <div class="title-left"></div>
+                                <div class="m-l-16"> 企业成长性(总分:20,获得 20 分)</div>
+                            </div>
+                            <div class="content-box bg-white m-t-30">
+                                <div class="flex">
+                                    <div class="flex-1 flex row-center">
+                                        <div class="flex-1">净资产增长率得分(10分)</div>
+                                        <div class="flex-1">得分:8分</div>
+                                    </div>
+                                    <div class="flex-1 flex row-center">
+                                        <div class="flex-1">销售收入增长率得分(10分)</div>
+                                        <div class="flex-1">得分:8分</div>
+                                    </div>
+                                </div>
+                            </div>
+
+                        </div>
+
+                        <div class="flex row-center m-t-30">
+                            <el-button type="primary" class="white btn lg submit-btn"
+                                @click="showCompany = true">重新测评</el-button>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+    import {
+        mapState
+    } from 'vuex'
+    export default {
+        head() {
+            return {
+                title: this.$store.getters.headTitle,
+                link: [{
+                    rel: 'icon',
+                    type: 'image/x-icon',
+                    href: this.$store.getters.favicon,
+                }, ],
+            }
+        },
+
+        layout: 'policy',
+        data() {
+            return {
+                typeList: [{
+                    name: '我是人才',
+                }, {
+                    name: '我是企业',
+                }],
+                showType: true,
+                showPolicy: false,
+                showCompany: true,
+                policyResultBg: 'images/policy-result-bg.png',
+                currentTab: 0,
+                talentTypeList: [{
+                    'image': 'images/type-1.png'
+                }, {
+                    'image': 'images/type-2.png'
+                }, {
+                    'image': 'images/type-3.png'
+                }, {
+                    'image': 'images/type-4.png'
+                }, ],
+                radio: '1',
+                info: {
+                    category_id: 0,
+                    title: '',
+                    tel: '',
+                    address: '',
+                    chain: '',
+                    module: '',
+                    intro: '',
+                    principal: '',
+                },
+                activeIndex: 0,
+                policyList: [{
+                    type: '毕业生政策',
+                    content: "毕业生政策对2021年7月1日起受聘于企事业单位(不含参公事业单位)的新引进的全日制毕业生,按照博士(不超过40周岁)每人8万元,硕士(不超过35周岁)每人5万元,“双一流”建设高校(学科)及世界最新排名前200名大学本科(不超过30周岁)每人3万元,其他高校应届本科每人1万元进行发放。",
+                    title: "毕业生政策"
+                }, {
+                    type: '杰出青年',
+                    content: "杰出青年对2021年7月1日起受聘于企事业单位(不含参公事业单位)的新引进的全日制毕业生,按照博士(不超过40周岁)每人8万元,硕士(不超过35周岁)每人5万元,“双一流”建设高校(学科)及世界最新排名前200名大学本科(不超过30周岁)每人3万元,其他高校应届本科每人1万元进行发放。",
+                    title: "杰出青年"
+                }, {
+                    type: '重点产业紧缺',
+                    content: "重点产业紧缺对2021年7月1日起受聘于企事业单位(不含参公事业单位)的新引进的全日制毕业生,按照博士(不超过40周岁)每人8万元,硕士(不超过35周岁)每人5万元,“双一流”建设高校(学科)及世界最新排名前200名大学本科(不超过30周岁)每人3万元,其他高校应届本科每人1万元进行发放。",
+                    title: "重点产业紧缺"
+                }, {
+                    type: '人才放、保障房',
+                    content: "人才放、保障房对2021年7月1日起受聘于企事业单位(不含参公事业单位)的新引进的全日制毕业生,按照博士(不超过40周岁)每人8万元,硕士(不超过35周岁)每人5万元,“双一流”建设高校(学科)及世界最新排名前200名大学本科(不超过30周岁)每人3万元,其他高校应届本科每人1万元进行发放。",
+                    title: "人才放、保障房"
+                }],
+
+                testList: [{
+                        name: '1、制定了企业研究开发的组织管理制度',
+                    },
+                    {
+                        name: '2、建立了研发投入核算体系',
+                    },
+                    {
+                        name: '3、编制了研发费用辅组账',
+                    },
+                    {
+                        name: '4、设立了内部科学技术研究开发机构并具备相应的科技',
+                    },
+                    {
+                        name: '5、与国内外研究开发机构开展多种形式产学研合作',
+                    }
+                ],
+                hotList: [
+                    '毕业生政策',
+                    '毕业生政策',
+                    '毕业生政策',
+                    '毕业生政策',
+                    '毕业生政策',
+                    '毕业生政策',
+                    '毕业生政策',
+                    '毕业生政策',
+                ],
+                top: 172
+            }
+        },
+        created() {
+            // this.getHomeFun();
+            // this.getUser();
+        },
+        methods: {
+            // ...mapActions(['getUser']),
+            // 改变当前的Tabs位置
+            changeTab(index) {
+                this.currentTab = index;
+                if (this.currentTab == 0) {
+                    this.showType = true
+                    this.showPolicy = false
+                }
+                if (this.currentTab == 1) {
+                    this.showCompany = true
+                }
+            },
+            changeTag(index) {
+                this.activeIndex = index;
+            },
+            handleConsult() {
+                // uni.navigateTo({
+                //     url: '/pages/policy/score'
+                // })
+                if (this.currentTab == 0) {
+                    this.showPolicy = true
+                }
+                if (this.currentTab == 1) {
+                    this.showCompany = false
+                }
+            },
+        },
+        computed: {
+
+            ...mapState(['config']),
+        }
+    }
+</script>
+
+<style lang="scss">
+    body {
+        background-color: #fff;
+    }
+
+    page {
+        padding: 0;
+    }
+
+    .huodong-details {
+        // padding-bottom: calc(200rpx + env(safe-area-inset-bottom));
+    }
+
+    .tab-item {
+        padding: 18px 80px;
+        background: #fff;
+        color: #303133;
+        border: 1px solid #BBBCC5;
+    }
+
+    .tab-item:first-child {
+        border-radius: 10px 0px 0px 10px;
+    }
+
+    .tab-item:last-child {
+        border-radius: 0px 10px 10px 0px;
+    }
+
+    .tat-active {
+        background: linear-gradient(90deg, #DD4250 0%, #F87D81 100%);
+        color: #fff;
+        border: 1px solid #F87D81;
+    }
+
+    .details-images {
+        height: 408rpx;
+        border-radius: 20rpx;
+        overflow: hidden;
+        width: 100%;
+
+        img {
+            width: 100%;
+            height: 100%;
+        }
+    }
+
+    .detail-title {
+        // font-size: 36rpx;
+        font-weight: bold;
+        // padding: 30rpx 0;
+    }
+
+    .detail-cell {
+        display: flex;
+        // align-items: center;
+        padding: 30rpx 0;
+
+        .cell-img {
+            padding: 5rpx 0;
+
+            img {
+                width: 48rpx;
+                height: 48rpx;
+                display: block
+            }
+        }
+
+    }
+
+    // .muted {
+    //     color: #989898;
+    //     padding-left: 10rpx;
+    // }
+
+    .detail-biaoti {
+        // font-size: 36rpx;
+        height: 88rpx;
+        line-height: 88rpx;
+    }
+
+    .bj-w {
+        background-color: #fff;
+    }
+
+    .padding-30 {
+        padding: 0 30rpx !important;
+
+    }
+
+    .content-box {
+        padding: 0 24rpx;
+        box-shadow: 0rpx 8rpx 16rpx 2rpx rgba(0, 0, 0, 0.03);
+        border-radius: 12rpx 12rpx 12rpx 12rpx;
+
+        input {
+            font-size: 28rpx;
+            background: #FFFFFF;
+            border-radius: 2px 2px 2px 2px;
+            border: 1px solid #DCDFE6;
+            padding: 8px 10px;
+        }
+
+        textarea {
+            width: 100%;
+            height: 100rpx;
+            font-size: 28rpx;
+        }
+    }
+
+    .btn-r-border {
+        position: relative;
+
+        &::after {
+            content: ' ';
+            width: 1rpx;
+            height: 36rpx;
+            background-color: #CCCCCC;
+            right: 0;
+            top: 50%;
+            margin-top: -18rpx;
+            position: absolute;
+        }
+    }
+
+    .width75 {
+        width: 150rpx;
+        font-weight: bold;
+    }
+
+    .footer {
+        left: 0%;
+        bottom: 150rpx;
+        width: 100%;
+        padding: 0 24rpx;
+        position: fixed;
+        z-index: 99;
+
+
+    }
+
+
+
+    .talent-tab {}
+
+    .title,
+    .detail-title {
+        font-size: 20px;
+        font-family: Source Han Sans SC-Normal, Source Han Sans SC;
+        font-weight: 400;
+        color: #DD4250;
+        background: #FFF9FA;
+        padding: 16px 20px;
+
+        .title-left {
+            width: 6px;
+            height: 22px;
+            background: #DD4250;
+            border-radius: 4px 4px 4px 4px;
+            opacity: 1;
+        }
+    }
+
+    .policy-hot {
+        background: url('/pc/images/policy-hot.png');
+        background-size: 100% 100%;
+        height: 409px;
+        width: 723px;
+        padding: 50px;
+
+        .hot-title {
+            font-size: 24px;
+            font-family: Source Han Sans SC-Medium, Source Han Sans SC;
+            font-weight: 500;
+            color: #DD4250;
+            margin-left: 16px;
+        }
+    }
+
+    .submit-btn {
+        background: #DD4250;
+        box-shadow: 0px 3px 6px 1px rgba(243, 113, 113, 0.39);
+        border-radius: 9px 9px 9px 9px;
+        padding: 18px 100px;
+    }
+
+    .pilicy-list {
+        background: #FFFFFF;
+        border-radius: 5px 5px 5px 5px;
+        border: 5px solid #FFEFF2;
+    }
+
+    .tag-item {
+        margin: 4px;
+        padding: 8px 14px;
+        background: #F7F8FA;
+        border-radius: 4px;
+        cursor: pointer;
+    }
+
+
+    .tat-active {
+        color: #FFFFFF;
+        background: #DD4250;
+        border-radius: 4px;
+    }
+
+    .user-logout {
+        padding: 6px 16px;
+        background: #DD4250;
+        box-shadow: 0 3px 6px 1px rgba(221, 66, 80, 0.32);
+        border-radius: 20px;
+    }
+</style>

+ 308 - 0
pc/pages/policy/search.vue

@@ -0,0 +1,308 @@
+<template>
+    <div class="help-center-container category">
+        <!-- <div class="help-center-banner">
+            <client-only>
+                <swiper ref="mySwiper" :options="swiperOptions">
+                    <swiper-slide class="swiper-item" v-for="(item, index) in bannerList" :key="index">
+                        <ad-item :item="item"></ad-item>
+                    </swiper-slide>
+                </swiper>
+            </client-only>
+        </div> -->
+        <div class="category-hd bg-white">
+            <div class="category-wrap">
+                <div class="category-con flex" v-for="(item, oneIndex) in categoryList" :key="oneIndex">
+                    <div class="name muted">{{item.description}}:</div>
+                    <div class="category-list flex flex-wrap lighter">
+                        <div
+                            :class="[
+                                'item line1',
+                                { active: oneIndex == index },
+                            ]"
+                            v-for="(category, index) in item.data"
+                            :key="index"
+                            @click="changeData(category.id)"
+                        >
+                            {{ category.name }}
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        
+        <div class="help-center-box">
+           <!-- <div class="help-center-aside bg-white">
+                <ul class="nav flex-col col-center">
+                    <li class="flex" :class="{'active-item': currentId <= 0}" @click="changeList(0)">全部</li>
+                    <li class="flex" v-for="(item) in categoryList" :key="item.id"
+                        :class="{'active-item': item.id == currentId}" @click="changeList(item.id)">{{item.description}}</li>
+                </ul>
+            </div> -->
+            <div class="article-lists-container m-l-16 bg-white">
+                <div v-show="!dataNull">
+                    <div>
+                        <nuxt-link :to="'/policy/detail?id=' + item.id"
+                            class="article-item flex row-between bg-white" v-for="(item) in articleList" :key="item.id">
+                            <div>
+                                <div class="lg article-name line2">{{item.title}}</div>
+                                <div class="lighter" v-html="item.summary"></div>
+                                <div class="flex" style="margin-top: 56px;">
+                                    <div class="sm muted m-r-20" v-if="item.author">{{item.author}}</div>
+                                    <div class="sm muted">发布时间:{{timeFormat(item.created_at)}}</div>
+                                    <!-- <div class="flex m-l-16">
+                                        <i class="el-icon-view muted"></i>
+                                        <div class="muted" style="margin-left: 3px;">{{item.visit}} 人浏览</div>
+                                    </div> -->
+                                </div>
+                            </div>
+                            <!-- <el-image style="width: 200px; height: 150px;border-radius: 6px;" fit="cover"
+                                :src="item.image" /> -->
+                        </nuxt-link>
+                    </div>
+                    <div class="help-center-pagination row-center">
+                        <el-pagination background hide-on-single-page layout="prev, pager, next" :total="count"
+                            prev-text="上一页" next-text="下一页" :page-size="10" @current-change="changePage" />
+                    </div>
+                </div>
+                <div class="data-null column-center" v-show="dataNull">
+                    <img style="width: 150px;height: 150px;" src="~/static/images/news_null.png" />
+                    <div class="xs muted">
+                        暂无数据~
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+    import {
+    	timeFormat
+    } from '@/utils/date'
+    export default {
+        head() {
+            return {
+                title: this.$store.getters.headTitle,
+                link: [{
+                    rel: "icon",
+                    type: "image/x-icon",
+                    href: this.$store.getters.favicon
+                }],
+            };
+        },
+        async asyncData({
+            $get,
+            $post
+        }) {
+            let categoryList = [];
+            let currentId = 0;
+            let articleList = [];
+            let count = 0;
+            let dataNull = true;
+            // const banner = $get("ad/lists", {
+            //     params: {
+            //         pid: 29,
+            //         terminal: 2
+            //     }
+            // });
+            let res = await $get("policy/category");
+            // const {
+            //     data: bannerList
+            // } = await banner;
+            console.log(res)
+            if (res.code == 1) {
+                categoryList = res.data;
+                currentId = 0
+                let listsRes = await $get("policy", {
+                    params: {
+                        cid: currentId,
+                        page_size: 10
+                    }
+                });
+                  console.log(listsRes)
+                if (listsRes.code == 1) {
+                    articleList = listsRes.data;
+                    count = listsRes.data.length
+                    if (count <= 0) {
+                        dataNull = true;
+                    } else {
+                        dataNull = false
+                    }
+                }
+            console.log(listsRes)
+            }
+            
+            return {
+                categoryList,
+                articleList,
+                count,
+                currentId,
+                // bannerList,
+                dataNull,
+            }
+        },
+        data() {
+            return {
+                categoryList: [],
+                articleList: [],
+                currentId: -1,
+                count: 0,
+                swiperOptions: {
+                    width: 1180,
+                }
+            }
+        },
+        mounted() {
+            // console.log(this.articleList, 'articleList')
+             // console.log(this.articleList)
+        },
+        methods: {
+            async changePage(current) {
+                let res = await this.$get("policy", {
+                    params: {
+                        cid: this.currentId,
+                        page_no: current,
+                        page_size: 10
+                    }
+                });
+                if (res.code == 1) {
+                    this.articleList = res.data.list;
+                    if (this.articleList.length <= 0) {
+                        dataNull = true;
+                    } else {
+                        dataNull = false
+                    }
+                }
+            },
+            changeList(id) {
+                this.currentId = id;
+                this.changePage(1)
+            },
+            timeFormat(time) {
+            	return timeFormat(time)
+            },
+        }
+    }
+</script>
+
+<style lang="scss" scoped>
+    .category {
+        padding: 16px 0;
+        .category-hd {
+            .category-wrap {
+                padding: 0 16px;
+            }
+            .category-con {
+                border-bottom: 1px dashed #e5e5e5;
+                align-items: flex-start;
+                padding-top: 16px;
+    
+                .name {
+                    flex: none;
+                }
+                .item {
+                    margin-bottom: 16px;
+                    width: 84px;
+                    margin-left: 14px;
+                    cursor: pointer;
+                    &.active {
+                        color: $--color-primary;
+                    }
+                    &:hover {
+                        color: $--color-primary;
+                    }
+                }
+            }
+            .sort {
+                padding: 15px 16px;
+                .sort-name {
+                    .item {
+                        margin-right: 30px;
+                        cursor: pointer;
+                        &.active {
+                            color: $--color-primary;
+                        }
+                    }
+                }
+            }
+        }
+    }
+    
+    .help-center-container {
+        .help-center-banner {
+            margin-top: 16px;
+        }
+
+        .help-center-box {
+            margin-top: 16px;
+            display: flex;
+            flex-direction: row;
+
+            .help-center-aside {
+                width: 160px;
+                // min-height: 635px;
+                padding-top: 20px;
+                padding-bottom: 20px;
+                padding: 20px 30px;
+
+                .nav {
+                    li {
+                        margin: 10px 0px;
+                        padding: 0px 30px;
+                        cursor: pointer;
+                    }
+
+                    .active-item {
+                        padding-left: 27px;
+                        color: $--color-primary;
+                        border-left: 3px solid $--color-primary;
+                    }
+                }
+            }
+
+            .article-lists-container {
+                width: 1004px;
+                display: flex;
+                flex-direction: column;
+                justify-content: space-between;
+
+                .article-item {
+                    margin: 0px 20px;
+                    padding: 15px 0px;
+                    border-bottom: 1px solid #E5E5E5;
+                    cursor: pointer;
+
+                    .article-name {
+                        margin-bottom: 11px;
+                        margin-top: 13px;
+                        max-width: 720px;
+                    }
+                }
+
+                .help-center-pagination {
+                    padding-top: 38px;
+                    margin-bottom: 30px;
+                }
+
+                .data-null {
+                    padding-top: 150px;
+                }
+            }
+        }
+    }
+
+    ::v-deep .el-pagination.is-background .btn-prev {
+        background: #fff;
+        padding: 0 10px;
+    }
+
+    ::v-deep .el-pagination.is-background .btn-next {
+        background: #fff;
+        padding: 0 10px;
+    }
+
+    ::v-deep .el-pagination.is-background .el-pager li {
+        background: #fff;
+        padding: 0 10px;
+    }
+</style>

+ 2 - 1
pc/plugins/axios.js

@@ -38,14 +38,15 @@ export default function({
 			show,
 			msg
 		} = response.data;
-		console.log(response.data)
 		if (code == 0 && show && msg) {
 			Message({
 				message: msg,
 				type: 'error'
 			})
 		} else if (code == -1) {
+            console.log(response.data)
 			store.commit('logout')
+            //todo 测试关闭登录
 			redirect('/account/login')
 		}
 	})

二进制
pc/static/images/icon-hot.png


二进制
pc/static/images/policy-bg.png


二进制
pc/static/images/policy-hot.png


二进制
pc/static/images/policy-result-bg.png


二进制
pc/static/images/type-1.png


二进制
pc/static/images/type-2.png


二进制
pc/static/images/type-3.png


二进制
pc/static/images/type-4.png


+ 89 - 0
pc/utils/date.js

@@ -0,0 +1,89 @@
+const weekArr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
+
+/**
+ * @description 时间格式化
+ * @param dateTime { number } 时间错
+ * @param fmt { string } 时间格式
+ * @return { string }
+ */
+// yyyy:mm:dd|yyyy:mm|yyyy年mm月dd日|yyyy年mm月dd日 hh时MM分等,可自定义组合
+export const timeFormat = (dateTime, fmt = 'yyyy-mm-dd') => {
+	// 如果为null,则格式化当前时间
+	if (!dateTime) dateTime = Number(new Date());
+	// 如果dateTime长度为10或者13,则为秒和毫秒的时间戳,如果超过13位,则为其他的时间格式
+	if (dateTime.toString().length == 10) dateTime *= 1000;
+	let date = new Date(dateTime);
+	let ret;
+	let opt = {
+		'y+': date.getFullYear().toString(), // 年
+		'm+': (date.getMonth() + 1).toString(), // 月
+		'd+': date.getDate().toString(), // 日
+		'h+': date.getHours().toString(), // 时
+		'M+': date.getMinutes().toString(), // 分
+		's+': date.getSeconds().toString() // 秒
+	};
+	for (let k in opt) {
+		ret = new RegExp('(' + k + ')').exec(fmt);
+		if (ret) {
+			fmt = fmt.replace(ret[1], ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0'));
+		}
+	}
+	return fmt;
+}
+
+/**
+ * @description 聊天记录专用时间格式化
+ * @param dateTime { number } 时间错
+ * @return { string }
+ */
+
+export const timeFormatChat = (dateTime) => {
+	if (dateTime.toString().length == 10) dateTime *= 1000;
+	let date = new Date(dateTime);
+	let fmt = timeFormat(dateTime, 'yyyy年mm月dd日 hh:MM')
+
+	if (isToday(date)) {
+		fmt = timeFormat(dateTime, 'hh:MM')
+	} else if (isThisWeak(date)) {
+		fmt = weekArr[date.getDay()] + timeFormat(dateTime, ' hh:MM')
+	} else if (isThisYear(date)) {
+		fmt = timeFormat(dateTime, 'mm月dd日 hh:MM')
+	}
+	return fmt
+
+
+
+}
+
+// 是否是今年
+const isThisYear = (date) => {
+	const now = new Date()
+	return date.getYear() == now.getYear()
+}
+
+
+// 是否是今月
+const isThisMonth = (date) => {
+	const now = new Date()
+	return isThisYear(date) && date.getMonth() == now.getMonth()
+}
+
+
+
+// 是否是今天
+const isToday = (date) => {
+	const now = new Date()
+	return isThisMonth(date) && date.getDate() == now.getDate()
+}
+// 是否本周
+const isThisWeak = (date) => {
+	const now = new Date()
+	if (isThisMonth(date)) {
+		if (now.getDay() - date.getDay() > 0 && now.getDate() - date.getDate() < 7) {
+			return true
+		}
+	} else {
+		return false
+	}
+
+}