This commit is contained in:
jr719 2021-04-13 02:38:06 +08:00
commit 924d620b02
33 changed files with 895 additions and 806 deletions

View File

@ -32,4 +32,20 @@ export default {
font-size: 14px;
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>

View File

@ -54,25 +54,29 @@ export default {
console.log(fileList)
fileList.forEach(item => {
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
item.name = fileName
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'
const list = fileList.filter(item => item.status === 'success').map(item => item.url)
console.log(list);
this.$emit('input', list)
})
}
})
} 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
file.name = fileName
this.fileList = [file]
OSS(file.raw, fileName).then(res => {
this.$emit('input', res.url)
this.$emit('input', 'http://storage.myntv.cn/'+res.name)
})
}
},

View File

@ -1,8 +1,12 @@
<template>
<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>
<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>
</el-breadcrumb-item>
</transition-group>
@ -10,61 +14,73 @@
</template>
<script>
import pathToRegexp from 'path-to-regexp'
import pathToRegexp from "path-to-regexp";
export default {
data() {
return {
levelList: null
}
};
},
watch: {
$route(route) {
// if you go to the redirect page, do not update the breadcrumbs
if (route.path.startsWith('/redirect/')) {
return
if (route.path.startsWith("/redirect/")) {
return;
}
this.getBreadcrumb()
this.getBreadcrumb();
}
},
created() {
this.getBreadcrumb()
this.getBreadcrumb();
},
methods: {
getBreadcrumb() {
// only show routes with meta.title
let matched = this.$route.matched.filter(item => item.meta && item.meta.title)
const first = matched[0]
let matched = this.$route.matched.filter(
item => item.meta && item.meta.title
);
const first = matched[0];
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) {
const name = route && route.name
const name = route && route.name;
if (!name) {
return false
return false;
}
return name.trim().toLocaleLowerCase() === 'Dashboard'.toLocaleLowerCase()
return (
name.trim().toLocaleLowerCase() === "Dashboard".toLocaleLowerCase()
);
},
pathCompile(path) {
// To solve this problem https://github.com/PanJiaChen/vue-element-admin/issues/561
const { params } = this.$route
var toPath = pathToRegexp.compile(path)
return toPath(params)
const { params } = this.$route;
var toPath = pathToRegexp.compile(path);
return toPath(params);
},
handleLink(item) {
const { redirect, path } = item
const { redirect, path } = item;
if (redirect) {
this.$router.push(redirect)
return
this.$router.push(redirect);
return;
}
this.$router.push(this.pathCompile(path))
this.$router.push(this.pathCompile(path));
}
}
}
};
</script>
<style lang="scss" scoped>

View File

