Commit 9623b853 by liudx

联调接口

parent b54a9ba0
......@@ -19,7 +19,7 @@
}
html,body,#app{
// height: 100%;
// height:920px;
// min-height:980px;
}
::-webkit-scrollbar
{
......
......@@ -49,7 +49,11 @@
@mouseenter="hover($event, '2')"
@mouseleave="leave($event)"
>
<span v-if="hover_num == 2" @click="exit" style="cursor: pointer">
<span
v-if="hover_num == 2"
@click="openModal"
style="cursor: pointer"
>
<img src="@/static/common/icon-tcdl-hover.png" alt="" />&nbsp;
<span style="color: #3e7bfa">退出登录</span>
</span>
......@@ -62,15 +66,29 @@
<span class="tel">{{ username }}</span>
</a-popover>
</div>
<!-- <a-modal
v-model:visible="visible"
title="退出登录"
@ok="exit"
cancelText="取消"
okText="确定"
@onCancel="closeModal"
>
</a-modal> -->
</div>
</template>
<script>
import { ExclamationCircleOutlined } from "@ant-design/icons-vue";
import { createVNode } from "vue";
import { Modal } from "ant-design-vue";
import { mapState } from "vuex";
export default {
name: "HeaderCon",
props: {},
created() {
this.username = this.$store.state.username;
this.username = localStorage.getItem('login_name');
},
computed: {
...mapState(["username"]),
......@@ -81,6 +99,7 @@ export default {
username: "",
type: "专利",
keyword: "",
visible: false,
};
},
methods: {
......@@ -97,12 +116,31 @@ export default {
});
window.open(routeUrl.href, "_blank");
},
//打开弹窗
openModal() {
let that = this
Modal.confirm({
title: "确认退出登录吗?",
icon: createVNode(ExclamationCircleOutlined),
onOk() {
that.exit();
},
okText: '确认',
onCancel() {},
cancelText: '取消',
});
},
//关闭弹窗
closeModal() {
this.visible = false;
},
exit() {
this.$router.push({
path: "/login",
});
localStorage.removeItem("login_name");
localStorage.removeItem("password");
localStorage.removeItem("token");
// localStorage.removeItem("login_name");
// localStorage.removeItem("password");
},
},
};
......
import { createRouter, createWebHashHistory } from 'vue-router'
import { createRouter, createWebHistory } from 'vue-router'
import { message } from "ant-design-vue";
// import HomeView from '../views/HomeView.vue'
import login from "../views/login/index.vue"
......@@ -43,6 +43,10 @@ const routes = [
path: '/adminLogin',
name: 'AdminLogin',
component: AdminLogin,
//如果登录的是管理员页面,那么不允许查看用户
beforeEach:(to,from,next)=>{
console.log(to)
}
},
{
path: '/forget',
......@@ -149,8 +153,8 @@ const routes = [
]
const router = createRouter({
history: createWebHashHistory(process.env.BASE_URL),
mode:'hash',
history: createWebHistory(process.env.BASE_URL),
// mode:'hash',
routes
})
router.beforeEach((to,from,next)=>{
......@@ -169,4 +173,6 @@ router.beforeEach((to,from,next)=>{
})
export default router
......@@ -15,12 +15,12 @@ export default createStore({
// console.log(state,payload)
this.state.username = payload
},
setcurrent(state,payload){
// console.log(state,payload)
this.state.current = payload
},
// setcurrent(state,payload){
// // console.log(state,payload)
// this.state.current = payload
// },
setkeyword(state,payload){
console.log(state,payload)
// console.log(state,payload)
this.state.keyword = payload
},
},
......
......@@ -3,5 +3,8 @@ export const patents = p => get('/api/patent/patents?keyword='+p.keyword+'&page=
export const patentselect = p => post('/api/patent/patents',p);
export const patentDetail = p => get('/api/patent/patentDetail/'+p.id);
export const exportword = p => post('/api/patent/patentDetail/125',p);
export const enterpriseList = p => get('/api/enterprise/list?keyword='+p.keyword+'&page='+p.page+'&size='+p.size);
export const industryType = p => get('/api/common/industryType');
......@@ -67,9 +67,11 @@ export default {
<style lang="less" scoped>
.user {
width: calc(100%);
height: 100%;
// height: 100%;
min-height: 900px;
.user_main {
height: calc(100% - 65px);
min-height: 800px;
// height: calc(100% - 65px);
width: 100%;
background-color: #ebebeb;
display: flex;
......
......@@ -6,23 +6,15 @@
<a-breadcrumb-item>个人信息</a-breadcrumb-item>
</a-breadcrumb>
<div class="table">
<a-button type="primary" size="large" @click="openModal">新增</a-button
<a-button type="primary" size="large" @click="openModal">
<img src="../../static/login/icon-add.png" alt="" class="img">
新增
</a-button
>&nbsp;
<a-button type="primary" size="large">删除</a-button>
<a-button type="primary" size="large" danger @click="opendeleteModal">
<img src="../../static/login/icon-delete.png" alt="" class="img">
删除</a-button>
<br /><br />
<!-- <a-table
:row-selection="{ onChange: onSelectChange }"
:columns="columns"
:data-source="data"
>
<template #bodyCell="{ column, text, record }">
<template v-if="column.dataIndex === 'status'">
<a @click="change(record)" danger v-if="text">禁用</a>
<a v-else>使用</a>
</template>
</template>
</a-table> -->
<a-table
:row-selection="rowSelection"
:columns="columns"
......@@ -31,9 +23,18 @@
>
<template #bodyCell="{ column, text, record }">
<template v-if="column.dataIndex === 'status'">
<a @click="change(record)" danger v-if="text">禁用</a>
<a v-else>使用</a>
<!-- <a-switch>禁用</a-switch> -->
<div v-if="text" class="status">
<span class="marker"></span>
已启用</div>
<div v-else class="status">
<span class="marker disabled"></span>
已禁用</div>
</template>
<template v-if="column.dataIndex === 'action'">
<!-- <a @click="change(record)" danger v-if="text">禁用</a>
<a v-else>使用</a> -->
<a-switch @click="change(record)" v-model:checked="status">禁用</a-switch>
</template>
</template>
</a-table>
......@@ -41,8 +42,10 @@
</div>
<a-modal
v-model:visible="visible"
title="新增账号"
@ok="add"
centered
cancelText="取消"
okText="确定"
@onCancel="closeModal"
......@@ -50,6 +53,17 @@
<label for="username">账号名:</label>
<a-input style="width: 60%" id="username" v-model:value="username" />
</a-modal>
<a-modal
v-model:visible="visibleDelete"
title="提示信息"
centered
@ok="deleteUser"
cancelText="取消"
okText="确定"
@onCancel="closeModal"
>
<p>确定删除以下用户吗?</p>
</a-modal>
</template>
<script>
// import { AES_Encrypt, AES_Decrypt } from "@/utils/aes_util.js";
......@@ -60,34 +74,47 @@ export default {
data() {
return {
visible: false,
visibleDelete:false,
columns: [
{
title: "序号",
dataIndex: "id",
align:'center'
},
{
title: "姓名",
dataIndex: "name",
align:'center'
},
{
title: "手机号",
dataIndex: "phone",
align:'center'
},
{
title: "账号名",
dataIndex: "account_number",
align:'center'
},
{
title: "创建时间",
dataIndex: "create_time",
align:'center'
},
{
title: "操作",
title: "状态",
dataIndex: "status",
align:'center'
},
{
title: "操作",
dataIndex: "action",
align:'center'
},
],
selectedRowKeys: [],
data: [],
checked:true
};
},
created() {
......@@ -111,11 +138,21 @@ export default {
mounted() {},
methods: {
//调用删除用户接口
deleteUser(){
this.visibleDelete = false
},
//打开删除用户弹窗
opendeleteModal(){
this.visibleDelete = true
},
//打开新增用户弹窗
openModal() {
this.visible = true;
},
closeModal() {
this.visible = false;
this.visibleDelete = false
},
add() {},
//用户列表初始化
......@@ -153,11 +190,31 @@ export default {
background-color: #ebebeb;
padding-left: 30px;
width: calc(100% - 80px);
// text-align: center;
flex: 1;
.img{
width: 15px;
height: 15px;
padding-right: 3px;
}
.marker{
width: 12px;
height: 12px;
background-color: #00B42A;
border-radius: 50%;
display: inline-block;
}
.disabled{
background-color: #ccc;
}
.nav_bread {
height: 50px;
padding: 20px 3px;
background-color: #ebebeb;
}
:deep(.ant-switch-checked){
background-color: #00B42A;
}
}
</style>
......@@ -36,9 +36,9 @@
</a-form-item>
<a-form-item label="国民经济行业">
<a-cascader
v-model:value="value"
v-model:value="industryvalue"
multiple
:options="optionsArea"
:options="optionsindustry"
placeholder="请选择"
></a-cascader>
</a-form-item>
......@@ -59,18 +59,17 @@
<a-range-picker
v-model:value="formState['range-picker']"
value-format="YYYY-MM-DD"
:allowEmpty="[true,true]"
/>
</a-config-provider>
</a-form-item>
<a-form-item label="企业创新">
<!-- <a-form-item label="企业创新">
<a-select
v-model:value="valueInnovation"
mode="multiple"
placeholder="请选择"
:options="optionsInnovation"
></a-select>
</a-form-item>
</a-form-item> -->
<a-form-item label="注册资本">
<a-input
v-model:value="formState.fieldA"
......@@ -84,6 +83,13 @@
placeholder="请输入关键词"
/>
</a-form-item>
<a-form-item label="企业创新排名">
<a-select
v-model:value="valueInnovation"
placeholder="请选择"
:options="optionsInnovation"
></a-select>
</a-form-item>
</a-form>
<a-button
type="default"
......@@ -119,9 +125,9 @@
class="card"
v-for="item in companylist"
:key="item"
@click="openCompany(item.name)"
@click="openCompany(item.company_name)"
>
<div class="card_title">{{ item.name }}</div>
<div class="card_title">{{ item.company_name }}</div>
<!-- 关注 -->
<div class="follow" @click="follow" v-if="item.follow">
<img
......@@ -140,21 +146,32 @@
<span class="follow_str">已关注</span>
</div>
<a-tag color="#56CA95">{{ item.status }}</a-tag>
<a-tag color="#6096E6">{{ item.type }}</a-tag>
<a-tag color="#6096E6" v-if="item.high_new == 1">{{
"高新技术"
}}</a-tag>
<a-tag color="#6096E6" v-if="item.zjtg == 1">{{
"专精特新"
}}</a-tag>
<a-tag color="#6096E6" v-if="item.zjtg_sjxjr == 1">{{
"专精特新小巨人"
}}</a-tag>
<a-tag color="#6096E6" v-if="item.quoted_company == 1">{{
"上市企业"
}}</a-tag>
<a-divider />
<div class="card_desc">
<a-descriptions layout="vertical">
<a-descriptions-item label="法定代表人">{{
item.legalRepresentative
item.legal
}}</a-descriptions-item>
<a-descriptions-item label="注册时间">{{
item.registrationTime
item.build_date
}}</a-descriptions-item>
<a-descriptions-item label="统一社会信用代码">{{
item.code
item.social_code
}}</a-descriptions-item>
<a-descriptions-item label="国民经济行业">
{{ item.industry }}
{{ item.company_industry_parent }}
</a-descriptions-item>
<a-descriptions-item :span="2" label="注册地址">{{
item.address
......@@ -178,6 +195,7 @@
<script>
import dayjs from "dayjs";
import arealist from "../../utils/map.js";
import { enterpriseList, industryType } from "../../utils/indexApi.js";
import "dayjs/locale/zh-cn";
import zh_CN from "ant-design-vue/lib/locale-provider/zh_CN";
dayjs.locale("zh-cn");
......@@ -186,12 +204,13 @@ export default {
data() {
return {
zh_CN,
total: "1255",
total: 0,
valueArea: [],
value2: [],
optionsArea: [],
valueInnovation: [],
valueInnovation: "",
optionsInnovation: [
{ label: "请选择", value: "" },
{ label: "企业科创能力", value: "企业科创能力" },
{ label: "企业技术合作", value: "企业技术合作" },
],
......@@ -201,6 +220,8 @@ export default {
{ label: "专精特新小巨人", value: "专精特新小巨人" },
{ label: "上市挂牌企业", value: "上市挂牌企业" },
],
optionsindustry:[],
industryType:[],
valueType: [],
formState: {
layout: "horizontal",
......@@ -250,6 +271,62 @@ export default {
},
components: {},
methods: {
//获取企业列表
getCompanyList() {
let params = {
keyword: this.$route.params.keyword || "",
page: 1,
size: 10,
};
enterpriseList({ ...params }).then((res) => {
if (res.code == 0) {
this.companylist = res.data.list;
this.total = res.data.total;
} else {
}
});
},
//获取国民经济行业
getindustryType() {
industryType({}).then((res) => {
// console.log(res)
this.optionsindustry = res.data;
this.optionsindustry.forEach((item) => {
item.value = item.name;
item.label = item.name;
if (item.children && item.children.length != 0) {
item.children.forEach((it) => {
it.value = it.name;
it.label = it.name;
});
}
});
console.log(this.optionsindustry)
});
},
//改变页码
onChange(page) {
this.patentdata = [];
let params = {
page: page,
size: 10,
keyword: this.keyword ? this.keyword : null,
// zl_type: this.value1,
// sqrq_start: this.formState.rangetime1
// ? this.formState.rangetime1[0]
// : null,
// sqrq_end: this.formState.rangetime1
// ? this.formState.rangetime1[1]
// : null,
// gkrq_start: this.formState.rangetime2
// ? this.formState.rangetime2[0]
// : null,
// gkrq_end: this.formState.rangetime2
// ? this.formState.rangetime2[1]
// : null,
// zl_status: this.value2,
};
},
//重置筛选
clearvalue() {
this.valueArea = [];
......@@ -281,18 +358,20 @@ export default {
},
//打开企业详情
openCompany(name) {
this.$store.commit('setcurrent','企业')
this.$router.push({
path:'/companyDetails',
query:{
name:'111'
}
})
path: "/companyDetails",
query: {
name: name,
},
});
},
},
created() {
this.getCompanyList();
this.getindustryType();
this.optionsArea = arealist;
this.keyword = this.$route.query.keyword;
this.valueInnovation = this.$route.query.valueInnovation;
this.type = "企业";
},
};
......
......@@ -52,7 +52,7 @@
<div class="company_con1" id="PatentAnalysis">
<h2 class="title">专利结构分析</h2>
<p>
专利结构可从专利类型以及专利基本法律状态两个方面进行分析。从专利类型来看,一般在评估专利技术质量时,普遍认为发明>实用新型>外观。因此,关注发明专利的占比高低,可以帮助了解企业历史研发的技术质量水平。从专利基本法律状态来看,关注失效专利的占比,可以帮助了解企业当前持有技术的质量水平。该企业的专利数量为7件,其中发明专利4件,占比57.14%;效专利4件,占比57.14%。
专利结构可从专利类型以及专利基本法律状态两个方面进行分析。从专利类型来看,一般在评估专利技术质量时,普遍认为发明>实用新型>外观。因此,关注发明专利的占比高低,可以帮助了解企业历史研发的技术质量水平。从专利基本法律状态来看,关注失效专利的占比,可以帮助了解企业当前持有技术的质量水平。该企业的专利数量为7件,其中发明专利4件,占比57.14%;效专利4件,占比57.14%。
</p>
<div class="ecahrsThree">
<EchartsCon
......@@ -393,12 +393,12 @@ export default {
},
series: [
{
name: "分类资金统计",
name: "专利类型分布图",
type: "pie",
radius: ["30%", "60%"],
center: ["35%", "50%"],
radius: ["20%", "40%"],
center: ["50%", "50%"],
label: {
formatter: "{b}:{d}%", // 用来换行
formatter: "{b}:\n{d}%", // 用来换行
},
data: [
{ value: 6, name: "实用新型" },
......@@ -427,17 +427,17 @@ export default {
},
series: [
{
name: "分类资金统计",
name: "专利状态分布图",
type: "pie",
radius: ["30%", "60%"],
center: ["35%", "50%"],
radius: ["20%", "40%"],
center: ["50%", "50%"],
label: {
formatter: "{b}:{d}%", // 用来换行
formatter: "{b}:\n{d}%", // 用来换行
},
data: [
{ value: 6, name: "审中" },
{ value: 10, name: "有效" },
{ value: 20, name: "失效" },
],
emphasis: {
itemStyle: {
......@@ -462,12 +462,12 @@ export default {
},
series: [
{
name: "分类资金统计",
name: "有效专利分布图",
type: "pie",
radius: ["30%", "60%"],
center: ["35%", "50%"],
radius: ["20%", "40%"],
center: ["50%", "50%"],
label: {
formatter: "{b}:{d}%", // 用来换行
formatter: "{b}:\n{d}%", // 用来换行
},
data: [
{ value: 6, name: "实用新型" },
......
......@@ -31,7 +31,7 @@
<div class="company_con_anchor">
<a-anchor>
<a-anchor-link
style="font-size: 20px; color: #1C1C28; font-weight: bold"
style="font-size: 20px; color: #1c1c28; font-weight: bold"
title="科创能力评价"
/>
<a-anchor-link href="#Ability" title="科创能力分析" />
......@@ -40,7 +40,7 @@
<div id="components-back-top-demo-custom">
<a-back-top>
<div class="ant-back-top-inner">
<img src="@/static/common/icon-top.png" alt="">
<img src="@/static/common/icon-top.png" alt="" />
回到顶部
</div>
</a-back-top>
......@@ -74,14 +74,19 @@ export default {
},
methods: {
getOption1() {
let chart = echarts.init(document.getElementById("echartsraodar"));
let option1 = {
// tooltip: {
// trigger: "item",
// show: !this.hover,
// },
radar: [
{
indicator: [
{ text: "公司竞争力", max: 150 },
{ text: "技术质量", max: 150 },
{ text: "技术体量", max: 150 },
{ text: "公司竞争力", max: 100 },
{ text: "技术质量", max: 100 },
{ text: "技术体量", max: 100 },
],
center: ["50%", "50%"],
......@@ -105,7 +110,7 @@ export default {
},
data: [
{
value: [100, 93, 50],
value: [50, 93, 50],
name: "分值",
areaStyle: {
......@@ -126,44 +131,35 @@ export default {
//在name上移动
let that = this;
chart.on("mousemove", function (params) {
console.log(params.event.offsetX);
that.hover = true;
if (params.name == "技术质量") {
that.$nextTick(() => {
that.$refs.hover.style.left = params.event.offsetX + "px";
that.$refs.hover.style.top = params.event.offsetY + "px";
});
if (params.name == "技术质量") {
that.con =
"从有效专利占专利申请总量比例、有效发明专利占有效专利比例和风险专利占全部申请专利的比例分析";
} else if (params.name == "公司竞争力") {
that.$nextTick(() => {
that.$refs.hover.style.left = params.event.offsetX + "px";
that.$refs.hover.style.top = params.event.offsetY + "px";
});
that.con = "从公司资质类别、公司规模、对外投资和公司融资分析";
} else if (params.name == "技术体量") {
that.$nextTick(() => {
that.$refs.hover.style.left = params.event.offsetX + "px";
that.$refs.hover.style.top = params.event.offsetY + "px";
});
that.con = "从专利申请总量、有效专利总量和近3年专利申请增速分析";
} else {
that.hover = false;
}
});
chart.on("mouseout", function (params) {
console.log(params.event.offsetX);
that.hover = false;
// that.$nextTick(() => {
// that.$refs.hover.style.left = params.event.offsetX;
// that.$nextTick(() => {
// // that.left = params.event.offsetX + "px";
// // that.top = params.event.offsetY + "px";
// that.$refs.hover.style.left = params.event.offsetX+'px';
// that.$refs.hover.style.top = params.event.offsetY+'px';
// });
// console.log( that.top)
// console.log(that.$refs.hover)
// });
// if (params.name == "技术质量") {
// that.con =
// "从有效专利占专利申请总量比例、有效发明专利占有效专利比例和风险专利占全部申请专利的比例分析";
// // tooldiv.innerHTML =
// }
// chart.setOption(that.option);
that.hover = false;
});
},
getOption2() {
......@@ -191,7 +187,6 @@ export default {
datalength.push(0);
}
this.option2 = {
grid: {
left: "11%",
......@@ -211,7 +206,7 @@ export default {
legend: {
show: true,
data: ["均值", "公司"],
bottom:'0%',
bottom: "0%",
},
yAxis: [
{
......@@ -353,23 +348,23 @@ export default {
.company_con_anchor {
margin-top: 15px;
font-weight: bold;
color: #1C1C28;
color: #1c1c28;
:deep(.ant-anchor-link-title) {
color: #1C1C28;
color: #1c1c28;
margin-bottom: 15px;
}
:deep(.ant-anchor-link-active > .ant-anchor-link-title) {
color: #1890ff;
}
:deep(.ant-anchor-ink::before){
:deep(.ant-anchor-ink::before) {
width: 8px;
background-color: #F5F5F5;
background-color: #f5f5f5;
}
:deep(.ant-anchor-wrapper) {
background-color: #fff;
padding-left: 10px;
color: #1C1C28;
color: #1c1c28;
height: 350px;
margin-left: 10px;
padding: 30px 15px 0;
......
<template>
<div class="history">
<a-breadcrumb class="nav_bread">
<a-breadcrumb-item>首页</a-breadcrumb-item>
<a-breadcrumb-item>历史记录</a-breadcrumb-item>
</a-breadcrumb>
<!-- 主体 -->
<div class="history_con">
<a-table
:style="'width:90%'"
:columns="columnshistory"
:data-source="dataHistory"
:pagination="false"
>
<template #bodyCell="{ column, text, record }">
<template v-if="column.dataIndex == 'action'">
<a-button type="primary" danger @click="openModal"
>取消关注</a-button
>
</template>
</template>
</a-table>
<a-pagination
@change="onChange"
:total="total"
:showSizeChanger="false"
/>
</div>
<a-modal
centered
style="text-align: center"
v-model:visible="visible"
title="提示信息"
@ok="removeFollow"
cancelText="取消"
okText="确定"
@onCancel="closeModal"
>
<p>是否确定从当前分组中删除该企业?</p>
</a-modal>
</div>
</template>
<script>
export default {
name:'follow',
data(){
return{
}
name: "follow",
data() {
return {
total: 0,
visible: false,
columnshistory: [
{
title: "序号",
dataIndex: "name",
key: "name",
},
components: {
{
title: "名称",
dataIndex: "age",
key: "age",
},
methods:{
{
title: "类型",
dataIndex: "address",
key: "address 1",
},
created(){
}
}
{
title: "接受邮箱",
dataIndex: "address",
key: "address 2",
},
{
title: "时间",
dataIndex: "address",
key: "address 3",
},
{
title: "操作",
dataIndex: "action",
key: "action",
},
],
dataHistory: [
{
key: "1",
name: "John Brown",
age: 32,
address: "New York No. 1 Lake ",
action: 1,
},
],
};
},
components: {},
methods: {
//改变页码
onChange() {},
//取消关注
removeFollow() {
this.visible = false;
},
//打开弹窗
openModal() {
this.visible = true;
},
//关闭弹窗
closeModal() {
this.visible = false;
},
},
created() {},
};
</script>
<style lang="less" scoped>
.history {
padding: 0 30px;
width: calc(100%);
min-height: 820px;
background-color: #ebebeb;
position: relative;
.nav_bread {
height: 50px;
padding: 20px 3px;
background-color: #ebebeb;
}
.history_con {
background-color: #fff;
padding: 20px;
text-align: center;
}
:deep(.ant-modal-footer) {
text-align: center !important;
}
}
</style>
......@@ -3,7 +3,8 @@
<a-breadcrumb class="nav_bread">
<a-breadcrumb-item>首页</a-breadcrumb-item>
<a-breadcrumb-item>历史记录</a-breadcrumb-item>
<a-breadcrumb-item>浏览记录</a-breadcrumb-item>
<a-breadcrumb-item v-if="activeKey == 1">浏览记录</a-breadcrumb-item>
<a-breadcrumb-item v-else>导出记录</a-breadcrumb-item>
</a-breadcrumb>
<!-- 主体 -->
<div class="history_con">
......@@ -14,6 +15,7 @@
:columns="columnshistory"
:data-source="dataHistory"
:pagination="false"
:style="'width:90%;'"
>
</a-table>
<a-pagination
......@@ -25,9 +27,10 @@
<a-tab-pane key="2" tab="导出记录">
<p style="text-align: left">系统会为您保留 30 天的导出记录</p>
<a-table
:columns="columnshistory"
:columns="columnout"
:data-source="dataHistory"
:pagination="false"
:style="'width:90%'"
>
<template #bodyCell="{ column, text, record }">
<template v-if="column.dataIndex == 'action'">
......@@ -62,7 +65,11 @@
@onCancel="closeModal"
>
<a-form :model="formState" :validate-messages="validateMessages">
<a-form-item :name="'email'" label="发送给" :rules="[{ type: 'email' }]">
<a-form-item
:name="'email'"
label="发送给"
:rules="[{ type: 'email' }]"
>
<a-input v-model:value="formState.email" />
</a-form-item>
</a-form>
......@@ -103,19 +110,44 @@ export default {
key: "address 1",
},
{
title: "时间",
dataIndex: "address",
key: "address 3",
},
],
columnout:[
{
title: "序号",
dataIndex: "name",
key: "name",
},
{
title: "名称",
dataIndex: "age",
key: "age",
},
{
title: "类型",
dataIndex: "address",
key: "address 1",
width:200
},
{
title: "接受邮箱",
dataIndex: "address",
key: "address 2",
key: "address 3",
width:200
},
{
title: "时间",
dataIndex: "address",
key: "address 3",
width:200
},
{
title: "操作",
dataIndex: "action",
key: "action",
key: "address 3",
},
],
dataHistory: [
......@@ -151,6 +183,7 @@ export default {
.history {
padding: 0 30px;
width: calc(100%);
min-height: 820px;
background-color: #ebebeb;
position: relative;
.nav_bread {
......@@ -162,6 +195,7 @@ export default {
background-color: #fff;
padding: 20px;
text-align: center;
// height: 600px;
}
}
</style>
<template>
<div class="home_con">
<!-- 面包屑导航 -->
<a-breadcrumb class="nav_bread">
......@@ -63,7 +62,7 @@
<div class="ranking_title">
<img src="@/static/home/index/icon-list01.png" alt="" />
<span class="title">&nbsp;企业科创能力榜单</span>
<span class="more">更多</span>
<span class="more" @click="openmore('1')">更多</span>
</div>
<!-- 判断是否有数据 -->
<ul v-if="innovateList.length !== 0">
......@@ -80,7 +79,7 @@
<div class="ranking_title">
<img src="@/static/home/index/icon-list02.png" alt="" />
<span class="title">&nbsp;企业技术合作榜单</span>
<span class="more">更多</span>
<span class="more" @click="openmore('2')">更多</span>
</div>
<ul v-if="innovateList.length !== 0">
<li class="rank_item" v-for="item in innovateList">
......@@ -96,7 +95,7 @@
<div class="ranking_title">
<img src="@/static/home/index/icon-list02.png" alt="" />
<span class="title">&nbsp;浏览记录</span>
<span class="more">更多</span>
<span class="more" @click="openHistory">更多</span>
</div>
<ul v-if="followList.length !== 0">
<li class="rank_item" v-for="item in followList">
......@@ -112,7 +111,7 @@
<div class="ranking_title">
<img src="@/static/home/index/icon-list02.png" alt="" />
<span class="title">&nbsp;我的关注</span>
<span class="more">更多</span>
<span class="more" @click="openFollow">更多</span>
</div>
<ul v-if="followList.length !== 0">
<li class="rank_item" v-for="item in followList">
......@@ -128,7 +127,6 @@
</div>
</template>
<script>
export default {
name: "home",
data() {
......@@ -145,21 +143,64 @@ export default {
},
components: {},
methods: {
//打开历史记录
openHistory() {
this.$router.push({
path: "/history",
});
},
//打开我的关注
openFollow() {
this.$router.push({
path: "/follow",
});
},
//打开榜单
openmore(id) {
if (id == '1') {
this.$router.push({
path: "/company",
query: {
valueInnovation: "企业科创能力",
},
});
}else{
this.$router.push({
path: "/company",
query: {
valueInnovation: "企业技术合作",
},
});
}
},
changetab(id) {
// console.log(id)
this.tab_id = id;
},
onSearch() {
if (this.tab_id == "1") {
this.$router.push({
path: "/patent",
query:{
keyword:this.searchValue
}
query: {
keyword: this.searchValue,
},
});
this.$store.commit('setcurrent','专利')
} else {
this.$router.push({
path: "/company",
query: {
keyword: this.searchValue,
},
});
}
},
},
......
......@@ -25,29 +25,21 @@
<div class="home_main">
<div class="sider">
{{ this.$store.state.current }}
{{ current }}
<div
:class="[
this.$store.state.current == item.name
? 'sider_item active'
: 'sider_item ',
]"
:class="[current == item.name ? 'sider_item active' : 'sider_item ']"
v-for="item in siderArr"
:key="item.name"
@click="changepage(item.name)"
>
<img
:src="
this.$store.state.current == item.name
? item.img_select
: item.img
"
:src="current == item.name ? item.img_select : item.img"
alt=""
class="sider_item_img"
/>
<div
:class="[
this.$store.state.current == item.name
current == item.name
? 'sider_item_name active '
: 'sider_item_name',
]"
......@@ -70,7 +62,7 @@ export default {
return {
current: "首页",
searchValue: "",
type:'企业',
type: "企业",
siderArr: [
{
name: "首页",
......@@ -118,41 +110,60 @@ export default {
this.$router.push({
path: "/company",
});
this.$store.commit("setcurrent", "企业");
break;
case "首页":
this.$router.push({
path: "/home",
});
this.$store.commit("setcurrent", "首页");
break;
case "专利":
this.$router.push({
path: "/patent",
});
this.$store.commit("setcurrent", "专利");
break;
case "历史记录":
this.$store.commit("setcurrent", "历史记录");
this.$router.push({
path: "/history",
});
this.$store.commit("setcurrent", "历史记录");
break;
case "我的关注":
this.$store.commit("setcurrent", "我的关注");
this.$router.push({
path: "/follow",
});
break;
}
this.current = this.$store.state.current;
},
},
watch: {
$route() {
let path = this.$route.path;
switch (path) {
case "/company" || "/companyDetails":
this.current = "企业";
break;
case "/home":
this.current = "首页";
break;
case "/patent" || "/patentDetails":
this.current = "专利";
break;
case "/history":
this.current = "历史记录";
break;
case "/follow":
this.current = "我的关注";
break;
}
},
},
mounted() {},
created() {
this.username = this.$store.state.username;
this.current = this.$store.state.current;
},
};
</script>
......
......@@ -52,7 +52,7 @@
</a-form-item>
<a-form-item>
<a-form-item name="remember" >
<a-form-item name="remember">
<a-checkbox v-model:checked="formState.remember"
>记住密码</a-checkbox
>
......@@ -67,14 +67,6 @@
>
登录
</a-button>
<!-- <a-button
type="primary"
html-type="submit"
class="login-form-button"
@click="send"
>
发送
</a-button> -->
</a-form-item>
<a-form-item>
<div class="admin_login" style="float: left">
......@@ -125,18 +117,21 @@ export default {
mounted() {
let login_name = localStorage.getItem("login_name");
let password = localStorage.getItem("password");
console.log(password)
//如果登录的用户名和密码都保存了 name选择的是记住密码选项
if (login_name && password) {
this.formState.username = login_name;
this.formState.password = password;
this.formState.remember = true
this.formState.remember = true;
}
if (login_name) {
this.formState.username = login_name;
}
},
methods: {
//账号登录
login() {
console.log(this.formState.username)
let param = AES_Encrypt(
JSON.stringify({
login_name: this.formState.username,
......@@ -147,20 +142,18 @@ export default {
param,
}).then((res) => {
if (res.code == 0) {
message.success("登录成功");
// this.$store.commit("setTOKEN", res.data.token);
this.$store.commit("setname", this.formState.username);
this.$store.commit("setcurrent", '首页');
localStorage.setItem("token", res.data.token);
localStorage.setItem("login_name", this.formState.username);
//记住密码功能
if (this.formState.remember) {
//存在localstroge中
localStorage.setItem("password", this.formState.password);
localStorage.setItem("login_name", this.formState.username);
}
localStorage.setItem("token", res.data.token);
this.$router.push({
path: "/index",
});
......@@ -169,9 +162,15 @@ export default {
}
});
},
send() {
sendSms({ phone: 15313067271 }).then((res) => {});
},
// send() {
// sendSms({ phone: 15313067271 }).then((res) => {
// if(res.code == 0){
// }else{
// message.error(res.msg);
// }
// });
// },
},
};
</script>
......
......@@ -34,21 +34,21 @@
:options="optionsType"
></a-select>
</a-form-item>
<a-form-item name="range-picker" label="申请日" v-bind="rangeConfig">
<a-form-item name="range-picker" label="申请日">
<a-config-provider :locale="zh_CN">
<a-range-picker
v-model:value="formState['rangetime1']"
value-format="YYYY-MM-DD"
:allowEmpty="[true,true]"
/>
</a-config-provider>
</a-form-item>
<a-form-item name="range-picker" label="公开日" v-bind="rangeConfig">
<a-form-item name="range-picker" label="公开日">
<a-config-provider :locale="zh_CN">
<a-range-picker
v-model:value="formState['rangetime2']"
value-format="YYYY-MM-DD"
:allowEmpty="[true,true]"
/>
</a-config-provider>
</a-form-item>
......@@ -123,6 +123,7 @@ import { patents, patentselect } from "../../utils/indexApi";
import dayjs from "dayjs";
import "dayjs/locale/zh-cn";
import zh_CN from "ant-design-vue/lib/locale-provider/zh_CN";
import { message } from "ant-design-vue";
dayjs.locale("zh-cn");
export default {
......@@ -147,8 +148,8 @@ export default {
formState: {
// layout: "horizontal",
// keyword: "",
rangetime1: "",
rangetime2: "",
rangetime1: [],
rangetime2: [],
},
columns: [
{
......@@ -181,6 +182,7 @@ export default {
],
patentdata: [],
filter: [],
total:0
};
},
components: {},
......@@ -193,11 +195,14 @@ export default {
size: 10,
};
patents({ ...params }).then((res) => {
console.log(res);
if (res.code == 0) {
this.patentdata = res.data.list;
this.total = res.data.total;
}
else{
message.error(res.data.msg)
}
});
},
//改变页码
......@@ -223,7 +228,6 @@ export default {
zl_status: this.value2,
};
patentselect({ ...params }).then((res) => {
console.log(res);
if (res.code == 0) {
this.patentdata = res.data.list;
this.total = res.data.total;
......@@ -296,7 +300,6 @@ export default {
return {
onClick: (event) => {
console.log(record);
this.$store.commit("setcurrent", "专利");
this.$router.push({
path: "/patentDetails",
query: {
......
......@@ -556,7 +556,8 @@ export default {
},
},
created() {
this.$store.commit("setcurrent", "专利");
// this.$store.commit("setcurrent", "专利");
localStorage.setItem("current", "专利");
let id = this.$route.query.id;
this.zlcode = this.$route.query.zlcode;
this.title = this.$route.query.title;
......
......@@ -30,7 +30,7 @@
</a-upload>
</a-form-item>
<a-form-item label="账号" name="username">
<a-input v-model:value="formState.username" readOnly />
<a-input v-model:value="login_name" disabled />
</a-form-item>
<a-form-item label="姓名" name="name">
......@@ -140,13 +140,12 @@ export default {
resetShow: false,
timer: null,
RemainingTime: 0,
phone: "125",
phone: "",
fileList: [],
headers: {
authorization: "authorization-text",
},
formState: {
username: "",
name: "李建国",
phone: "",
code: "",
......@@ -160,10 +159,11 @@ export default {
},
created() {
//获取个人详细信息
this.formState.phone = "1";
// this.formState.phone = "1";
},
mounted() {
this.formState.username = this.$store.state.username;
this.login_name = localStorage.getItem('login_name');
},
methods: {
handleChange(info) {
......@@ -230,6 +230,7 @@ export default {
background-color: #ebebeb;
padding-left: 30px;
width: calc(100% - 80px);
min-height: 800px;
flex: 1;
.nav_bread {
height: 50px;
......
......@@ -5,12 +5,51 @@
<a-breadcrumb-item>用户设置</a-breadcrumb-item>
<a-breadcrumb-item>安全设置</a-breadcrumb-item>
</a-breadcrumb>
<!-- 安全设置-->
<div class="personal_set">
<a-form
:model="formState"
name="basic"
:label-col="{ span: 2 }"
:wrapper-col="{ span: 5 }"
autocomplete="off"
>
<a-form-item label="手机号" name="img" class="header_label">
<a-input v-model:value="formState.phone" />
</a-form-item>
<a-form-item label="验证码" name="code">
<a-input v-model:value="formState.code" />
</a-form-item>
<a-form-item label="新密码" name="newpwd">
<a-input v-model:value="formState.newpwd" />
</a-form-item>
<a-form-item label="确认密码" name="renewpwd">
<a-input v-model:value="formState.renewpwd" />
</a-form-item>
<div class="save_btn">
<a-button type="primary" html-type="submit" @click="save">
保存
</a-button>
</div>
</a-form>
</div>
</div>
</template>
<script>
export default {
name: "securitySetting",
data(){
return{
formState:{
phone:'',
code:'',
newpwd:'',
renewpwd:''
}
}
}
};
</script>
......@@ -19,11 +58,23 @@ export default {
background-color: #ebebeb;
padding-left: 30px;
width: calc(100% - 80px);
min-height: 800px;
flex: 1;
.nav_bread {
height: 50px;
padding: 20px 3px;
background-color: #ebebeb;
}
.personal_set {
width: 100%;
height: calc(100% - 80px);
background-color: #fff;
padding: 40px 40px;
}
.save_btn {
padding-left: 150px;
padding-top: 20px;
}
}
</style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment