Browse Source

first commit

master
song 4 years ago
parent
commit
34268d80a7
  1. 59
      rest/project.http
  2. 15
      src/App.vue
  3. 6
      src/components/HeadNav/HeadNav.vue
  4. 251
      src/components/List/List.vue
  5. 17
      src/components/MemberPicker/MemberPicker.vue
  6. 10
      src/components/TimePicker/TimePicker.vue
  7. 8
      src/config/api-user.js
  8. 14
      src/config/api.js
  9. 117
      src/store/modules/home/actions.js
  10. 295
      src/store/modules/home/mutations.js
  11. 61
      src/store/modules/home/state.js
  12. 27
      src/store/modules/user/actions.js
  13. 9
      src/store/modules/user/mutations.js
  14. 1
      src/store/modules/user/state.js
  15. 10
      src/views/FirstPage/FirstPage.vue

59
rest/project.http

@ -1,54 +1,39 @@
# @tall = {{url}}/tall/v1.0
@tall = https://www.tall.wiki/gateway/tall/v1.0
@greenvalley = http://www.sxwikionline.com/gateway/greenvalley
@type = content-type: application/json;charset=utf-8
### login
# @name login
POST {{tall}}/users/signin
{{type}}
POST https://www.tall.wiki/gateway/tall/v1.0/users/signin
content-type: application/json;charset=utf-8
{
"client": 1,
"type": 3,
"data": {
"identifier": "whj",
"credential": "123456"
}
"credential": "123456",
"identifier": "zy11"
},
"scene": 0,
"type": 3
}
### send code
GET {{tall}}/users/smscode?phone=16603418748
### 导入插件
# POST http://127.0.0.1:7220/plugin/import
POST http://www.tall.wiki/gateway/pluginshop/plugin/import
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
Authorization: Bearer {{login.response.body.$.data.token}}
### phone login
title
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="param"; filename="插件导入表格.xlsx"
Content-Type: xlsx
# @name phonelogin
POST {{tall}}/users/signin
{{type}}
< E:\ccsens\plugins\插件导入表格.xlsx
{
"client": 1,
"type": 1,
"data": {
"identifier": "16603418748",
"credential": "1111"
}
}
------WebKitFormBoundary7MA4YWxkTrZu0gW--
### 根据团队id查看研发团队相关信息
POST {{greenvalley}}/business/frontSearchCompany
{{type}}
Authorization: Bearer {{login.response.body.$.data.token}}
{
"param": {
"pageNum": 1,
"pageSize": 5,
"type": 2,
"typeOfPlatform": 2,
}
}
### 更新redis内的插件信息
POST http://www.tall.wiki/gateway/pluginshop/plugin/updatePluginOfRedis
content-type: application/json;charset=utf-8
Authorization: Bearer {{login.response.body.$.data.token}}

15
src/App.vue

@ -6,6 +6,7 @@
</template>
<script>
import { mapActions, mapMutations } from 'vuex';
import zh_CN from 'ant-design-vue/lib/locale-provider/zh_CN';
import HeadNav from './components/HeadNav/HeadNav.vue';
@ -16,7 +17,19 @@ export default {
return { zh_CN };
},
methods: {},
async created() {
this.setProjectId(this.$route.query.pid);
const userId = this.$route.query.uid;
const params = { userId };
await this.getUserId(params);
await this.getAllMembers({ projectId: this.$route.query.pid });
},
methods: {
...mapMutations('home', ['setProjectId', 'setMembers']),
...mapActions('user', ['getUserId']),
...mapActions('home', ['getAllMembers']),
},
};
</script>

6
src/components/HeadNav/HeadNav.vue

