Merge pull request 'master' (#117) from master into prod
Reviewed-on: http://git.feashow.cn/clay/mosr-web/pulls/117
This commit is contained in:
@@ -68,7 +68,7 @@ const filterConfig = computed(()=>{
|
|||||||
// 搜索功能表单元素默认值
|
// 搜索功能表单元素默认值
|
||||||
const setDefaultFormValues = () => {
|
const setDefaultFormValues = () => {
|
||||||
filterConfig.value.forEach(item=>{
|
filterConfig.value.forEach(item=>{
|
||||||
form.value[item.prop] = item.props.defaultValue || null
|
form.value[item.prop] = item.props?.defaultValue || null
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,37 +1,37 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<el-popover
|
<!-- <el-popover-->
|
||||||
:width="300"
|
<!-- :width="300"-->
|
||||||
trigger="click"
|
<!-- trigger="click"-->
|
||||||
placement="bottom"
|
<!-- placement="bottom"-->
|
||||||
popper-style="box-shadow: rgb(14 18 22 / 35%) 0px 10px 38px -10px, rgb(14 18 22 / 20%) 0px 10px 20px -15px; padding: 10px;"
|
<!-- popper-style="box-shadow: rgb(14 18 22 / 35%) 0px 10px 38px -10px, rgb(14 18 22 / 20%) 0px 10px 20px -15px; padding: 10px;"-->
|
||||||
>
|
<!-- >-->
|
||||||
<template #reference>
|
<!-- <template #reference>-->
|
||||||
<el-badge :hidden="total===0" :value="total" class="item">
|
<!-- <el-badge :hidden="total===0" :value="total" class="item">-->
|
||||||
<el-icon size="22px" style="cursor: pointer">
|
<!-- <el-icon size="22px" style="cursor: pointer">-->
|
||||||
<Bell/>
|
<!-- <Bell/>-->
|
||||||
</el-icon>
|
<!-- </el-icon>-->
|
||||||
</el-badge>
|
<!-- </el-badge>-->
|
||||||
</template>
|
<!-- </template>-->
|
||||||
<template #default>
|
<!-- <template #default>-->
|
||||||
<div v-if="total===0" style="height: 100px;display: flex;align-items: center;justify-content: center">
|
<!-- <div v-if="total===0" style="height: 100px;display: flex;align-items: center;justify-content: center">-->
|
||||||
暂无数据~
|
<!-- 暂无数据~-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
<ul v-else>
|
<!-- <ul v-else>-->
|
||||||
<li v-for="(notice,index) in noticeList" :key="index">
|
<!-- <li v-for="(notice,index) in noticeList" :key="index">-->
|
||||||
<span @click="handleToNotifyDetail(notice,index)">{{ notice.noticeTitle }}</span>
|
<!-- <span @click="handleToNotifyDetail(notice,index)">{{ notice.noticeTitle }}</span>-->
|
||||||
<span v-if="notice.state==='0'" @click="handleRead(notice)">已读</span>
|
<!-- <span v-if="notice.state==='0'" @click="handleRead(notice)">已读</span>-->
|
||||||
</li>
|
<!-- </li>-->
|
||||||
</ul>
|
<!-- </ul>-->
|
||||||
|
|
||||||
<div class="notify-btn">
|
<!-- <div class="notify-btn">-->
|
||||||
<el-button type="primary" @click="handlePrevious" :disabled="pageInfo.pageNum===1" link>上一页</el-button>
|
<!-- <el-button type="primary" @click="handlePrevious" :disabled="pageInfo.pageNum===1" link>上一页</el-button>-->
|
||||||
<span @click="handleMoreRead">本页已读</span>
|
<!-- <span @click="handleMoreRead">本页已读</span>-->
|
||||||
<el-button type="primary" @click="handleNext" :disabled="pageInfo.pageNum*pageInfo.pageSize>total" link>下一页
|
<!-- <el-button type="primary" @click="handleNext" :disabled="pageInfo.pageNum*pageInfo.pageSize>total" link>下一页-->
|
||||||
</el-button>
|
<!-- </el-button>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
</template>
|
<!-- </template>-->
|
||||||
</el-popover>
|
<!-- </el-popover>-->
|
||||||
<el-dialog width="1200px" title="通知公告详情" v-model="visible" @close="visible=false">
|
<el-dialog width="1200px" title="通知公告详情" v-model="visible" @close="visible=false">
|
||||||
<el-form :model="viewForm" label-width="100px">
|
<el-form :model="viewForm" label-width="100px">
|
||||||
<el-row>
|
<el-row>
|
||||||
|
|||||||
@@ -6,8 +6,8 @@
|
|||||||
<bell-socket/>
|
<bell-socket/>
|
||||||
<div class="user-box">
|
<div class="user-box">
|
||||||
<div>
|
<div>
|
||||||
<img :src="userInfo.avatar" alt="" @click.stop="handleVisitedP">
|
<!-- <img :src="userInfo.avatar" alt="" @click.stop="handleVisitedP">-->
|
||||||
<span>{{userInfo.userName}}</span>
|
<span>欢迎回来,{{userInfo.userName}}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="person" v-if="visitedP">
|
<div class="person" v-if="visitedP">
|
||||||
<ul>
|
<ul>
|
||||||
|
|||||||
@@ -107,7 +107,17 @@ export const usePermisstionStroe = defineStore('permisstion', () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const removeMenu = () => {
|
const removeMenu = () => {
|
||||||
menuList.value.length = 0
|
menuList.value = [
|
||||||
|
{
|
||||||
|
name: 'home',
|
||||||
|
path: '/home',
|
||||||
|
icon: 'home',
|
||||||
|
title: '首页',
|
||||||
|
meta: {
|
||||||
|
breadcrumb: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
asyncRouters.value.length = 0
|
asyncRouters.value.length = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,12 +21,12 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="8" :md="6" :lg="4" :xl="4">
|
<el-col :xs="24" :sm="8" :md="6" :lg="4" :xl="4">
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<div class="right-top">
|
<!-- <div class="right-top">-->
|
||||||
<h3>欢迎回来, Sunshine</h3>
|
<!-- <h3>欢迎回来, Sunshine</h3>-->
|
||||||
<div>科技创新项目需求征集中, 要求参见OA内部信!</div>
|
<!-- <div>科技创新项目需求征集中, 要求参见OA内部信!</div>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
<!-- <div class="right-gap"></div>-->
|
<!-- <div class="right-gap"></div>-->
|
||||||
<div class="right-down">
|
<div class="right-top ">
|
||||||
<div>
|
<div>
|
||||||
<h3>帮助文档</h3>
|
<h3>帮助文档</h3>
|
||||||
<span>查看更多</span>
|
<span>查看更多</span>
|
||||||
@@ -36,6 +36,14 @@
|
|||||||
{{ item.title }}
|
{{ item.title }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="right-down">
|
||||||
|
<div>
|
||||||
|
<h3>工具下载</h3>
|
||||||
|
<span>常用网站</span>
|
||||||
|
</div>
|
||||||
|
<el-divider/>
|
||||||
|
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@@ -103,10 +111,11 @@ const tableConfig = reactive({
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'state',
|
prop: 'type',
|
||||||
label: '状态',
|
label: '类型',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
currentRender: ({row, index}) => (<Tag dictType={'normal_disable'} value={row.state}/>)
|
showOverflowTooltip: false,
|
||||||
|
// currentRender: ({row, index}) => (<Tag dictType={'normal_disable'} value={row.state}/>)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'createTime',
|
prop: 'createTime',
|
||||||
@@ -119,6 +128,7 @@ const tableConfig = reactive({
|
|||||||
fixed: 'right',
|
fixed: 'right',
|
||||||
width: '150',
|
width: '150',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
showOverflowTooltip: false,
|
||||||
currentRender: ({row, index}) => {
|
currentRender: ({row, index}) => {
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
@@ -232,20 +242,20 @@ const headBtnClick = (key) => {
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
|
||||||
.right-top {
|
//.right-top {
|
||||||
h3 {
|
// h3 {
|
||||||
text-align: center;
|
// text-align: center;
|
||||||
margin-bottom: 15px;
|
// margin-bottom: 15px;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
div {
|
// div {
|
||||||
color: #909399;
|
// color: #909399;
|
||||||
font-size: 14px;
|
// font-size: 14px;
|
||||||
margin: 0 20px;
|
// margin: 0 20px;
|
||||||
letter-spacing: 1px;
|
// letter-spacing: 1px;
|
||||||
line-height: 25px;
|
// line-height: 25px;
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
|
|
||||||
.right-top, .right-down {
|
.right-top, .right-down {
|
||||||
flex: 0.5;
|
flex: 0.5;
|
||||||
@@ -254,8 +264,7 @@ const headBtnClick = (key) => {
|
|||||||
background-color: #ffffff;
|
background-color: #ffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.right-down,.right-top {
|
||||||
.right-down {
|
|
||||||
flex: 0.48;
|
flex: 0.48;
|
||||||
|
|
||||||
> div:first-child {
|
> div:first-child {
|
||||||
|
|||||||
@@ -1,13 +1,108 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<fvSearchForm :searchConfig="searchConfig" @search="search"></fvSearchForm>
|
||||||
需求征集
|
<fvTable ref="tableIns" :tableConfig="tableConfig" @headBtnClick="headBtnClick"></fvTable>
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="jsx">
|
<script setup lang="jsx">
|
||||||
|
import fvSelect from '@/fvcomponents/fvSelect/index.vue'
|
||||||
|
import Tag from '@/components/Tag.vue'
|
||||||
|
|
||||||
|
const router = useRouter()
|
||||||
|
const searchConfig = reactive([
|
||||||
|
{
|
||||||
|
label: '名称',
|
||||||
|
prop: 'roleName',
|
||||||
|
component: 'el-input',
|
||||||
|
props: {
|
||||||
|
placeholder: '请输入名称查询',
|
||||||
|
clearable: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '状态',
|
||||||
|
prop: 'state',
|
||||||
|
component: shallowRef(fvSelect),
|
||||||
|
props: {
|
||||||
|
placeholder: '请选择',
|
||||||
|
clearable: true,
|
||||||
|
cacheKey: 'normal_disable'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
])
|
||||||
|
const tableIns = ref()
|
||||||
|
const auths = {
|
||||||
|
edit: ['admin:role:edit'],
|
||||||
|
add: ['admin:role:add'],
|
||||||
|
export: ['admin:role:export'],
|
||||||
|
}
|
||||||
|
|
||||||
|
const tableConfig = reactive({
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
type: 'selection',
|
||||||
|
prop: 'selection'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'roleName',
|
||||||
|
label: '名称',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'roleKey',
|
||||||
|
label: '所属公司',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'time',
|
||||||
|
label: '发布时间',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'state',
|
||||||
|
label: '状态',
|
||||||
|
align: 'center',
|
||||||
|
showOverflowTooltip: false,
|
||||||
|
currentRender: ({row, index}) => (<Tag dictType={'normal_disable'} value={row.state}/>)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'oper',
|
||||||
|
label: '操作',
|
||||||
|
align: 'center',
|
||||||
|
showOverflowTooltip: false,
|
||||||
|
currentRender: ({row, index}) => {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<el-button type={'primary'} link onClick={()=>{}}>详情</el-button>
|
||||||
|
<el-button type={'primary'} link onClick={()=>{}}>上报</el-button>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
api: '',
|
||||||
|
btns: [
|
||||||
|
{name: '新增', key: 'add', auth: auths.add, type: 'primary'},
|
||||||
|
{name: '导出', key: 'add', auth: auths.add, type: 'primary'},
|
||||||
|
],
|
||||||
|
params: {}
|
||||||
|
})
|
||||||
|
|
||||||
|
const search = (val) => {
|
||||||
|
tableConfig.params = {...val}
|
||||||
|
tableIns.value.refresh()
|
||||||
|
}
|
||||||
|
const headBtnClick = (key) => {
|
||||||
|
switch (key) {
|
||||||
|
case 'add':
|
||||||
|
handleAdd()
|
||||||
|
break;
|
||||||
|
case 'export':
|
||||||
|
handleExport()
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -1,11 +1,127 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<fvSearchForm :searchConfig="searchConfig"></fvSearchForm>
|
||||||
需求汇总
|
<fvTable :table-config="tableConfig"></fvTable>
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="jsx">
|
<script setup lang="jsx">
|
||||||
|
import { reactive, shallowRef } from 'vue';
|
||||||
|
import fvSelect from './../../../fvcomponents/fvSelect/index.vue'
|
||||||
|
|
||||||
|
const localData = reactive({
|
||||||
|
// 表格配置
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
const searchConfig = reactive([
|
||||||
|
{
|
||||||
|
label: '名称',
|
||||||
|
prop: 'name',
|
||||||
|
component: 'el-input',
|
||||||
|
colProps: {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '项目类型',
|
||||||
|
prop: 'projectType',
|
||||||
|
component: shallowRef(fvSelect),
|
||||||
|
props: {},
|
||||||
|
colProps: {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '研发主体',
|
||||||
|
prop: 'productMainBody',
|
||||||
|
component: shallowRef(fvSelect),
|
||||||
|
props: {},
|
||||||
|
colProps: {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '项目影响',
|
||||||
|
prop: 'projectEffect',
|
||||||
|
component: shallowRef(fvSelect),
|
||||||
|
props: {},
|
||||||
|
colProps: {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '起止时间',
|
||||||
|
prop: 'time',
|
||||||
|
component: 'el-date-picker',
|
||||||
|
props: {},
|
||||||
|
colProps: {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '最小金额',
|
||||||
|
prop: 'minMoney',
|
||||||
|
component: 'el-input',
|
||||||
|
colProps: {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '最大金额',
|
||||||
|
prop: 'maxMoney',
|
||||||
|
component: 'el-input',
|
||||||
|
colProps: {}
|
||||||
|
},
|
||||||
|
])
|
||||||
|
|
||||||
|
const tableConfig = reactive({
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
type: 'selection',
|
||||||
|
prop: 'selection'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'name',
|
||||||
|
label: '名称',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'company',
|
||||||
|
label: '所属公司',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'projectType',
|
||||||
|
label: '项目类型',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'productMainBody',
|
||||||
|
label: '研发主体',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'projectEffect',
|
||||||
|
label: '项目影响',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'survey',
|
||||||
|
label: '经营概况',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'time',
|
||||||
|
label: '起止时间',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'status',
|
||||||
|
label: '发布状态',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'oper',
|
||||||
|
label: '操作',
|
||||||
|
align: 'center',
|
||||||
|
currentRender: ({row, index}) => {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<el-button type={'primary'} link onClick={()=>{}}>详情</el-button>
|
||||||
|
<el-button type={'primary'} link onClick={()=>{}}>上报</el-button>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|||||||
Reference in New Issue
Block a user