fix : 修复页面细节

This commit is contained in:
2024-05-30 20:04:57 +08:00
parent 29a019b32a
commit 8c6da666d5
9 changed files with 433 additions and 146 deletions

View File

@@ -14,37 +14,37 @@
{{ btn.name }}
</el-button>
</div>
<!-- 列显示配置 -->
<div v-if="isSettingCol">
<el-tooltip effect="dark" content="列配置" placement="bottom">
<el-button ref="buttonRef" link>
<el-icon size="18"><Setting /></el-icon>
</el-button>
</el-tooltip>
<el-popover
</div>
<!-- 列显示配置 -->
<div v-if="isSettingCol" style="float: right">
<el-tooltip effect="dark" content="列配置" placement="bottom">
<el-button ref="buttonRef" link>
<el-icon size="18"><Setting /></el-icon>
</el-button>
</el-tooltip>
<el-popover
placement="bottom"
:width="200"
ref="popoverRef"
:virtual-ref="buttonRef"
virtual-triggering
trigger="click">
<div class="col-setting-checkall">
<el-checkbox label="列展示" v-model="localData.allColShow" :indeterminate="localData.indeterminate" @change="changeIsShowAll"></el-checkbox>
</div>
<div class="col-setting-list">
<el-checkbox-group v-model="localData.checkGroup" @change="changeColShow">
<el-space direction="vertical" alignment="flex-start" :size="0">
<el-checkbox
<div class="col-setting-checkall">
<el-checkbox label="列展示" v-model="localData.allColShow" :indeterminate="localData.indeterminate" @change="changeIsShowAll"></el-checkbox>
</div>
<div class="col-setting-list">
<el-checkbox-group v-model="localData.checkGroup" @change="changeColShow">
<el-space direction="vertical" alignment="flex-start" :size="0">
<el-checkbox
v-for="item in tableConfig.columns"
:key="item.prop"
:label="item.label"
:value="item.prop"
/>
</el-space>
</el-checkbox-group>
</div>
</el-popover>
</div>
/>
</el-space>
</el-checkbox-group>
</div>
</el-popover>
</div>
<!-- 表格部分 -->
<div class="fv-table">

View File

@@ -8,39 +8,75 @@
</template>
<script setup lang="jsx">
import fvSelect from '@/fvcomponents/fvSelect/index.vue'
const router = useRouter()
const route = useRoute()
const searchConfig = reactive([
{
label: '需求名称',
prop: 'requirementName',
label: '项目名称',
prop: 'projectName',
component: 'el-input',
props: {
placeholder: '请输入需求名称查询',
clearable: true,
filterable: true,
checkStrictly: true
}
}, {
label: '项目费用',
prop: 'requirementName',
component: 'el-input',
props: {
placeholder: '请输入项目费用查询',
placeholder: '请输入项目名称查询',
clearable: true,
filterable: true,
checkStrictly: true
}
},
{
label: '起始时间',
label: '时间',
prop: 'time',
component: 'el-date-picker',
props: {
placeholder: '请选择起始时间',
placeholder: '请选择时间',
clearable: true,
valueFormat: 'YYYY-MM-DD HH:mm:ss',
},
colProps: {}
}, {
label: '项目费用',
prop: 'requirementName',
component: shallowRef(fvSelect),
props: {
placeholder: '请选择项目费用查询',
clearable: true,
filterable: true,
cacheKey: 'project_cost',
}
}, {
label: '研发阶段',
prop: 'researchStage',
component: shallowRef(fvSelect),
props: {
placeholder: '请选择研发阶段查询',
clearable: true,
filterable: true,
checkStrictly: true,
cacheKey: 'research_stage',
}
},
{
label: '税后余额',
prop: 'afterTax',
component: 'el-input',
props: {
placeholder: '请输入税后余额查询',
clearable: true,
filterable: true,
checkStrictly: true
}
},
{
label: '摘要',
prop: 'digest',
component: 'el-input',
props: {
placeholder: '请输入摘要查询',
clearable: true,
filterable: true,
checkStrictly: true
}
},
])
const tableIns = ref()

View File

