meta.roles
This commit is contained in:
parent
08fd22dc73
commit
d5fff4b1f8
|
@ -100,4 +100,17 @@ export function listForData(data) {
|
||||||
method: 'post',
|
method: 'post',
|
||||||
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
|
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
|
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() {
|
created() {
|
||||||
this.getList();
|
this.getList();
|
||||||
this.regionNames = this._regionNames;
|
this.regionNames = this._regionNames;
|
||||||
console.log(233);
|
// console.log(233);
|
||||||
console.log(this.regionNames);
|
// console.log(this.regionNames);
|
||||||
},
|
},
|
||||||
mounted(){
|
mounted(){
|
||||||
console.log(244);
|
// console.log(244);
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getList() {
|
getList() {
|
||||||
|
|
|
@ -19,48 +19,80 @@
|
||||||
</template> -->
|
</template> -->
|
||||||
|
|
||||||
<!-- <div class="avatar-wrapper"> -->
|
<!-- <div class="avatar-wrapper"> -->
|
||||||
<img :src="avatar" class="user-avatar">
|
<!-- <img :src="avatar" class="user-avatar" /> -->
|
||||||
<span>{{ name }}</span>
|
<!-- <span>{{ name }}</span> -->
|
||||||
<el-button icon="el-icon-switch-button" type="text" style="margin-left:26px;margin-right:20px" @click.native="logout">退出登录</el-button>
|
<!-- <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> -->
|
<!-- <div><i ></i>退出登录</div> -->
|
||||||
<!-- <i class="el-icon-caret-bottom" /> -->
|
<!-- <i class="el-icon-caret-bottom" /> -->
|
||||||
<!-- </div> -->
|
<!-- </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">
|
<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" />
|
<i class="el-icon-caret-bottom" />
|
||||||
</div>
|
</div>
|
||||||
<el-dropdown-menu slot="dropdown">
|
<el-dropdown-menu slot="dropdown">
|
||||||
<router-link to="/profile/index">
|
<el-dropdown-item @click.native="handleUpdate"
|
||||||
<el-dropdown-item>Profile</el-dropdown-item>
|
>修改密码</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 divided @click.native="logout">
|
<el-dropdown-item divided @click.native="logout">
|
||||||
<span style="display:block;">Log Out</span>
|
<span style="display:block;">退出登录</span>
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
</el-dropdown> -->
|
</el-dropdown>
|
||||||
</div>
|
</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>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from "vuex";
|
||||||
import Breadcrumb from '@/components/Breadcrumb'
|
import Breadcrumb from "@/components/Breadcrumb";
|
||||||
import Hamburger from '@/components/Hamburger'
|
import Hamburger from "@/components/Hamburger";
|
||||||
import ErrorLog from '@/components/ErrorLog'
|
import ErrorLog from "@/components/ErrorLog";
|
||||||
import Screenfull from '@/components/Screenfull'
|
import Screenfull from "@/components/Screenfull";
|
||||||
import SizeSelect from '@/components/SizeSelect'
|
import SizeSelect from "@/components/SizeSelect";
|
||||||
import Search from '@/components/HeaderSearch'
|
import Search from "@/components/HeaderSearch";
|
||||||
|
import { passwordUpdate } from "@/api/residentInformation";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
|
@ -71,19 +103,62 @@ export default {
|
||||||
SizeSelect,
|
SizeSelect,
|
||||||
Search
|
Search
|
||||||
},
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dialogPsw: false,
|
||||||
|
form: {
|
||||||
|
oldPassword: "",
|
||||||
|
newPassword: ""
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
oldPassword: [
|
||||||
|
{ required: true, trigger: "blur", message: "旧密码不能为空" }
|
||||||
|
],
|
||||||
|
newPassword: [
|
||||||
|
{ required: true, trigger: "blur", message: "新密码不能为空" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters(['sidebar', 'avatar', 'device', 'name'])
|
...mapGetters(["sidebar", "avatar", "device", "name"])
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
toggleSideBar() {
|
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() {
|
async logout() {
|
||||||
await this.$store.dispatch('user/logout')
|
await this.$store.dispatch("user/logout");
|
||||||
this.$router.push(`/login?redirect=${this.$route.fullPath}`)
|
this.$router.push(`/login?redirect=${this.$route.fullPath}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
@ -158,6 +233,8 @@ export default {
|
||||||
.avatar-wrapper {
|
.avatar-wrapper {
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
.user-avatar {
|
.user-avatar {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
@ -170,7 +247,7 @@ export default {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: -20px;
|
right: -20px;
|
||||||
top: 25px;
|
top: 18px;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,6 +65,9 @@ export default {
|
||||||
.icon_menu_jmInfo {
|
.icon_menu_jmInfo {
|
||||||
background: url("./img/icon_jmInfo.png") no-repeat;
|
background: url("./img/icon_jmInfo.png") no-repeat;
|
||||||
}
|
}
|
||||||
|
.icon_menu_townRanking {
|
||||||
|
background: url("./img/icon_twonRanking.png") no-repeat;
|
||||||
|
}
|
||||||
.sub-el-icon {
|
.sub-el-icon {
|
||||||
color: currentColor;
|
color: currentColor;
|
||||||
width: 1em;
|
width: 1em;
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 2.4 KiB |
|
@ -217,7 +217,31 @@ export const constantRoutes = [
|
||||||
hidden: true
|
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",
|
// path: "/staff",
|
||||||
// component: Layout,
|
// component: Layout,
|
||||||
|
|
|
@ -8,7 +8,7 @@ import { errorCodeMap } from "@/utils/index";
|
||||||
const service = axios.create({
|
const service = axios.create({
|
||||||
baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
|
baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
|
||||||
// withCredentials: true, // send cookies when cross-domain requests
|
// withCredentials: true, // send cookies when cross-domain requests
|
||||||
timeout: 5000 // request timeout
|
timeout: 10000 // request timeout
|
||||||
});
|
});
|
||||||
|
|
||||||
// request interceptor
|
// request interceptor
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
>
|
>
|
||||||
<span v-has="'WORKORDER_ADMIN'">
|
<span v-has="'WORKORDER_ADMIN'">
|
||||||
当前区域:<el-cascader
|
当前区域:<el-cascader
|
||||||
|
ref="regionRef"
|
||||||
class="filter-item"
|
class="filter-item"
|
||||||
v-model="regionSearchVal"
|
v-model="regionSearchVal"
|
||||||
style="width:240px"
|
style="width:240px"
|
||||||
|
@ -26,6 +27,15 @@
|
||||||
@change="handleRegionChange"
|
@change="handleRegionChange"
|
||||||
/>
|
/>
|
||||||
</span>
|
</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"
|
<span style="float:right"
|
||||||
>更新时间:{{ new Date() | parseTime("{y}-{m}-{d} {h}:00:00") }}</span
|
>更新时间:{{ new Date() | parseTime("{y}-{m}-{d} {h}:00:00") }}</span
|
||||||
></el-col
|
></el-col
|
||||||
|
@ -119,7 +129,7 @@
|
||||||
<div style="flex:1">
|
<div style="flex:1">
|
||||||
<p>
|
<p>
|
||||||
受理人:{{
|
受理人:{{
|
||||||
item.residentInformation && item.firstResponsiblePerson.name
|
item.firstResponsiblePerson && item.firstResponsiblePerson.name
|
||||||
}}
|
}}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
@ -152,6 +162,23 @@
|
||||||
> -->
|
> -->
|
||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</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>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -162,7 +189,8 @@ import { parseTime } from "@/utils";
|
||||||
import { getRegions } from "@/api/region";
|
import { getRegions } from "@/api/region";
|
||||||
import { statisticalData } from "@/api/statisticalData";
|
import { statisticalData } from "@/api/statisticalData";
|
||||||
import { mapGetters } from "vuex";
|
import { mapGetters } from "vuex";
|
||||||
import { listForData } from "@/api/convenience";
|
import { listForData, leaderTVData } from "@/api/convenience";
|
||||||
|
import { isArray } from "@/utils/validate";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
|
@ -172,6 +200,12 @@ export default {
|
||||||
residentInformationId: undefined,
|
residentInformationId: undefined,
|
||||||
eventTypeId: undefined
|
eventTypeId: undefined
|
||||||
},
|
},
|
||||||
|
excelListQuery: {
|
||||||
|
isAll: true,
|
||||||
|
regionIds: undefined,
|
||||||
|
start: undefined,
|
||||||
|
end: undefined
|
||||||
|
},
|
||||||
statisticalData: undefined,
|
statisticalData: undefined,
|
||||||
checkStrictly: false,
|
checkStrictly: false,
|
||||||
regionSearchVal: undefined,
|
regionSearchVal: undefined,
|
||||||
|
@ -182,7 +216,11 @@ export default {
|
||||||
convenienceList: [],
|
convenienceList: [],
|
||||||
timers: undefined,
|
timers: undefined,
|
||||||
timersInterval: undefined,
|
timersInterval: undefined,
|
||||||
listLoading: false
|
listLoading: false,
|
||||||
|
dialogExport: false,
|
||||||
|
dates: undefined,
|
||||||
|
// originRegion: undefined,
|
||||||
|
exportLoading:false
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
|
@ -244,6 +282,7 @@ export default {
|
||||||
this.getRegions();
|
this.getRegions();
|
||||||
this.regionSearchVal = this.regionIds;
|
this.regionSearchVal = this.regionIds;
|
||||||
this.listQuery.regionIds = this.regionIds;
|
this.listQuery.regionIds = this.regionIds;
|
||||||
|
this.excelListQuery.regionIds = this.regionIds;
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// handleSetLineChartData(type) {
|
// handleSetLineChartData(type) {
|
||||||
|
@ -349,6 +388,7 @@ export default {
|
||||||
handleRegionChange(val) {
|
handleRegionChange(val) {
|
||||||
// console.log(val);
|
// console.log(val);
|
||||||
this.listQuery.regionIds = val.join(",");
|
this.listQuery.regionIds = val.join(",");
|
||||||
|
this.excelListQuery.regionIds = val.join(",");
|
||||||
this.getStatisticalData();
|
this.getStatisticalData();
|
||||||
},
|
},
|
||||||
showDetail(key) {
|
showDetail(key) {
|
||||||
|
@ -504,6 +544,108 @@ export default {
|
||||||
});
|
});
|
||||||
this.dialogTitle = key;
|
this.dialogTitle = key;
|
||||||
this.dialogDetail = true;
|
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>
|
||||||
|
|
||||||
<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">
|
<span class="svg-container">
|
||||||
<svg-icon icon-class="email" />
|
<svg-icon icon-class="email" />
|
||||||
</span>
|
</span>
|
||||||
|
@ -66,8 +81,8 @@
|
||||||
tabindex="2"
|
tabindex="2"
|
||||||
@keyup.enter.native="handleLogin"
|
@keyup.enter.native="handleLogin"
|
||||||
/>
|
/>
|
||||||
<!-- style="width:290px" -->
|
style="width:290px"
|
||||||
<!-- <el-button @click="handleSms">获取验证码</el-button> -->
|
<el-button @click="handleSms">获取验证码</el-button>
|
||||||
<button
|
<button
|
||||||
class="btn_getCode"
|
class="btn_getCode"
|
||||||
type="button"
|
type="button"
|
||||||
|
@ -76,7 +91,7 @@
|
||||||
>
|
>
|
||||||
{{ codeText }}
|
{{ codeText }}
|
||||||
</button>
|
</button>
|
||||||
</el-form-item>
|
</el-form-item> -->
|
||||||
|
|
||||||
<el-button
|
<el-button
|
||||||
:loading="loading"
|
:loading="loading"
|
||||||
|
@ -126,12 +141,12 @@ export default {
|
||||||
// password: '111111'
|
// password: '111111'
|
||||||
// },
|
// },
|
||||||
loginForm: {
|
loginForm: {
|
||||||
username: "", //18882564006
|
username: process.env.NODE_ENV==='development'?"18882564006":'', //18882564006
|
||||||
captcha: "",
|
captcha: process.env.NODE_ENV==='development'?"111111":'',
|
||||||
// username: "18882564006", //18882564006
|
// username: "18882564006", //18882564006
|
||||||
// captcha: "111111",
|
// captcha: "111111",
|
||||||
appVersion: "1.0.0",
|
appVersion: "1.0.0",
|
||||||
system: "IOS",
|
system: "PC",
|
||||||
device: navigator.userAgent,
|
device: navigator.userAgent,
|
||||||
extra: ""
|
extra: ""
|
||||||
},
|
},
|
||||||
|
@ -167,6 +182,7 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
// console.log(process.env.NODE_ENV);
|
||||||
// window.addEventListener('storage', this.afterQRScan)
|
// window.addEventListener('storage', this.afterQRScan)
|
||||||
const { appVersion, system, device, extra } = this.loginForm;
|
const { appVersion, system, device, extra } = this.loginForm;
|
||||||
const payload = {
|
const payload = {
|
||||||
|
|
|
@ -224,6 +224,18 @@
|
||||||
<el-input v-model="residentInfo.sort" />
|
<el-input v-model="residentInfo.sort" />
|
||||||
</el-form-item>
|
</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-form-item label="行政区域" prop="regionIds">
|
||||||
<el-cascader
|
<el-cascader
|
||||||
v-model="residentInfo.regionIds"
|
v-model="residentInfo.regionIds"
|
||||||
|
@ -341,6 +353,7 @@ export default {
|
||||||
dialogStatus: "",
|
dialogStatus: "",
|
||||||
list: [],
|
list: [],
|
||||||
regions: [],
|
regions: [],
|
||||||
|
organizationAttributionList: ["卫生院", "派出所"],
|
||||||
rules: {
|
rules: {
|
||||||
name: [
|
name: [
|
||||||
{ required: true, message: "居民姓名不能为空", trigger: "blur" }
|
{ 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