Commit 7b342fd9 by peiqiQQQ

添加详情页

1 parent 9cd11ac9
<template>
<el-dialog
:title="'详情'"
:visible.sync="showDialog"
:close-on-click-modal="false"
width="66%"
@close="showDialog = false"
@open="handleOpen"
>
<div>
<Form
ref="addForm"
:form-options="formOptions"
label-width="140px"
></Form>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="showDialog = false" size="mini">取 消</el-button>
</span>
</el-dialog >
</template>
<script>
import Form from '@/components/Form.vue'
export default {
components: { Form, },
props: {
visible: {
type: Boolean,
default: false,
},
rowData: {
type: Object,
default: () => {},
},
activeName: {
type: String,
default: '1',
},
activeName2_1: {
type: String,
default: '1',
},
},
computed: {
formOptions() {
let arr = []
if (this.activeName === '1') {
if (this.activeName2_1 === '1') {
arr = [
{
label: '单位名称', // label文字
prop: 'manageOrgName', // 字段名
element: 'el-input', // 指定elementui组件
disabled: true,
},
{
label: '概设需求数(个)', // label文字
prop: 'needCount', // 字段名
element: 'el-input', // 指定elementui组件
disabled: true,
},
{
label: '概设材料通过数(个)', // label文字
prop: 'reviewPassCount', // 字段名
element: 'el-input', // 指定elementui组件
disabled: true,
},
{
label: '概设通过比(%)', // label文字
prop: 'percent', // 字段名
element: 'el-input', // 指定elementui组件
disabled: true,
},
]
}else{
arr = [
{
label: '批次', // label文字
prop: 'batName', // 字段名
element: 'el-input', // 指定elementui组件
disabled: true,
},
{
label: '项目需求数(个)', // label文字
prop: 'needCount', // 字段名
element: 'el-input', // 指定elementui组件
disabled: true,
},
{
label: '项目通过数(个)', // label文字
prop: 'reviewPassCount', // 字段名
element: 'el-input', // 指定elementui组件
disabled: true,
},
{
label: '项目通过比(%)', // label文字
prop: 'percent', // 字段名
element: 'el-input', // 指定elementui组件
disabled: true,
},
]
}
}else{
arr = [
{
label: '资产名称', // label文字
prop: 'assetName', // 字段名
element: 'el-input', // 指定elementui组件
disabled: true,
},
{
label: '资产类型(所属元素)', // label文字
prop: 'eleName', // 字段名
element: 'el-input', // 指定elementui组件
disabled: true,
},
{
label: '来源',
prop: 'isExtend',
element: 'el-select', // 指定elementui组件
options: [],
placeholder: '',
disabled: true,
},
{
label: '创建人', // label文字
prop: 'createMan', // 字段名
element: 'el-input', // 指定elementui组件
disabled: true,
},
{
label: '创建时间', // label文字
prop: 'createTime', // 字段名
element: 'el-input', // 指定elementui组件
disabled: true,
},
]
}
return arr
},
showDialog: {
get() {
return this.visible
},
set(value) {
this.$emit('update:visible', value)
},
},
},
methods: {
handleOpen() {
if (Object.keys(this.rowData).length) {
this.formOptions.forEach((v) => {
v.initValue = this.rowData[v.prop]
})
this.$nextTick(() => {
this.$refs['addForm'].addInitValue()
})
} else {
this.$nextTick(() => {
this.$refs['addForm'].addInitValue()
this.$refs['addForm'].onReset()
})
}
},
}
}
</script>
\ No newline at end of file
...@@ -59,9 +59,27 @@ ...@@ -59,9 +59,27 @@
<template #percent="{ data }"> <template #percent="{ data }">
<span> {{ handlePercent(data) }}</span> <span> {{ handlePercent(data) }}</span>
</template> </template>
<template #manageOrgName="{ data }">
<el-button v-if="data.row.manageOrgName" class="detailBtn" size="medium" @click="fnDetail(data.row)">{{data.row.manageOrgName}}</el-button >
<span v-else>{{data.row.manageOrgName}}</span>
</template>
<template #batName="{ data }">
<el-button v-if="data.row.batName" class="detailBtn" size="medium" @click="fnDetail(data.row)">{{data.row.batName}}</el-button >
<span v-else>{{data.row.batName}}</span>
</template>
<template #assetName="{ data }">
<el-button v-if="data.row.assetName" class="detailBtn" size="medium" @click="fnDetail(data.row)">{{data.row.assetName}}</el-button >
<span v-else>{{data.row.assetName}}</span>
</template>
</table-config> </table-config>
</template> </template>
</list-page> </list-page>
<Detail
:visible.sync="visible"
:row-data="rowData"
:activeName='activeName'
:activeName2_1='activeName2_1'
/>
</div> </div>
</template> </template>
...@@ -69,6 +87,7 @@ ...@@ -69,6 +87,7 @@
import ListPage from '@/components/ListPage.vue' import ListPage from '@/components/ListPage.vue'
import SearchForm from '@/components/SearchForm.vue' import SearchForm from '@/components/SearchForm.vue'
import TableConfig from '@/components/TableConfig.vue' import TableConfig from '@/components/TableConfig.vue'
import Detail from './Detail.vue'
import { queryQyNeedReviewCount, queryArcAstSys } from '@/api/interface' import { queryQyNeedReviewCount, queryArcAstSys } from '@/api/interface'
import { systemArchiSaveFactor, archiIntelligenceSearchTree } from '@/api/index' import { systemArchiSaveFactor, archiIntelligenceSearchTree } from '@/api/index'
...@@ -111,12 +130,15 @@ export default { ...@@ -111,12 +130,15 @@ export default {
'ARCHI_SAFE', 'ARCHI_SAFE',
], ],
elementTree: [], elementTree: [],
rowData: {},
visible: false,
} }
}, },
components: { components: {
ListPage, ListPage,
SearchForm, SearchForm,
TableConfig, TableConfig,
Detail
}, },
computed: { computed: {
getCountType() { getCountType() {
...@@ -156,7 +178,7 @@ export default { ...@@ -156,7 +178,7 @@ export default {
if (this.activeName2_1 === '1') { if (this.activeName2_1 === '1') {
arr = [ arr = [
{ label: '序号', type: 'index', width: '80px' }, { label: '序号', type: 'index', width: '80px' },
{ label: '单位名称', prop: 'manageOrgName' }, { label: '单位名称', prop: 'manageOrgName', __slotName: 'manageOrgName', },
{ label: '概设需求数(个)', prop: 'needCount' }, { label: '概设需求数(个)', prop: 'needCount' },
{ label: '概设材料通过数(个)', prop: 'reviewPassCount' }, { label: '概设材料通过数(个)', prop: 'reviewPassCount' },
{ label: '概设通过比(%)', __slotName: 'percent' }, { label: '概设通过比(%)', __slotName: 'percent' },
...@@ -164,7 +186,7 @@ export default { ...@@ -164,7 +186,7 @@ export default {
} else { } else {
arr = [ arr = [
{ label: '序号', type: 'index', width: '80px' }, { label: '序号', type: 'index', width: '80px' },
{ label: '批次', prop: 'batName' }, { label: '批次', prop: 'batName', __slotName: 'batName', },
{ label: '项目需求数(个)', prop: 'needCount' }, { label: '项目需求数(个)', prop: 'needCount' },
{ label: '项目通过数(个)', prop: 'reviewPassCount' }, { label: '项目通过数(个)', prop: 'reviewPassCount' },
{ label: '项目通过比(%)', __slotName: 'percent' }, { label: '项目通过比(%)', __slotName: 'percent' },
...@@ -174,7 +196,7 @@ export default { ...@@ -174,7 +196,7 @@ export default {
arr = [ arr = [
{ type: 'selection', width: '55px' }, { type: 'selection', width: '55px' },
{ label: '序号', type: 'index', width: '80px' }, { label: '序号', type: 'index', width: '80px' },
{ label: '资产名称', prop: 'assetName' }, { label: '资产名称', prop: 'assetName', __slotName: 'assetName', },
{ label: '资产类型(所属元素)', prop: 'eleName' }, { label: '资产类型(所属元素)', prop: 'eleName' },
{ {
label: '来源', label: '来源',
...@@ -211,6 +233,10 @@ export default { ...@@ -211,6 +233,10 @@ export default {
this.getElementTreeData() this.getElementTreeData()
}, },
methods: { methods: {
fnDetail(row){
this.rowData = row
this.visible = true
},
// 同步更新 // 同步更新
fnOperation(row) { fnOperation(row) {
let extend = [] let extend = []
......
<template>
<el-dialog
:title="'详情'"
:visible.sync="showDialog"
:close-on-click-modal="false"
width="66%"
@close="showDialog = false"
@open="handleOpen"
>
<div>
<Form
ref="addForm"
:form-options="formOptions"
label-width="120px"
></Form>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="showDialog = false" size="mini">取 消</el-button>
</span>
</el-dialog >
</template>
<script>
import Form from '@/components/Form.vue'
import { buildType, pushStateOptions, onlineApprovalStatusOptions, sendStateOptions } from '@/utils/dictionary'
export default {
components: { Form, },
props: {
visible: {
type: Boolean,
default: false,
},
rowData: {
type: Object,
default: () => {},
},
activeName: {
type: String,
default: '1',
},
activeName2: {
type: String,
default: '1',
}
},
computed: {
formOptions() {
let arr = [
{
label: '批次名称', // label文字
prop: 'batName', // 字段名
element: 'el-input', // 指定elementui组件
disabled: true,
},
{
label: '需求名称', // label文字
prop: 'needName', // 字段名
element: 'el-input', // 指定elementui组件
disabled: true,
},
{
label: '项目名称', // label文字
prop: 'prjName', // 字段名
element: 'el-input', // 指定elementui组件
disabled: true,
},
{
label: '关联机构', // label文字
prop: 'orgName', // 字段名
element: 'el-input', // 指定elementui组件
disabled: true,
},
{
label: '材料', // label文字
prop: 'fileList', // 字段名
element: 'el-input', // 指定elementui组件
disabled: true,
},
]
if (this.activeName === '1') {
arr = [
...arr,
{
label: '推送状态',
prop: 'state',
element: 'el-select', // 指定elementui组件
options: pushStateOptions,
options: [
{ label: '已反馈', value: '1' },
{ label: '未反馈', value: '0' },
],
placeholder: '',
disabled: true,
},
{
label: '修改剩余时间',
prop: 'createTime',
element: 'el-input', // 指定elementui组件
disabled: true,
},
{
label: '在线评审状态',
prop: 'onlineReviewState',
element: 'el-select', // 指定elementui组件
options: onlineApprovalStatusOptions,
placeholder: '',
disabled: true,
},
]
}else{
arr = [
...arr,
{
label: '发送状态',
prop: 'sendState',
element: 'el-select', // 指定elementui组件
options: sendStateOptions,
placeholder: '',
disabled: true,
},
]
}
return [
...arr,
{
label: '意见内容',
prop: 'remark',
element: 'el-input', // 指定elementui组件
disabled: true,
},
]
},
showDialog: {
get() {
return this.visible
},
set(value) {
this.$emit('update:visible', value)
},
},
},
methods: {
handleOpen() {
if (Object.keys(this.rowData).length) {
this.formOptions.forEach((v) => {
v.initValue = this.rowData[v.prop]
})
this.$nextTick(() => {
this.$refs['addForm'].addInitValue()
})
} else {
this.$nextTick(() => {
this.$refs['addForm'].addInitValue()
this.$refs['addForm'].onReset()
})
}
},
}
}
</script>
\ No newline at end of file
...@@ -33,6 +33,10 @@ ...@@ -33,6 +33,10 @@
:columns="columns" :columns="columns"
:key="activeName" :key="activeName"
> >
<template #prjName="{ data }">
<el-button v-if="data.row.prjName" class="detailBtn" size="medium" @click="fnDetail(data.row)">{{data.row.prjName}}</el-button >
<span v-else>{{data.row.prjName}}</span>
</template>
</table-config> </table-config>
</template> </template>
</list-page> </list-page>
...@@ -54,6 +58,11 @@ ...@@ -54,6 +58,11 @@
:row-data="rowData" :row-data="rowData"
@querySearch="querySearch" @querySearch="querySearch"
/> />
<Detail
:visible.sync="visible"
:row-data="rowData"
:activeName='activeName'
/>
</div> </div>
</template> </template>
...@@ -64,6 +73,7 @@ import TableConfig from '@/components/TableConfig.vue' ...@@ -64,6 +73,7 @@ import TableConfig from '@/components/TableConfig.vue'
import MaterialPush from './MaterialPush.vue' import MaterialPush from './MaterialPush.vue'
import MaterialFeedback from './MaterialFeedback' import MaterialFeedback from './MaterialFeedback'
import ReviewComments from './ReviewComments.vue' import ReviewComments from './ReviewComments.vue'
import Detail from './Detail.vue'
import { queryConceptualViewOrg } from '@/api/interface' import { queryConceptualViewOrg } from '@/api/interface'
import { editConceptualViewOrg } from '@/api' import { editConceptualViewOrg } from '@/api'
...@@ -93,6 +103,7 @@ export default { ...@@ -93,6 +103,7 @@ export default {
materialPushVisible: false, materialPushVisible: false,
materialFeedbackVisible: false, materialFeedbackVisible: false,
reviewCommentsVisible: false, reviewCommentsVisible: false,
visible: false,
} }
}, },
components: { components: {
...@@ -102,6 +113,7 @@ export default { ...@@ -102,6 +113,7 @@ export default {
MaterialPush, MaterialPush,
MaterialFeedback, MaterialFeedback,
ReviewComments, ReviewComments,
Detail
}, },
computed: { computed: {
formOptions() { formOptions() {
...@@ -163,6 +175,7 @@ export default { ...@@ -163,6 +175,7 @@ export default {
label: '项目名称', label: '项目名称',
prop: 'prjName', prop: 'prjName',
width: '320px', width: '320px',
__slotName: 'prjName',
}, },
{ {
label: '关联机构', label: '关联机构',
...@@ -285,6 +298,10 @@ export default { ...@@ -285,6 +298,10 @@ export default {
}, },
mounted() {}, mounted() {},
methods: { methods: {
fnDetail(row){
this.rowData = row
this.visible = true
},
// 表格勾选的数据 // 表格勾选的数据
selectionChange(data) { selectionChange(data) {
this.selectRows = data this.selectRows = data
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!