@@ -8,29 +8,49 @@
</template>
<script setup lang="jsx">
import fvSelect from '@/fvcomponents/fvSelect/index.vue'
const router = useRouter();
const searchConfig = reactive([
{
label: '项目名称',
prop: 'projectName',
label: '分摊名称',
prop: 'shareName',
component: 'el-input',
props: {
placeholder: '请输入项目名称查询',
placeholder: '请输入分摊名称查询',
clearable: true,
filterable: true,
checkStrictly: true
}
},
{
label: '起始时间',
prop: 'time',
},{
label: '分摊月份',
prop: 'apportionmentMonth',
component: 'el-date-picker',
props: {
placeholder: '请选择起始时间',
placeholder: '请选择分摊月份',
clearable: true,
},
colProps: {}
},
{
label: '生成时间',
prop: 'generationTime',
component: 'el-date-picker',
props: {
placeholder: '请选择生成时间',
clearable: true,
},
colProps: {}
}, {
label: '状态',
prop: 'state',
component: shallowRef(fvSelect),
props: {
placeholder: '请选择状态',
clearable: true,
cacheKey: 'special_fund'
}
},
])
const tableIns = ref()
const tableConfig = reactive({

View File

@@ -38,7 +38,17 @@ const searchConfig = reactive([
filterable: true,
cacheKey: 'todo_type'
}
}
},
{
label: '状态',
prop: 'state',
component: shallowRef(fvSelect),
props: {
placeholder: '请选择状态',
clearable: true,
cacheKey: 'demand_collection'
}
},
])
const tableIns = ref()
const userInfo = ref(authStore.userinfo)

View File

