Commit 83646df1 by peiqiQQQ

添加详情页

1 parent ba93beff
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
</div> </div>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="handleClose()" size="mini">取 消</el-button> <el-button @click="handleClose()" size="mini">取 消</el-button>
<el-button type="primary" @click="handleSubmit()" size="mini" <el-button type="primary" @click="handleSubmit()" size="mini" v-if="this.title != '详情'"
>提 交</el-button >提 交</el-button
> >
</span></el-dialog </span></el-dialog
...@@ -57,6 +57,7 @@ export default { ...@@ -57,6 +57,7 @@ export default {
element: 'el-input', // 指定elementui组件 element: 'el-input', // 指定elementui组件
placeholder: '请输入内容', // elementui组件属性 placeholder: '请输入内容', // elementui组件属性
rules: [{ required: true, trigger: 'blur', message: '不能为空' }], rules: [{ required: true, trigger: 'blur', message: '不能为空' }],
readonly: this.title == '详情' ? true : false,
}, },
{ {
label: '创建人', // label文字 label: '创建人', // label文字
...@@ -73,6 +74,7 @@ export default { ...@@ -73,6 +74,7 @@ export default {
element: 'el-date-picker', // 指定elementui组件 element: 'el-date-picker', // 指定elementui组件
initValue: new Date().format('yyyy-MM-dd'), // 字段初始值 initValue: new Date().format('yyyy-MM-dd'), // 字段初始值
placeholder: '请选择', // elementui组件属性 placeholder: '请选择', // elementui组件属性
readonly: this.title == '详情' ? true : false,
}, },
{ {
label: '事件描述', // label文字 label: '事件描述', // label文字
...@@ -82,6 +84,7 @@ export default { ...@@ -82,6 +84,7 @@ export default {
placeholder: '请输入内容', // elementui组件属性 placeholder: '请输入内容', // elementui组件属性
span: 24, span: 24,
rules: [{ required: true, trigger: 'blur', message: '不能为空' }], rules: [{ required: true, trigger: 'blur', message: '不能为空' }],
readonly: this.title == '详情' ? true : false,
}, },
{ {
label: '备注', // label文字 label: '备注', // label文字
...@@ -91,6 +94,7 @@ export default { ...@@ -91,6 +94,7 @@ export default {
placeholder: '请输入内容', // elementui组件属性 placeholder: '请输入内容', // elementui组件属性
span: 24, span: 24,
rules: [{ required: true, trigger: 'blur', message: '不能为空' }], rules: [{ required: true, trigger: 'blur', message: '不能为空' }],
readonly: this.title == '详情' ? true : false,
}, },
] ]
}, },
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
</div> </div>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="handleClose()" size="mini">取 消</el-button> <el-button @click="handleClose()" size="mini">取 消</el-button>
<el-button type="primary" @click="handleSubmit()" size="mini" <el-button type="primary" @click="handleSubmit()" size="mini" v-if="this.title != '详情'"
>提 交</el-button >提 交</el-button
> >
</span></el-dialog </span></el-dialog
...@@ -60,6 +60,7 @@ export default { ...@@ -60,6 +60,7 @@ export default {
placeholder: '请输入内容', // elementui组件属性 placeholder: '请输入内容', // elementui组件属性
options: subjectType, options: subjectType,
rules: [{ required: true, trigger: 'blur', message: '不能为空' }], rules: [{ required: true, trigger: 'blur', message: '不能为空' }],
disabled: this.title == '详情' ? true : false,
}, },
{ {
label: '机构名称', // label文字 label: '机构名称', // label文字
...@@ -67,6 +68,7 @@ export default { ...@@ -67,6 +68,7 @@ export default {
element: 'el-input', // 指定elementui组件 element: 'el-input', // 指定elementui组件
placeholder: '请输入内容', // elementui组件属性 placeholder: '请输入内容', // elementui组件属性
rules: [{ required: true, trigger: 'blur', message: '不能为空' }], rules: [{ required: true, trigger: 'blur', message: '不能为空' }],
disabled: this.title == '详情' ? true : false,
}, },
{ {
label: '上级单位', // label文字 label: '上级单位', // label文字
...@@ -83,6 +85,7 @@ export default { ...@@ -83,6 +85,7 @@ export default {
placeholder: '请输入内容', // elementui组件属性 placeholder: '请输入内容', // elementui组件属性
span: 24, span: 24,
rules: [{ required: true, trigger: 'blur', message: '不能为空' }], rules: [{ required: true, trigger: 'blur', message: '不能为空' }],
disabled: this.title == '详情' ? true : false,
}, },
] ]
}, },
......
...@@ -58,6 +58,14 @@ ...@@ -58,6 +58,14 @@
<template #filesValue="{ data }"> <template #filesValue="{ data }">
<span>{{ handleFileName(data) }}</span> <span>{{ handleFileName(data) }}</span>
</template> </template>
<template #orgName="{ data }">
<el-button v-if="data.row.orgName" class="detailBtn" size="medium" @click="fnEdit(data.row, true)">{{data.row.orgName}}</el-button >
<span v-else>{{data.row.orgName}}</span>
</template>
<template #matterName="{ data }">
<el-button v-if="data.row.matterName" class="detailBtn" size="medium" @click="fnEdit(data.row, true)">{{data.row.matterName}}</el-button >
<span v-else>{{data.row.matterName}}</span>
</template>
</table-config> </table-config>
</template> </template>
</list-page> </list-page>
...@@ -164,6 +172,7 @@ export default { ...@@ -164,6 +172,7 @@ export default {
label: '机构名称', label: '机构名称',
prop: 'orgName', prop: 'orgName',
width: '300px', width: '300px',
__slotName: 'orgName',
}, },
{ {
label: '主体类型', label: '主体类型',
...@@ -184,6 +193,7 @@ export default { ...@@ -184,6 +193,7 @@ export default {
label: '事项名称', label: '事项名称',
prop: 'matterName', prop: 'matterName',
width: '200px', width: '200px',
__slotName: 'matterName',
}, },
{ {
label: '创建人', label: '创建人',
...@@ -294,13 +304,13 @@ export default { ...@@ -294,13 +304,13 @@ export default {
break break
} }
}, },
fnEdit(row) { fnEdit(row, isDetail = false) {
this.rowData = row this.rowData = row
if (this.activeName === '1') { if (this.activeName === '1') {
this.dialogTitle = '修改组织机构' this.dialogTitle = isDetail ? '详情' : '修改组织机构'
this.orgVisible = true this.orgVisible = true
} else { } else {
this.dialogTitle = '修改事项' this.dialogTitle = isDetail ? '详情' : '修改事项'
this.matterVisible = true this.matterVisible = true
} }
}, },
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
</div> </div>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="handleClose()" size="mini">取 消</el-button> <el-button @click="handleClose()" size="mini">取 消</el-button>
<el-button type="primary" @click="handleSubmit" size="mini" <el-button type="primary" @click="handleSubmit" size="mini" v-if="this.title != '详情'"
>提 交</el-button >提 交</el-button
> >
</span></el-dialog </span></el-dialog
...@@ -87,6 +87,7 @@ export default { ...@@ -87,6 +87,7 @@ export default {
}, },
filterable: true, filterable: true,
rules: [{ required: true, trigger: 'blur', message: '不能为空' }], rules: [{ required: true, trigger: 'blur', message: '不能为空' }],
disabled: this.title == '详情' ? true : false,
}, },
{ {
label: '批次年度', // label文字 label: '批次年度', // label文字
...@@ -97,12 +98,14 @@ export default { ...@@ -97,12 +98,14 @@ export default {
// initValue: new Date().format('yyyy'), // 字段初始值 // initValue: new Date().format('yyyy'), // 字段初始值
placeholder: '请选择', // elementui组件属性 placeholder: '请选择', // elementui组件属性
rules: [{ required: true, trigger: 'change', message: '不能为空' }], rules: [{ required: true, trigger: 'change', message: '不能为空' }],
disabled: this.title == '详情' ? true : false,
}, },
{ {
label: '选择项目', // label文字 label: '选择项目', // label文字
prop: 'prjName', // 字段名 prop: 'prjName', // 字段名
__slotName: 'choosePrj', __slotName: 'choosePrj',
rules: [{ required: true, trigger: 'change', message: '不能为空' }], rules: [{ required: true, trigger: 'change', message: '不能为空' }],
disabled: this.title == '详情' ? true : false,
}, },
{ {
label: '需求名称', // label文字 label: '需求名称', // label文字
...@@ -110,6 +113,7 @@ export default { ...@@ -110,6 +113,7 @@ export default {
element: 'el-input', // 指定elementui组件 element: 'el-input', // 指定elementui组件
placeholder: '请输入内容', // elementui组件属性 placeholder: '请输入内容', // elementui组件属性
rules: [{ required: true, trigger: 'blur', message: '不能为空' }], rules: [{ required: true, trigger: 'blur', message: '不能为空' }],
disabled: this.title == '详情' ? true : false,
}, },
{ {
label: '关联机构', // label文字 label: '关联机构', // label文字
...@@ -117,6 +121,7 @@ export default { ...@@ -117,6 +121,7 @@ export default {
element: 'el-input', // 指定elementui组件 element: 'el-input', // 指定elementui组件
placeholder: '请输入内容', // elementui组件属性 placeholder: '请输入内容', // elementui组件属性
rules: [{ required: true, trigger: 'blur', message: '不能为空' }], rules: [{ required: true, trigger: 'blur', message: '不能为空' }],
disabled: this.title == '详情' ? true : false,
}, },
{ {
label: '材料清单', // label文字 label: '材料清单', // label文字
...@@ -126,6 +131,7 @@ export default { ...@@ -126,6 +131,7 @@ export default {
options: materialOptions, options: materialOptions,
multiple: true, multiple: true,
rules: [{ required: true, trigger: 'change', message: '不能为空' }], rules: [{ required: true, trigger: 'change', message: '不能为空' }],
disabled: this.title == '详情' ? true : false,
}, },
{ {
label: '创建人', // label文字 label: '创建人', // label文字
...@@ -153,6 +159,7 @@ export default { ...@@ -153,6 +159,7 @@ export default {
placeholder: '请输入内容', // elementui组件属性 placeholder: '请输入内容', // elementui组件属性
span: 24, span: 24,
rules: [{ required: true, trigger: 'blur', message: '不能为空' }], rules: [{ required: true, trigger: 'blur', message: '不能为空' }],
disabled: this.title == '详情' ? true : false,
}, },
] ]
}, },
...@@ -186,6 +193,7 @@ export default { ...@@ -186,6 +193,7 @@ export default {
}) })
}, },
operation() { operation() {
if(this.title == '详情') return
this.choosePrjVisible = true this.choosePrjVisible = true
}, },
handleAddParams() { handleAddParams() {
......
<template>
<el-dialog
:title="'详情'"
:visible.sync="showDialog"
:close-on-click-modal="false"
width="60%"
@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'
export default {
components: { Form, },
props: {
visible: {
type: Boolean,
default: false,
},
rowData: {
type: Object,
default: () => {},
},
},
computed: {
formOptions() {
return [
{
label: '批次年度', // label文字
prop: 'year', // 字段名
element: 'el-input', // 指定elementui组件
disabled: true,
},
{
label: '批次名称', // label文字
prop: 'batName', // 字段名
element: 'el-input', // 指定elementui组件
disabled: true,
},
{
label: '项目名称', // label文字
prop: 'prjName', // 字段名
element: 'el-input', // 指定elementui组件
disabled: true,
},
{
label: '需求名称', // label文字
prop: 'needName', // 字段名
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,
},
{
label: '审核状态', // label文字
prop: 'approveState', // 字段名
element: 'el-select', // 指定elementui组件
options: [
{ label: '新建', value: '1' },
{ label: '审批中', value: '2' },
{ label: '审批通过', value: '3' },
{ label: '驳回', value: '4' },
],
disabled: true,
},
{
label: '备注', // label文字
prop: 'remark', // 字段名
type: 'textarea',
element: 'el-input', // 指定elementui组件
placeholder: '请输入内容', // elementui组件属性
span: 24,
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>
<style>
</style>
\ No newline at end of file
...@@ -38,9 +38,16 @@ ...@@ -38,9 +38,16 @@
:columns="columns" :columns="columns"
:key="activeName" :key="activeName"
> >
<template #batName="{ data }">
<el-button v-if="data.row.batName" class="detailBtn" size="medium" @click="fnEdit(data.row, true)">{{data.row.batName}}</el-button >
<span v-else>{{data.row.batName}}</span>
</template>
</table-config> </table-config>
</template> </template>
</list-page> </list-page>
<Detail
:visible.sync="detailVisible"
:row-data="rowData"/>
<!-- 新增弹窗 --> <!-- 新增弹窗 -->
<Add <Add
@querySearch="querySearch" @querySearch="querySearch"
...@@ -68,6 +75,7 @@ import ListPage from '@/components/ListPage.vue' ...@@ -68,6 +75,7 @@ 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 Add from './Add.vue' import Add from './Add.vue'
import Detail from './Detail.vue'
import ApprovalDialog from './ApprovalDialog.vue' import ApprovalDialog from './ApprovalDialog.vue'
import DemandSubDialog from '@/views/demandManagement/DemandSubDialog' import DemandSubDialog from '@/views/demandManagement/DemandSubDialog'
...@@ -96,6 +104,7 @@ export default { ...@@ -96,6 +104,7 @@ export default {
dialogTitle: '', dialogTitle: '',
approvalVisible: false, approvalVisible: false,
demandSubVisible: false, demandSubVisible: false,
detailVisible: false, // 详情
} }
}, },
components: { components: {
...@@ -103,6 +112,7 @@ export default { ...@@ -103,6 +112,7 @@ export default {
SearchForm, SearchForm,
TableConfig, TableConfig,
Add, Add,
Detail,
ApprovalDialog, ApprovalDialog,
DemandSubDialog, DemandSubDialog,
}, },
...@@ -165,7 +175,7 @@ export default { ...@@ -165,7 +175,7 @@ export default {
{ type: 'selection', width: '55px' }, { type: 'selection', width: '55px' },
{ label: '序号', type: 'index', width: '80px' }, { label: '序号', type: 'index', width: '80px' },
{ label: '批次年度', prop: 'year' }, { label: '批次年度', prop: 'year' },
{ label: '批次名称', prop: 'batName', width: '200px' }, { label: '批次名称', prop: 'batName', width: '200px', __slotName: 'batName', },
{ {
label: '项目名称', label: '项目名称',
prop: 'prjName', prop: 'prjName',
...@@ -433,10 +443,14 @@ export default { ...@@ -433,10 +443,14 @@ export default {
}) })
.catch(() => {}) .catch(() => {})
}, },
fnEdit(row) { fnEdit(row, isDetail=false) {
this.dialogTitle = '修改需求'
this.rowData = row this.rowData = row
if(this.activeName == '1'){
this.dialogTitle = isDetail ? '详情' : '修改需求'
this.visible = true this.visible = true
}else{
this.detailVisible = true
}
}, },
fnDel(row) { fnDel(row) {
this.$confirm('是否确认删除?', '提示', { this.$confirm('是否确认删除?', '提示', {
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!