16
src/App.vue
|
@ -32,4 +32,20 @@ export default {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
border-radius: 15px;
|
border-radius: 15px;
|
||||||
}
|
}
|
||||||
|
.appeal .el-button{
|
||||||
|
padding: 7px 10px;
|
||||||
|
font-size: 14px;
|
||||||
|
border-radius: 15px;
|
||||||
|
width: 63px;
|
||||||
|
}
|
||||||
|
.el-button--text{
|
||||||
|
padding: 5px 10px;
|
||||||
|
}
|
||||||
|
.el-loading-spinner {
|
||||||
|
top: 50%;
|
||||||
|
/* margin-top: -21px; */
|
||||||
|
width: 90%;
|
||||||
|
text-align: center;
|
||||||
|
position: fixed;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -54,25 +54,29 @@ export default {
|
||||||
console.log(fileList)
|
console.log(fileList)
|
||||||
fileList.forEach(item => {
|
fileList.forEach(item => {
|
||||||
if (item.status === 'ready') {
|
if (item.status === 'ready') {
|
||||||
const suffix = item.name.split('.')[1]
|
// const suffix = item.name.split('.')[1]
|
||||||
|
const suffix = item.name.substr(item.name.lastIndexOf('.')+1)
|
||||||
const fileName = UUID.generate() + '.' + suffix
|
const fileName = UUID.generate() + '.' + suffix
|
||||||
item.name = fileName
|
item.name = fileName
|
||||||
OSS(item.raw, fileName).then(res => {
|
OSS(item.raw, fileName).then(res => {
|
||||||
this.$emit('input', res.url)
|
|
||||||
item.url = res.url
|
this.$emit('input', 'http://storage.myntv.cn/'+res.name)
|
||||||
|
item.url = 'http://storage.myntv.cn/'+res.name
|
||||||
item.status = 'success'
|
item.status = 'success'
|
||||||
const list = fileList.filter(item => item.status === 'success').map(item => item.url)
|
const list = fileList.filter(item => item.status === 'success').map(item => item.url)
|
||||||
|
console.log(list);
|
||||||
this.$emit('input', list)
|
this.$emit('input', list)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
const suffix = file.name.split('.')[0]
|
// const suffix = file.name.split('.')[0]
|
||||||
|
const suffix = item.name.substr(item.name.lastIndexOf('.')+1)
|
||||||
const fileName = UUID.generate() + '.' + suffix
|
const fileName = UUID.generate() + '.' + suffix
|
||||||
file.name = fileName
|
file.name = fileName
|
||||||
this.fileList = [file]
|
this.fileList = [file]
|
||||||
OSS(file.raw, fileName).then(res => {
|
OSS(file.raw, fileName).then(res => {
|
||||||
this.$emit('input', res.url)
|
this.$emit('input', 'http://storage.myntv.cn/'+res.name)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,8 +1,12 @@
|
||||||
<template>
|
<template>
|
||||||
<el-breadcrumb class="app-breadcrumb" separator="/">
|
<el-breadcrumb class="app-breadcrumb" separator="/">
|
||||||
<transition-group name="breadcrumb">
|
<transition-group name="breadcrumb">
|
||||||
<el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path">
|
<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>
|
<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>
|
<a v-else @click.prevent="handleLink(item)">{{ item.meta.title }}</a>
|
||||||
</el-breadcrumb-item>
|
</el-breadcrumb-item>
|
||||||
</transition-group>
|
</transition-group>
|
||||||
|
@ -10,61 +14,73 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import pathToRegexp from 'path-to-regexp'
|
import pathToRegexp from "path-to-regexp";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
levelList: null
|
levelList: null
|
||||||
}
|
};
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
$route(route) {
|
$route(route) {
|
||||||
// if you go to the redirect page, do not update the breadcrumbs
|
// if you go to the redirect page, do not update the breadcrumbs
|
||||||
if (route.path.startsWith('/redirect/')) {
|
if (route.path.startsWith("/redirect/")) {
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
this.getBreadcrumb()
|
this.getBreadcrumb();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getBreadcrumb()
|
this.getBreadcrumb();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getBreadcrumb() {
|
getBreadcrumb() {
|
||||||
// only show routes with meta.title
|
// only show routes with meta.title
|
||||||
let matched = this.$route.matched.filter(item => item.meta && item.meta.title)
|
let matched = this.$route.matched.filter(
|
||||||
const first = matched[0]
|
item => item.meta && item.meta.title
|
||||||
|
);
|
||||||
|
const first = matched[0];
|
||||||
|
|
||||||
if (!this.isDashboard(first)) {
|
if (!this.isDashboard(first)) {
|
||||||
matched = [{ path: '/dashboard', meta: { title: '首页' }}].concat(matched)
|
matched = [{ path: "/dashboard", meta: { title: "首页" } }].concat(
|
||||||
|
matched
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.levelList = matched.filter(item => item.meta && item.meta.title && item.meta.breadcrumb !== false)
|
this.levelList = matched.filter(
|
||||||
|
item => item.meta && item.meta.title && item.meta.breadcrumb !== false
|
||||||
|
);
|
||||||
|
// console.log(this.levelList);
|
||||||
|
if (this.levelList.length > 1) {
|
||||||
|
this.levelList.splice(0, 1);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
isDashboard(route) {
|
isDashboard(route) {
|
||||||
const name = route && route.name
|
const name = route && route.name;
|
||||||
if (!name) {
|
if (!name) {
|
||||||
return false
|
return false;
|
||||||
}
|
}
|
||||||
return name.trim().toLocaleLowerCase() === 'Dashboard'.toLocaleLowerCase()
|
return (
|
||||||
|
name.trim().toLocaleLowerCase() === "Dashboard".toLocaleLowerCase()
|
||||||
|
);
|
||||||
},
|
},
|
||||||
pathCompile(path) {
|
pathCompile(path) {
|
||||||
// To solve this problem https://github.com/PanJiaChen/vue-element-admin/issues/561
|
// To solve this problem https://github.com/PanJiaChen/vue-element-admin/issues/561
|
||||||
const { params } = this.$route
|
const { params } = this.$route;
|
||||||
var toPath = pathToRegexp.compile(path)
|
var toPath = pathToRegexp.compile(path);
|
||||||
return toPath(params)
|
return toPath(params);
|
||||||
},
|
},
|
||||||
handleLink(item) {
|
handleLink(item) {
|
||||||
const { redirect, path } = item
|
const { redirect, path } = item;
|
||||||
if (redirect) {
|
if (redirect) {
|
||||||
this.$router.push(redirect)
|
this.$router.push(redirect);
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
this.$router.push(this.pathCompile(path))
|
this.$router.push(this.pathCompile(path));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|
|
@ -27,6 +27,7 @@ export default {
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
linkProps(to) {
|
linkProps(to) {
|
||||||
|
console.log(to);
|
||||||
if (this.isExternal) {
|
if (this.isExternal) {
|
||||||
return {
|
return {
|
||||||
href: to,
|
href: to,
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
<logo v-if="showLogo" :collapse="isCollapse" />
|
<logo v-if="showLogo" :collapse="isCollapse" />
|
||||||
<el-scrollbar :id="activeMenu" wrap-class="scrollbar-wrapper">
|
<el-scrollbar :id="activeMenu" wrap-class="scrollbar-wrapper">
|
||||||
<!-- {{activeMenu}} -->
|
<!-- {{activeMenu}} -->
|
||||||
|
<!-- dddd activeMenu-->
|
||||||
<el-menu
|
<el-menu
|
||||||
:default-active="activeMenu"
|
:default-active="activeMenu"
|
||||||
:collapse="isCollapse"
|
:collapse="isCollapse"
|
||||||
|
|
|
@ -112,7 +112,7 @@ export const constantRoutes = [
|
||||||
path: 'detail',
|
path: 'detail',
|
||||||
component: () => import('@/views/convenience/detail'),
|
component: () => import('@/views/convenience/detail'),
|
||||||
name: 'ConvenienceDetail',
|
name: 'ConvenienceDetail',
|
||||||
meta: { title: '工单详情', icon: 'convenience', affix: true },
|
meta: { title: '工单详情', icon: 'convenience', affix: true ,activeMenu:'/convenience/list'},
|
||||||
hidden: true
|
hidden: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -13,7 +13,10 @@
|
||||||
class="el-form"
|
class="el-form"
|
||||||
>
|
>
|
||||||
<el-form-item label="受理人" prop="residentInformation">
|
<el-form-item label="受理人" prop="residentInformation">
|
||||||
<el-input v-model="searchInput" placeholder="群众身份证号或者手机号" />
|
<el-input
|
||||||
|
v-model="convenience.residentInformation"
|
||||||
|
placeholder="群众身份证号或者手机号"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="办事项目">
|
<el-form-item label="办事项目">
|
||||||
|
@ -65,9 +68,9 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { add, typeList } from '@/api/convenience'
|
import { add, typeList } from "@/api/convenience";
|
||||||
import { info } from '@/api/staff'
|
import { info } from "@/api/staff";
|
||||||
import AliOss from '@/components/AliOSS/index.vue'
|
import AliOss from "@/components/AliOSS/index.vue";
|
||||||
|
|
||||||
// import Pagination from "@/components/Pagination";
|
// import Pagination from "@/components/Pagination";
|
||||||
// import { list, typeList } from "@/api/convenience";
|
// import { list, typeList } from "@/api/convenience";
|
||||||
|
@ -79,70 +82,98 @@ export default {
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
var checkInfo = (rule, value, callback) => {
|
var checkInfo = (rule, value, callback) => {
|
||||||
info({ param: this.searchInput || undefined }).then(res => {
|
// console.log(value);
|
||||||
if (!res.d) {
|
// if (value === undefined) {
|
||||||
return callback(new Error('查无此人'))
|
// console.log('if');
|
||||||
} else {
|
// return callback(new Error("受理人不能为空"));
|
||||||
this.convenience.residentInformation = res.d.id
|
// } else {
|
||||||
}
|
// console.log('else');
|
||||||
})
|
// info({ param: this.searchInput || undefined }).then(res => {
|
||||||
}
|
// if (!res.d) {
|
||||||
|
// return callback(new Error("查无此人"));
|
||||||
|
// } else {
|
||||||
|
// this.convenience.residentInformation = res.d.id;
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
if (value === "") {
|
||||||
|
callback(new Error("受理人不能为空"));
|
||||||
|
// console.log('value==<>');
|
||||||
|
} else {
|
||||||
|
info({ param: this.convenience.residentInformation || undefined }).then(
|
||||||
|
res => {
|
||||||
|
if (!res.d) {
|
||||||
|
return callback(new Error("查无此人"));
|
||||||
|
} else {
|
||||||
|
this.searchInput = res.d.id;
|
||||||
|
callback();
|
||||||
|
// this.convenience.residentInformation = res.d.id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
};
|
||||||
return {
|
return {
|
||||||
convenience: {
|
convenience: {
|
||||||
residentInformation: undefined,
|
residentInformation: "",
|
||||||
eventTypeId: undefined,
|
eventTypeId: undefined,
|
||||||
remark: undefined,
|
remark: undefined,
|
||||||
sponsor: 'STAFF',
|
sponsor: "STAFF",
|
||||||
attachment: undefined
|
attachment: undefined
|
||||||
},
|
},
|
||||||
typeOptions: [],
|
typeOptions: [],
|
||||||
rules: {
|
rules: {
|
||||||
residentInformation: [{ validator: checkInfo, trigger: 'blur' }]
|
residentInformation: [{ validator: checkInfo, trigger: "blur" }]
|
||||||
},
|
},
|
||||||
fileList: undefined,
|
fileList: undefined,
|
||||||
searchInput: undefined
|
searchInput: undefined
|
||||||
}
|
};
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.getTypeList()
|
this.getTypeList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getTypeList() {
|
getTypeList() {
|
||||||
typeList().then(res => {
|
typeList().then(res => {
|
||||||
this.typeOptions = []
|
this.typeOptions = [];
|
||||||
res.d.map(i => {
|
res.d.map(i => {
|
||||||
const children = []
|
const children = [];
|
||||||
|
|
||||||
i.eventTypesList.map(c => {
|
i.eventTypesList.map(c => {
|
||||||
const level2 = {
|
const level2 = {
|
||||||
label: c.eventName,
|
label: c.eventName,
|
||||||
value: c.id
|
value: c.id
|
||||||
}
|
};
|
||||||
children.push(level2)
|
children.push(level2);
|
||||||
})
|
});
|
||||||
const level1 = {
|
const level1 = {
|
||||||
label: i.eventName,
|
label: i.eventName,
|
||||||
children
|
children
|
||||||
}
|
};
|
||||||
|
|
||||||
this.typeOptions.push(level1)
|
this.typeOptions.push(level1);
|
||||||
})
|
});
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
add(this.convenience).then(res => {
|
this.$refs.convenienceForm.validate(valid => {
|
||||||
if (res.c === 200) {
|
if (valid) {
|
||||||
this.$notify.success('创建成功')
|
this.convenience.residentInformation = this.searchInput;
|
||||||
this.$router.push('/convenience/list')
|
add(this.convenience).then(res => {
|
||||||
|
if (res.c === 200) {
|
||||||
|
this.$notify.success("创建成功");
|
||||||
|
this.$router.push("/convenience/list");
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
handlePreview() {},
|
handlePreview() {},
|
||||||
handleRemove() {},
|
handleRemove() {},
|
||||||
beforeRemove() {},
|
beforeRemove() {},
|
||||||
handleExceed() {}
|
handleExceed() {}
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scope></style>
|
<style scope></style>
|
||||||
|
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 4.6 KiB |
After Width: | Height: | Size: 770 B |
After Width: | Height: | Size: 726 B |
After Width: | Height: | Size: 725 B |
|
@ -3,7 +3,7 @@
|
||||||
<div class="filter-container">
|
<div class="filter-container">
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
style="position:absolute;right:50px;top:120px"
|
style="position:absolute;right:50px;margin-top:80px"
|
||||||
@click="$router.push('/convenience/add')"
|
@click="$router.push('/convenience/add')"
|
||||||
><i class="el-icon-plus" /> 直接建立工单</el-button>
|
><i class="el-icon-plus" /> 直接建立工单</el-button>
|
||||||
<div class="title">工单列表</div>
|
<div class="title">工单列表</div>
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
<br>
|
<br>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="convenienceList">
|
<div class="convenienceList" v-loading="listLoading">
|
||||||
<div
|
<div
|
||||||
v-for="(item, index) in list"
|
v-for="(item, index) in list"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
|
@ -43,7 +43,7 @@
|
||||||
<div class="convenience_item_title" style="flex:1">
|
<div class="convenience_item_title" style="flex:1">
|
||||||
<i class="icon_list" />
|
<i class="icon_list" />
|
||||||
<div>
|
<div>
|
||||||
<div class="cTitle">城乡养老保险个人变更登记</div>
|
<div class="cTitle">{{ item.eventType.eventName }}</div>
|
||||||
<div class="createDate">
|
<div class="createDate">
|
||||||
{{ item.sponsor | sponsorFilter }}创建于{{
|
{{ item.sponsor | sponsorFilter }}创建于{{
|
||||||
item.createDate | parseTime("{y}-{m}-{d} {h}:{i}:{s}")
|
item.createDate | parseTime("{y}-{m}-{d} {h}:{i}:{s}")
|
||||||
|
@ -56,13 +56,16 @@
|
||||||
<p>流水号:{{ item.serialNumber }}</p>
|
<p>流水号:{{ item.serialNumber }}</p>
|
||||||
<p>
|
<p>
|
||||||
阶段:{{ item.phase | phaseFilter }}
|
阶段:{{ item.phase | phaseFilter }}
|
||||||
<i v-if="timers&&timers[index].status !== null" class="icon_timeout" />
|
<i
|
||||||
|
class="icon_timeout"
|
||||||
|
v-if="timers && timers[index].status !== null"
|
||||||
|
></i>
|
||||||
<span style="color:#ff3000">{{
|
<span style="color:#ff3000">{{
|
||||||
timers && timers[index].status === null
|
timers && timers[index].status === null
|
||||||
? ""
|
? ""
|
||||||
: timers&&timers[index].status
|
: timers && timers[index].status
|
||||||
? "已超时"
|
? "已超时"
|
||||||
: "即将超时"
|
: "即将超时"
|
||||||
}}</span>
|
}}</span>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
@ -76,10 +79,12 @@
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div style="flex:1">
|
<div style="flex:1">
|
||||||
<p>受理人:{{ item.currentResponsiblePerson.name }}</p>
|
<p>受理人:{{ item.firstResponsiblePerson.name }}</p>
|
||||||
</div>
|
</div>
|
||||||
<div style="flex:1">
|
<div
|
||||||
<p style="font-size:20px;color:#ff6918">
|
style="flex:1;align-items: center;justify-items: center;display: flex;"
|
||||||
|
>
|
||||||
|
<!-- <p style="font-size:20px;color:#ff6918">
|
||||||
<i class="icon_timer" />{{
|
<i class="icon_timer" />{{
|
||||||
(timers && timeFormat(timers[index].time)) || "00:00:00"
|
(timers && timeFormat(timers[index].time)) || "00:00:00"
|
||||||
}}
|
}}
|
||||||
|
@ -87,12 +92,28 @@
|
||||||
<p>
|
<p>
|
||||||
<el-button
|
<el-button
|
||||||
v-if="item.phase === 'PENDING_ORDER'"
|
v-if="item.phase === 'PENDING_ORDER'"
|
||||||
style="margin-left:50px"
|
style="margin-left:44px;font-size:14px;padding:7px 10px;width:70px"
|
||||||
type="primary"
|
type="primary"
|
||||||
size="mini"
|
size="mini"
|
||||||
@click="handleUpdate(item, 5)"
|
@click="handleUpdate(item, 5)"
|
||||||
>接单</el-button>
|
>接单</el-button
|
||||||
</p>
|
>
|
||||||
|
</p> -->
|
||||||
|
<div style="font-size:20px;color:#ff6918">
|
||||||
|
<i class="icon_timer" />{{
|
||||||
|
(timers && timeFormat(timers[index].time)) || "00:00:00"
|
||||||
|
}}
|
||||||
|
<div>
|
||||||
|
<el-button
|
||||||
|
v-if="item.phase === 'PENDING_ORDER'"
|
||||||
|
style="margin-left:44px;font-size:14px;padding:7px 10px;width:70px;margin-top:12px"
|
||||||
|
type="primary"
|
||||||
|
size="mini"
|
||||||
|
@click.stop="handleUpdate(item, 5)"
|
||||||
|
>接单</el-button
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -198,10 +219,10 @@ export default {
|
||||||
filters: {
|
filters: {
|
||||||
sponsorFilter(status) {
|
sponsorFilter(status) {
|
||||||
const statusMap = {
|
const statusMap = {
|
||||||
SELF: '居民',
|
SELF: "群众",
|
||||||
STAFF: '工作人员'
|
STAFF: "工作人员"
|
||||||
}
|
};
|
||||||
return statusMap[status]
|
return statusMap[status];
|
||||||
},
|
},
|
||||||
phaseFilter(status) {
|
phaseFilter(status) {
|
||||||
const statusMap = {
|
const statusMap = {
|
||||||
|
@ -214,13 +235,13 @@ export default {
|
||||||
},
|
},
|
||||||
statusFilter(status) {
|
statusFilter(status) {
|
||||||
const statusMap = {
|
const statusMap = {
|
||||||
MINE: '待我处理',
|
MINE: "我处理",
|
||||||
FORWARDED: '已转交',
|
FORWARDED: "已转交",
|
||||||
FORWARDED_APPLY: '转交超限审批中',
|
FORWARDED_APPLY: "转交超限审批中",
|
||||||
SUBMIT_APPLY: '提交申请',
|
SUBMIT_APPLY: "已提交审批",
|
||||||
WAIT_APPLY: '待审核'
|
WAIT_APPLY: "待审核"
|
||||||
}
|
};
|
||||||
return statusMap[status]
|
return statusMap[status];
|
||||||
},
|
},
|
||||||
typeFilter(status) {
|
typeFilter(status) {
|
||||||
const statusMap = {
|
const statusMap = {
|
||||||
|
@ -302,12 +323,13 @@ export default {
|
||||||
getList() {
|
getList() {
|
||||||
this.listLoading = true
|
this.listLoading = true
|
||||||
list(this.listQuery).then(res => {
|
list(this.listQuery).then(res => {
|
||||||
this.list = res.d.records
|
this.list = res.d.records;
|
||||||
this.listLoading = false
|
this.listLoading = false;
|
||||||
clearInterval(this.timersInterval)
|
clearInterval(this.timersInterval);
|
||||||
const tempData = res.d.records
|
const tempData = res.d.records;
|
||||||
const now = Date.parse(new Date()).toString() / 1000
|
const now = Date.parse(new Date()).toString() / 1000;
|
||||||
const arr = []
|
// console.log(now);
|
||||||
|
const arr = [];
|
||||||
tempData.map((item, index) => {
|
tempData.map((item, index) => {
|
||||||
let msec = []
|
let msec = []
|
||||||
let obj = {}
|
let obj = {}
|
||||||
|
@ -324,7 +346,7 @@ export default {
|
||||||
break
|
break
|
||||||
case 'PREREQUISITES':
|
case 'PREREQUISITES':
|
||||||
// 要件准备
|
// 要件准备
|
||||||
msec = now - item.createDate - item.acceptanceTime
|
msec = now - item.createDate;
|
||||||
obj = {
|
obj = {
|
||||||
time: msec,
|
time: msec,
|
||||||
phase: item.phase,
|
phase: item.phase,
|
||||||
|
@ -334,11 +356,7 @@ export default {
|
||||||
break
|
break
|
||||||
case 'PROCESSING':
|
case 'PROCESSING':
|
||||||
// 办理中
|
// 办理中
|
||||||
msec =
|
msec = now - item.createDate;
|
||||||
now -
|
|
||||||
item.createDate -
|
|
||||||
item.acceptanceTime -
|
|
||||||
item.prerequisitesTime
|
|
||||||
obj = {
|
obj = {
|
||||||
time: msec,
|
time: msec,
|
||||||
phase: item.phase,
|
phase: item.phase,
|
||||||
|
|
|
@ -1,396 +1,64 @@
|
||||||
<template>
|
<template>
|
||||||
<el-row :gutter="40" class="panel-group">
|
<!-- <el-row :gutter="40" class="panel-group">
|
||||||
<el-col
|
<el-col
|
||||||
v-for="(value, key, index) in statisticalData"
|
v-for="(value, key, index) in statisticalData"
|
||||||
:key="index"
|
:key="index"
|
||||||
:xs="12"
|
:xs="12"
|
||||||
:sm="12"
|
:sm="12"
|
||||||
:lg="6"
|
:lg="key==='all'?12:6"
|
||||||
class="card-panel-col"
|
class="card-panel-col"
|
||||||
>
|
>
|
||||||
<div class="card-panel">
|
<div class="card-panel">
|
||||||
<div class="card-panel-icon-wrapper icon-people">
|
<div class="card-panel-icon-wrapper icon-people">
|
||||||
<svg-icon icon-class="peoples" class-name="card-panel-icon" />
|
<svg-icon icon-class="peoples" class-name="card-panel-icon" />
|
||||||
|
<i class="icon_"></i>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-panel-description">
|
<div class="card-panel-description">
|
||||||
|
<div v-if="key==='all'">累计服务量 :</div>
|
||||||
<div class="card-panel-text">
|
<div class="card-panel-text">
|
||||||
{{ key == "all" ? "总服务量" : key }}
|
{{ key == "all" ? "总服务量" : key }}
|
||||||
</div>
|
</div>
|
||||||
|
<div class="numText">{{value}}</div>
|
||||||
<count-to
|
<count-to
|
||||||
:start-val="0"
|
:start-val="0"
|
||||||
:end-val="value"
|
:end-val="value"
|
||||||
:duration="2600"
|
:duration="2600"
|
||||||
class="card-panel-num"
|
class="card-panel-num"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<!-- <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
|
</el-row> -->
|
||||||
<div class="card-panel">
|
<el-row :gutter="20">
|
||||||
<div class="card-panel-icon-wrapper icon-people">
|
<el-col
|
||||||
<svg-icon icon-class="peoples" class-name="card-panel-icon" />
|
v-for="(value, key, index) in statisticalData"
|
||||||
</div>
|
:key="index"
|
||||||
<div class="card-panel-description">
|
:xs="12"
|
||||||
<div class="card-panel-text">
|
:sm="12"
|
||||||
不满意率
|
:lg="key === 'all' ? 12 : 6"
|
||||||
|
>
|
||||||
|
<div class="countLayout">
|
||||||
|
<i :class="`countIcon icon_${index}`"></i>
|
||||||
|
<span v-if="key === 'all'" style="font-size:24px"
|
||||||
|
>累计服务量 :<span style="color:#ff663d;font-size:49px;vertical-align: middle;">{{ value }}</span></span
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
v-else
|
||||||
|
style="flex: 1;text-align: right;padding-right:51px;font-size:16px;"
|
||||||
|
>
|
||||||
|
<div style="margin-bottom:17px">{{ key }}</div>
|
||||||
|
<div style="font-size:20px;color:#787878;">
|
||||||
|
{{ formatUnit(key, value) }}
|
||||||
</div>
|
</div>
|
||||||
<count-to
|
|
||||||
:start-val="0"
|
|
||||||
:end-val="102400"
|
|
||||||
:duration="2600"
|
|
||||||
class="card-panel-num"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
|
|
||||||
<div class="card-panel">
|
|
||||||
<div class="card-panel-icon-wrapper icon-message">
|
|
||||||
<svg-icon icon-class="message" class-name="card-panel-icon" />
|
|
||||||
</div>
|
|
||||||
<div class="card-panel-description">
|
|
||||||
<div class="card-panel-text">
|
|
||||||
不满意量
|
|
||||||
</div>
|
|
||||||
<count-to
|
|
||||||
:start-val="0"
|
|
||||||
:end-val="81212"
|
|
||||||
:duration="3000"
|
|
||||||
class="card-panel-num"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
|
|
||||||
<div class="card-panel">
|
|
||||||
<div class="card-panel-icon-wrapper icon-money">
|
|
||||||
<svg-icon icon-class="money" class-name="card-panel-icon" />
|
|
||||||
</div>
|
|
||||||
<div class="card-panel-description">
|
|
||||||
<div class="card-panel-text">
|
|
||||||
平均办结时间
|
|
||||||
</div>
|
|
||||||
<count-to
|
|
||||||
:start-val="0"
|
|
||||||
:end-val="9280"
|
|
||||||
:duration="3200"
|
|
||||||
class="card-panel-num"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
|
|
||||||
<div class="card-panel">
|
|
||||||
<div class="card-panel-icon-wrapper icon-shopping">
|
|
||||||
<svg-icon icon-class="shopping" class-name="card-panel-icon" />
|
|
||||||
</div>
|
|
||||||
<div class="card-panel-description">
|
|
||||||
<div class="card-panel-text">
|
|
||||||
平均受理时间
|
|
||||||
</div>
|
|
||||||
<count-to
|
|
||||||
:start-val="0"
|
|
||||||
:end-val="13600"
|
|
||||||
:duration="3600"
|
|
||||||
class="card-panel-num"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
|
|
||||||
<div class="card-panel">
|
|
||||||
<div class="card-panel-icon-wrapper icon-shopping">
|
|
||||||
<svg-icon icon-class="shopping" class-name="card-panel-icon" />
|
|
||||||
</div>
|
|
||||||
<div class="card-panel-description">
|
|
||||||
<div class="card-panel-text">
|
|
||||||
按时办结率
|
|
||||||
</div>
|
|
||||||
<count-to
|
|
||||||
:start-val="0"
|
|
||||||
:end-val="13600"
|
|
||||||
:duration="3600"
|
|
||||||
class="card-panel-num"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
|
|
||||||
<div class="card-panel">
|
|
||||||
<div class="card-panel-icon-wrapper icon-shopping">
|
|
||||||
<svg-icon icon-class="shopping" class-name="card-panel-icon" />
|
|
||||||
</div>
|
|
||||||
<div class="card-panel-description">
|
|
||||||
<div class="card-panel-text">
|
|
||||||
按时办结量
|
|
||||||
</div>
|
|
||||||
<count-to
|
|
||||||
:start-val="0"
|
|
||||||
:end-val="13600"
|
|
||||||
:duration="3600"
|
|
||||||
class="card-panel-num"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
|
|
||||||
<div class="card-panel">
|
|
||||||
<div class="card-panel-icon-wrapper icon-shopping">
|
|
||||||
<svg-icon icon-class="shopping" class-name="card-panel-icon" />
|
|
||||||
</div>
|
|
||||||
<div class="card-panel-description">
|
|
||||||
<div class="card-panel-text">
|
|
||||||
按时受理率:
|
|
||||||
</div>
|
|
||||||
<count-to
|
|
||||||
:start-val="0"
|
|
||||||
:end-val="13600"
|
|
||||||
:duration="3600"
|
|
||||||
class="card-panel-num"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
|
|
||||||
<div class="card-panel">
|
|
||||||
<div class="card-panel-icon-wrapper icon-shopping">
|
|
||||||
<svg-icon icon-class="shopping" class-name="card-panel-icon" />
|
|
||||||
</div>
|
|
||||||
<div class="card-panel-description">
|
|
||||||
<div class="card-panel-text">
|
|
||||||
按时受理量
|
|
||||||
</div>
|
|
||||||
<count-to
|
|
||||||
:start-val="0"
|
|
||||||
:end-val="13600"
|
|
||||||
:duration="3600"
|
|
||||||
class="card-panel-num"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
|
|
||||||
<div class="card-panel">
|
|
||||||
<div class="card-panel-icon-wrapper icon-shopping">
|
|
||||||
<svg-icon icon-class="shopping" class-name="card-panel-icon" />
|
|
||||||
</div>
|
|
||||||
<div class="card-panel-description">
|
|
||||||
<div class="card-panel-text">
|
|
||||||
未办结率
|
|
||||||
</div>
|
|
||||||
<count-to
|
|
||||||
:start-val="0"
|
|
||||||
:end-val="13600"
|
|
||||||
:duration="3600"
|
|
||||||
class="card-panel-num"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
|
|
||||||
<div class="card-panel">
|
|
||||||
<div class="card-panel-icon-wrapper icon-shopping">
|
|
||||||
<svg-icon icon-class="shopping" class-name="card-panel-icon" />
|
|
||||||
</div>
|
|
||||||
<div class="card-panel-description">
|
|
||||||
<div class="card-panel-text">
|
|
||||||
未办结量
|
|
||||||
</div>
|
|
||||||
<count-to
|
|
||||||
:start-val="0"
|
|
||||||
:end-val="13600"
|
|
||||||
:duration="3600"
|
|
||||||
class="card-panel-num"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
|
|
||||||
<div class="card-panel">
|
|
||||||
<div class="card-panel-icon-wrapper icon-shopping">
|
|
||||||
<svg-icon icon-class="shopping" class-name="card-panel-icon" />
|
|
||||||
</div>
|
|
||||||
<div class="card-panel-description">
|
|
||||||
<div class="card-panel-text">
|
|
||||||
未受理率
|
|
||||||
</div>
|
|
||||||
<count-to
|
|
||||||
:start-val="0"
|
|
||||||
:end-val="13600"
|
|
||||||
:duration="3600"
|
|
||||||
class="card-panel-num"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
|
|
||||||
<div class="card-panel">
|
|
||||||
<div class="card-panel-icon-wrapper icon-shopping">
|
|
||||||
<svg-icon icon-class="shopping" class-name="card-panel-icon" />
|
|
||||||
</div>
|
|
||||||
<div class="card-panel-description">
|
|
||||||
<div class="card-panel-text">
|
|
||||||
未受理量
|
|
||||||
</div>
|
|
||||||
<count-to
|
|
||||||
:start-val="0"
|
|
||||||
:end-val="13600"
|
|
||||||
:duration="3600"
|
|
||||||
class="card-panel-num"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
|
|
||||||
<div class="card-panel">
|
|
||||||
<div class="card-panel-icon-wrapper icon-shopping">
|
|
||||||
<svg-icon icon-class="shopping" class-name="card-panel-icon" />
|
|
||||||
</div>
|
|
||||||
<div class="card-panel-description">
|
|
||||||
<div class="card-panel-text">
|
|
||||||
满意率
|
|
||||||
</div>
|
|
||||||
<count-to
|
|
||||||
:start-val="0"
|
|
||||||
:end-val="13600"
|
|
||||||
:duration="3600"
|
|
||||||
class="card-panel-num"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
|
|
||||||
<div class="card-panel">
|
|
||||||
<div class="card-panel-icon-wrapper icon-shopping">
|
|
||||||
<svg-icon icon-class="shopping" class-name="card-panel-icon" />
|
|
||||||
</div>
|
|
||||||
<div class="card-panel-description">
|
|
||||||
<div class="card-panel-text">
|
|
||||||
满意量
|
|
||||||
</div>
|
|
||||||
<count-to
|
|
||||||
:start-val="0"
|
|
||||||
:end-val="13600"
|
|
||||||
:duration="3600"
|
|
||||||
class="card-panel-num"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
|
|
||||||
<div class="card-panel">
|
|
||||||
<div class="card-panel-icon-wrapper icon-shopping">
|
|
||||||
<svg-icon icon-class="shopping" class-name="card-panel-icon" />
|
|
||||||
</div>
|
|
||||||
<div class="card-panel-description">
|
|
||||||
<div class="card-panel-text">
|
|
||||||
群众非常满意率
|
|
||||||
</div>
|
|
||||||
<count-to
|
|
||||||
:start-val="0"
|
|
||||||
:end-val="13600"
|
|
||||||
:duration="3600"
|
|
||||||
class="card-panel-num"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
|
|
||||||
<div class="card-panel">
|
|
||||||
<div class="card-panel-icon-wrapper icon-shopping">
|
|
||||||
<svg-icon icon-class="shopping" class-name="card-panel-icon" />
|
|
||||||
</div>
|
|
||||||
<div class="card-panel-description">
|
|
||||||
<div class="card-panel-text">
|
|
||||||
超时办结率
|
|
||||||
</div>
|
|
||||||
<count-to
|
|
||||||
:start-val="0"
|
|
||||||
:end-val="13600"
|
|
||||||
:duration="3600"
|
|
||||||
class="card-panel-num"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
|
|
||||||
<div class="card-panel">
|
|
||||||
<div class="card-panel-icon-wrapper icon-shopping">
|
|
||||||
<svg-icon icon-class="shopping" class-name="card-panel-icon" />
|
|
||||||
</div>
|
|
||||||
<div class="card-panel-description">
|
|
||||||
<div class="card-panel-text">
|
|
||||||
超时办结量
|
|
||||||
</div>
|
|
||||||
<count-to
|
|
||||||
:start-val="0"
|
|
||||||
:end-val="13600"
|
|
||||||
:duration="3600"
|
|
||||||
class="card-panel-num"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
|
|
||||||
<div class="card-panel">
|
|
||||||
<div class="card-panel-icon-wrapper icon-shopping">
|
|
||||||
<svg-icon icon-class="shopping" class-name="card-panel-icon" />
|
|
||||||
</div>
|
|
||||||
<div class="card-panel-description">
|
|
||||||
<div class="card-panel-text">
|
|
||||||
超时受理率
|
|
||||||
</div>
|
|
||||||
<count-to
|
|
||||||
:start-val="0"
|
|
||||||
:end-val="13600"
|
|
||||||
:duration="3600"
|
|
||||||
class="card-panel-num"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
|
|
||||||
<div class="card-panel">
|
|
||||||
<div class="card-panel-icon-wrapper icon-shopping">
|
|
||||||
<svg-icon icon-class="shopping" class-name="card-panel-icon" />
|
|
||||||
</div>
|
|
||||||
<div class="card-panel-description">
|
|
||||||
<div class="card-panel-text">
|
|
||||||
超时受理量
|
|
||||||
</div>
|
|
||||||
<count-to
|
|
||||||
:start-val="0"
|
|
||||||
:end-val="13600"
|
|
||||||
:duration="3600"
|
|
||||||
class="card-panel-num"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
|
|
||||||
<div class="card-panel">
|
|
||||||
<div class="card-panel-icon-wrapper icon-shopping">
|
|
||||||
<svg-icon icon-class="shopping" class-name="card-panel-icon" />
|
|
||||||
</div>
|
|
||||||
<div class="card-panel-description">
|
|
||||||
<div class="card-panel-text">
|
|
||||||
非常满意量
|
|
||||||
</div>
|
|
||||||
<count-to
|
|
||||||
:start-val="0"
|
|
||||||
:end-val="13600"
|
|
||||||
:duration="3600"
|
|
||||||
class="card-panel-num"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-col> -->
|
|
||||||
</el-row>
|
</el-row>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import CountTo from 'vue-count-to'
|
import CountTo from "vue-count-to";
|
||||||
import { statisticalData } from '@/api/statisticalData'
|
import { statisticalData } from "@/api/statisticalData";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
|
@ -403,10 +71,10 @@ export default {
|
||||||
eventTypeId: undefined
|
eventTypeId: undefined
|
||||||
},
|
},
|
||||||
statisticalData: undefined
|
statisticalData: undefined
|
||||||
}
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getStatisticalData()
|
this.getStatisticalData();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// handleSetLineChartData(type) {
|
// handleSetLineChartData(type) {
|
||||||
|
@ -414,14 +82,141 @@ export default {
|
||||||
// }
|
// }
|
||||||
getStatisticalData() {
|
getStatisticalData() {
|
||||||
statisticalData(this.listQuery).then(res => {
|
statisticalData(this.listQuery).then(res => {
|
||||||
this.statisticalData = res.d
|
this.statisticalData = res.d;
|
||||||
})
|
});
|
||||||
}
|
},
|
||||||
|
formatUnit(key, value) {
|
||||||
|
// console.log(key,value);
|
||||||
|
let str = '';
|
||||||
|
if (key.indexOf("率")!= -1) {
|
||||||
|
str = `${(value * 100).toFixed(2)}%`;
|
||||||
|
} else if (key.indexOf("时间")!= -1) {
|
||||||
|
str = this.timeFormat(value);
|
||||||
|
} else {
|
||||||
|
str = value;
|
||||||
|
}
|
||||||
|
console.log(str);
|
||||||
|
return str
|
||||||
|
},
|
||||||
|
timeFormat(timeStamp) {
|
||||||
|
const timeStr = `${
|
||||||
|
Math.floor(timeStamp / 3600) < 9
|
||||||
|
? '0' + Math.floor(timeStamp / 3600)
|
||||||
|
: Math.floor(timeStamp / 3600)
|
||||||
|
}:${
|
||||||
|
Math.floor(((timeStamp % 86400) % 3600) / 60) < 9
|
||||||
|
? '0' + Math.floor(((timeStamp % 86400) % 3600) / 60)
|
||||||
|
: Math.floor(((timeStamp % 86400) % 3600) / 60)
|
||||||
|
}:${
|
||||||
|
Math.floor(((timeStamp % 86400) % 3600) % 60) < 9
|
||||||
|
? '0' + Math.floor(((timeStamp % 86400) % 3600) % 60)
|
||||||
|
: Math.floor(((timeStamp % 86400) % 3600) % 60)
|
||||||
|
}`
|
||||||
|
return timeStr
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
.countLayout {
|
||||||
|
background: #fff;
|
||||||
|
margin-bottom: 18px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.countIcon {
|
||||||
|
display: inline-block;
|
||||||
|
background-size: cover !important;
|
||||||
|
width: 60px;
|
||||||
|
height: 60px;
|
||||||
|
margin: 38px 38px 38px 55px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
.icon_0 {
|
||||||
|
background: url("./img/icon_0.png") no-repeat;
|
||||||
|
}
|
||||||
|
.icon_1 {
|
||||||
|
background: url("./img/icon_1.png") no-repeat;
|
||||||
|
}
|
||||||
|
.icon_2 {
|
||||||
|
background: url("./img/icon_2.png") no-repeat;
|
||||||
|
}
|
||||||
|
.icon_3 {
|
||||||
|
background: url("./img/icon_3.png") no-repeat;
|
||||||
|
}
|
||||||
|
.icon_4 {
|
||||||
|
background: url("./img/icon_3.png") no-repeat;
|
||||||
|
}
|
||||||
|
.icon_5 {
|
||||||
|
background: url("./img/icon_4.png") no-repeat;
|
||||||
|
}
|
||||||
|
.icon_6 {
|
||||||
|
background: url("./img/icon_4.png") no-repeat;
|
||||||
|
}
|
||||||
|
.icon_7 {
|
||||||
|
background: url("./img/icon_5.png") no-repeat;
|
||||||
|
}
|
||||||
|
.icon_8 {
|
||||||
|
background: url("./img/icon_5.png") no-repeat;
|
||||||
|
}
|
||||||
|
.icon_9 {
|
||||||
|
background: url("./img/icon_6.png") no-repeat;
|
||||||
|
}
|
||||||
|
.icon_10 {
|
||||||
|
background: url("./img/icon_6.png") no-repeat;
|
||||||
|
}
|
||||||
|
.icon_11 {
|
||||||
|
background: url("./img/icon_7.png") no-repeat;
|
||||||
|
}
|
||||||
|
.icon_12 {
|
||||||
|
background: url("./img/icon_7.png") no-repeat;
|
||||||
|
}
|
||||||
|
.icon_13 {
|
||||||
|
background: url("./img/icon_8.png") no-repeat;
|
||||||
|
}
|
||||||
|
.icon_14 {
|
||||||
|
background: url("./img/icon_8.png") no-repeat;
|
||||||
|
}
|
||||||
|
.icon_15 {
|
||||||
|
background: url("./img/icon_9.png") no-repeat;
|
||||||
|
width: 63px;
|
||||||
|
height: 54px;
|
||||||
|
}
|
||||||
|
.icon_16 {
|
||||||
|
background: url("./img/icon_9.png") no-repeat;
|
||||||
|
width: 63px;
|
||||||
|
height: 54px;
|
||||||
|
}
|
||||||
|
.icon_17 {
|
||||||
|
background: url("./img/icon_10.png") no-repeat;
|
||||||
|
width: 63px;
|
||||||
|
height: 54px;
|
||||||
|
}
|
||||||
|
.icon_18 {
|
||||||
|
background: url("./img/icon_10.png") no-repeat;
|
||||||
|
width: 63px;
|
||||||
|
height: 54px;
|
||||||
|
}
|
||||||
|
.icon_19 {
|
||||||
|
background: url("./img/icon_11.png") no-repeat;
|
||||||
|
width: 63px;
|
||||||
|
height: 54px;
|
||||||
|
}
|
||||||
|
.icon_20 {
|
||||||
|
background: url("./img/icon_11.png") no-repeat;
|
||||||
|
width: 63px;
|
||||||
|
height: 54px;
|
||||||
|
}
|
||||||
|
// .icon_21{
|
||||||
|
// background:url('./img/icon_1.png')no-repeat;
|
||||||
|
// }
|
||||||
|
.numText {
|
||||||
|
font-size: 20px;
|
||||||
|
color: #787878;
|
||||||
|
font-family: PingFang-SC-Regular;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
.panel-group {
|
.panel-group {
|
||||||
margin-top: 18px;
|
margin-top: 18px;
|
||||||
|
|
||||||
|
|
After Width: | Height: | Size: 7.9 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 8.1 KiB |
After Width: | Height: | Size: 8.5 KiB |
After Width: | Height: | Size: 4.4 KiB |
After Width: | Height: | Size: 9.6 KiB |
After Width: | Height: | Size: 8.6 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 9.7 KiB |
After Width: | Height: | Size: 29 KiB |
After Width: | Height: | Size: 427 B |
|
@ -2,8 +2,10 @@
|
||||||
<div
|
<div
|
||||||
class="login-container"
|
class="login-container"
|
||||||
style="display: flex;
|
style="display: flex;
|
||||||
align-items: center;"
|
align-items: center;flex-direction: column;
|
||||||
|
justify-content: center;"
|
||||||
>
|
>
|
||||||
|
<div class="systemTitle"><i class="login_titleLine_left"/>壤塘家园定点服务系统 <i class="login_titleLine_left" style="transform: rotate(180deg);margin-left:29px"/></div>
|
||||||
<div
|
<div
|
||||||
style="background: white;
|
style="background: white;
|
||||||
width: 1053px;
|
width: 1053px;
|
||||||
|
@ -444,5 +446,21 @@ $light_gray: #1890ff;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
.login_titleLine_left{
|
||||||
|
background: url('./img/login_titleLine_left.png')no-repeat;
|
||||||
|
background-size: cover;
|
||||||
|
display: inline-block;
|
||||||
|
width: 315px;
|
||||||
|
height: 1px;
|
||||||
|
margin-right: 29px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
.systemTitle{
|
||||||
|
font-size: 37px;
|
||||||
|
color: rgb(255, 255, 255);
|
||||||
|
margin-bottom: 63px;
|
||||||
|
min-width: 1098px;
|
||||||
|
margin: 63px auto;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -58,7 +58,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Pagination from '@/components/Pagination'
|
// import Pagination from '@/components/Pagination'
|
||||||
import { workBookList } from '@/api/workBook'
|
import { workBookList } from '@/api/workBook'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|