lion 2 years ago
parent 90b0e1f314
commit 18858bb56e

@ -89,18 +89,18 @@ export const constantRoutes = [
meta: { title: '首页', icon: 'dashboard' } meta: { title: '首页', icon: 'dashboard' }
}] }]
}, },
{ // {
path: '/jsc', // path: '/jsc',
component: Layout, // component: Layout,
redirect: '/jsc', // redirect: '/jsc',
meta: { title: '驾驶舱', icon: 'dashboard' }, // meta: { title: '驾驶舱', icon: 'dashboard' },
children: [{ // children: [{
path: 'jsc', // path: 'jsc',
name: 'jsc', // name: 'jsc',
component: () => import('@/views/jsc/jsc'), // component: () => import('@/views/jsc/jsc'),
meta: { title: '驾驶舱', icon: 'dashboard' } // meta: { title: '驾驶舱', icon: 'dashboard' }
}] // }]
}, // },
{ {
path: '/info', path: '/info',
component: Layout, component: Layout,

@ -3,9 +3,9 @@
<div style="position: relative;height: 100%;width: 100%;overflow-y: scroll;padding-bottom:20px"> <div style="position: relative;height: 100%;width: 100%;overflow-y: scroll;padding-bottom:20px">
<div class="search-tab"> <div class="search-tab">
<div> <div>
<el-date-picker @change="changeDateRange" v-model="modalSelect.dateRange" value-format="yyyy-MM-dd" format="yyyy-MM-dd" <el-date-picker @change="changeDateRange" v-model="modalSelect.dateRange" value-format="yyyy-MM-dd"
type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始日期" format="yyyy-MM-dd" type="daterange" align="right" unlink-panels range-separator="至"
end-placeholder="结束日期" :picker-options="pickerOptions"> start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions">
</el-date-picker> </el-date-picker>
</div> </div>
<div> <div>
@ -15,7 +15,8 @@
</el-select> </el-select>
</div> </div>
<div> <div>
<el-select @change="changeDepartment" style="width:250px" v-model="modalSelect.searchDepartmentId" placeholder="请选择科室"> <el-select @change="changeDepartment" style="width:250px" v-model="modalSelect.searchDepartmentId"
placeholder="请选择科室">
<el-option v-for="item in departments" :key="item.id" :label="item.name" :value="item.id"> <el-option v-for="item in departments" :key="item.id" :label="item.name" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
@ -26,8 +27,8 @@
</div> </div>
<!-- :style="{'height':defaultModalSize.height}" --> <!-- :style="{'height':defaultModalSize.height}" -->
<div class="search-table"> <div class="search-table">
<div v-loading="loading" class="progress-card" element-loading-text="拼命加载中" <div v-loading="loading" class="progress-card" element-loading-text="拼命加载中"
element-loading-spinner="el-icon-loading" element-loading-background="rgba(255, 255, 255, 0.8)"> element-loading-spinner="el-icon-loading" element-loading-background="rgba(255, 255, 255, 0.8)">
<el-table style="width: 100%;" size="mini" :header-cell-style="{ <el-table style="width: 100%;" size="mini" :header-cell-style="{
'font-weight': '600', 'font-weight': '600',
'background': '#fff', 'background': '#fff',
@ -37,24 +38,17 @@
<el-table-column v-for="(item, index) in table" :key="index" :width="item.width" :label="item.title" <el-table-column v-for="(item, index) in table" :key="index" :width="item.width" :label="item.title"
:prop="item.key" :show-overflow-tooltip="item['show-overflow-tooltip']" header-align="center" :prop="item.key" :show-overflow-tooltip="item['show-overflow-tooltip']" header-align="center"
:align="item.align" :formatter="item.formatter" /> :align="item.align" :formatter="item.formatter" />
</el-table> </el-table>
<el-pagination <el-pagination style="margin-top: 10px;text-align: right;" :current-page.sync="modalSelect.page"
style="margin-top: 10px;text-align: right;" :page-sizes="[20, 30, 40, 50]" :page-size.sync="modalSelect.page_size"
:current-page.sync="modalSelect.page" layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="e => {
:page-sizes="[20, 30, 40, 50]" modalSelect.page_size = e;
:page-size.sync="modalSelect.page_size" modalSelect.page = 1;
layout="total, sizes, prev, pager, next, jumper" getChartOverallList();
:total="total" }" @current-change="e => {
@size-change="e => { modalSelect.page = e;
modalSelect.page_size = e; getChartOverallList();
modalSelect.page = 1; }" />
getChartOverallList();
}"
@current-change="e => {
modalSelect.page = e;
getChartOverallList();
}"
/>
</div> </div>
</div> </div>
@ -66,10 +60,10 @@
import ElementResize from 'element-resize-detector' import ElementResize from 'element-resize-detector'
import { import {
defaultModalSize defaultModalSize
} from '@/settings' } from '@/settings'
import axios from 'axios' import axios from 'axios'
import { import {
getToken getToken
} from '@/utils/auth' } from '@/utils/auth'
export default { export default {
@ -91,8 +85,8 @@
data() { data() {
return { return {
defaultModalSize, defaultModalSize,
tableHeight: 400, tableHeight: 400,
loading:false, loading: false,
list: [], list: [],
total: 0, total: 0,
table: [], table: [],
@ -169,16 +163,18 @@
], ],
chuchai: [{ chuchai: [{
title: '人员', title: '人员',
key: 'flow.creator.name', key: 'renyuan_name',
width: 120,
align: 'left', align: 'left',
'show-overflow-tooltip': true,
minWidth:120
// flow.creator.name
}, },
{ {
title: '去向', title: '去向',
key: 'mudidi', key: 'mudidi',
align: 'left', align: 'left',
'show-overflow-tooltip': true, 'show-overflow-tooltip': true,
minWidth: 120 width: 80
}, },
{ {
title: '交通方式', title: '交通方式',
@ -192,44 +188,44 @@
key: 'chuchaishiyou', key: 'chuchaishiyou',
align: 'left', align: 'left',
'show-overflow-tooltip': true, 'show-overflow-tooltip': true,
}, },
{ {
title: '开始日期', title: '开始日期',
key: 'kaishi', key: 'kaishi',
align: 'left', align: 'left',
'show-overflow-tooltip': true, 'show-overflow-tooltip': true,
width: 120 width: 100
}, },
{ {
title: '结束日期', title: '结束日期',
key: '结束', key: 'jieshu',
align: 'left', align: 'left',
'show-overflow-tooltip': true, 'show-overflow-tooltip': true,
width: 120 width: 100
} }
] ]
}, },
// 弹窗选择 // 弹窗选择
tagList: [{ tagList: [{
name: '出差', name: '出差',
id: 'chuchai', id: 'chuchai',
type:3 type: 3
}, { }, {
name: '用车', name: '用车',
id: 'yongche', id: 'yongche',
type:3 type: 3
}, { }, {
name: '加班', name: '加班',
id: 'jiaban', id: 'jiaban',
type:1 type: 1
}, { }, {
name: '请假', name: '请假',
id: 'qingjia', id: 'qingjia',
type:2 type: 2
}], }],
changeSelect:false, changeSelect: false,
dateRange: '', dateRange: '',
pickerOptions: { pickerOptions: {
shortcuts: [{ shortcuts: [{
@ -285,14 +281,14 @@
} }
}, },
computed: {}, computed: {},
watch: { watch: {
modalSelect(newval){ modalSelect(newval) {
console.log("isShowModal",newval) console.log("isShowModal", newval)
this.getChartOverallList() this.getChartOverallList()
} }
}, },
created() { created() {
this.getChartOverallList() this.getChartOverallList()
}, },
beforeDestroy() {}, beforeDestroy() {},
mounted() { mounted() {
@ -317,11 +313,11 @@
// 弹出的总览数据 // 弹出的总览数据
async getChartOverallList() { async getChartOverallList() {
try { try {
this.loading = true this.loading = true
if(this.changeSelect){ if (this.changeSelect) {
this.list = [] this.list = []
this.total = 0 this.total = 0
this.modalSelect.page = 1 this.modalSelect.page = 1
} }
const res = await axios.get(`${process.env.VUE_APP_BASE_API}/api/oa/chart/overall-list`, { const res = await axios.get(`${process.env.VUE_APP_BASE_API}/api/oa/chart/overall-list`, {
headers: { headers: {
@ -336,28 +332,28 @@
page_size: this.modalSelect.page_size page_size: this.modalSelect.page_size
} }
}) })
if (res.status === 200) { if (res.status === 200) {
console.log("res",res) console.log("res", res)
this.table = this.tableList[this.modalSelect.searchTag] this.table = this.tableList[this.modalSelect.searchTag]
this.changeSelect = false this.changeSelect = false
let list = res.data.data.data let list = res.data.data.data
this.total = res.data.data.total this.total = res.data.data.total
if(this.modalSelect.searchTag==='yongche'){ if (this.modalSelect.searchTag === 'yongche') {
let carList = [] let carList = []
list.map(a=>{ list.map(a => {
if(a.chucheqingkuang){ if (a.chucheqingkuang) {
let car = JSON.parse(a.chucheqingkuang) let car = JSON.parse(a.chucheqingkuang)
car.map(item=>{ car.map(item => {
item.mudidi = a.mudidi item.mudidi = a.mudidi
}) })
carList.push(...car) carList.push(...car)
} }
}) })
this.list = carList this.list = carList
this.total = carList.length this.total = carList.length
}else{ } else {
this.list = list this.list = list
} }
// this.list.map(item => { // this.list.map(item => {
@ -375,26 +371,26 @@
console.log("e", e) console.log("e", e)
if (e) { if (e) {
this.modalSelect.start_date = e[0] this.modalSelect.start_date = e[0]
this.modalSelect.end_date = e[1] this.modalSelect.end_date = e[1]
this.changeSelect = true this.changeSelect = true
} else { } else {
this.modalSelect.start_date = '' this.modalSelect.start_date = ''
this.modalSelect.end_date = '' this.modalSelect.end_date = ''
} }
}, },
changeDepartment(e){ changeDepartment(e) {
if(e || e==''){ if (e || e == '') {
this.changeSelect = true this.changeSelect = true
this.modalSelect.department_id = e this.modalSelect.department_id = e
} }
}, },
changeTag(e){ changeTag(e) {
this.tagList.map(item=>{ this.tagList.map(item => {
if(item.id==e){ if (item.id == e) {
this.changeSelect = true this.changeSelect = true
this.modalSelect.type = item.type this.modalSelect.type = item.type
} }
}) })
} }

@ -1,151 +1,152 @@
<template> <template>
<el-card id="evection-card" class="box-card" shadow="hover"> <el-card id="evection-card" class="box-card" shadow="hover">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<img src="../static/icon5.png" alt=""> <img src="../static/icon5.png" alt="">
<span <span style="padding-left: 15px">今日出差明细</span>
style="padding-left: 15px" <i class="el-icon-more" style="margin-left: auto; font-size: 20px" />
>今日出差明细</span> </div>
<i class="el-icon-more" style="margin-left: auto; font-size: 20px" />
</div> <div style="position: relative;height: 100%;width: 100%;">
<div style="position: absolute;top: 0;left: 0;right: 0;bottom: 0;">
<div style="position: relative;height: 100%;width: 100%;"> <el-table style="width: 100%;" size="mini" :header-cell-style="{
<div style="position: absolute;top: 0;left: 0;right: 0;bottom: 0;"> 'font-weight': '600',
<el-table 'background': '#fff',
style="width: 100%;" 'color': '#515a6e',
size="mini" 'text-align':'left'
:header-cell-style="{ }" :height="tableHeight" :data="list">
'font-weight': '600', <el-table-column v-for="(item, index) in table" :key="index" :width="item.width" :label="item.title"
'background': '#fff', :prop="item.key" :show-overflow-tooltip="item['show-overflow-tooltip']" header-align="center"
'color': '#515a6e', :align="item.align" :formatter="item.formatter" />
'text-align':'left' </el-table>
}" </div>
:height="tableHeight" </div>
:data="list" </el-card>
> </template>
<el-table-column
v-for="(item, index) in table" <script>
:key="index" import ElementResize from 'element-resize-detector'
:width="item.width" import {
:label="item.title" defaultModalSize
:prop="item.key" } from '@/settings'
:show-overflow-tooltip="item['show-overflow-tooltip']"
header-align="center" export default {
:align="item.align" name: 'Evection',
:formatter="item.formatter" components: {},
/> props: {
</el-table> myData: {
</div> type: Array,
</div> default: () => {
</el-card> return []
</template> }
}
<script> },
import ElementResize from 'element-resize-detector' layout: {
import { defaultModalSize } from '@/settings' x: 0,
y: 5,
export default { w: 5,
name: 'Evection', h: 7,
components: { i: 'Evection',
}, name: '今日出差明细',
props:{ data_id: 'chuchaiListToday',
myData:{ data: null
type:Array, },
default:()=>{ data() {
return [] return {
} defaultModalSize,
} timer: null,
}, tableHeight: 120,
layout: { list: [],
x: 0, table: [{
y: 5, title: '人员',
w: 5, key: 'renyuan_name',
h: 7, align: 'left',
i: 'Evection', 'show-overflow-tooltip': true,
name: '今日出差明细', // flow.creator.name
data_id:'chuchaiListToday', },
data:null {
}, title: '去向',
data() { key: 'mudidi',
return { align: 'left',
defaultModalSize, 'show-overflow-tooltip': true,
timer: null, width: 80
tableHeight: 120, },
list: [], {
table: [ title: '交通方式',
{ key: 'jiaotongfangshi',
title: '人员', align: 'left',
key: 'renyuan_name', 'show-overflow-tooltip': true,
width: 120, minWidth: 120
align: 'left', },
// flow.creator.name {
}, title: '出差说明',
{ key: 'chuchaishiyou',
title: '去向', align: 'left',
key: 'mudidi', 'show-overflow-tooltip': true,
align: 'left', },
'show-overflow-tooltip': true, {
minWidth: 120 title: '开始日期',
}, key: 'kaishi',
{ align: 'left',
title: '交通方式', 'show-overflow-tooltip': true,
key: 'jiaotongfangshi', width: 100
align: 'left', },
'show-overflow-tooltip': true, {
minWidth: 120 title: '结束日期',
}, key: 'jieshu',
{ align: 'left',
title: '出差说明', 'show-overflow-tooltip': true,
key: 'chuchaishiyou', width: 100
align: 'left', }
'show-overflow-tooltip': true, ]
} }
] },
} computed: {},
}, watch: {
computed: {}, myData(newval) {
watch: { this.list = newval
myData(newval){ },
this.list = newval },
}, created() {},
}, mounted() {
created() { this.init()
}, },
mounted() { methods: {
this.init() init() {
}, const cardDom = document.getElementById('evection-card')
methods: { const cardTitleH = 59
init() { const elementResize = ElementResize({
const cardDom = document.getElementById('evection-card') strategy: 'scroll'
const cardTitleH = 59 })
const elementResize = ElementResize({ elementResize.listenTo(cardDom, (ele) => {
strategy: 'scroll' this.tableHeight =
}) cardDom.getBoundingClientRect().height -
elementResize.listenTo(cardDom, (ele) => { 40 -
this.tableHeight = cardTitleH
cardDom.getBoundingClientRect().height - })
40 - },
cardTitleH
})
}, }
}
</script>
}
} <style scoped lang="scss">
</script> ::v-deep .el-card__body {
width: 100%;
<style scoped lang="scss"> height: calc(100% - 58px);
::v-deep .el-card__body { }
width: 100%;
height: calc(100% - 58px); ::v-deep .el-table th,
} ::v-deep .el-table td {
::v-deep .el-table th,::v-deep .el-table td { border-bottom-style: dashed;
border-bottom-style: dashed; }
}
.clearfix { .clearfix {
display: flex; display: flex;
align-items: center; align-items: center;
} }
::v-deep .vxe-modal--content {
padding: 0; ::v-deep .vxe-modal--content {
} padding: 0;
}
</style> </style>

Loading…
Cancel
Save