@ -27,6 +27,7 @@ export default {
},
methods: {
linkProps(to) {
console.log(to);
if (this.isExternal) {
return {
href: to,

View File

@ -3,6 +3,7 @@
<logo v-if="showLogo" :collapse="isCollapse" />
<el-scrollbar :id="activeMenu" wrap-class="scrollbar-wrapper">
<!-- {{activeMenu}} -->
<!-- dddd activeMenu-->
<el-menu
:default-active="activeMenu"
:collapse="isCollapse"

View File

@ -112,7 +112,7 @@ export const constantRoutes = [
path: 'detail',
component: () => import('@/views/convenience/detail'),
name: 'ConvenienceDetail',
meta: { title: '工单详情', icon: 'convenience', affix: true },
meta: { title: '工单详情', icon: 'convenience', affix: true ,activeMenu:'/convenience/list'},
hidden: true
},
{

View File

@ -13,7 +13,10 @@
class="el-form"
>
<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 label="办事项目">
@ -65,9 +68,9 @@
</template>
<script>
import { add, typeList } from '@/api/convenience'
import { info } from '@/api/staff'
import AliOss from '@/components/AliOSS/index.vue'
import { add, typeList } from "@/api/convenience";
import { info } from "@/api/staff";
import AliOss from "@/components/AliOSS/index.vue";
// import Pagination from "@/components/Pagination";
// import { list, typeList } from "@/api/convenience";
@ -79,70 +82,98 @@ export default {
},
data() {
var checkInfo = (rule, value, callback) => {
info({ param: this.searchInput || undefined }).then(res => {
if (!res.d) {
return callback(new Error('查无此人'))
} else {
this.convenience.residentInformation = res.d.id
}
})
}
// console.log(value);
// if (value === undefined) {
// console.log('if');
// return callback(new Error(""));
// } 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 {
convenience: {
residentInformation: undefined,
residentInformation: "",
eventTypeId: undefined,
remark: undefined,
sponsor: 'STAFF',
sponsor: "STAFF",
attachment: undefined
},
typeOptions: [],
rules: {
residentInformation: [{ validator: checkInfo, trigger: 'blur' }]
residentInformation: [{ validator: checkInfo, trigger: "blur" }]
},
fileList: undefined,
searchInput: undefined
}
};
},
mounted() {
this.getTypeList()
this.getTypeList();
},
methods: {
getTypeList() {
typeList().then(res => {
this.typeOptions = []
this.typeOptions = [];
res.d.map(i => {
const children = []
const children = [];
i.eventTypesList.map(c => {
const level2 = {
label: c.eventName,
value: c.id
}
children.push(level2)
})
};
children.push(level2);
});
const level1 = {
label: i.eventName,
children
}
};
this.typeOptions.push(level1)
})
})
this.typeOptions.push(level1);
});
});
},
handleAdd() {
add(this.convenience).then(res => {
if (res.c === 200) {
this.$notify.success('创建成功')
this.$router.push('/convenience/list')
this.$refs.convenienceForm.validate(valid => {
if (valid) {
this.convenience.residentInformation = this.searchInput;
add(this.convenience).then(res => {
if (res.c === 200) {
this.$notify.success("创建成功");
this.$router.push("/convenience/list");
}
});
}
})
});
},
handlePreview() {},
handleRemove() {},
beforeRemove() {},
handleExceed() {}
}
}
};
</script>
<style scope></style>

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 770 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 726 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 725 B

View File

