sunday
This commit is contained in:
parent
2817066f5b
commit
866e452aa2
28
src/App.vue
28
src/App.vue
|
@ -6,6 +6,30 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
name: 'App'
|
name: "App"
|
||||||
}
|
};
|
||||||
</script>
|
</script>
|
||||||
|
<style>
|
||||||
|
.app-container .el-button--primary {
|
||||||
|
border-radius: 21px;
|
||||||
|
box-shadow: 1px 1px 2px 0px #4081ff;
|
||||||
|
padding: 10px 38px;
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
.el-dialog .el-dialog__footer .el-button {
|
||||||
|
border-radius: 18px;
|
||||||
|
font-size: 14px;
|
||||||
|
padding: 10px 20px;
|
||||||
|
min-width: 98px;
|
||||||
|
}
|
||||||
|
.status_btn .el-button {
|
||||||
|
padding: 7px 10px;
|
||||||
|
font-size: 14px;
|
||||||
|
border-radius: 15px;
|
||||||
|
}
|
||||||
|
.status_btn .el-button--success {
|
||||||
|
padding: 7px 10px;
|
||||||
|
font-size: 14px;
|
||||||
|
border-radius: 15px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
<!-- :on-exceed="handleExceed"
|
<!-- :on-exceed="handleExceed"
|
||||||
:before-remove="beforeRemove"
|
:before-remove="beforeRemove"
|
||||||
:on-preview="handlePreview" -->
|
:on-preview="handlePreview" -->
|
||||||
<el-button size="small" type="primary">点击上传</el-button>
|
<el-button size="small" type="default" plain style="background:#fff;border:1px solid #4081ff;color:#4081ff">上传附件</el-button>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ export default {
|
||||||
const first = matched[0]
|
const first = matched[0]
|
||||||
|
|
||||||
if (!this.isDashboard(first)) {
|
if (!this.isDashboard(first)) {
|
||||||
matched = [{ path: '/dashboard', meta: { title: 'Dashboard' }}].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)
|
||||||
|
@ -70,9 +70,11 @@ export default {
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.app-breadcrumb.el-breadcrumb {
|
.app-breadcrumb.el-breadcrumb {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
font-size: 14px;
|
// font-size: 14px;
|
||||||
|
font-size: 16px;
|
||||||
line-height: 50px;
|
line-height: 50px;
|
||||||
margin-left: 8px;
|
// margin-left: 8px;
|
||||||
|
margin-left: 20px;
|
||||||
|
|
||||||
.no-redirect {
|
.no-redirect {
|
||||||
color: #97a8be;
|
color: #97a8be;
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<section class="app-main">
|
<section class="app-main">
|
||||||
|
<breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
|
||||||
<transition name="fade-transform" mode="out-in">
|
<transition name="fade-transform" mode="out-in">
|
||||||
<keep-alive :include="cachedViews">
|
<keep-alive :include="cachedViews">
|
||||||
<router-view :key="key" />
|
<router-view :key="key" />
|
||||||
|
@ -9,8 +10,12 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import Breadcrumb from "@/components/Breadcrumb";
|
||||||
export default {
|
export default {
|
||||||
name: 'AppMain',
|
name: 'AppMain',
|
||||||
|
components: {
|
||||||
|
Breadcrumb,
|
||||||
|
},
|
||||||
computed: {
|
computed: {
|
||||||
cachedViews() {
|
cachedViews() {
|
||||||
return this.$store.state.tagsView.cachedViews
|
return this.$store.state.tagsView.cachedViews
|
||||||
|
@ -55,4 +60,7 @@ export default {
|
||||||
padding-right: 15px;
|
padding-right: 15px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.app-breadcrumb.el-breadcrumb{
|
||||||
|
font-size: 16px !important;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="navbar">
|
<div class="navbar">
|
||||||
<hamburger id="hamburger-container" :is-active="sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" />
|
<!-- <hamburger id="hamburger-container" :is-active="sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" /> -->
|
||||||
|
|
||||||
<breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
|
<!-- <breadcrumb id="breadcrumb-container" class="breadcrumb-container" /> -->
|
||||||
|
|
||||||
<div class="right-menu">
|
<div class="right-menu">
|
||||||
<template v-if="device!=='mobile'">
|
<!-- <template v-if="device!=='mobile'">
|
||||||
<search id="header-search" class="right-menu-item" />
|
<search id="header-search" class="right-menu-item" />
|
||||||
|
|
||||||
<error-log class="errLog-container right-menu-item hover-effect" />
|
<error-log class="errLog-container right-menu-item hover-effect" />
|
||||||
|
@ -16,11 +16,19 @@
|
||||||
<size-select id="size-select" class="right-menu-item hover-effect" />
|
<size-select id="size-select" class="right-menu-item hover-effect" />
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
|
|
||||||
</template>
|
</template> -->
|
||||||
|
|
||||||
<el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
|
<!-- <div class="avatar-wrapper"> -->
|
||||||
|
<img :src="avatar" class="user-avatar" />
|
||||||
|
<span>{{name}}</span>
|
||||||
|
<el-button icon="el-icon-switch-button" type="text" style="margin-left:26px;margin-right:20px">退出登录</el-button>
|
||||||
|
<!-- <div><i ></i>退出登录</div> -->
|
||||||
|
<!-- <i class="el-icon-caret-bottom" /> -->
|
||||||
|
<!-- </div> -->
|
||||||
|
|
||||||
|
<!-- <el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
|
||||||
<div class="avatar-wrapper">
|
<div class="avatar-wrapper">
|
||||||
<img :src="avatar+'?imageView2/1/w/80/h/80'" class="user-avatar">
|
<img :src="avatar" class="user-avatar">
|
||||||
<i class="el-icon-caret-bottom" />
|
<i class="el-icon-caret-bottom" />
|
||||||
</div>
|
</div>
|
||||||
<el-dropdown-menu slot="dropdown">
|
<el-dropdown-menu slot="dropdown">
|
||||||
|
@ -40,19 +48,19 @@
|
||||||
<span style="display:block;">Log Out</span>
|
<span style="display:block;">Log Out</span>
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
</el-dropdown>
|
</el-dropdown> -->
|
||||||
</div>
|
</div>
|
||||||
</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";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
|
@ -64,22 +72,18 @@ export default {
|
||||||
Search
|
Search
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters([
|
...mapGetters(["sidebar", "avatar", "device","name"])
|
||||||
'sidebar',
|
|
||||||
'avatar',
|
|
||||||
'device'
|
|
||||||
])
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
toggleSideBar() {
|
toggleSideBar() {
|
||||||
this.$store.dispatch('app/toggleSideBar')
|
this.$store.dispatch("app/toggleSideBar");
|
||||||
},
|
},
|
||||||
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>
|
||||||
|
@ -88,18 +92,18 @@ export default {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
position: relative;
|
position: relative;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
box-shadow: 0 1px 4px rgba(0,21,41,.08);
|
box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08);
|
||||||
|
|
||||||
.hamburger-container {
|
.hamburger-container {
|
||||||
line-height: 46px;
|
line-height: 46px;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
float: left;
|
float: left;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
transition: background .3s;
|
transition: background 0.3s;
|
||||||
-webkit-tap-highlight-color:transparent;
|
-webkit-tap-highlight-color: transparent;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background: rgba(0, 0, 0, .025)
|
background: rgba(0, 0, 0, 0.025);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -116,6 +120,8 @@ export default {
|
||||||
float: right;
|
float: right;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
line-height: 50px;
|
line-height: 50px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
&:focus {
|
&:focus {
|
||||||
outline: none;
|
outline: none;
|
||||||
|
@ -131,13 +137,20 @@ export default {
|
||||||
|
|
||||||
&.hover-effect {
|
&.hover-effect {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
transition: background .3s;
|
transition: background 0.3s;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background: rgba(0, 0, 0, .025)
|
background: rgba(0, 0, 0, 0.025);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.user-avatar {
|
||||||
|
cursor: pointer;
|
||||||
|
width: 28px;
|
||||||
|
height: 28px;
|
||||||
|
border-radius: 28px;
|
||||||
|
margin-right: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
.avatar-container {
|
.avatar-container {
|
||||||
margin-right: 30px;
|
margin-right: 30px;
|
||||||
|
@ -148,9 +161,9 @@ export default {
|
||||||
|
|
||||||
.user-avatar {
|
.user-avatar {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
width: 40px;
|
width: 28px;
|
||||||
height: 40px;
|
height: 28px;
|
||||||
border-radius: 10px;
|
border-radius: 28px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-icon-caret-bottom {
|
.el-icon-caret-bottom {
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<div :class="{hasTagsView:needTagsView}" class="main-container">
|
<div :class="{hasTagsView:needTagsView}" class="main-container">
|
||||||
<div :class="{'fixed-header':fixedHeader}">
|
<div :class="{'fixed-header':fixedHeader}">
|
||||||
<navbar />
|
<navbar />
|
||||||
<tags-view v-if="needTagsView" />
|
<!-- <tags-view v-if="needTagsView" /> -->
|
||||||
</div>
|
</div>
|
||||||
<app-main />
|
<app-main />
|
||||||
<!-- <right-panel v-if="showSettings">
|
<!-- <right-panel v-if="showSettings">
|
||||||
|
|
|
@ -72,6 +72,7 @@ export const constantRoutes = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/',
|
path: '/',
|
||||||
|
name:'Dashboard',
|
||||||
component: Layout,
|
component: Layout,
|
||||||
redirect: '/dashboard',
|
redirect: '/dashboard',
|
||||||
children: [
|
children: [
|
||||||
|
@ -127,6 +128,7 @@ export const constantRoutes = [
|
||||||
path: '/workBook',
|
path: '/workBook',
|
||||||
component: Layout,
|
component: Layout,
|
||||||
name: 'WorkBook',
|
name: 'WorkBook',
|
||||||
|
redirect: '/workBook/list',
|
||||||
meta: {
|
meta: {
|
||||||
title: '工作手册',
|
title: '工作手册',
|
||||||
icon: 'list',
|
icon: 'list',
|
||||||
|
|
|
@ -392,3 +392,19 @@ export function errorCodeMap(code) {
|
||||||
}
|
}
|
||||||
return errorCodeMap[code]
|
return errorCodeMap[code]
|
||||||
}
|
}
|
||||||
|
// export function 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;
|
||||||
|
// }
|
|
@ -6,14 +6,14 @@
|
||||||
<!-- bbc -->
|
<!-- bbc -->
|
||||||
<el-form
|
<el-form
|
||||||
ref="convenienceForm"
|
ref="convenienceForm"
|
||||||
style="width:480px"
|
style="width:680px"
|
||||||
:model="convenience"
|
:model="convenience"
|
||||||
:rules="rules"
|
:rules="rules"
|
||||||
label-width="80px"
|
label-width="80px"
|
||||||
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="searchInput" placeholder="群众身份证号或者手机号" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="办事项目">
|
<el-form-item label="办事项目">
|
||||||
|
@ -23,7 +23,7 @@
|
||||||
:options="typeOptions"
|
:options="typeOptions"
|
||||||
:show-all-levels="false"
|
:show-all-levels="false"
|
||||||
:props="{ emitPath: false }"
|
:props="{ emitPath: false }"
|
||||||
placeholder="选择办事项目"
|
placeholder="选择大项目"
|
||||||
style="width:100%"
|
style="width:100%"
|
||||||
clearable
|
clearable
|
||||||
/>
|
/>
|
||||||
|
@ -34,6 +34,7 @@
|
||||||
v-model="convenience.remark"
|
v-model="convenience.remark"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
placeholder="请输入"
|
placeholder="请输入"
|
||||||
|
:autosize="{ minRows: 6, maxRows: 8 }"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
|
@ -57,7 +58,7 @@
|
||||||
</el-upload> -->
|
</el-upload> -->
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="handleAdd">发起办事</el-button>
|
<el-button type="primary" @click="handleAdd">创建工单</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
After Width: | Height: | Size: 953 B |
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
|
@ -1,31 +1,12 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container" style="padding-top:15px">
|
||||||
<div class="filter-container">
|
<div class="filter-container">
|
||||||
<!-- <el-button
|
|
||||||
class="filter-item"
|
|
||||||
style="margin-left: 10px;"
|
|
||||||
type="primary"
|
|
||||||
icon="el-icon-edit"
|
|
||||||
@click="handleJump('create')"
|
|
||||||
>新增
|
|
||||||
</el-button>
|
|
||||||
<el-button
|
|
||||||
class="filter-item"
|
|
||||||
style="margin-left: 10px;"
|
|
||||||
type="primary"
|
|
||||||
@click="handleExport"
|
|
||||||
>导出
|
|
||||||
</el-button> -->
|
|
||||||
<!-- <el-cascader
|
|
||||||
v-model="selectType"
|
|
||||||
:options="types"
|
|
||||||
@change="handleTypeChange"
|
|
||||||
></el-cascader> -->
|
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
style="position:absolute;right:50px;top:120px"
|
style="position:absolute;right:50px;top:120px"
|
||||||
@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>
|
||||||
<div style="margin-bottom:15px;margin-top:15px" />
|
<div style="margin-bottom:15px;margin-top:15px" />
|
||||||
<el-radio-group v-model="listQuery.phase">
|
<el-radio-group v-model="listQuery.phase">
|
||||||
|
@ -35,108 +16,25 @@
|
||||||
<el-radio-button label="PROCESSING">办理中</el-radio-button>
|
<el-radio-button label="PROCESSING">办理中</el-radio-button>
|
||||||
<el-radio-button label="FINISH">已办结</el-radio-button>
|
<el-radio-button label="FINISH">已办结</el-radio-button>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
<br>
|
<br />
|
||||||
<br>
|
<br />
|
||||||
<el-radio-group v-model="listQuery.status">
|
<el-radio-group v-model="listQuery.status">
|
||||||
<el-radio-button :label="undefined">全部状态</el-radio-button>
|
<el-radio-button :label="undefined">全部状态</el-radio-button>
|
||||||
<el-radio-button label="MINE">我处理</el-radio-button>
|
<el-radio-button label="MINE">我处理</el-radio-button>
|
||||||
<el-radio-button label="FORWARDED">已转交</el-radio-button>
|
<el-radio-button label="FORWARDED">已转交</el-radio-button>
|
||||||
<el-radio-button
|
<el-radio-button label="FORWARDED_APPLY"
|
||||||
label="FORWARDED_APPLY"
|
>转交超限审批中</el-radio-button
|
||||||
>转交超限审批中</el-radio-button>
|
>
|
||||||
<el-radio-button label="SUBMIT_APPLY">已提交审批</el-radio-button>
|
<el-radio-button label="SUBMIT_APPLY">已提交审批</el-radio-button>
|
||||||
<el-radio-button label="WAIT_APPLY">待我审批</el-radio-button>
|
<el-radio-button label="WAIT_APPLY">待我审批</el-radio-button>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
<br>
|
<br />
|
||||||
<br>
|
<br />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- <el-table
|
|
||||||
class="tb"
|
|
||||||
v-loading="listLoading"
|
|
||||||
:data="list"
|
|
||||||
border
|
|
||||||
fit
|
|
||||||
highlight-current-row
|
|
||||||
style="width: 100%;"
|
|
||||||
>
|
|
||||||
<el-table-column label="流水号" min-width="150px" align="center">
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<el-tag
|
|
||||||
style="cursor: pointer"
|
|
||||||
@click="
|
|
||||||
$router.push({
|
|
||||||
path: '/convenience/detail',
|
|
||||||
query: { id: scope.row.id }
|
|
||||||
})
|
|
||||||
"
|
|
||||||
>{{ scope.row.serialNumber }}</el-tag
|
|
||||||
>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column label="阶段" min-width="150px" align="center">
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<span>{{ scope.row.phase | phaseFilter }}</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column label="发起人" min-width="150px" align="center">
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<span>{{ scope.row.sponsor | sponsorFilter }}</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column label="申办人" min-width="150px" align="center">
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<span>{{ scope.row.residentInformation.name }}</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column label="办理人" min-width="150px" align="center">
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<span>{{ scope.row.currentResponsiblePerson.name }}</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column label="申请事项" min-width="150px" align="center">
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<span>{{
|
|
||||||
scope.row.eventType && scope.row.eventType.eventName
|
|
||||||
}}</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column label="创建时间" min-width="150px" align="center">
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<span class="">{{
|
|
||||||
scope.row.createDate | parseTime("{y}-{m}-{d} {h}:{i}:{s}")
|
|
||||||
}}</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column label="任务状态" min-width="150px" align="center">
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<span>{{ scope.row.statusList[0].status | statusFilter }}</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column label="操作" width="300px" fixed="right" align="center">
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<el-button
|
|
||||||
v-if="scope.row.phase === 'PENDING_ORDER'"
|
|
||||||
type="primary"
|
|
||||||
size="mini"
|
|
||||||
@click="handleUpdate(scope.row, 5)"
|
|
||||||
>接单</el-button
|
|
||||||
>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
</el-table> -->
|
|
||||||
|
|
||||||
<div class="convenienceList">
|
<div class="convenienceList">
|
||||||
<div
|
<div
|
||||||
v-for="item in list"
|
v-for="(item, index) in list"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
class="convenience_item"
|
class="convenience_item"
|
||||||
@click="
|
@click="
|
||||||
|
@ -172,17 +70,19 @@
|
||||||
</div>
|
</div>
|
||||||
<div style="flex:1">
|
<div style="flex:1">
|
||||||
<p style="font-size:20px;color:#ff6918">
|
<p style="font-size:20px;color:#ff6918">
|
||||||
<i class="icon_timer" />04:25:30
|
<i class="icon_timer" />{{
|
||||||
|
(timers && timeFormat(timers[index].time)) || "00:00:00"
|
||||||
|
}}
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<!-- v-if="item.phase === 'PENDING_ORDER'" -->
|
|
||||||
<el-button
|
<el-button
|
||||||
v-if="item.phase === 'PENDING_ORDER'"
|
v-if="item.phase === 'PENDING_ORDER'"
|
||||||
style="margin-left:50px"
|
style="margin-left:50px"
|
||||||
type="primary"
|
type="primary"
|
||||||
size="mini"
|
size="mini"
|
||||||
@click="handleUpdate(item, 5)"
|
@click="handleUpdate(item, 5)"
|
||||||
>接单</el-button>
|
>接单</el-button
|
||||||
|
>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -276,10 +176,10 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// import Pagination from "@/components/Pagination";
|
// import Pagination from "@/components/Pagination";
|
||||||
import { list, typeList, update } from '@/api/convenience'
|
import { list, typeList, update } from "@/api/convenience";
|
||||||
import { parseTime } from '@/utils'
|
import { parseTime } from "@/utils";
|
||||||
import { staffList } from '@/api/staff'
|
import { staffList } from "@/api/staff";
|
||||||
import AliOss from '@/components/AliOSS/index.vue'
|
import AliOss from "@/components/AliOSS/index.vue";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
|
@ -289,48 +189,48 @@ 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 = {
|
||||||
PENDING_ORDER: '待接单',
|
PENDING_ORDER: "待接单",
|
||||||
PREREQUISITES: '要件准备中',
|
PREREQUISITES: "要件准备中",
|
||||||
PROCESSING: '办理中',
|
PROCESSING: "办理中",
|
||||||
FINISH: '办结'
|
FINISH: "办结"
|
||||||
}
|
};
|
||||||
return statusMap[status]
|
return statusMap[status];
|
||||||
},
|
},
|
||||||
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 = {
|
||||||
1: '建立工单',
|
1: "建立工单",
|
||||||
2: '撤销工单',
|
2: "撤销工单",
|
||||||
3: '沟通',
|
3: "沟通",
|
||||||
4: '调整工单类别',
|
4: "调整工单类别",
|
||||||
5: '接单',
|
5: "接单",
|
||||||
6: '要件齐备',
|
6: "要件齐备",
|
||||||
7: '办结',
|
7: "办结",
|
||||||
8: '转交超限审批提交',
|
8: "转交超限审批提交",
|
||||||
9: '转交超限审批撤销',
|
9: "转交超限审批撤销",
|
||||||
10: '转交超限审批',
|
10: "转交超限审批",
|
||||||
11: '发起审批',
|
11: "发起审批",
|
||||||
12: '撤销审批',
|
12: "撤销审批",
|
||||||
13: '审批操作',
|
13: "审批操作",
|
||||||
14: '转交'
|
14: "转交"
|
||||||
}
|
};
|
||||||
return statusMap[status]
|
return statusMap[status];
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
@ -361,68 +261,126 @@ export default {
|
||||||
},
|
},
|
||||||
msec: 0,
|
msec: 0,
|
||||||
rules: {
|
rules: {
|
||||||
ids: [{ required: true, message: '请选择操作对象', trigger: 'change' }]
|
ids: [{ required: true, message: "请选择操作对象", trigger: "change" }]
|
||||||
}
|
},
|
||||||
}
|
timers: undefined,
|
||||||
|
timersInterval:undefined
|
||||||
|
};
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
'listQuery.phase': {
|
"listQuery.phase": {
|
||||||
// 深度监听,可监听到对象、数组的变化
|
// 深度监听,可监听到对象、数组的变化
|
||||||
handler(val) {
|
handler(val) {
|
||||||
this.listQuery.phase = val
|
this.listQuery.phase = val;
|
||||||
this.getList()
|
this.getList();
|
||||||
},
|
},
|
||||||
deep: true // true 深度监听
|
deep: true // true 深度监听
|
||||||
},
|
},
|
||||||
'listQuery.status': {
|
"listQuery.status": {
|
||||||
// 深度监听,可监听到对象、数组的变化
|
// 深度监听,可监听到对象、数组的变化
|
||||||
handler(val) {
|
handler(val) {
|
||||||
this.listQuery.status = val
|
this.listQuery.status = val;
|
||||||
this.getList()
|
this.getList();
|
||||||
},
|
},
|
||||||
deep: true // true 深度监听
|
deep: true // true 深度监听
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getList()
|
this.getList();
|
||||||
this.getStaffList()
|
this.getStaffList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
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)
|
||||||
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;
|
||||||
tempData.map(item => {
|
let arr = [];
|
||||||
|
tempData.map((item, index) => {
|
||||||
|
// console.log(item);
|
||||||
// PREREQUISITES: "要件准备中",
|
// PREREQUISITES: "要件准备中",
|
||||||
// PROCESSING: "办理中",
|
// PROCESSING: "办理中",
|
||||||
// FINISH: "办结"
|
// FINISH: "办结"
|
||||||
|
let msec = [];
|
||||||
|
let obj = {};
|
||||||
switch (item.phase) {
|
switch (item.phase) {
|
||||||
case 'PENDING_ORDER':
|
case "PENDING_ORDER":
|
||||||
console.log(item.createDate)
|
// 待接单
|
||||||
// this.countdown()
|
// console.log(item.createDate)
|
||||||
this.msec = now - item.createDate
|
// this.timers[index]++;
|
||||||
// this.timeFormat(now-item.createDate)
|
msec = now - item.createDate;
|
||||||
// this.msec=item.createDate
|
// msec++;
|
||||||
break
|
// console.log(msec);
|
||||||
case 'PREREQUISITES':
|
obj = {
|
||||||
this.msec = now - item.createDate
|
time: msec,
|
||||||
break
|
phase: item.phase
|
||||||
case 'PROCESSING':
|
};
|
||||||
break
|
|
||||||
case 'FINISH':
|
arr.push(obj);
|
||||||
break
|
break;
|
||||||
|
case "PREREQUISITES":
|
||||||
|
// 要件准备
|
||||||
|
// console.log(index);
|
||||||
|
// console.log(now);
|
||||||
|
// console.log(item.createDate);
|
||||||
|
// console.log(item.acceptanceTime);
|
||||||
|
// console.log(now - item.createDate - item.acceptanceTime);
|
||||||
|
msec = now - item.createDate - item.acceptanceTime;
|
||||||
|
obj = {
|
||||||
|
time: msec,
|
||||||
|
phase: item.phase
|
||||||
|
};
|
||||||
|
arr.push(obj);
|
||||||
|
break;
|
||||||
|
case "PROCESSING":
|
||||||
|
// 办理中
|
||||||
|
msec =
|
||||||
|
now -
|
||||||
|
item.createDate -
|
||||||
|
item.acceptanceTime -
|
||||||
|
item.prerequisitesTime;
|
||||||
|
obj = {
|
||||||
|
time: msec,
|
||||||
|
phase: item.phase
|
||||||
|
};
|
||||||
|
arr.push(obj);
|
||||||
|
break;
|
||||||
|
case "FINISH":
|
||||||
|
msec =
|
||||||
|
item.acceptanceTime + item.prerequisitesTime + item.finishTime;
|
||||||
|
obj = {
|
||||||
|
time: msec,
|
||||||
|
phase: item.phase
|
||||||
|
};
|
||||||
|
arr.push(obj);
|
||||||
|
// 办结
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
// console.log("default");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
})
|
// console.log(arr);
|
||||||
|
this.timersInterval = setInterval(() => {
|
||||||
|
// console.log(arr);
|
||||||
|
if (arr.length > 0) {
|
||||||
|
arr.map(item => {
|
||||||
|
if (item.phase !== "FINISH") {
|
||||||
|
item.time++;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
this.timers = arr;
|
||||||
|
}, 1000);
|
||||||
|
});
|
||||||
},
|
},
|
||||||
getTypeList() {
|
getTypeList() {
|
||||||
typeList().then(res => {
|
typeList().then(res => {
|
||||||
console.log(res)
|
// console.log(res);
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
getStaffList() {
|
getStaffList() {
|
||||||
staffList().then(res => {
|
staffList().then(res => {
|
||||||
|
@ -430,10 +388,10 @@ export default {
|
||||||
const obj = {
|
const obj = {
|
||||||
label: item.name,
|
label: item.name,
|
||||||
value: item.id
|
value: item.id
|
||||||
}
|
};
|
||||||
this.staffOptions.push(obj)
|
this.staffOptions.push(obj);
|
||||||
})
|
});
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
handleTypeChange() {},
|
handleTypeChange() {},
|
||||||
resetPayload() {
|
resetPayload() {
|
||||||
|
@ -445,140 +403,105 @@ export default {
|
||||||
attachmentList: undefined,
|
attachmentList: undefined,
|
||||||
approve: undefined,
|
approve: undefined,
|
||||||
evaluation: undefined
|
evaluation: undefined
|
||||||
}
|
};
|
||||||
},
|
},
|
||||||
handleUpdate(row, type) {
|
handleUpdate(row, type) {
|
||||||
this.resetPayload()
|
this.resetPayload();
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$refs.applyForm.clearValidate()
|
this.$refs.applyForm.clearValidate();
|
||||||
})
|
});
|
||||||
this.updateType = type
|
this.updateType = type;
|
||||||
this.payload.id = row.id
|
this.payload.id = row.id;
|
||||||
this.payload.version = row.version
|
this.payload.version = row.version;
|
||||||
this.payload.type = type
|
this.payload.type = type;
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case 5:
|
case 5:
|
||||||
this.applyDialog = true
|
this.applyDialog = true;
|
||||||
break
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
this.applyDialog = true
|
this.applyDialog = true;
|
||||||
break
|
break;
|
||||||
case 11:
|
case 11:
|
||||||
this.applyDialog = true
|
this.applyDialog = true;
|
||||||
break
|
break;
|
||||||
case 13:
|
case 13:
|
||||||
this.applyDialog = true
|
this.applyDialog = true;
|
||||||
break
|
break;
|
||||||
case 14:
|
case 14:
|
||||||
this.applyDialog = true
|
this.applyDialog = true;
|
||||||
break
|
break;
|
||||||
default:
|
default:
|
||||||
this.updateData()
|
this.updateData();
|
||||||
break
|
break;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
updateData() {
|
updateData() {
|
||||||
update(this.payload).then(res => {
|
update(this.payload).then(res => {
|
||||||
if (res.c === 200) {
|
if (res.c === 200) {
|
||||||
this.$notify.success('操作成功')
|
this.$notify.success("操作成功");
|
||||||
this.getList()
|
this.getList();
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
apply() {
|
apply() {
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$refs.applyForm.validate(valid => {
|
this.$refs.applyForm.validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.updateData()
|
this.updateData();
|
||||||
this.applyDialog = false
|
this.applyDialog = false;
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
}, 100)
|
}, 100);
|
||||||
},
|
},
|
||||||
handleFilterPhase(phase, event) {
|
handleFilterPhase(phase, event) {
|
||||||
// console.log(event.target.tagName==='SPAN');
|
// console.log(event.target.tagName==='SPAN');
|
||||||
if (event.target.tagName === 'SPAN') {
|
if (event.target.tagName === "SPAN") {
|
||||||
event.target.parentElement.setAttribute(
|
event.target.parentElement.setAttribute(
|
||||||
'class',
|
"class",
|
||||||
'el-button el-button--' +
|
"el-button el-button--" +
|
||||||
(phase === undefined ? 'primary' : 'default') +
|
(phase === undefined ? "primary" : "default") +
|
||||||
' el-button--medium is-round'
|
" el-button--medium is-round"
|
||||||
)
|
);
|
||||||
} else {
|
} else {
|
||||||
event.target.setAttribute(
|
event.target.setAttribute(
|
||||||
'class',
|
"class",
|
||||||
'el-button el-button--' +
|
"el-button el-button--" +
|
||||||
(phase === undefined ? 'primary' : 'default') +
|
(phase === undefined ? "primary" : "default") +
|
||||||
' el-button--medium is-round'
|
" el-button--medium is-round"
|
||||||
)
|
);
|
||||||
}
|
}
|
||||||
this.listQuery.phase = phase
|
this.listQuery.phase = phase;
|
||||||
this.getList()
|
this.getList();
|
||||||
},
|
},
|
||||||
handleFilterStatus(status) {
|
handleFilterStatus(status) {
|
||||||
this.listQuery.status = status
|
this.listQuery.status = status;
|
||||||
this.getList()
|
this.getList();
|
||||||
},
|
},
|
||||||
handlePreview() {},
|
handlePreview() {},
|
||||||
handleRemove() {},
|
handleRemove() {},
|
||||||
beforeRemove() {},
|
beforeRemove() {},
|
||||||
handleExceed() {},
|
handleExceed() {},
|
||||||
timeFormat(timeStamp) {
|
timeFormat(timeStamp) {
|
||||||
// console.log(timeStamp);
|
const timeStr = `${
|
||||||
const timeStr = `${Math.floor(timeStamp / 3600)}:${Math.floor(
|
Math.floor(timeStamp / 3600) < 9
|
||||||
((timeStamp % 86400) % 3600) / 60
|
? "0" + Math.floor(timeStamp / 3600)
|
||||||
)}:${Math.floor(((timeStamp % 86400) % 3600) % 60)}`
|
: Math.floor(timeStamp / 3600)
|
||||||
// console.log(time);
|
}:${
|
||||||
// return time
|
Math.floor(((timeStamp % 86400) % 3600) / 60) < 9
|
||||||
return timeStr
|
? "0" + Math.floor(((timeStamp % 86400) % 3600) / 60)
|
||||||
// console.log(Math.floor(timeStamp / 3600));
|
: Math.floor(((timeStamp % 86400) % 3600) / 60)
|
||||||
// this[obj].hour = Math.floor(timeStamp / 3600);
|
}:${
|
||||||
// this[obj].minute = Math.floor(((timeStamp % 86400) % 3600) / 60);
|
Math.floor(((timeStamp % 86400) % 3600) % 60) < 9
|
||||||
// this[obj].second = Math.floor(((timeStamp % 86400) % 3600) % 60);
|
? "0" + Math.floor(((timeStamp % 86400) % 3600) % 60)
|
||||||
|
: Math.floor(((timeStamp % 86400) % 3600) % 60)
|
||||||
|
}`;
|
||||||
|
return timeStr;
|
||||||
},
|
},
|
||||||
countdown(msec) {
|
countdown(index, status) {
|
||||||
this.console.log(msec)
|
//
|
||||||
|
|
||||||
// if (phase === "PENDING_ORDER") {
|
|
||||||
// this.acceptanceInterval = setInterval(() => {
|
|
||||||
// this.timeFormat("acceptanceTime", this.acceptanceMsec);
|
|
||||||
// this.acceptanceMsec++;
|
|
||||||
// }, 1000);
|
|
||||||
// // 当前阶段的时间加上
|
|
||||||
// this.totalMsec = this.acceptanceMsec;
|
|
||||||
// this.totalTimeInterval = setInterval(() => {
|
|
||||||
// this.timeFormat("totalTime", this.totalMsec);
|
|
||||||
// this.totalMsec++;
|
|
||||||
// }, 1000);
|
|
||||||
// } else if (phase === "PREREQUISITES") {
|
|
||||||
// this.prerequisitesInterval = setInterval(() => {
|
|
||||||
// this.timeFormat("prerequisitesTime", this.preMsec);
|
|
||||||
// this.preMsec++;
|
|
||||||
// }, 1000);
|
|
||||||
// this.totalMsec = this.convenience.acceptanceTime + this.preMsec;
|
|
||||||
// this.totalTimeInterval = setInterval(() => {
|
|
||||||
// this.timeFormat("totalTime", this.totalMsec);
|
|
||||||
// this.totalMsec++;
|
|
||||||
// }, 1000);
|
|
||||||
// } else if (phase === "PROCESSING") {
|
|
||||||
// this.finishTimeInterval = setInterval(() => {
|
|
||||||
// this.timeFormat("finishTime", this.finishMsec);
|
|
||||||
// this.finishMsec++;
|
|
||||||
// }, 1000);
|
|
||||||
// this.totalMsec =
|
|
||||||
// this.convenience.acceptanceTime +
|
|
||||||
// this.convenience.prerequisitesTime +
|
|
||||||
// this.finishMsec;
|
|
||||||
// this.totalTimeInterval = setInterval(() => {
|
|
||||||
// this.timeFormat("totalTime", this.totalMsec);
|
|
||||||
// this.totalMsec++;
|
|
||||||
// }, 1000);
|
|
||||||
// } else if (phase === "FINISH") {
|
|
||||||
// this.finishMsec;
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scope>
|
<style scope>
|
||||||
|
@ -652,10 +575,10 @@ export default {
|
||||||
border: 0;
|
border: 0;
|
||||||
font-size: 12px !important;
|
font-size: 12px !important;
|
||||||
}
|
}
|
||||||
.el-radio-button:first-child .el-radio-button__inner{
|
.el-radio-button:first-child .el-radio-button__inner {
|
||||||
border-radius: 17px;
|
border-radius: 17px;
|
||||||
}
|
}
|
||||||
.el-radio-button:last-child .el-radio-button__inner{
|
.el-radio-button:last-child .el-radio-button__inner {
|
||||||
border-radius: 17px;
|
border-radius: 17px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="dashboard-editor-container">
|
<div class="dashboard-editor-container">
|
||||||
<github-corner class="github-corner" />
|
<!-- <github-corner class="github-corner" /> -->
|
||||||
|
|
||||||
<panel-group @handleSetLineChartData="handleSetLineChartData" />
|
<panel-group @handleSetLineChartData="handleSetLineChartData" />
|
||||||
|
|
||||||
<el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;">
|
<!-- <el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;">
|
||||||
<line-chart :chart-data="lineChartData" />
|
<line-chart :chart-data="lineChartData" />
|
||||||
</el-row>
|
</el-row> -->
|
||||||
|
|
||||||
<el-row :gutter="32">
|
<!-- <el-row :gutter="32">
|
||||||
<el-col :xs="24" :sm="24" :lg="8">
|
<el-col :xs="24" :sm="24" :lg="8">
|
||||||
<div class="chart-wrapper">
|
<div class="chart-wrapper">
|
||||||
<raddar-chart />
|
<raddar-chart />
|
||||||
|
@ -24,9 +24,9 @@
|
||||||
<bar-chart />
|
<bar-chart />
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row> -->
|
||||||
|
|
||||||
<el-row :gutter="8">
|
<!-- <el-row :gutter="8">
|
||||||
<el-col :xs="{span: 24}" :sm="{span: 24}" :md="{span: 24}" :lg="{span: 12}" :xl="{span: 12}" style="padding-right:8px;margin-bottom:30px;">
|
<el-col :xs="{span: 24}" :sm="{span: 24}" :md="{span: 24}" :lg="{span: 12}" :xl="{span: 12}" style="padding-right:8px;margin-bottom:30px;">
|
||||||
<transaction-table />
|
<transaction-table />
|
||||||
</el-col>
|
</el-col>
|
||||||
|
@ -36,7 +36,7 @@
|
||||||
<el-col :xs="{span: 24}" :sm="{span: 12}" :md="{span: 12}" :lg="{span: 6}" :xl="{span: 6}" style="margin-bottom:30px;">
|
<el-col :xs="{span: 24}" :sm="{span: 12}" :md="{span: 12}" :lg="{span: 6}" :xl="{span: 6}" style="margin-bottom:30px;">
|
||||||
<box-card />
|
<box-card />
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row> -->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -60,7 +60,7 @@
|
||||||
/>
|
/>
|
||||||
<!-- style="width:290px" -->
|
<!-- style="width:290px" -->
|
||||||
<!-- <el-button @click="handleSms">获取验证码</el-button> -->
|
<!-- <el-button @click="handleSms">获取验证码</el-button> -->
|
||||||
<button class="btn_getCode" type="button" :disabled="time!=5" @click="handleSms">
|
<button class="btn_getCode" type="button" :disabled="getCodeDisabled" @click="handleSms">
|
||||||
{{ codeText }}
|
{{ codeText }}
|
||||||
</button>
|
</button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -134,7 +134,8 @@ export default {
|
||||||
redirect: undefined,
|
redirect: undefined,
|
||||||
otherQuery: {},
|
otherQuery: {},
|
||||||
codeText: '获取验证码',
|
codeText: '获取验证码',
|
||||||
time: 5
|
time: 5,
|
||||||
|
getCodeDisabled:false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
|
@ -253,6 +254,7 @@ export default {
|
||||||
}, {})
|
}, {})
|
||||||
},
|
},
|
||||||
handleSms() {
|
handleSms() {
|
||||||
|
this.getCodeDisabled=false;
|
||||||
const payload = {
|
const payload = {
|
||||||
phone: this.loginForm.username,
|
phone: this.loginForm.username,
|
||||||
category: 'SIGNIN'
|
category: 'SIGNIN'
|
||||||
|
@ -266,6 +268,7 @@ export default {
|
||||||
}
|
}
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
if (res.data.c === 200) {
|
if (res.data.c === 200) {
|
||||||
|
this.getCodeDisabled=true;
|
||||||
this.timer()
|
this.timer()
|
||||||
this.$notify({
|
this.$notify({
|
||||||
title: '成功',
|
title: '成功',
|
||||||
|
@ -277,12 +280,14 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
timer() {
|
timer() {
|
||||||
|
this.codeText = `${this.time}s 后重新获取`
|
||||||
var interval = setInterval(() => {
|
var interval = setInterval(() => {
|
||||||
this.time--
|
this.time--
|
||||||
this.codeText = `${this.time}s 后重新获取`
|
this.codeText = `${this.time}s 后重新获取`
|
||||||
if (this.time === 0) {
|
if (this.time === 0) {
|
||||||
this.time = 5
|
this.time = 5
|
||||||
this.codeText = '获取验证码'
|
this.codeText = '获取验证码'
|
||||||
|
this.getCodeDisabled=false
|
||||||
clearInterval(interval)
|
clearInterval(interval)
|
||||||
}
|
}
|
||||||
}, 1000)
|
}, 1000)
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 375 KiB |
|
@ -1,8 +1,16 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<div class="filter-container" />
|
<!-- <div class="filter-container" /> -->
|
||||||
|
<div class="workBookLayout">
|
||||||
|
<div class="title">工作手册管理</div>
|
||||||
|
<div class="text-center"style="padding:10% 0">
|
||||||
|
<img class="img" src="./img/comingSoon.png" alt="" />
|
||||||
|
<h2>业务正在努力开发中...</h2>
|
||||||
|
<div style="color:#787878">该功能即将上线,请稍等</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<el-table
|
<!-- <el-table
|
||||||
v-loading="listLoading"
|
v-loading="listLoading"
|
||||||
:data="list"
|
:data="list"
|
||||||
border
|
border
|
||||||
|
@ -45,13 +53,13 @@
|
||||||
<span>{{ scope.row.releaseTime }}</span>
|
<span>{{ scope.row.releaseTime }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table> -->
|
||||||
</div>
|
</div>
|
||||||
</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 {
|
||||||
components: { Pagination },
|
components: { Pagination },
|
||||||
|
@ -65,20 +73,35 @@ export default {
|
||||||
size: 10,
|
size: 10,
|
||||||
keyword: undefined
|
keyword: undefined
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getList()
|
this.getList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getList() {
|
getList() {
|
||||||
workBookList(this.listQuery).then(res => {
|
workBookList(this.listQuery).then(res => {
|
||||||
console.log(res)
|
console.log(res);
|
||||||
this.list = res.d.records
|
this.list = res.d.records;
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style></style>
|
<style scoped>
|
||||||
|
.workBookLayout {
|
||||||
|
background: #fff;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.title {
|
||||||
|
border-left: 5px solid #1890ff;
|
||||||
|
padding-left: 8px;
|
||||||
|
font-size: 18px;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
.img {
|
||||||
|
width: 486px;
|
||||||
|
height: 268px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
Loading…
Reference in New Issue