meta.roles
This commit is contained in:
parent
08fd22dc73
commit
d5fff4b1f8
|
@ -101,3 +101,16 @@ export function listForData(data) {
|
|||
data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* LeaderTv
|
||||
* @param {*} data
|
||||
* @returns
|
||||
*/
|
||||
export function leaderTVData(data) {
|
||||
return request({
|
||||
url: '/api/convenience/v2/services/app/statisticalData/leaderForTV',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
|
@ -63,3 +63,16 @@ export function deleteResident(id) {
|
|||
params: id
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 居民信息删除
|
||||
* @param {*} id
|
||||
* @returns
|
||||
*/
|
||||
export function passwordUpdate(data) {
|
||||
return request({
|
||||
url: "/api/convenience/residentInformation/passwordUpdate",
|
||||
method: "post",
|
||||
data
|
||||
});
|
||||
}
|
||||
|
|
|
@ -12,3 +12,16 @@ export function statisticalData(data) {
|
|||
data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 乡镇统计
|
||||
* @param {*} data
|
||||
* @returns
|
||||
*/
|
||||
export function townRanking(data) {
|
||||
return request({
|
||||
url: '/api/convenience/v2/services/app/statisticalData/townRanking',
|
||||
method: 'get',
|
||||
data
|
||||
})
|
||||
}
|
|
@ -24,11 +24,11 @@ export default {
|
|||
created() {
|
||||
this.getList();
|
||||
this.regionNames = this._regionNames;
|
||||
console.log(233);
|
||||
console.log(this.regionNames);
|
||||
// console.log(233);
|
||||
// console.log(this.regionNames);
|
||||
},
|
||||
mounted(){
|
||||
console.log(244);
|
||||
// console.log(244);
|
||||
},
|
||||
methods: {
|
||||
getList() {
|
||||
|
|
|
@ -19,48 +19,80 @@
|
|||
</template> -->
|
||||
|
||||
<!-- <div class="avatar-wrapper"> -->
|
||||
<img :src="avatar" class="user-avatar">
|
||||
<span>{{ name }}</span>
|
||||
<el-button icon="el-icon-switch-button" type="text" style="margin-left:26px;margin-right:20px" @click.native="logout">退出登录</el-button>
|
||||
<!-- <img :src="avatar" class="user-avatar" /> -->
|
||||
<!-- <span>{{ name }}</span> -->
|
||||
<!-- <el-button icon="el-icon-switch-button" type="text" style="margin-left:26px;margin-right:20px" @click.native="logout">退出登录</el-button> -->
|
||||
<!-- <div><i ></i>退出登录</div> -->
|
||||
<!-- <i class="el-icon-caret-bottom" /> -->
|
||||
<!-- </div> -->
|
||||
|
||||
<!-- <el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
|
||||
<el-dropdown
|
||||
class="avatar-container right-menu-item hover-effect"
|
||||
trigger="click"
|
||||
>
|
||||
<div class="avatar-wrapper">
|
||||
<img :src="avatar" class="user-avatar">
|
||||
<img :src="avatar" class="user-avatar" />
|
||||
<span>{{ name }}</span>
|
||||
<i class="el-icon-caret-bottom" />
|
||||
</div>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<router-link to="/profile/index">
|
||||
<el-dropdown-item>Profile</el-dropdown-item>
|
||||
</router-link>
|
||||
<router-link to="/">
|
||||
<el-dropdown-item>Dashboard</el-dropdown-item>
|
||||
</router-link>
|
||||
<a target="_blank" href="https://github.com/PanJiaChen/vue-element-admin/">
|
||||
<el-dropdown-item>Github</el-dropdown-item>
|
||||
</a>
|
||||
<a target="_blank" href="https://panjiachen.github.io/vue-element-admin-site/#/">
|
||||
<el-dropdown-item>Docs</el-dropdown-item>
|
||||
</a>
|
||||
<el-dropdown-item @click.native="handleUpdate"
|
||||
>修改密码</el-dropdown-item
|
||||
>
|
||||
<el-dropdown-item divided @click.native="logout">
|
||||
<span style="display:block;">Log Out</span>
|
||||
<span style="display:block;">退出登录</span>
|
||||
</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown> -->
|
||||
</el-dropdown>
|
||||
</div>
|
||||
|
||||
<el-dialog
|
||||
title="修改密码"
|
||||
:visible.sync="dialogPsw"
|
||||
width="30%"
|
||||
:close-on-click-modal="false"
|
||||
:close-on-press-escape="false"
|
||||
>
|
||||
<el-form
|
||||
ref="form"
|
||||
:model="form"
|
||||
status-icon
|
||||
:rules="rules"
|
||||
label-width="100px"
|
||||
class="demo-ruleForm"
|
||||
>
|
||||
<el-form-item label="旧密码" prop="oldPassword">
|
||||
<el-input
|
||||
v-model="form.oldPassword"
|
||||
type="password"
|
||||
autocomplete="off"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="新密码" prop="newPassword">
|
||||
<el-input
|
||||
v-model="form.newPassword"
|
||||
type="password"
|
||||
autocomplete="off"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogPsw = false">取 消</el-button>
|
||||
<el-button type="primary" @click="modify">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex'
|
||||
import Breadcrumb from '@/components/Breadcrumb'
|
||||
import Hamburger from '@/components/Hamburger'
|
||||
import ErrorLog from '@/components/ErrorLog'
|
||||
import Screenfull from '@/components/Screenfull'
|
||||
import SizeSelect from '@/components/SizeSelect'
|
||||
import Search from '@/components/HeaderSearch'
|
||||
import { mapGetters } from "vuex";
|
||||
import Breadcrumb from "@/components/Breadcrumb";
|
||||
import Hamburger from "@/components/Hamburger";
|
||||
import ErrorLog from "@/components/ErrorLog";
|
||||
import Screenfull from "@/components/Screenfull";
|
||||
import SizeSelect from "@/components/SizeSelect";
|
||||
import Search from "@/components/HeaderSearch";
|
||||
import { passwordUpdate } from "@/api/residentInformation";
|
||||
|
||||
export default {
|
||||
components: {
|
||||
|
@ -71,19 +103,62 @@ export default {
|
|||
SizeSelect,
|
||||
Search
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dialogPsw: false,
|
||||
form: {
|
||||
oldPassword: "",
|
||||
newPassword: ""
|
||||
},
|
||||
rules: {
|
||||
oldPassword: [
|
||||
{ required: true, trigger: "blur", message: "旧密码不能为空" }
|
||||
],
|
||||
newPassword: [
|
||||
{ required: true, trigger: "blur", message: "新密码不能为空" }
|
||||
]
|
||||
}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(['sidebar', 'avatar', 'device', 'name'])
|
||||
...mapGetters(["sidebar", "avatar", "device", "name"])
|
||||
},
|
||||
methods: {
|
||||
toggleSideBar() {
|
||||
this.$store.dispatch('app/toggleSideBar')
|
||||
this.$store.dispatch("app/toggleSideBar");
|
||||
},
|
||||
handleUpdate() {
|
||||
this.dialogPsw = true;
|
||||
// console.log(sessionStorage.getItem('staffId'));
|
||||
this.$nextTick(() => {
|
||||
this.$refs.form.clearValidate();
|
||||
});
|
||||
this.form = {
|
||||
oldPassword: "",
|
||||
newPassword: ""
|
||||
};
|
||||
},
|
||||
modify() {
|
||||
// console.log(this.form);
|
||||
this.$refs.form.validate(valid => {
|
||||
if (valid) {
|
||||
passwordUpdate(this.form).then(res => {
|
||||
// console.log(res);
|
||||
if (res.c === 200) {
|
||||
this.dialogPsw = false;
|
||||
this.$notify.success("修改密码成功,请重新登录");
|
||||
this.logout();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
async logout() {
|
||||
await this.$store.dispatch('user/logout')
|
||||
this.$router.push(`/login?redirect=${this.$route.fullPath}`)
|
||||
await this.$store.dispatch("user/logout");
|
||||
this.$router.push(`/login?redirect=${this.$route.fullPath}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
@ -158,6 +233,8 @@ export default {
|
|||
.avatar-wrapper {
|
||||
margin-top: 5px;
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.user-avatar {
|
||||
cursor: pointer;
|
||||
|
@ -170,7 +247,7 @@ export default {
|
|||
cursor: pointer;
|
||||
position: absolute;
|
||||
right: -20px;
|
||||
top: 25px;
|
||||
top: 18px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -65,6 +65,9 @@ export default {
|
|||
.icon_menu_jmInfo {
|
||||
background: url("./img/icon_jmInfo.png") no-repeat;
|
||||
}
|
||||
.icon_menu_townRanking {
|
||||
background: url("./img/icon_twonRanking.png") no-repeat;
|
||||
}
|
||||
.sub-el-icon {
|
||||
color: currentColor;
|
||||
width: 1em;
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 2.4 KiB |
|
@ -217,7 +217,31 @@ export const constantRoutes = [
|
|||
hidden: true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
path: "/townRanking",
|
||||
component: Layout,
|
||||
name: "TownRanking",
|
||||
redirect: "/townRanking/index",
|
||||
meta: {
|
||||
title: "乡镇办件统计",
|
||||
icon: "townRanking"
|
||||
},
|
||||
hidden: false,
|
||||
children: [
|
||||
{
|
||||
path: "list",
|
||||
component: () => import("@/views/townRanking/index"),
|
||||
name: "TownRanking",
|
||||
meta: {
|
||||
title: "乡镇办件统计",
|
||||
icon: "townRanking",
|
||||
affix: true,
|
||||
parentTitle: "乡镇办件统计"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
// {
|
||||
// path: "/staff",
|
||||
// component: Layout,
|
||||
|
|
|
@ -8,7 +8,7 @@ import { errorCodeMap } from "@/utils/index";
|
|||
const service = axios.create({
|
||||
baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
|
||||
// withCredentials: true, // send cookies when cross-domain requests
|
||||
timeout: 5000 // request timeout
|
||||
timeout: 10000 // request timeout
|
||||
});
|
||||
|
||||
// request interceptor
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
>
|
||||
<span v-has="'WORKORDER_ADMIN'">
|
||||
当前区域:<el-cascader
|
||||
ref="regionRef"
|
||||
class="filter-item"
|
||||
v-model="regionSearchVal"
|
||||
style="width:240px"
|
||||
|
@ -26,6 +27,15 @@
|
|||
@change="handleRegionChange"
|
||||
/>
|
||||
</span>
|
||||
<span v-has="'WORKORDER_ADMIN'">
|
||||
<el-button
|
||||
type="primary"
|
||||
style="border-radius:21px;margin-left:10px;margin-right:10px"
|
||||
@click="handleExport"
|
||||
>
|
||||
导出当前区域办结数据
|
||||
</el-button>
|
||||
</span>
|
||||
<span style="float:right"
|
||||
>更新时间:{{ new Date() | parseTime("{y}-{m}-{d} {h}:00:00") }}</span
|
||||
></el-col
|
||||
|
@ -119,7 +129,7 @@
|
|||
<div style="flex:1">
|
||||
<p>
|
||||
受理人:{{
|
||||
item.residentInformation && item.firstResponsiblePerson.name
|
||||
item.firstResponsiblePerson && item.firstResponsiblePerson.name
|
||||
}}
|
||||
</p>
|
||||
</div>
|
||||
|
@ -152,6 +162,23 @@
|
|||
> -->
|
||||
</span>
|
||||
</el-dialog>
|
||||
<el-dialog title="选择导出时间段" :visible.sync="dialogExport" width="20%">
|
||||
<el-date-picker
|
||||
v-model="dates"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
value-format="timestamp"
|
||||
@change="handleDateChange"
|
||||
>
|
||||
</el-date-picker>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogExport = false">取 消</el-button>
|
||||
<el-button type="primary" @click="exportExcel" :loading="exportLoading">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
<!-- handleExport -->
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
@ -162,7 +189,8 @@ import { parseTime } from "@/utils";
|
|||
import { getRegions } from "@/api/region";
|
||||
import { statisticalData } from "@/api/statisticalData";
|
||||
import { mapGetters } from "vuex";
|
||||
import { listForData } from "@/api/convenience";
|
||||
import { listForData, leaderTVData } from "@/api/convenience";
|
||||
import { isArray } from "@/utils/validate";
|
||||
|
||||
export default {
|
||||
data() {
|
||||
|
@ -172,6 +200,12 @@ export default {
|
|||
residentInformationId: undefined,
|
||||
eventTypeId: undefined
|
||||
},
|
||||
excelListQuery: {
|
||||
isAll: true,
|
||||
regionIds: undefined,
|
||||
start: undefined,
|
||||
end: undefined
|
||||
},
|
||||
statisticalData: undefined,
|
||||
checkStrictly: false,
|
||||
regionSearchVal: undefined,
|
||||
|
@ -182,7 +216,11 @@ export default {
|
|||
convenienceList: [],
|
||||
timers: undefined,
|
||||
timersInterval: undefined,
|
||||
listLoading: false
|
||||
listLoading: false,
|
||||
dialogExport: false,
|
||||
dates: undefined,
|
||||
// originRegion: undefined,
|
||||
exportLoading:false
|
||||
};
|
||||
},
|
||||
components: {
|
||||
|
@ -244,6 +282,7 @@ export default {
|
|||
this.getRegions();
|
||||
this.regionSearchVal = this.regionIds;
|
||||
this.listQuery.regionIds = this.regionIds;
|
||||
this.excelListQuery.regionIds = this.regionIds;
|
||||
},
|
||||
methods: {
|
||||
// handleSetLineChartData(type) {
|
||||
|
@ -349,6 +388,7 @@ export default {
|
|||
handleRegionChange(val) {
|
||||
// console.log(val);
|
||||
this.listQuery.regionIds = val.join(",");
|
||||
this.excelListQuery.regionIds = val.join(",");
|
||||
this.getStatisticalData();
|
||||
},
|
||||
showDetail(key) {
|
||||
|
@ -504,6 +544,108 @@ export default {
|
|||
});
|
||||
this.dialogTitle = key;
|
||||
this.dialogDetail = true;
|
||||
},
|
||||
handleExport() {
|
||||
this.dialogExport = true;
|
||||
},
|
||||
exportExcel() {
|
||||
const that = this;
|
||||
import("@/vendor/Export2Excel").then(excel => {
|
||||
const tHeader = ["姓名", "办结数量", "未办结数量"];
|
||||
const filterVal = ["name", "num", "notFinishNum"];
|
||||
this.exportLoading = true
|
||||
leaderTVData(that.excelListQuery).then(res => {
|
||||
setTimeout(() => {
|
||||
this.exportLoading = false
|
||||
}, 3000);
|
||||
|
||||
const data = that.formatJson(filterVal, res.d.leaderboard);
|
||||
// console.log(data);
|
||||
const selectRegionLabel = that.$refs['regionRef'].getCheckedNodes()[0].pathLabels.join(',')
|
||||
excel.export_json_to_excel({
|
||||
header: tHeader,
|
||||
data: data,
|
||||
// filename: `${that.regions[0].label}-${new Date(
|
||||
// this.excelListQuery.start
|
||||
// )}-${new Date(this.excelListQuery.end)}-办事数量统计`
|
||||
filename: `${selectRegionLabel +
|
||||
"-" +
|
||||
(that.dates
|
||||
? new Date(that.excelListQuery.start*1000).toLocaleDateString() +
|
||||
"-" +
|
||||
new Date(that.excelListQuery.end*1000).toLocaleDateString()
|
||||
: "") +
|
||||
"办事数量统计"}`
|
||||
});
|
||||
});
|
||||
});
|
||||
},
|
||||
formatJson(filterVal, jsonData) {
|
||||
return jsonData.map(v =>
|
||||
filterVal.map(j => {
|
||||
let value;
|
||||
if (j === "status") {
|
||||
value = this.$options.filters["statusFilter"](v[j]);
|
||||
} else {
|
||||
value = v[j];
|
||||
}
|
||||
// if (!value && value !== 0) value = "N/A";
|
||||
return value;
|
||||
})
|
||||
);
|
||||
},
|
||||
// dateFormatTime(date) {
|
||||
// if (date != null) {
|
||||
// this.listQuery.start = Date.parse(date[0]) / 1000;
|
||||
// this.listQuery.end = Date.parse(date[1]) / 1000;
|
||||
// } else {
|
||||
// this.listQuery.start = undefined;
|
||||
// this.listQuery.end = undefined;
|
||||
// }
|
||||
// },
|
||||
handleDateChange(val) {
|
||||
// console.log(val);
|
||||
if (val != null) {
|
||||
this.excelListQuery.start = this.dates[0]/1000;
|
||||
this.excelListQuery.end = this.dates[1]/1000;
|
||||
} else {
|
||||
this.excelListQuery.start = undefined;
|
||||
this.excelListQuery.end = undefined;
|
||||
}
|
||||
},
|
||||
getRegionsText() {
|
||||
let tempLen;
|
||||
if (Array.isArray(this.regionSearchVal)) {
|
||||
tempLen = this.regionSearchVal.length;
|
||||
} else {
|
||||
tempLen = this.regionSearchVal.split(",").length;
|
||||
}
|
||||
// const tempLen = this.regionSearchVal.split(",").length;
|
||||
// console.log(tempLen);
|
||||
// this.regionSearchVal = [];
|
||||
// this.staffQuery.regionIds = this.regionIds;
|
||||
// switch (tempLen) {
|
||||
// case 1:
|
||||
// console.log(1);
|
||||
// console.log(this.regions[tempLen-1].label);
|
||||
// // this.regionSearchVal.push(this.regionIds, false);
|
||||
|
||||
// // console.log(this.regionSearchVal);
|
||||
// break;
|
||||
// case 2:
|
||||
// console.log(2);
|
||||
// console.log(this.regions[tempLen-1].label);
|
||||
// // this.regionSearchVal.push(this.regionIds, false);
|
||||
// // console.log(this.regionSearchVal);
|
||||
// break;
|
||||
// case 3:
|
||||
// console.log(3);
|
||||
// // this.regionSearchVal.push(this.regionIds);
|
||||
// break;
|
||||
// default:
|
||||
// // this.regionSearchVal = [];
|
||||
// break;
|
||||
// }
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
@ -54,7 +54,22 @@
|
|||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="captcha">
|
||||
<el-form-item prop="username">
|
||||
<span class="svg-container">
|
||||
<svg-icon icon-class="lock" />
|
||||
</span>
|
||||
<el-input
|
||||
ref="password"
|
||||
v-model="loginForm.captcha"
|
||||
placeholder="请输入密码"
|
||||
name="captcha"
|
||||
type="password"
|
||||
tabindex="2"
|
||||
autocomplete="on"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<!-- <el-form-item prop="captcha">
|
||||
<span class="svg-container">
|
||||
<svg-icon icon-class="email" />
|
||||
</span>
|
||||
|
@ -66,8 +81,8 @@
|
|||
tabindex="2"
|
||||
@keyup.enter.native="handleLogin"
|
||||
/>
|
||||
<!-- style="width:290px" -->
|
||||
<!-- <el-button @click="handleSms">获取验证码</el-button> -->
|
||||
style="width:290px"
|
||||
<el-button @click="handleSms">获取验证码</el-button>
|
||||
<button
|
||||
class="btn_getCode"
|
||||
type="button"
|
||||
|
@ -76,7 +91,7 @@
|
|||
>
|
||||
{{ codeText }}
|
||||
</button>
|
||||
</el-form-item>
|
||||
</el-form-item> -->
|
||||
|
||||
<el-button
|
||||
:loading="loading"
|
||||
|
@ -126,12 +141,12 @@ export default {
|
|||
// password: '111111'
|
||||
// },
|
||||
loginForm: {
|
||||
username: "", //18882564006
|
||||
captcha: "",
|
||||
username: process.env.NODE_ENV==='development'?"18882564006":'', //18882564006
|
||||
captcha: process.env.NODE_ENV==='development'?"111111":'',
|
||||
// username: "18882564006", //18882564006
|
||||
// captcha: "111111",
|
||||
appVersion: "1.0.0",
|
||||
system: "IOS",
|
||||
system: "PC",
|
||||
device: navigator.userAgent,
|
||||
extra: ""
|
||||
},
|
||||
|
@ -167,6 +182,7 @@ export default {
|
|||
}
|
||||
},
|
||||
created() {
|
||||
// console.log(process.env.NODE_ENV);
|
||||
// window.addEventListener('storage', this.afterQRScan)
|
||||
const { appVersion, system, device, extra } = this.loginForm;
|
||||
const payload = {
|
||||
|
|
|
@ -224,6 +224,18 @@
|
|||
<el-input v-model="residentInfo.sort" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="所属">
|
||||
<el-select v-model="residentInfo.organizationAttribution" clearable placeholder="所属">
|
||||
<el-option
|
||||
v-for="item in organizationAttributionList"
|
||||
:key="item"
|
||||
:label="item"
|
||||
:value="item"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="行政区域" prop="regionIds">
|
||||
<el-cascader
|
||||
v-model="residentInfo.regionIds"
|
||||
|
@ -341,6 +353,7 @@ export default {
|
|||
dialogStatus: "",
|
||||
list: [],
|
||||
regions: [],
|
||||
organizationAttributionList: ["卫生院", "派出所"],
|
||||
rules: {
|
||||
name: [
|
||||
{ required: true, message: "居民姓名不能为空", trigger: "blur" }
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
<template>
|
||||
<div class="app-container" style="padding-top:15px">
|
||||
<el-table :data="list" style="width: 100%" border v-loading="listLoading">
|
||||
<el-table-column label="排名" type="index" width="50" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span :style="scope.$index===0?'color:red':scope.$index===1?'color:red':scope.$index===2?'color:red':''">{{ scope.$index + 1 }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="name" label="乡镇名称">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.townName }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="name" label="总办件量">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.allNum }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="name" label="已办结量">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.finishNum }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="name" label="未办结量">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.notFinishNum }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { townRanking } from "@/api/statisticalData";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
list: [],
|
||||
listLoading: false
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getDataList();
|
||||
},
|
||||
methods: {
|
||||
getDataList() {
|
||||
this.listLoading = true;
|
||||
townRanking().then(res => {
|
||||
this.list = res.d;
|
||||
this.listLoading = false;
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style></style>
|
Loading…
Reference in New Issue