@ -1,6 +1,6 @@
<template>
<div class="d-flex align-center justify-center nav">
<a-icon type="left" class="back" />
<div class="d-flex justify-space-between align-center justify-center nav">
<!-- <a-icon type="left" class="back" /> -->
<div>考勤管理</div>
<a-button type="primary" size="small" class="export"> 导出 </a-button>
</div>
@ -23,7 +23,7 @@ export default {
<style lang="less" scoped>
.nav {
position: relative;
height: 40px;
height: 50px;
}
.back {
position: absolute;

251
src/components/List/List.vue

@ -7,42 +7,59 @@
<div class="table-head-item"></div>
<div class="table-head-item">审核人</div>
</div>
<div v-for="(list, listIndex) in lists" :key="listIndex">
<div class="my-2 table-time px-2">{{ list.dateTime }}</div>
<a-table :pagination="false" :showHeader="false" :columns="columns" :data-source="list.clockList">
<template slot="actions" slot-scope="text, record, index">
<img src="https://www.tall.wiki/staticrec/drag.svg" />
</template>
<template slot="morning" slot-scope="text, record, index">
<div class="clock-in">
<div v-if="clockInfos && clockInfos.length">
<div v-for="(list, listIndex) in clockInfos" :key="listIndex" class="teble-box">
<div class="table-time px-2">{{ list.dateTime }}</div>
<a-table :pagination="false" :show-header="false" :columns="columns" :data-source="list.recordList">
<template slot="actions" slot-scope="text, record, index">
<img @click="showMenu(index)" src="https://www.tall.wiki/staticrec/drag.svg" />
</template>
<template slot="morning" slot-scope="text, record, index">
<div v-if="record.morningStatus">
{{ $moment(record.morning - 0).format('HH:mm') }}
</div>
<div v-else>
<a-button type="primary" size="small" class="clock-btn"> 打卡 </a-button>
<a-date-picker show-time @change="onChange($event, listIndex, index, 1)" class="clock-select" />
</div>
</div>
</template>
<template slot="night" slot-scope="text, record, index">
<div class="clock-in">
<a-button
v-else
type="primary"
size="small"
@click="checkTime(listIndex, index, 0, record.id, record.memberId, record.checkerId)"
>
打卡
</a-button>
</template>
<template slot="night" slot-scope="text, record, index">
<div v-if="record.nightStatus">
{{ $moment(record.night - 0).format('HH:mm') }}
</div>
<div v-else>
<a-button type="primary" size="small" class="clock-btn"> 打卡 </a-button>
<a-date-picker show-time @change="onChange($event, listIndex, index, 2)" class="clock-select" />
</div>
</div>
</template>
</a-table>
<a-button
v-else
type="primary"
size="small"
@click="checkTime(listIndex, index, 1, record.id, record.memberId, record.checkerId)"
>
打卡
</a-button>
</template>
<template slot="checkerName" slot-scope="text, record">
<a-select :default-value="record.checkerId || checkerId" style="width: 80px" placeholder="选择" @change="chooseChecker">
<a-select-option :value="member.memberId" v-for="member in members" :key="member.memberId">
{{ member.name }}
</a-select-option>
</a-select>
</template>
</a-table>
</div>
</div>
<a-empty class="mt-8 mb-8" description="暂无打卡信息" v-else />
</div>
</template>
<script>
import { mapState } from 'vuex';
import { clockQuery, clockPunch } from '@/config/api';
const columns = [
{ title: ' ', dataIndex: 'actions', key: 'actions', scopedSlots: { customRender: 'actions' }, width: '10%' },
{ title: ' ', dataIndex: 'actions', key: 'actions', scopedSlots: { customRender: 'actions' }, align: 'center', width: '10%' },
{ title: '姓名', dataIndex: 'memberName', key: 'memberName', align: 'center', width: '22.5%' },
{ title: '早', dataIndex: 'morning', key: 'morning', scopedSlots: { customRender: 'morning' }, align: 'center', width: '22.5%' },
{ title: '晚', dataIndex: 'night', key: 'night', scopedSlots: { customRender: 'night' }, align: 'center', width: '22.5%' },
@ -56,91 +73,103 @@ const columns = [
},
];
const lists = [
{
dateTime: '2021-08-27',
clockList: [
{
id: 1,
morning: '1630283371000',
morningStatus: true,
night: '1630319371000',
nightStatus: true,
memberName: '赵同学',
checkerName: '周勇',
},
{
key: 2,
morning: '1630283371000',
morningStatus: true,
night: '1630319371000',
nightStatus: false,
memberName: '张野',
checkerName: '武慧娟',
},
{
key: 3,
morning: '1630283371000',
morningStatus: false,
night: '1630319371000',
nightStatus: true,
memberName: '李亚男',
checkerName: '姚工',
},
],
},
{
dateTime: '2021-08-27',
clockList: [
{
id: 4,
morning: '1630283371000',
morningStatus: true,
night: '1630319371000',
nightStatus: true,
memberName: '赵同学',
checkerName: '周勇',
},
{
key: 5,
morning: '1630283371000',
morningStatus: true,
night: '1630319371000',
nightStatus: false,
memberName: '张野',
checkerName: '武慧娟',
},
{
key: 6,
morning: '1630283371000',
morningStatus: false,
night: '1630319371000',
nightStatus: true,
memberName: '李亚男',
checkerName: '姚工',
},
],
},
];
export default {
data() {
return {
columns,
lists,
clockInfos: [],
memberIdList: [],
options: null,
checkerId: undefined,
};
},
computed: mapState('home', ['projectId', 'members']),
mounted() {
this.setParams();
},
methods: {
onChange(dateString, listIndex, index, type) {
const selectTime = this.$moment(dateString).format('x');
console.log('selectTime: ', selectTime);
if (type === 1) {
this.lists[listIndex].clockList[index].morning = selectTime;
async setParams(options) {
const { projectId } = this;
const time = this.$moment(Date.now()).format('YYYY-MM-DD');
const startTime = (options && options.startTime) || this.$moment(`${time} 00:00`).format('x') - 0;
const endTime = (options && options.endTime) || this.$moment(`${time} 23:59`).format('x') - 0;
const memberIdList = (options && options.memberIdList) || this.memberIdList;
const params = { param: { projectId, memberIdList, startTime, endTime } };
await this.getClockQuery(params);
},
/**
* 查询考勤信息
* @param {string} projectId
* @param {array} memberIdList
* @param {string} startTime
* @param {string} endTime
*/
async getClockQuery(params) {
try {
const res = await clockQuery(params);
const { code, msg, data } = res.data;
if (code === 200) {
this.clockInfos = data;
} else {
this.$message.error(msg || '获取失败');
throw msg;
}
} catch (error) {
throw error || '获取失败';
}
},
//
chooseChecker(value) {
this.checkerId = value;
},
//
checkTime(listIndex, index, clockType, id, memberId, checkerId) {
const time = Date.now();
const selectTime = this.$moment(time).format('HH:mm');
if (clockType === 0) {
this.clockInfos[listIndex].recordList[index].morning = selectTime;
} else {
this.lists[listIndex].clockList[index].night = selectTime;
this.clockInfos[listIndex].recordList[index].night = selectTime;
}
const dateTime = this.$moment(time).format('x') - 0;
// TODO:
const params = { param: { checkerId: this.checkerId || checkerId, clockType, dateTime, id, memberId } };
this.handleClockPunch(params);
},
/**
* 打卡
* @param {string} checkerId 审核员id
* @param {array} clockType 打卡类型(0-,1-)
* @param {string} dateTime 打卡时间
* @param {string} id 记录id(没有则不传)
* @param {string} memberId 考勤信息中的成员id
*/
async handleClockPunch(params) {
try {
const res = await clockPunch(params);
const { code, msg } = res.data;
if (code === 200) {
this.$message.success('打卡成功');
this.setParams();
} else {
this.$message.error(msg || '获取失败');
throw msg;
}
} catch (error) {
throw error || '获取失败';
}
},
showMenu(index) {
console.log('展开菜单', index);
},
},
};
</script>
@ -149,14 +178,14 @@ export default {
.table-head {
border-bottom: 1px solid #e8e8e8;
background: #fafafa;
height: 54px;
line-height: 54px;
height: 40px;
line-height: 40px;
font-weight: bold;
}
.table-time {
height: 54px;
line-height: 54px;
height: 40px;
line-height: 40px;
border-bottom: 1px solid #e8e8e8;
}
@ -170,21 +199,7 @@ img {
max-width: auto !important;
}
.clock-in {
position: relative;
}
.clock-btn {
position: absolute;
}
.clock-select {
position: relative;
min-width: auto !important;
width: 47px;
height: 20px;
overflow: hidden;
z-index: 9;
opacity: 0;
.teble-box >>> .ant-table-row-cell-break-word {
padding: 8px 0 !important;
}
</style>

17
src/components/MemberPicker/MemberPicker.vue

@ -1,23 +1,28 @@
<template>
<div class="mt-3">
<!-- 多选 -->
<a-select mode="multiple" :default-value="defaultValue" style="width: 100%" placeholder="请选择成员" @change="handleChange">
<a-select-option v-for="i in 25" :key="(i + 9).toString(36) + i">
{{ (i + 9).toString(36) + i }}
</a-select-option>
<a-select mode="multiple" style="width: 100%" placeholder="请选择成员" @change="handleChange">
<a-select-option :value="member.memberId" v-for="member in members" :key="member.memberId"> {{ member.name }} </a-select-option>
</a-select>
</div>
</template>
<script>
import { mapState } from 'vuex';
export default {
data() {
return {defaultValue: [],};
return {};
},
computed: mapState('home', ['members']),
methods: {
handleChange(value) {
console.log(`selected ${value}`);
setTimeout(() => {
const options = { memberIdList: value };
this.$emit('changeTime', options);
}, 800);
},
},
};

10
src/components/TimePicker/TimePicker.vue

@ -4,6 +4,7 @@
v-model="startValue"
:disabled-date="disabledStartDate"
show-time
allow-clear
:format="monthFormat"
placeholder="起始时间"
class="box box1"
@ -13,6 +14,7 @@
v-model="endValue"
:disabled-date="disabledEndDate"
show-time
allow-clear
:format="monthFormat"
class="box box2"
placeholder="截止时间"
@ -62,6 +64,14 @@ export default {
},
handleEndOpenChange(open) {
this.endOpen = open;
if (!this.startValue) {
this.$message.error('请选择起始时间');
} else {
const startTime = this.$moment(this.startValue).format('x');
const endTime = this.$moment(this.endValue).format('x');
const options = { startTime, endTime };
this.$emit('changeTime', options);
}
},
},
};

8
src/config/api-user.js

@ -0,0 +1,8 @@
import axios from 'axios';
let { proxyUrl } = require('@/config/setting');
const tall = `https://test.tall.wiki/gateway/tall3/v3.0`;
const users = `${tall}/users`;
// 通过userId获取token
export const getUserId = params => axios.get(`${users}/userId`, params);

14
src/config/api.js

@ -1,10 +1,12 @@
import axios from 'axios';
let { proxyUrl, msgUrl } = require('@/config/setting');
const greenvalley = `${proxyUrl}/greenvalley`;
const defaultwbs = `https://test.tall.wiki/gateway/defaultwbs`;
// websocket基础地址
export const WS_BASE_URL = msgUrl;
// 查询考勤信息
export const clockQuery = params => axios.post(`${defaultwbs}/clock/query`, params);
// 登陆人信息保存
export const saveUserMes = params => axios.post(`${greenvalley}/userMes/saveUserMes`, params);
// 查询考勤信息
export const clockPunch = params => axios.post(`${defaultwbs}/clock/punch`, params);
// 查询所有成员
export const queryChecker = params => axios.post(`${defaultwbs}/deliver/queryChecker`, params);

117
src/store/modules/home/actions.js

@ -1,18 +1,19 @@
import axios from 'axios';
import { message } from 'ant-design-vue';
import { industryInfo, front, getPageDetail, queryRotation, frontSearchCompany, getUserSer } from '@/config/api';
import { clockQuery, queryChecker } from '@/config/api';
const actions = {
/**
* 获取行业资讯列表
* 查询考勤信息
* @param {any} commit
* @param {object} params 提交的数据
*/
async getIndustryInfoList({ commit }, params) {
async getClockQuery({ commit }, params) {
try {
const res = await industryInfo(params);
const res = await clockQuery(params);
const { code, msg, data } = res.data;
if (code === 200) {
commit('setClockInfos', data);
return data;
} else {
message.error(msg || '获取失败');
@ -24,115 +25,17 @@ const actions = {
},
/**
* 获取活动公告列表
* 查询所有成员
* @param {any} commit
* @param {object} params 提交的数据
* @param {object} param 提交的数据
*/
async getFrontList({ commit }, params) {
async getAllMembers({ commit }, param) {
try {
const res = await front(params);
const res = await queryChecker({ param });
const { code, msg, data } = res.data;
if (code === 200) {
commit('setMembers', data);
return data;
} else {
message.error(msg || '获取失败');
throw msg;
}
} catch (error) {
throw error || '获取失败';
}
},
/**
* 介绍页面详情查询
* @param {any} commit
* @param {object} titleCode 提交的数据
*/
async getPageDetail({ commit }, titleCode) {
try {
const params = { param: { titleCode } };
const res = await getPageDetail(params);
const { code, msg, data } = res.data;
if (code === 200) {
if (data && data.length > 0 && data[0] && data[0].length > 0 && data[0][0].detail) {
commit('setContent', data[0][0].detail.content);
commit('setTitleCode', data[0][0].detail.titleCode);
}
} else {
message.error(msg || '查询失败');
throw msg;
}
} catch (error) {
throw error || '查询失败';
}
},
/**
* 介绍页面详情查询
* @param {any} commit
* @param {object} showPage 页面显示位置
* 0 首页
* 11 关于我们-公司介绍
* 12 关于我们-组织机构
* 32 创新平台-创新资源平台
* 33 创新平台-创新服务
* 41 孵化平台-众创空间
* 42 孵化平台-公共实验室
* 43 孵化平台-中试基地
* 44 孵化平台-创业导师
* 46 孵化平台-创业服务
* 52 产业平台-产业服务
* 100 XX服务详情
*/
async getQueryRotation({ commit }, showPage) {
try {
const params = { param: { showPage } };
const res = await queryRotation(params);
const { code, msg, data } = res.data;
if (code === 200) {
commit('setBannerLists', data);
} else {
message.error(msg || '查询失败');
throw msg;
}
} catch (error) {
throw error || '查询失败';
}
},
/**
* 合作伙伴查询
* @param {any} commit
* @param {object} params 提交的数据
*/
async getFrontSearchCompany({ commit }, params) {
try {
const res = await frontSearchCompany(params);
const { code, msg, data } = res.data;
if (code === 200) {
commit('setPartners', data);
} else {
message.error(msg || '查询失败');
throw msg;
}
} catch (error) {
throw error || '查询失败';
}
},
/**
* 获取登录人信息
* @param {any} commit
*/
async getUserSer({ commit }) {
try {
const token = sessionStorage.getItem('anyringToken');
if (!token) return;
const params = { param: {} };
const res = await getUserSer(params);
const { code, msg, data } = res.data;
if (code === 200) {
commit('setUserSer', data);
} else {
message.error(msg || '查询失败');
throw msg;

295
src/store/modules/home/mutations.js

@ -1,300 +1,29 @@
import { List } from 'ant-design-vue';
const mutations = {
/**
* 设置登录人信息
* 设置项目id
* @param {object} state
* @param {object} userSer
*/
setUserSer(state, userSer) {
state.userSer = { ...userSer };
},
/**
* 获取显示政策的ID
* @param {object} state
* @param {Number} num
*/
setPolicyId(state, num) {
state.policyId = num;
},
/**
* 改变当前政策页数
* @param {object} state
* @param {Number} num
*/
setCurrent(state, num) {
state.current = num;
},
/**
* 改变当前政策列表
* @param {object} state
* @param {object} data
*/
setPolicyStatus(state, data) {
state.policyStatus = { ...data };
},
/**
* 改变当前政策页数
* @param {object} state
* @param {Number} num
*/
setComCurrent(state, num) {
state.comCurrent = num;
},
/**
* 查看帖子详情
* @param {object} state
* @param {object} data
*/
setPostDetail(state, data) {
state.postDetail = { ...data };
},
/**
* 改变当前帖子所选类型
* @param {object} state
* @param {Number} num
*/
setPostVal(state, num) {
state.postVal = num;
},
/**
* 改变当前帖子搜索框内容
* @param {object} state
* @param {object} obj
*/
setPostIpCon(state, data) {
state.postIpCon = data;
},
/**
* 改变当前活动公告搜索类型
* @param {object} state
* @param {List} list
*/
setActList(state, list) {
state.actList = list;
},
/**
* 改变当前活动公告搜索框内容
* @param {object} state
* @param {string} str
*/
setActIpCon(state, str) {
state.actIpCon = str;
},
/**
* 改变当前活动公告处于第几页
* @param {object} state
* @param {Number} num
*/
setActCurrent(state, num) {
state.actCurrent = num;
},
/**
* 存储当前活动公告详情
* @param {object} state
* @param {object} data
*/
setActDetail(state, data) {
state.actDetail = { ...data };
},
/**
* 存储介绍页图文详情
* @param {object} state
* @param {object} data
*/
setContent(state, data) {
state.content = data;
},
/**
* 存储介绍页TitleCode
* @param {object} state
* @param {object} code
*/
setTitleCode(state, code) {
state.titleCode = code;
},
/**
* 改变子页面banner图
* @param {object} state
* @param {List} list
*/
setBannerLists(state, list) {
state.bannerLists = list;
},
/**
* 设置合作伙伴 衍生企业
* @param {object} state
* @param {List} list
*/
setPartners(state, list) {
state.partners = list;
},
/**
* 改变公司介绍内容
* @param {object} state
* @param {object} data
*/
setProfile(state, data) {
state.profile = data;
},
/**
* 改变知识产权与技术转移转化服务平台-成果类型所选类型
* @param {object} state
* @param {List} list
*/
setAchList(state, list) {
state.achList = list;
},
/**
* 改变知识产权与技术转移转化服务平台-搜索框内容
* @param {object} state
* @param {object} obj
*/
setAchIpt(state, obj) {
state.achIpt = { ...obj };
},
/**
* 改变知识产权与技术转移转化服务平台-搜索框内容
* @param {object} state
* @param {number} num
*/
setAchCurrent(state, num) {
state.achCurrent = num;
},
/**
* 知识产权与技术转移转化服务平台-成果详情页Id
* @param {object} state
* @param {number} num
*/
setAchId(state, num) {
state.achId = num;
},
/**
* 科技资源开放共享服务平台-列表展示数据0实验室1仪器//默认0)
* @param {object} state
* @param {number} num
*/
setListState(state, num) {
state.listState = num;
},
/**
* 科技资源开放共享服务平台-列表当前处于第几页
* @param {object} state
* @param {number} num
*/
setShareCurrent(state, num) {
state.shareCurrent = num;
},
/**
* 改变科技资源开放共享服务平台-实验室所选类型
* @param {object} state
* @param {List} list
*/
setLabList(state, list) {
state.labList = list;
},
/**
* 改变科技资源开放共享服务平台-实验室搜索框内容
* @param {object} state
* @param {object} obj
*/
setLabIpt(state, obj) {
state.LabIpt = { ...obj };
},
/**
* 改变科技资源开放共享服务平台-仪器所选类型
* @param {object} state
* @param {List} list
*/
setInsList(state, list) {
state.insList = list;
},
/**
* 改变科技资源开放共享服务平台-仪器搜索框内容
* @param {object} state
* @param {object} obj
*/
setInsIpt(state, obj) {
state.InsIpt = { ...obj };
},
/**
* 改变当前查看的研究院 详情的 id
* @param {object} state
* @param {number} num
*/
setLabId(state, num) {
state.LabId = num;
},
/**
* 改变孵化平台-产品展示所选类型所选类型
* @param {object} state
* @param {List} list
*/
setProductList(state, list) {
state.productList = list;
},
/**
* 改变孵化平台-产品展示所选类型搜索框内容
* @param {object} state
* @param {object} obj
*/
setProductIpt(state, obj) {
state.productIpt = { ...obj };
},
/**
* 改变当前孵化平台-产品展示 详情的 id
* @param {object} state
* @param {number} num
* @param {string} data
*/
setProductId(state, num) {
state.productId = num;
setProjectId(state, data) {
state.projectId = data;
},
/**
* 存储服务详情导航
* 设置考勤信息
* @param {object} state
* @param {object} data
* @param {Array} data
*/
setServiceArr(state, data) {
state.serviceArr = data;
setClockInfos(state, data) {
state.clockInfos = data;
},
/**
* 存储原表单界面
* 设置成员信息
* @param {object} state
* @param {string} data
* @param {Array} data
*/
setPagePath(state, data) {
state.pagePath = data;
setMembers(state, data) {
state.members = data;
},
};

61
src/store/modules/home/state.js

@ -6,64 +6,9 @@
* @LastEditTime: 2021-01-25 15:57:08
*/
const state = {
userSer: null, // 登录人信息
policyId: 0,
current: 1, // 政策当前处于第几页,默认1
comCurrent: 1, // 帖子列表当前处于第几页,默认1
policyStatus: {
bw: 0,
sx: 0,
zg: 0,
value: 1, // 搜索框当前选项value
code: 'title', // 搜索框当前选项code
policyText: ['标题', '地区', '发布部门'], // 搜索框选项列表
iptCon: '', // 搜索框input内容
},
postDetail: {}, // 当前帖子详情
postVal: 0, // 当前帖子所选类型
postIpCon: '', // 帖子搜索框内容
actList: [], // 活动公告当前所选类型
actIpCon: '', // 活动公告搜索框内容
actCurrent: 1, // 活动公告当前处于第几页
actDetail: {}, // 当前活动公告详情
content: '', // 介绍页图文
titleCode: '', // 介绍页titleCode
bannerLists: [], // 子页面banner图
partners: [], // 合作伙伴 衍生企业
// 公司介绍
profile: {},
achList: [], // 知识产权与技术转移转化服务平台-成果类型所选类型
achIpt: {
// 知识产权与技术转移转化服务平台-搜索框内容
content: '',
isBtn: 0,
},
achCurrent: 1, // 知识产权与技术转移转化服务平台-成果列表页数
achId: 0, // 知识产权与技术转移转化服务平台-成果详情页Id
listState: 0, // 科技资源开放共享服务平台-列表展示数据(0:成果,1:仪器//默认0, 2:研究院,3:产品)
shareCurrent: 1, // 科技资源开放共享服务平台-列表当前处于第几页
labList: [], // 科技资源开放共享服务平台-实验室所选类型
LabIpt: {
// 实验室搜索框内容
content: '',
isBtn: 0,
},
insList: [], // 科技资源开放共享服务平台-仪器所选类型
InsIpt: {
// 仪器搜索框内容
content: '',
isBtn: 0,
},
LabId: 0, // 当前研究院详情Id
productList: [], // 孵化平台-产品展示所选类型
productIpt: {
// 产品展示搜索框内容
content: '',
isBtn: 0,
},
productId: 0, // 当前产品详情Id
serviceArr: [], // 服务详情导航
pagePath: '', // 点击表单后跳转到登录界面,暂存原表单界面
projectId: '',
clockInfos: [], // 考勤信息
members: [], // 所有成员
};
export default state;

27
src/store/modules/user/actions.js

@ -1,3 +1,28 @@
const actions = {};
import axios from 'axios';
import { message } from 'ant-design-vue';
import { getUserId } from '@/config/api-user';
const actions = {
/**
* 通过userId获取token
* @param {any} commit
* @param {object} params 提交的参数
*/
async getUserId({ commit }, params) {
try {
const res = await getUserId({ params });
const { code, msg, data } = res.data;
if (code === 200) {
commit('sign', data.token);
commit('setUser', data);
return data;
} else {
throw msg;
}
} catch (error) {
throw error || '获取个人信息失败';
}
},
};
export default actions;

9
src/store/modules/user/mutations.js

@ -19,15 +19,6 @@ const mutations = {
state.user = { ...user };
sessionStorage.setItem('user', JSON.stringify(user));
},
/**
* 图片验证码
* @param {object} state
* @param {object} picCode
*/
setPicCode(state, picCode) {
state.picCode = { ...picCode };
},
};
export default mutations;

1
src/store/modules/user/state.js

@ -1,7 +1,6 @@
const state = {
anyringToken: '',
user: { id: '', phone: '', account: '' },
picCode: null,
};
export default state;

10
src/views/FirstPage/FirstPage.vue

@ -1,11 +1,11 @@
<template>
<div>
<!-- 时间选择 -->
<TimePicker />
<TimePicker @changeTime="changeTime" />
<!-- 成员选择 -->
<MemberPicker />
<MemberPicker @changeTime="changeTime" />
<!-- 列表 -->
<List />
<List ref="mychild" />
</div>
</template>
@ -24,6 +24,10 @@ export default {
handleChange(value) {
console.log(`selected ${value}`);
},
changeTime(options) {
this.$refs.mychild.setParams(options);
},
},
};
</script>

Loading…
Cancel
Save