@ -3,7 +3,7 @@
<div class="filter-container">
<el-button
type="primary"
style="position:absolute;right:50px;top:120px"
style="position:absolute;right:50px;margin-top:80px"
@click="$router.push('/convenience/add')"
><i class="el-icon-plus" /> 直接建立工单</el-button>
<div class="title">工单列表</div>
@ -31,7 +31,7 @@
<br>
</div>
<div class="convenienceList">
<div class="convenienceList" v-loading="listLoading">
<div
v-for="(item, index) in list"
:key="item.id"
@ -43,7 +43,7 @@
<div class="convenience_item_title" style="flex:1">
<i class="icon_list" />
<div>
<div class="cTitle">城乡养老保险个人变更登记</div>
<div class="cTitle">{{ item.eventType.eventName }}</div>
<div class="createDate">
{{ item.sponsor | sponsorFilter }}创建于{{
item.createDate | parseTime("{y}-{m}-{d} {h}:{i}:{s}")
@ -56,13 +56,16 @@
<p>流水号{{ item.serialNumber }}</p>
<p>
阶段{{ 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">{{
timers && timers[index].status === null
? ""
: timers&&timers[index].status
? "已超时"
: "即将超时"
: timers && timers[index].status
? "已超时"
: "即将超时"
}}</span>
</p>
</div>
@ -76,10 +79,12 @@
</p>
</div>
<div style="flex:1">
<p>受理人{{ item.currentResponsiblePerson.name }}</p>
<p>受理人{{ item.firstResponsiblePerson.name }}</p>
</div>
<div style="flex:1">
<p style="font-size:20px;color:#ff6918">
<div
style="flex:1;align-items: center;justify-items: center;display: flex;"
>
<!-- <p style="font-size:20px;color:#ff6918">
<i class="icon_timer" />{{
(timers && timeFormat(timers[index].time)) || "00:00:00"
}}
@ -87,12 +92,28 @@
<p>
<el-button
v-if="item.phase === 'PENDING_ORDER'"
style="margin-left:50px"
style="margin-left:44px;font-size:14px;padding:7px 10px;width:70px"
type="primary"
size="mini"
@click="handleUpdate(item, 5)"
>接单</el-button>
</p>
>接单</el-button
>
</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>
@ -198,10 +219,10 @@ export default {
filters: {
sponsorFilter(status) {
const statusMap = {
SELF: '居民',
STAFF: '工作人员'
}
return statusMap[status]
SELF: "群众",
STAFF: "工作人员"
};
return statusMap[status];
},
phaseFilter(status) {
const statusMap = {
@ -214,13 +235,13 @@ export default {
},
statusFilter(status) {
const statusMap = {
MINE: '待我处理',
FORWARDED: '已转交',
FORWARDED_APPLY: '转交超限审批中',
SUBMIT_APPLY: '提交申请',
WAIT_APPLY: '待审核'
}
return statusMap[status]
MINE: "我处理",
FORWARDED: "已转交",
FORWARDED_APPLY: "转交超限审批中",
SUBMIT_APPLY: "已提交审批",
WAIT_APPLY: "待审核"
};
return statusMap[status];
},
typeFilter(status) {
const statusMap = {
@ -302,12 +323,13 @@ export default {
getList() {
this.listLoading = true
list(this.listQuery).then(res => {
this.list = res.d.records
this.listLoading = false
clearInterval(this.timersInterval)
const tempData = res.d.records
const now = Date.parse(new Date()).toString() / 1000
const arr = []
this.list = res.d.records;
this.listLoading = false;
clearInterval(this.timersInterval);
const tempData = res.d.records;
const now = Date.parse(new Date()).toString() / 1000;
// console.log(now);
const arr = [];
tempData.map((item, index) => {
let msec = []
let obj = {}
@ -324,7 +346,7 @@ export default {
break
case 'PREREQUISITES':
//
msec = now - item.createDate - item.acceptanceTime
msec = now - item.createDate;
obj = {
time: msec,
phase: item.phase,
@ -334,11 +356,7 @@ export default {
break
case 'PROCESSING':
//
msec =
now -
item.createDate -
item.acceptanceTime -
item.prerequisitesTime
msec = now - item.createDate;
obj = {
time: msec,
phase: item.phase,

View File

@ -1,396 +1,64 @@
<template>
<el-row :gutter="40" class="panel-group">
<!-- <el-row :gutter="40" class="panel-group">
<el-col
v-for="(value, key, index) in statisticalData"
:key="index"
:xs="12"
:sm="12"
:lg="6"
:lg="key==='all'?12:6"
class="card-panel-col"
>
<div class="card-panel">
<div class="card-panel-icon-wrapper icon-people">
<svg-icon icon-class="peoples" class-name="card-panel-icon" />
<i class="icon_"></i>
</div>
<div class="card-panel-description">
<div v-if="key==='all'">累计服务量 </div>
<div class="card-panel-text">
{{ key == "all" ? "总服务量" : key }}
</div>
<div class="numText">{{value}}</div>
<count-to
:start-val="0"
:end-val="value"
:duration="2600"
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-people">
<svg-icon icon-class="peoples" class-name="card-panel-icon" />
</div>
<div class="card-panel-description">
<div class="card-panel-text">
不满意率
</el-row> -->
<el-row :gutter="20">
<el-col
v-for="(value, key, index) in statisticalData"
:key="index"
:xs="12"
: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>
<count-to
:start-val="0"
:end-val="102400"
:duration="2600"
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-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>
</template>
<script>
import CountTo from 'vue-count-to'
import { statisticalData } from '@/api/statisticalData'
import CountTo from "vue-count-to";
import { statisticalData } from "@/api/statisticalData";
export default {
components: {
@ -403,10 +71,10 @@ export default {
eventTypeId: undefined
},
statisticalData: undefined
}
};
},
created() {
this.getStatisticalData()
this.getStatisticalData();
},
methods: {
// handleSetLineChartData(type) {
@ -414,14 +82,141 @@ export default {
// }
getStatisticalData() {
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>
<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 {
margin-top: 18px;

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

View File

@ -2,8 +2,10 @@
<div
class="login-container"
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
style="background: white;
width: 1053px;
@ -444,5 +446,21 @@ $light_gray: #1890ff;
padding: 10px;
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>

View File

@ -58,7 +58,7 @@
</template>
<script>
import Pagination from '@/components/Pagination'
// import Pagination from '@/components/Pagination'
import { workBookList } from '@/api/workBook'
export default {