@@ -12,33 +12,63 @@ import fvSelect from '@/fvcomponents/fvSelect/index.vue'
import {reactive, shallowRef} from "vue";
const router = useRouter()
const shortcuts = [
{
text: '上周',
value: () => {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
return [start, end]
},
},
{
text: '上月',
value: () => {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
return [start, end]
},
},
{
text: '三月前',
value: () => {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
return [start, end]
},
},
]
const searchConfig = reactive([
{
label: '需求名称',
prop: 'requirementName',
label: '项目名称',
prop: 'projectName',
component: 'el-input',
props: {
placeholder: '请输入需求名称查询',
placeholder: '请输入项目名称查询',
clearable: true,
filterable: true,
checkStrictly: true
}
},
{
label: '项目类型',
prop: 'collectType',
prop: 'projectType',
component: shallowRef(fvSelect),
props: {
placeholder: '请选择项目类型',
cacheKey: 'project_type',
clearable: true,
filterable: true,
}
},
{
label: '项目影响',
prop: 'projectEffect',
prop: 'projectImpact',
component: shallowRef(fvSelect),
props: {
cacheKey: 'project_impact',
placeholder: '请选择项目影响',
clearable: true,
filterable: true,
@@ -47,47 +77,60 @@ const searchConfig = reactive([
},
{
label: '研发主体',
prop: 'collectType',
prop: 'rdSubject',
component: shallowRef(fvSelect),
props: {
placeholder: '请选择研发主体',
cacheKey: 'rd_subject',
clearable: true,
filterable: true,
}
},
{
label: '起时间',
prop: 'time',
label: '起时间',
prop: 'dateValue',
component: 'el-date-picker',
props: {
placeholder: '请选择起止时间',
clearable: true,
},
colProps: {}
},
{
label: '最小金额',
prop: 'requirementName',
component: 'el-input',
props: {
placeholder: '请输入金额查询',
clearable: true,
filterable: true,
checkStrictly: true
type: 'datetimerange',
startPlaceholder: '开始日期',
endPlaceholder: '结束日期',
valueFormat: 'YYYY-MM-DD HH:mm:ss',
shortcuts: shortcuts
}
},
{
label: '最大金额',
prop: 'requirementName',
component: 'el-input',
label: '状态',
prop: 'state',
component: shallowRef(fvSelect),
props: {
placeholder: '请输入金额查询',
placeholder: '请选择状态',
clearable: true,
filterable: true,
checkStrictly: true
cacheKey: 'project_initiation'
}
},
// {
// label: '最小金额',
// prop: 'requirementName',
// component: 'el-input',
// props: {
// placeholder: '请输入金额查询',
// clearable: true,
// filterable: true,
// checkStrictly: true
// }
// },
// {
// label: '最大金额',
// prop: 'requirementName',
// component: 'el-input',
// props: {
// placeholder: '请输入金额查询',
// clearable: true,
// filterable: true,
// checkStrictly: true
// }
// },
])
const tableIns = ref()
const tableConfig = reactive({
@@ -130,7 +173,10 @@ const tableConfig = reactive({
{
prop: 'startTime',
label: '起止时间',
align: 'center'
align: 'center',
currentRender: ({row}) => {
return row.startTime + ' 至 ' + row.endTime
}
},
{
prop: 'taskNode',
@@ -142,7 +188,7 @@ const tableConfig = reactive({
label: '状态',
align: 'center',
showOverflowTooltip: false,
currentRender: ({row, index}) =>{
currentRender: ({row, index}) => {
if (row.state !== null) {
return (<Tag dictType={'project_initiation'} value={row.state}/>)
} else {
@@ -162,13 +208,18 @@ const tableConfig = reactive({
btn.push({label: '详情', prem: ['mosr:requirement:info'], func: () => handleDetail(row), type: 'primary'})
}
if (buttons.has("attachments")) {
btn.push({label: '附件',prem: ['mosr:requirement:resubmit'], func: () => handleAttachment(row), type: 'primary'})
btn.push({
label: '附件',
prem: ['mosr:requirement:resubmit'],
func: () => handleAttachment(row),
type: 'primary'
})
}
if (buttons.has("entry")) {
btn.push({label: '结项',prem: ['mosr:requirement:del'], func: () => handleConclusion(row), type: 'primary'})
btn.push({label: '结项', prem: ['mosr:requirement:del'], func: () => handleConclusion(row), type: 'primary'})
}
if (buttons.has("edit")) {
btn.push({label: '编辑',prem: ['mosr:requirement:info'], func: () => handleEdit(row), type: 'primary'})
btn.push({label: '编辑', prem: ['mosr:requirement:info'], func: () => handleEdit(row), type: 'primary'})
}
return (
<div style={{width: '100%'}}>
@@ -194,13 +245,19 @@ const tableConfig = reactive({
})
const search = (val) => {
tableConfig.params = {...val}
let obj = {...val}
if (obj.dateValue) {
obj.startTime = obj.dateValue[0]
obj.endTime = obj.dateValue[1]
delete obj.dateValue
}
tableConfig.params = obj
tableIns.value.refresh()
}
const handleDetail = (row) => {
router.push({
name:'Implementation/detail',
name: 'Implementation/detail',
query: {
id: row.requirementId,
projectId: row.projectId,
@@ -211,7 +268,7 @@ const handleDetail = (row) => {
}
const handleAttachment = (row) => {
router.push({
name:'Filing/attachment',
name: 'Filing/attachment',
query: {
id: row.requirementId,
projectId: row.projectId
@@ -220,7 +277,7 @@ const handleAttachment = (row) => {
}
const handleConclusion = (row) => {
router.push({
name:'Filing/conclusion',
name: 'Filing/conclusion',
query: {
id: row.requirementId,
projectId: row.projectId
@@ -229,7 +286,7 @@ const handleConclusion = (row) => {
}
const handleEdit = (row) => {
router.push({
name:'Filing/edit',
name: 'Filing/edit',
query: {
id: row.requirementId,
projectId: row.projectId

View File

@@ -8,6 +8,7 @@
</template>
<script setup lang="jsx">
import fvSelect from '@/fvcomponents/fvSelect/index.vue'
const router = useRouter()
const route = useRoute()
@@ -24,26 +25,59 @@ const searchConfig = reactive([
}
},
{
label: '时间',
prop: 'time',
component: 'el-date-picker',
props: {
placeholder: '请选择时间',
clearable: true,
valueFormat: 'YYYY-MM-DD HH:mm:ss',
},
colProps: {}
}, {
label: '项目费用',
prop: 'projectCost',
prop: 'requirementName',
component: shallowRef(fvSelect),
props: {
placeholder: '请选择项目费用查询',
clearable: true,
filterable: true,
cacheKey: 'project_cost',
}
}, {
label: '研发阶段',
prop: 'researchStage',
component: shallowRef(fvSelect),
props: {
placeholder: '请选择研发阶段查询',
clearable: true,
filterable: true,
checkStrictly: true,
cacheKey: 'research_stage',
}
},
{
label: '税后余额',
prop: 'afterTax',
component: 'el-input',
props: {
placeholder: '请输入项目费用查询',
placeholder: '请输入税后余额查询',
clearable: true,
filterable: true,
checkStrictly: true
}
},
{
label: '起始时间',
prop: 'time',
component: 'el-date-picker',
label: '摘要',
prop: 'digest',
component: 'el-input',
props: {
placeholder: '请选择起始时间',
placeholder: '请输入摘要查询',
clearable: true,
},
colProps: {}
}
filterable: true,
checkStrictly: true
}
},
])
const tableConfig = reactive({
columns: [

View File

@@ -12,6 +12,35 @@ import fvSelect from '@/fvcomponents/fvSelect/index.vue'
import {reactive, shallowRef} from "vue";
const router = useRouter()
const shortcuts = [
{
text: '上周',
value: () => {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
return [start, end]
},
},
{
text: '上月',
value: () => {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
return [start, end]
},
},
{
text: '三月前',
value: () => {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
return [start, end]
},
},
]
const searchConfig = reactive([
{
label: '项目名称',
@@ -30,6 +59,7 @@ const searchConfig = reactive([
component: shallowRef(fvSelect),
props: {
placeholder: '请选择项目类型',
cacheKey: 'project_type',
clearable: true,
filterable: true,
}
@@ -40,6 +70,7 @@ const searchConfig = reactive([
component: shallowRef(fvSelect),
props: {
placeholder: '请选择项目影响',
cacheKey: 'project_impact',
clearable: true,
filterable: true,
},
@@ -51,43 +82,56 @@ const searchConfig = reactive([
component: shallowRef(fvSelect),
props: {
placeholder: '请选择研发主体',
cacheKey: 'rd_subject',
clearable: true,
filterable: true,
}
},
{
label: '起止时间',
prop: 'startTime',
prop: 'dateValue',
component: 'el-date-picker',
props: {
placeholder: '请选择起止时间',
clearable: true,
},
colProps: {}
},
{
label: '最小金额',
prop: 'requirementName',
component: 'el-input',
props: {
placeholder: '请输入金额查询',
clearable: true,
filterable: true,
checkStrictly: true
type: 'datetimerange',
startPlaceholder: '开始日期',
endPlaceholder: '结束日期',
valueFormat: 'YYYY-MM-DD HH:mm:ss',
shortcuts: shortcuts
}
},
{
label: '最大金额',
prop: 'requirementName',
component: 'el-input',
label: '状态',
prop: 'state',
component: shallowRef(fvSelect),
props: {
placeholder: '请输入金额查询',
placeholder: '请选择状态',
clearable: true,
filterable: true,
checkStrictly: true
cacheKey: 'project_initiation'
}
},
// {
// label: '最小金额',
// prop: 'requirementName',
// component: 'el-input',
// props: {
// placeholder: '请输入金额查询',
// clearable: true,
// filterable: true,
// checkStrictly: true
// }
// },
// {
// label: '最大金额',
// prop: 'requirementName',
// component: 'el-input',
// props: {
// placeholder: '请输入金额查询',
// clearable: true,
// filterable: true,
// checkStrictly: true
// }
// },
])
const tableIns = ref()
const tableConfig = reactive({
@@ -134,7 +178,10 @@ const tableConfig = reactive({
{
prop: 'startTime',
label: '起止时间',
align: 'center'
align: 'center',
currentRender: ({row}) => {
return row.startTime + ' 至 ' + row.endTime
}
},
{
prop: 'taskNode',
@@ -210,7 +257,13 @@ const tableConfig = reactive({
})
const search = (val) => {
tableConfig.params = {...val}
let obj = {...val}
if(obj.dateValue) {
obj.startTime = obj.dateValue[0]
obj.endTime = obj.dateValue[1]
delete obj.dateValue
}
tableConfig.params = obj
tableIns.value.refresh()
}

View File

@@ -9,23 +9,51 @@
<script setup lang="jsx">
import fvSelect from '@/fvcomponents/fvSelect/index.vue'
import {reactive, shallowRef} from "vue";
const router = useRouter()
const shortcuts = [
{
text: '上周',
value: () => {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
return [start, end]
},
},
{
text: '上月',
value: () => {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
return [start, end]
},
},
{
text: '三月前',
value: () => {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
return [start, end]
},
},
]
const searchConfig = reactive([
{
label: '需求名称',
prop: 'requirementName',
label: '项目名称',
prop: 'projectName',
component: 'el-input',
props: {
placeholder: '请输入需求名称查询',
placeholder: '请输入项目名称查询',
clearable: true,
checkStrictly: true
}
},
{
label: '项目类型',
prop: 'collectType',
prop: 'projectType',
component: shallowRef(fvSelect),
props: {
placeholder: '请选择项目类型',
@@ -36,7 +64,7 @@ const searchConfig = reactive([
},
{
label: '项目影响',
prop: 'projectEffect',
prop: 'projectImpact',
component: shallowRef(fvSelect),
props: {
cacheKey: 'project_impact',
@@ -48,7 +76,7 @@ const searchConfig = reactive([
},
{
label: '研发主体',
prop: 'collectType',
prop: 'rdSubject',
component: shallowRef(fvSelect),
props: {
placeholder: '请选择研发主体',
@@ -57,39 +85,51 @@ const searchConfig = reactive([
filterable: true,
}
},
{
label: '起止时间',
prop: 'time',
prop: 'dateValue',
component: 'el-date-picker',
props: {
placeholder: '请选择起止时间',
clearable: true,
},
colProps: {}
},
{
label: '最小金额',
prop: 'requirementName',
component: 'el-input',
props: {
placeholder: '请输入金额查询',
clearable: true,
filterable: true,
checkStrictly: true
type: 'datetimerange',
startPlaceholder: '开始日期',
endPlaceholder: '结束日期',
valueFormat: 'YYYY-MM-DD HH:mm:ss',
shortcuts: shortcuts
}
},
{
label: '最大金额',
prop: 'requirementName',
component: 'el-input',
label: '状态',
prop: 'state',
component: shallowRef(fvSelect),
props: {
placeholder: '请输入金额查询',
placeholder: '请选择状态',
clearable: true,
filterable: true,
checkStrictly: true
cacheKey: 'project_initiation'
}
},
// {
// label: '最小金额',
// prop: 'requirementName',
// component: 'el-input',
// props: {
// placeholder: '请输入金额查询',
// clearable: true,
// filterable: true,
// checkStrictly: true
// }
// },
// {
// label: '最大金额',
// prop: 'requirementName',
// component: 'el-input',
// props: {
// placeholder: '请输入金额查询',
// clearable: true,
// filterable: true,
// checkStrictly: true
// }
// },
])
const tableIns = ref()
const tableConfig = reactive({
@@ -199,7 +239,13 @@ const tableConfig = reactive({
})
const search = (val) => {
tableConfig.params = {...val}
let obj = {...val}
if(obj.dateValue) {
obj.startTime = obj.dateValue[0]
obj.endTime = obj.dateValue[1]
delete obj.dateValue
}
tableConfig.params = obj
tableIns.value.refresh()
}

View File

@@ -18,6 +18,7 @@ const searchConfig = reactive([
prop: 'name',
component: 'el-input',
props: {
clearable: true,
placeholder: '请输入专项资金名称查询'
}
},
@@ -31,6 +32,31 @@ const searchConfig = reactive([
cacheKey: 'special_fund'
}
},
{
label: '资金金额',
prop: 'fundAmount',
component: 'el-input',
props: {
clearable: true,
placeholder: '请输入资金金额查询'
}
}, {
label: '剩余金额',
prop: 'residualAmount',
component: 'el-input',
props: {
clearable: true,
placeholder: '请输入剩余金额查询'
}
}, {
label: '项目数量',
prop: 'projectNumber',
component: 'el-input',
props: {
clearable: true,
placeholder: '请输入项目数量查询'
}
}
])
const tableConfig = reactive({
columns: [
@@ -41,7 +67,7 @@ const tableConfig = reactive({
},
{
prop: 'fundAmount',
label: '专项资金金额',
label: '资金金额',
align: 'center'
},
{
@@ -49,6 +75,11 @@ const tableConfig = reactive({
label: '剩余金额',
align: 'center'
},
{
prop: 'projectNumber',
label: '项目数量',
align: 'center'
},
{
prop: 'state',
label: '状态',