面包屑更改

xuhongjie
严飞永 2 months ago
parent 30701a689b
commit 3875b7b0b0

@ -2,21 +2,27 @@
<el-breadcrumb class="app-breadcrumb" separator="/">
<transition-group name="breadcrumb">
<el-breadcrumb-item v-for="(item, index) in levelList" :key="item.path">
<span v-if="item.redirect === 'noRedirect' || index == levelList.length - 1" class="no-redirect">{{ item.meta.title }}</span>
<a v-else @click.prevent="handleLink(item)">{{ item.meta.title }}</a>
<!-- <span class="no-redirect" v-show="crumbs"> /{{ crumbs }}</span> -->
<span v-if="item.redirect === 'noRedirect' || index == levelList.length - 1" class="no-redirect">
{{ item.meta.title }}</span>
<!-- <a v-else @click.prevent="handleLink(item)">{{ item.meta.title }}</a> -->
<span class="no-redirect" v-show="crumbs"> / {{ crumbs }}</span>
</el-breadcrumb-item>
</transition-group>
</el-breadcrumb>
</template>
<script>
import { mapGetters } from "vuex";
export default {
data() {
return {
levelList: null
}
},
computed: {
...mapGetters(["crumbs"])
},
watch: {
$route(route) {
// if you go to the redirect page, do not update the breadcrumbs
@ -32,25 +38,16 @@ export default {
methods: {
getBreadcrumb() {
// only show routes with meta.title
let matched = []
const router = this.$route
const pathNum = this.findPathNum(router.path)
// multi-level menu
if (pathNum > 2) {
const reg = /\/\w+/gi
const pathList = router.path.match(reg).map((item, index) => {
if (index !== 0) item = item.slice(1)
return item
})
this.getMatched(pathList, this.$store.getters.defaultRoutes, matched)
} else {
matched = router.matched.filter(item => item.meta && item.meta.title)
}
//
if (!this.isDashboard(matched[0])) {
matched = [{ path: "/index", meta: { title: "首页" } }].concat(matched)
}
this.levelList = matched.filter(item => item.meta && item.meta.title && item.meta.breadcrumb !== false)
let matched = this.$route.matched.filter(
(item) => item.meta && item.meta.title
);
// //
// if (!this.isDashboard(matched[0])) {
// matched = [{ path: "/index", meta: { title: "" } }].concat(matched);
// }
this.levelList = matched.filter(item => item.meta && item.meta.title && item.meta.breadcrumb !== false);
},
findPathNum(str, char = "/") {
let index = str.indexOf(char)
@ -96,6 +93,7 @@ export default {
font-size: 14px;
line-height: 50px;
margin-left: 8px;
.no-redirect {
color: #97a8be;
cursor: text;

@ -6,6 +6,7 @@ import 'nprogress/nprogress.css'
import { getToken } from '@/utils/auth'
import { isPathMatch } from '@/utils/validate'
import { isRelogin } from '@/utils/request'
import { extractPrefix } from '@/utils/common';
NProgress.configure({ showSpinner: false })
@ -16,6 +17,10 @@ const isWhiteList = (path) => {
}
router.beforeEach((to, from, next) => {
if(!extractPrefix(to.path)){
store.commit("SET_CRUMBS",false);
}
NProgress.start()
if (getToken()) {
to.meta.title && store.dispatch('settings/setTitle', to.meta.title)

@ -16,6 +16,6 @@ const getters = {
topbarRouters:state => state.permission.topbarRouters,
defaultRoutes:state => state.permission.defaultRoutes,
sidebarRouters:state => state.permission.sidebarRouters,
crmbs: state => state.permission.crumbs
crumbs: (state) => state.permission.crumbs,
}
export default getters

@ -12,7 +12,7 @@ const permission = {
defaultRoutes: [],
topbarRouters: [],
sidebarRouters: [],
crumbs:""
crumbs:"",
},
mutations: {
SET_CRUMBS: (state, crumbs) => {

@ -0,0 +1,8 @@
export function extractPrefix(str) {
const pattern = /(.+?)(-info|-add|-edit)/;
const match = str.match(pattern);
if (match) {
return match[1];
}
return null;
}

@ -7,17 +7,15 @@
<el-table-column label="项目名称" align="center" prop="name" width="200" />
<el-table-column label="当前状态" align="center" prop="status">
<template slot-scope="scope">
<span :style="{ color: statusColors[statusMap[scope.row.status]] }">{{
statusMap[scope.row.status] }}</span>
<dict-tag :options="dict.type.tbzt" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button type="text" @click="getInfo(scope.row, 'fill')"
<el-button type="text" @click="getInfo(scope.row, 'fill')"
v-if="statusMap[scope.row.status] === '待填报'">填报</el-button>
<el-button type="text" @click="getInfo(scope.row, 'detail')"
v-if="statusMap[scope.row.status] !== '待填报'"
>详情</el-button>
<el-button type="text" @click="getInfo(scope.row, 'detail')"
v-if="statusMap[scope.row.status] !== '待填报'">详情</el-button>
</template>
</el-table-column>
</el-table>
@ -31,7 +29,7 @@ import { checkPermi, checkRole } from "@/utils/permission";
export default {
name: "TableContent",
dicts: ["xzfl"],
dicts: ["xzfl", 'tbzt'],
data() {
return {
//
@ -86,16 +84,16 @@ export default {
/** 查询项目列表 */
getList() {
this.loading = true;
//
const params = {
...this.queryParams,
begainTime: this.queryParams.dateRange ? this.queryParams.dateRange[0] : undefined,
endTime: this.queryParams.dateRange ? this.queryParams.dateRange[1] : undefined
};
// console.log('', params);
getBasicInformationPage(params).then((response) => {
this.postList = response.data.records;
this.total = response.data.total;
@ -114,7 +112,7 @@ export default {
/** 详情按钮操作 */
getInfo(row, type) {
this.$store.commit("SET_CRUMBS", this.$route.meta.title + "详情");
this.$store.commit("SET_CRUMBS", "项目详情");
const id = row.id || this.ids[0];
this.$router.push({ path: `/manage-info/${id}`, query: { action: type } });
},

@ -139,7 +139,7 @@ export default {
/** 详情按钮操作 */
getInfo(row, type) {
this.$store.commit("SET_CRUMBS", this.$route.meta.title + "详情");
this.$store.commit("SET_CRUMBS", "项目详情");
const id = row.id || this.ids[0];
this.$router.push({ path: `/manage-add/${id}`, query: { action: type } });
},

@ -97,8 +97,7 @@
<el-table-column label="总用地面积(平方米)" align="center" width="180" prop="zydmj" />
<el-table-column label="当前状态" align="center" prop="status">
<template slot-scope="scope">
<span :style="{ color: statusColors[statusMap[scope.row.status]] }">{{
statusMap[scope.row.status] }}</span>
<dict-tag :options="dict.type.tbzt" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
@ -122,7 +121,7 @@ import { getToken } from "@/utils/auth";
import { checkPermi, checkRole } from "@/utils/permission";
export default {
name: "Post",
dicts: ["xzfl"],
dicts: ["xzfl", "tbzt"],
data() {
return {
//
@ -151,11 +150,6 @@ export default {
2: '待审核',
3: '审核通过'
},
// xzflMap: {
// 1: '',
// 2: '',
// 3: ''
// },
//
queryParams: {
current: 1,
@ -261,7 +255,7 @@ export default {
/** 详情按钮操作 */
getInfo(row, type) {
this.$store.commit("SET_CRUMBS", this.$route.meta.title + "详情");
this.$store.commit("SET_CRUMBS", "项目详情");
const id = row.id || this.ids[0];
this.$router.push({ path: `/manage-info/${id}`, query: { action: type } });
},

@ -116,18 +116,17 @@
<el-table-column label="总用地面积(平方米)" align="center" width="180" prop="zydmj" />
<el-table-column label="当前状态" align="center" prop="status">
<template slot-scope="scope">
<span :style="{ color: statusColors[statusMap[scope.row.status]] }">{{
statusMap[scope.row.status] }}</span>
<dict-tag :options="dict.type.tbzt" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button type="text" @click="getAdd(scope.row, 'fill')"
v-if="statusMap[scope.row.status] === '待审核'">审核</el-button>
v-if="scope.row.status === 2">审核</el-button>
<el-button type="text" @click="getAdd(scope.row, 'okay')"
v-if="statusMap[scope.row.status] === '审核通过'">编辑</el-button>
v-if="scope.row.status === 3">编辑</el-button>
<el-button type="text" @click="getAdd(scope.row, 'detail')"
v-if="statusMap[scope.row.status] === '待填报'">详情</el-button>
v-if="scope.row.status === 1">详情</el-button>
<el-button type="text" @click="handleDelete(scope.row)" style="color: #F25353;">删除</el-button>
</template>
</el-table-column>
@ -143,7 +142,7 @@ import { getBasicInformationPage, deleteBasicInformation } from "@/api/ManageApi
import { getToken } from "@/utils/auth";
import { checkPermi, checkRole } from "@/utils/permission";
export default {
dicts: ["xzfl"],
dicts: ["xzfl",'tbzt'],
data() {
return {
ids: [],
@ -161,23 +160,6 @@ export default {
total: 0,
//
postList: [],
//
statusColors: {
'审核通过': '#6EDABE',
'待填报': '#FFBF6B',
'待审核': '#7693D8'
},
//
statusMap: {
1: '待填报',
2: '待审核',
3: '审核通过'
},
// xzflMap: {
// 1: '',
// 2: '',
// 3: ''
// },
//
queryParams: {
current: 1,
@ -327,7 +309,7 @@ export default {
/** 详情按钮操作 */
getAdd(row, type) {
this.$store.commit("SET_CRUMBS", this.$route.meta.title + "新增");
this.$store.commit("SET_CRUMBS","项目详情");
const id = row.id || this.ids[0];
this.$router.push({ path: `/manage-add/${id}`, query: { action: type } });
},

@ -30,7 +30,7 @@
<el-col :span="5">
<el-form-item label="评价等级">
<el-select v-model="queryParams.pjdj" placeholder="请选择评价等级" clearable>
<el-option v-for="dict in dict.type.pjdj" :key="dict.value" :label="dict.label" :value="dict.value" />
<el-option v-for="dict in dict.type.qdpjdj" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
</el-col>
@ -58,7 +58,7 @@
<el-table-column label="项目名称" align="center" prop="name" />
<el-table-column label="现状分类" align="center">
<template slot-scope="scope">
{{ xzflMap[scope.row.xzfl] || scope.row.xzfl }}
<dict-tag :options="dict.type.xzfl" :value="scope.row.xzfl" />
</template>
</el-table-column>
<el-table-column label="项目法人单位" align="center" prop="xmfrdwxz" />
@ -69,107 +69,31 @@
</el-table-column>
<el-table-column label="项目评价" align="center" width="130" sortable="custom" prop="pjdj">
<template slot-scope="scope">
{{ scope.row.pjdj }} / {{ total }}
{{ scope.row.pjdj }} / {{ scope.row.count }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button type="text" @click="handleInfo(scope.row, 'detail')">详情</el-button>
<!-- <el-button type="text" style="color: #F25353;" v-if="checkRole(['admin'])"
@click="handleDelete(scope.row)">删除</el-button> -->
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.current" :limit.sync="queryParams.size"
@pagination="getList" />
</div>
<!-- 详情对话框 -->
<el-dialog title="项目详情" :visible.sync="infoDialogVisible" width="50%">
<el-form :model="infoForm" label-width="120px" :disabled="true">
<el-form-item label="项目名称">
<el-input v-model="infoForm.name" placeholder="请输入项目名称" />
</el-form-item>
<el-form-item label="项目建设起止时间">
<el-date-picker type="daterange" format="yyyy-MM-dd" value-format="yyyy-MM-dd" :style="{ width: '100%' }"
start-placeholder="开始日期" end-placeholder="结束日期" range-separator="至" clearable v-model="infoForm.dateRange">
</el-date-picker>
</el-form-item>
<el-form-item label="现状分类">
<el-select v-model="infoForm.xzfl" placeholder="现状分类" clearable>
<el-option v-for="dict in dict.type.xzfl" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="评价等级">
<el-select v-model="infoForm.pjdj" placeholder="请选择评价等级" clearable>
<el-option label="全部" :value="0" />
<el-option label="总投资额" :value="1" />
<el-option label="层数" :value="2" />
<el-option label="首层层高" :value="3" />
<el-option label="2层及以上层高" :value="4" />
<el-option label="首层地面荷载" :value="5" />
<el-option label="二层及以上楼面荷载" :value="6" />
</el-select>
</el-form-item>
<el-form-item label="项目法人单位">
<el-input v-model="infoForm.xmfrdwxz" placeholder="请输入项目法人单位" />
</el-form-item>
<el-form-item label="项目评价">
<el-input v-model="infoForm.pjdj" placeholder="请输入项目评价" />
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="infoDialogVisible = false"> </el-button>
</span>
</el-dialog>
<!-- 修改对话框 -->
<el-dialog title="修改项目" :visible.sync="dialogVisible" width="50%">
<el-form :model="editForm" label-width="120px">
<el-form-item label="项目名称">
<el-input v-model="editForm.name" placeholder="请输入项目名称" />
</el-form-item>
<el-form-item label="项目建设起止时间">
<el-date-picker type="daterange" format="yyyy-MM-dd" value-format="yyyy-MM-dd" :style="{ width: '100%' }"
start-placeholder="开始日期" end-placeholder="结束日期" range-separator="至" clearable v-model="editForm.dateRange">
</el-date-picker>
</el-form-item>
<el-form-item label="现状分类">
<el-select v-model="editForm.xzfl" placeholder="现状分类" clearable>
<el-option v-for="dict in dict.type.xzfl" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="项目法人单位">
<el-input v-model="editForm.xmfrdwxz" placeholder="请输入项目法人单位" />
</el-form-item>
<el-form-item label="项目评价">
<el-input v-model="editForm.pjdj" placeholder="请输入项目评价" />
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="updateProject"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { getProjectEvaluationList, updateProjectEvaluationList } from '@/api/ManageApi/index.js';
import { checkPermi, checkRole } from "@/utils/permission"; //
import { checkPermi, checkRole } from "@/utils/permission";
export default {
dicts: [
'xzfl', 'pjdj'
'xzfl', 'qdpjdj'
],
data() {
return {
//
xzflMap: {
'1': '已建',
'2': '在建',
'3': '拟建'
},
postList: [],
loading: false,
total: 0,
@ -180,7 +104,8 @@ export default {
begainTime: '',
endTime: '',
xzfl: '',
pjdj: ''
pjdj: '',
qdpjdj:'',
},
showSearch: true,
dialogVisible: false,
@ -191,7 +116,6 @@ export default {
xzfl: '',
pjdj: '',
xmfrdwxz: '',
pjdj: ''
},
infoDialogVisible: false,
infoForm: {
@ -201,7 +125,6 @@ export default {
xzfl: '',
pjdj: '',
xmfrdwxz: '',
pjdj: ''
}
};
},
@ -256,7 +179,7 @@ export default {
//
},
handleInfo(row, type) {
this.$store.commit("SET_CRUMBS", this.$route.meta.title + "详情");
this.$store.commit("SET_CRUMBS", "项目详情");
const id = row.id || this.ids[0];
this.$router.push({ path: `/manage-add/${id}`, query: { action: type } });
},

@ -189,7 +189,7 @@ export default {
},
/** 详情按钮操作 */
getAdd(row, type) {
this.$store.commit("SET_CRUMBS", this.$route.meta.title + "新增");
this.$store.commit("SET_CRUMBS", "项目详情");
const id = row.id || this.ids[0];
this.$router.push({ path: `/manage-add/${id}`, query: { action: type } });
},

@ -26,10 +26,14 @@
<div class="itemleft">
<div class="xmmctitle" @click="getInfo(item, 'detail')">{{ item.name }}</div>
<div class="lefttwo">
<div>现状分类{{ xzflMap[item.xzfl] }}</div>
<div style="display: flex;">
现状分类<dict-tag :options="dict.type.xzfl" :value="item.xzfl" />
</div>
<div>总投资额{{ item.ztze }}</div>
<div>填报时间{{ item.updateTime }}</div>
<div>状态{{ statusMap[item.status] }}</div>
<div style="display: flex;align-items: center;">
状态<dict-tag :options="dict.type.tbzt" :value="item.status" />
</div>
</div>
</div>
<div class="itemright" :class="getStatusClass(item.status)">
@ -62,6 +66,7 @@ import { getBasicInformationPage } from "@/api/ManageApi/index";
export default {
name: "Pc2FbEcharts",
dicts:['xzfl','tbzt'],
components: {
AllArea2,
Message2,
@ -98,7 +103,7 @@ export default {
methods: {
/** 详情按钮操作 */
getInfo(row, type) {
this.$store.commit("SET_CRUMBS", this.$route.meta.title + "详情");
this.$store.commit("SET_CRUMBS", "项目详情");
const id = row.id || this.ids[0];
this.$router.push({ path: `/manage-info/${id}`, query: { action: type } });
},

Loading…
Cancel
Save