This commit is contained in:
jr719 2021-04-12 00:28:15 +08:00
parent 2817066f5b
commit 866e452aa2
18 changed files with 1009 additions and 701 deletions

View File

@ -6,6 +6,30 @@
<script>
export default {
name: 'App'
}
name: "App"
};
</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>

View File

@ -12,7 +12,7 @@
<!-- :on-exceed="handleExceed"
:before-remove="beforeRemove"
: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>
</template>

View File

@ -37,7 +37,7 @@ export default {
const first = matched[0]
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)
@ -70,9 +70,11 @@ export default {
<style lang="scss" scoped>
.app-breadcrumb.el-breadcrumb {
display: inline-block;
font-size: 14px;
// font-size: 14px;
font-size: 16px;
line-height: 50px;
margin-left: 8px;
// margin-left: 8px;
margin-left: 20px;
.no-redirect {
color: #97a8be;

View File

@ -1,5 +1,6 @@
<template>
<section class="app-main">
<breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
<transition name="fade-transform" mode="out-in">
<keep-alive :include="cachedViews">
<router-view :key="key" />
@ -9,8 +10,12 @@
</template>
<script>
import Breadcrumb from "@/components/Breadcrumb";
export default {
name: 'AppMain',
components: {
Breadcrumb,
},
computed: {
cachedViews() {
return this.$store.state.tagsView.cachedViews
@ -55,4 +60,7 @@ export default {
padding-right: 15px;
}
}
.app-breadcrumb.el-breadcrumb{
font-size: 16px !important;
}
</style>

View File

@ -1,11 +1,11 @@
<template>
<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">
<template v-if="device!=='mobile'">
<!-- <template v-if="device!=='mobile'">
<search id="header-search" class="right-menu-item" />
<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" />
</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">
<img :src="avatar+'?imageView2/1/w/80/h/80'" class="user-avatar">
<img :src="avatar" class="user-avatar">
<i class="el-icon-caret-bottom" />
</div>
<el-dropdown-menu slot="dropdown">
@ -40,19 +48,19 @@
<span style="display:block;">Log Out</span>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</el-dropdown> -->
</div>
</div>
</template>
<script>
import { mapGetters } from 'vuex'
import Breadcrumb from '@/components/Breadcrumb'
import Hamburger from '@/components/Hamburger'
import ErrorLog from '@/components/ErrorLog'
import Screenfull from '@/components/Screenfull'
import SizeSelect from '@/components/SizeSelect'
import Search from '@/components/HeaderSearch'
import { mapGetters } from "vuex";
import Breadcrumb from "@/components/Breadcrumb";
import Hamburger from "@/components/Hamburger";
import ErrorLog from "@/components/ErrorLog";
import Screenfull from "@/components/Screenfull";
import SizeSelect from "@/components/SizeSelect";
import Search from "@/components/HeaderSearch";
export default {
components: {
@ -64,22 +72,18 @@ export default {
Search
},
computed: {
...mapGetters([
'sidebar',
'avatar',
'device'
])
...mapGetters(["sidebar", "avatar", "device","name"])
},
methods: {
toggleSideBar() {
this.$store.dispatch('app/toggleSideBar')
this.$store.dispatch("app/toggleSideBar");
},
async logout() {
await this.$store.dispatch('user/logout')
this.$router.push(`/login?redirect=${this.$route.fullPath}`)
}
await this.$store.dispatch("user/logout");
this.$router.push(`/login?redirect=${this.$route.fullPath}`);
}
}
};
</script>
<style lang="scss" scoped>
@ -88,18 +92,18 @@ export default {
overflow: hidden;
position: relative;
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 {
line-height: 46px;
height: 100%;
float: left;
cursor: pointer;
transition: background .3s;
transition: background 0.3s;
-webkit-tap-highlight-color: transparent;
&:hover {
background: rgba(0, 0, 0, .025)
background: rgba(0, 0, 0, 0.025);
}
}
@ -116,6 +120,8 @@ export default {
float: right;
height: 100%;
line-height: 50px;
display: flex;
align-items: center;
&:focus {
outline: none;
@ -131,13 +137,20 @@ export default {
&.hover-effect {
cursor: pointer;
transition: background .3s;
transition: background 0.3s;
&: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 {
margin-right: 30px;
@ -148,9 +161,9 @@ export default {
.user-avatar {
cursor: pointer;
width: 40px;
height: 40px;
border-radius: 10px;
width: 28px;
height: 28px;
border-radius: 28px;
}
.el-icon-caret-bottom {

View File

@ -5,7 +5,7 @@
<div :class="{hasTagsView:needTagsView}" class="main-container">
<div :class="{'fixed-header':fixedHeader}">
<navbar />
<tags-view v-if="needTagsView" />
<!-- <tags-view v-if="needTagsView" /> -->
</div>
<app-main />
<!-- <right-panel v-if="showSettings">

View File

@ -72,6 +72,7 @@ export const constantRoutes = [
},
{
path: '/',
name:'Dashboard',
component: Layout,
redirect: '/dashboard',
children: [
@ -127,6 +128,7 @@ export const constantRoutes = [
path: '/workBook',
component: Layout,
name: 'WorkBook',
redirect: '/workBook/list',
meta: {
title: '工作手册',
icon: 'list',

View File

@ -392,3 +392,19 @@ export function 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;
// }

View File

@ -6,14 +6,14 @@
<!-- bbc -->
<el-form
ref="convenienceForm"
style="width:480px"
style="width:680px"
:model="convenience"
:rules="rules"
label-width="80px"
class="el-form"
>
<el-form-item label="受理人" prop="residentInformation">
<el-input v-model="searchInput" placeholder="请输入受理人手机号或身份证号" />
<el-input v-model="searchInput" placeholder="群众身份证号或者手机号" />
</el-form-item>
<el-form-item label="办事项目">
@ -23,7 +23,7 @@
:options="typeOptions"
:show-all-levels="false"
:props="{ emitPath: false }"
placeholder="选择办事项目"
placeholder="选择项目"
style="width:100%"
clearable
/>
@ -34,6 +34,7 @@
v-model="convenience.remark"
type="textarea"
placeholder="请输入"
:autosize="{ minRows: 6, maxRows: 8 }"
/>
</el-form-item>
@ -57,7 +58,7 @@
</el-upload> -->
</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>
</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

View File

@ -1,31 +1,12 @@
<template>
<div class="app-container">
<div class="app-container" style="padding-top:15px">
<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
type="primary"
style="position:absolute;right:50px;top:120px"
@click="$router.push('/convenience/add')"
><i class="el-icon-plus" /> 直接建立工单</el-button>
><i class="el-icon-plus" /> 直接建立工单</el-button
>
<div class="title">工单列表</div>
<div style="margin-bottom:15px;margin-top:15px" />
<el-radio-group v-model="listQuery.phase">
@ -35,108 +16,25 @@
<el-radio-button label="PROCESSING">办理中</el-radio-button>
<el-radio-button label="FINISH">已办结</el-radio-button>
</el-radio-group>
<br>
<br>
<br />
<br />
<el-radio-group v-model="listQuery.status">
<el-radio-button :label="undefined">全部状态</el-radio-button>
<el-radio-button label="MINE">我处理</el-radio-button>
<el-radio-button label="FORWARDED">已转交</el-radio-button>
<el-radio-button
label="FORWARDED_APPLY"
>转交超限审批中</el-radio-button>
<el-radio-button label="FORWARDED_APPLY"
>转交超限审批中</el-radio-button
>
<el-radio-button label="SUBMIT_APPLY">已提交审批</el-radio-button>
<el-radio-button label="WAIT_APPLY">待我审批</el-radio-button>
</el-radio-group>
<br>
<br>
<br />
<br />
</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
v-for="item in list"
v-for="(item, index) in list"
:key="item.id"
class="convenience_item"
@click="
@ -172,17 +70,19 @@
</div>
<div style="flex:1">
<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>
<!-- v-if="item.phase === 'PENDING_ORDER'" -->
<el-button
v-if="item.phase === 'PENDING_ORDER'"
style="margin-left:50px"
type="primary"
size="mini"
@click="handleUpdate(item, 5)"
>接单</el-button>
>接单</el-button
>
</p>
</div>
</div>
@ -276,10 +176,10 @@
<script>
// import Pagination from "@/components/Pagination";
import { list, typeList, update } from '@/api/convenience'
import { parseTime } from '@/utils'
import { staffList } from '@/api/staff'
import AliOss from '@/components/AliOSS/index.vue'
import { list, typeList, update } from "@/api/convenience";
import { parseTime } from "@/utils";
import { staffList } from "@/api/staff";
import AliOss from "@/components/AliOSS/index.vue";
export default {
components: {
@ -289,48 +189,48 @@ export default {
filters: {
sponsorFilter(status) {
const statusMap = {
SELF: '居民',
STAFF: '工作人员'
}
return statusMap[status]
SELF: "居民",
STAFF: "工作人员"
};
return statusMap[status];
},
phaseFilter(status) {
const statusMap = {
PENDING_ORDER: '待接单',
PREREQUISITES: '要件准备中',
PROCESSING: '办理中',
FINISH: '办结'
}
return statusMap[status]
PENDING_ORDER: "待接单",
PREREQUISITES: "要件准备中",
PROCESSING: "办理中",
FINISH: "办结"
};
return statusMap[status];
},
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 = {
1: '建立工单',
2: '撤销工单',
3: '沟通',
4: '调整工单类别',
5: '接单',
6: '要件齐备',
7: '办结',
8: '转交超限审批提交',
9: '转交超限审批撤销',
10: '转交超限审批',
11: '发起审批',
12: '撤销审批',
13: '审批操作',
14: '转交'
}
return statusMap[status]
1: "建立工单",
2: "撤销工单",
3: "沟通",
4: "调整工单类别",
5: "接单",
6: "要件齐备",
7: "办结",
8: "转交超限审批提交",
9: "转交超限审批撤销",
10: "转交超限审批",
11: "发起审批",
12: "撤销审批",
13: "审批操作",
14: "转交"
};
return statusMap[status];
}
},
data() {
@ -361,68 +261,126 @@ export default {
},
msec: 0,
rules: {
ids: [{ required: true, message: '请选择操作对象', trigger: 'change' }]
}
}
ids: [{ required: true, message: "请选择操作对象", trigger: "change" }]
},
timers: undefined,
timersInterval:undefined
};
},
watch: {
'listQuery.phase': {
"listQuery.phase": {
//
handler(val) {
this.listQuery.phase = val
this.getList()
this.listQuery.phase = val;
this.getList();
},
deep: true // true
},
'listQuery.status': {
"listQuery.status": {
//
handler(val) {
this.listQuery.status = val
this.getList()
this.listQuery.status = val;
this.getList();
},
deep: true // true
}
},
created() {
this.getList()
this.getStaffList()
this.getList();
this.getStaffList();
},
methods: {
getList() {
this.listLoading = true
this.listLoading = true;
list(this.listQuery).then(res => {
this.list = res.d.records
this.listLoading = false
const tempData = res.d.records
const now = Date.parse(new Date()).toString() / 1000
tempData.map(item => {
this.list = res.d.records;
this.listLoading = false;
clearInterval(this.timersInterval)
const tempData = res.d.records;
const now = Date.parse(new Date()).toString() / 1000;
let arr = [];
tempData.map((item, index) => {
// console.log(item);
// PREREQUISITES: "",
// PROCESSING: "",
// FINISH: ""
let msec = [];
let obj = {};
switch (item.phase) {
case 'PENDING_ORDER':
console.log(item.createDate)
// this.countdown()
this.msec = now - item.createDate
// this.timeFormat(now-item.createDate)
// this.msec=item.createDate
break
case 'PREREQUISITES':
this.msec = now - item.createDate
break
case 'PROCESSING':
break
case 'FINISH':
break
case "PENDING_ORDER":
//
// console.log(item.createDate)
// this.timers[index]++;
msec = now - item.createDate;
// msec++;
// console.log(msec);
obj = {
time: msec,
phase: item.phase
};
arr.push(obj);
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() {
typeList().then(res => {
console.log(res)
})
// console.log(res);
});
},
getStaffList() {
staffList().then(res => {
@ -430,10 +388,10 @@ export default {
const obj = {
label: item.name,
value: item.id
}
this.staffOptions.push(obj)
})
})
};
this.staffOptions.push(obj);
});
});
},
handleTypeChange() {},
resetPayload() {
@ -445,140 +403,105 @@ export default {
attachmentList: undefined,
approve: undefined,
evaluation: undefined
}
};
},
handleUpdate(row, type) {
this.resetPayload()
this.resetPayload();
this.$nextTick(() => {
this.$refs.applyForm.clearValidate()
})
this.updateType = type
this.payload.id = row.id
this.payload.version = row.version
this.payload.type = type
this.$refs.applyForm.clearValidate();
});
this.updateType = type;
this.payload.id = row.id;
this.payload.version = row.version;
this.payload.type = type;
switch (type) {
case 5:
this.applyDialog = true
break
this.applyDialog = true;
break;
case 6:
this.applyDialog = true
break
this.applyDialog = true;
break;
case 11:
this.applyDialog = true
break
this.applyDialog = true;
break;
case 13:
this.applyDialog = true
break
this.applyDialog = true;
break;
case 14:
this.applyDialog = true
break
this.applyDialog = true;
break;
default:
this.updateData()
break
this.updateData();
break;
}
},
updateData() {
update(this.payload).then(res => {
if (res.c === 200) {
this.$notify.success('操作成功')
this.getList()
this.$notify.success("操作成功");
this.getList();
}
})
});
},
apply() {
this.$nextTick(() => {
this.$refs.applyForm.validate(valid => {
if (valid) {
this.updateData()
this.applyDialog = false
this.updateData();
this.applyDialog = false;
}
})
}, 100)
});
}, 100);
},
handleFilterPhase(phase, event) {
// console.log(event.target.tagName==='SPAN');
if (event.target.tagName === 'SPAN') {
if (event.target.tagName === "SPAN") {
event.target.parentElement.setAttribute(
'class',
'el-button el-button--' +
(phase === undefined ? 'primary' : 'default') +
' el-button--medium is-round'
)
"class",
"el-button el-button--" +
(phase === undefined ? "primary" : "default") +
" el-button--medium is-round"
);
} else {
event.target.setAttribute(
'class',
'el-button el-button--' +
(phase === undefined ? 'primary' : 'default') +
' el-button--medium is-round'
)
"class",
"el-button el-button--" +
(phase === undefined ? "primary" : "default") +
" el-button--medium is-round"
);
}
this.listQuery.phase = phase
this.getList()
this.listQuery.phase = phase;
this.getList();
},
handleFilterStatus(status) {
this.listQuery.status = status
this.getList()
this.listQuery.status = status;
this.getList();
},
handlePreview() {},
handleRemove() {},
beforeRemove() {},
handleExceed() {},
timeFormat(timeStamp) {
// console.log(timeStamp);
const timeStr = `${Math.floor(timeStamp / 3600)}:${Math.floor(
((timeStamp % 86400) % 3600) / 60
)}:${Math.floor(((timeStamp % 86400) % 3600) % 60)}`
// console.log(time);
// return time
return timeStr
// console.log(Math.floor(timeStamp / 3600));
// this[obj].hour = Math.floor(timeStamp / 3600);
// this[obj].minute = Math.floor(((timeStamp % 86400) % 3600) / 60);
// this[obj].second = Math.floor(((timeStamp % 86400) % 3600) % 60);
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;
},
countdown(msec) {
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;
// }
}
countdown(index, status) {
//
}
}
};
</script>
<style scope>

View File

@ -1,14 +1,14 @@
<template>
<div class="dashboard-editor-container">
<github-corner class="github-corner" />
<!-- <github-corner class="github-corner" /> -->
<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" />
</el-row>
</el-row> -->
<el-row :gutter="32">
<!-- <el-row :gutter="32">
<el-col :xs="24" :sm="24" :lg="8">
<div class="chart-wrapper">
<raddar-chart />
@ -24,9 +24,9 @@
<bar-chart />
</div>
</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;">
<transaction-table />
</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;">
<box-card />
</el-col>
</el-row>
</el-row> -->
</div>
</template>

View File

@ -60,7 +60,7 @@
/>
<!-- style="width:290px" -->
<!-- <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 }}
</button>
</el-form-item>
@ -134,7 +134,8 @@ export default {
redirect: undefined,
otherQuery: {},
codeText: '获取验证码',
time: 5
time: 5,
getCodeDisabled:false
}
},
watch: {
@ -253,6 +254,7 @@ export default {
}, {})
},
handleSms() {
this.getCodeDisabled=false;
const payload = {
phone: this.loginForm.username,
category: 'SIGNIN'
@ -266,6 +268,7 @@ export default {
}
}).then(res => {
if (res.data.c === 200) {
this.getCodeDisabled=true;
this.timer()
this.$notify({
title: '成功',
@ -277,12 +280,14 @@ export default {
})
},
timer() {
this.codeText = `${this.time}s 后重新获取`
var interval = setInterval(() => {
this.time--
this.codeText = `${this.time}s 后重新获取`
if (this.time === 0) {
this.time = 5
this.codeText = '获取验证码'
this.getCodeDisabled=false
clearInterval(interval)
}
}, 1000)

Binary file not shown.

After

Width:  |  Height:  |  Size: 375 KiB

View File

@ -1,8 +1,16 @@
<template>
<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"
:data="list"
border
@ -45,13 +53,13 @@
<span>{{ scope.row.releaseTime }}</span>
</template>
</el-table-column>
</el-table>
</el-table> -->
</div>
</template>
<script>
import Pagination from '@/components/Pagination'
import { workBookList } from '@/api/workBook'
import Pagination from "@/components/Pagination";
import { workBookList } from "@/api/workBook";
export default {
components: { Pagination },
@ -65,20 +73,35 @@ export default {
size: 10,
keyword: undefined
}
}
};
},
created() {
this.getList()
this.getList();
},
methods: {
getList() {
workBookList(this.listQuery).then(res => {
console.log(res)
this.list = res.d.records
})
}
console.log(res);
this.list = res.d.records;
});
}
}
};
</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>