班组bug #243
@ -1,10 +1,10 @@
|
|||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
import {Message, MessageBox, Notification, Loading} from 'element-ui'
|
import { Message, MessageBox, Notification, Loading } from 'element-ui'
|
||||||
import store from '@/store'
|
import store from '@/store'
|
||||||
import {getAccessToken, getRefreshToken, getTenantId, setToken} from '@/utils/auth'
|
import { getAccessToken, getRefreshToken, getTenantId, setToken } from '@/utils/auth'
|
||||||
import errorCode from '@/utils/errorCode'
|
import errorCode from '@/utils/errorCode'
|
||||||
import {getPath, getTenantEnable} from "@/utils/ruoyi";
|
import { getPath, getTenantEnable } from "@/utils/ruoyi";
|
||||||
import {refreshToken} from "@/api/login";
|
import { refreshToken } from "@/api/login";
|
||||||
|
|
||||||
// 需要忽略的提示。忽略后,自动 Promise.reject('error')
|
// 需要忽略的提示。忽略后,自动 Promise.reject('error')
|
||||||
const ignoreMsgs = [
|
const ignoreMsgs = [
|
||||||
@ -42,7 +42,7 @@ const service = axios.create({
|
|||||||
let loadingInstance = null
|
let loadingInstance = null
|
||||||
function startLoading() {
|
function startLoading() {
|
||||||
loadingInstance = Loading.service({
|
loadingInstance = Loading.service({
|
||||||
fullscreen: false,
|
fullscreen: true,
|
||||||
text: '拼命加载中...',
|
text: '拼命加载中...',
|
||||||
background: 'rgba(0, 0, 0, 0.1)'
|
background: 'rgba(0, 0, 0, 0.1)'
|
||||||
})
|
})
|
||||||
@ -86,7 +86,7 @@ service.interceptors.request.use(config => {
|
|||||||
for (const propName of Object.keys(config.params)) {
|
for (const propName of Object.keys(config.params)) {
|
||||||
const value = config.params[propName];
|
const value = config.params[propName];
|
||||||
const part = encodeURIComponent(propName) + '='
|
const part = encodeURIComponent(propName) + '='
|
||||||
if (value !== null && typeof(value) !== "undefined") {
|
if (value !== null && typeof (value) !== "undefined") {
|
||||||
if (typeof value === 'object') {
|
if (typeof value === 'object') {
|
||||||
for (const key of Object.keys(value)) {
|
for (const key of Object.keys(value)) {
|
||||||
let params = propName + '[' + key + ']';
|
let params = propName + '[' + key + ']';
|
||||||
@ -191,7 +191,7 @@ service.interceptors.response.use(async res => {
|
|||||||
}, error => {
|
}, error => {
|
||||||
tryHideFullScreenLoading()
|
tryHideFullScreenLoading()
|
||||||
console.log('err' + error)
|
console.log('err' + error)
|
||||||
let {message} = error;
|
let { message } = error;
|
||||||
if (message === "Network Error") {
|
if (message === "Network Error") {
|
||||||
message = "后端接口连接异常";
|
message = "后端接口连接异常";
|
||||||
} else if (message.includes("timeout")) {
|
} else if (message.includes("timeout")) {
|
||||||
@ -205,7 +205,7 @@ service.interceptors.response.use(async res => {
|
|||||||
duration: 5 * 1000
|
duration: 5 * 1000
|
||||||
})
|
})
|
||||||
return Promise.reject(error)
|
return Promise.reject(error)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
export function getBaseHeader() {
|
export function getBaseHeader() {
|
||||||
|
@ -2,11 +2,7 @@
|
|||||||
<el-form ref="form" :rules="rules" label-width="100px" :model="form">
|
<el-form ref="form" :rules="rules" label-width="100px" :model="form">
|
||||||
<el-form-item label="员工" prop="workerId" v-if='!isEdit'>
|
<el-form-item label="员工" prop="workerId" v-if='!isEdit'>
|
||||||
<el-select v-model="form.workerId" placeholder="请选择" filterable style="width: 100%;" @change="selectWorker()">
|
<el-select v-model="form.workerId" placeholder="请选择" filterable style="width: 100%;" @change="selectWorker()">
|
||||||
<el-option
|
<el-option v-for="item in workerList" :key="item.id" :label="item.name" :value="item.id">
|
||||||
v-for="item in workerList"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.id">
|
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -48,12 +44,12 @@ export default {
|
|||||||
this.form.teamId = param.teamId
|
this.form.teamId = param.teamId
|
||||||
this.form.majorName = param.majorName
|
this.form.majorName = param.majorName
|
||||||
this.workName = param.workName
|
this.workName = param.workName
|
||||||
otherWorkerList({teamId:this.form.teamId}).then(res => {
|
otherWorkerList({ teamId: this.form.teamId }).then(res => {
|
||||||
this.workerList = res.data || []
|
this.workerList = res.data || []
|
||||||
if (param.id) {
|
if (param.id) {
|
||||||
this.isEdit = true
|
this.isEdit = true
|
||||||
this.form.id = param.id
|
this.form.id = param.id
|
||||||
groupTeamDet({id: this.form.id}).then((res) => {
|
groupTeamDet({ id: this.form.id }).then((res) => {
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
this.form.workerId = res.data.workerId
|
this.form.workerId = res.data.workerId
|
||||||
this.form.remark = res.data.remark
|
this.form.remark = res.data.remark
|
||||||
@ -72,7 +68,7 @@ export default {
|
|||||||
this.form.majorName = item.majorName
|
this.form.majorName = item.majorName
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}else{
|
} else {
|
||||||
this.form.majorName = ''
|
this.form.majorName = ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -9,18 +9,15 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<p class="boldTitle">车间名称</p>
|
<p class="boldTitle">车间名称</p>
|
||||||
<p class="lightText">{{ (queryParams.roomNameDict || queryParams.roomNameDict === 0) ? getDictDataLabel('workshop',queryParams.roomNameDict) : '-' }}</p>
|
<p class="lightText">{{ (queryParams.roomNameDict || queryParams.roomNameDict === 0) ?
|
||||||
|
getDictDataLabel('workshop', queryParams.roomNameDict) : '-' }}</p>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<p class="boldTitle">班组名称</p>
|
<p class="boldTitle">班组名称</p>
|
||||||
<p class="lightText">{{ queryParams.teamName ? queryParams.teamName : '-' }}</p>
|
<p class="lightText">{{ queryParams.teamName ? queryParams.teamName : '-' }}</p>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<base-table
|
<base-table :table-props="tableProps" :table-data="tableData" :max-height="tableH" :page="1" :limit="1000000" />
|
||||||
:table-props="tableProps"
|
|
||||||
:table-data="tableData"
|
|
||||||
:max-height="tableH"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</el-drawer>
|
</el-drawer>
|
||||||
</div>
|
</div>
|
||||||
@ -47,7 +44,7 @@ const tableProps = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'workTime',
|
prop: 'workTime',
|
||||||
label: '工作时长'
|
label: '工作时长(h)'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
export default {
|
export default {
|
||||||
@ -83,21 +80,24 @@ export default {
|
|||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.box {
|
.box {
|
||||||
padding: 0 32px;
|
padding: 0 32px;
|
||||||
|
|
||||||
.topBox {
|
.topBox {
|
||||||
padding-bottom: 30px;
|
padding-bottom: 30px;
|
||||||
margin-bottom: 30px;
|
margin-bottom: 30px;
|
||||||
border-bottom: 1px solid #E9E9E9;
|
border-bottom: 1px solid #E9E9E9;
|
||||||
|
|
||||||
.boldTitle {
|
.boldTitle {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
color: rgba(0,0,0,0.85);
|
color: rgba(0, 0, 0, 0.85);
|
||||||
margin: 0;
|
margin: 0;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lightText {
|
.lightText {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
color: rgba(102,102,102,0.75);
|
color: rgba(102, 102, 102, 0.75);
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,28 +2,20 @@
|
|||||||
<el-form :inline="true" class="demo-form-inline">
|
<el-form :inline="true" class="demo-form-inline">
|
||||||
<span class="blue-block"></span>
|
<span class="blue-block"></span>
|
||||||
<el-form-item label="班次信息">
|
<el-form-item label="班次信息">
|
||||||
<el-select v-model="queryParams.classesId" placeholder="班次信息" style="width: 200px;" size="small" clearable>
|
<el-select v-model="queryParams.classesId" placeholder="班次信息" style="width: 200px;" size="small" clearable
|
||||||
<el-option
|
filterable>
|
||||||
v-for="item in classesArr"
|
<el-option v-for="item in classesArr" :key="item.id"
|
||||||
:key="item.id"
|
:label="(item.roomName ? item.roomName : '') + '-' + item.name" :value="item.id">
|
||||||
:label="(item.roomName?item.roomName:'')+'-'+item.name"
|
<span>{{ item.roomName }}-{{ item.name }}</span>
|
||||||
:value="item.id">
|
|
||||||
<span>{{ item.roomName }}-{{item.name}}</span>
|
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="班组信息">
|
<el-form-item label="班组信息">
|
||||||
<el-input v-model="queryParams.teamName" placeholder="班组信息" style="width: 200px;" clearable></el-input>
|
<el-input v-model="queryParams.teamName" placeholder="班组信息" style="width: 200px;" clearable></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="上班时间">
|
<el-form-item label="上班日期">
|
||||||
<el-date-picker
|
<el-date-picker v-model="queryParams.tiemStr" type="daterange" format='yyyy-MM-dd' value-format='yyyy-MM-dd'
|
||||||
v-model="queryParams.tiemStr"
|
range-separator='-' style="width: 250px;" size="small">
|
||||||
type="daterange"
|
|
||||||
format='yyyy-MM-dd'
|
|
||||||
value-format='yyyy-MM-dd'
|
|
||||||
range-separator='-'
|
|
||||||
style="width: 250px;"
|
|
||||||
size="small">
|
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
@ -69,6 +61,7 @@ export default {
|
|||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
color: #0B58FF;
|
color: #0B58FF;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-input__prefix .el-icon-date {
|
.el-input__prefix .el-icon-date {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
color: #0B58FF;
|
color: #0B58FF;
|
||||||
@ -83,6 +76,7 @@ export default {
|
|||||||
background: #E8E8E8;
|
background: #E8E8E8;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
|
|
||||||
.demo-form-inline {
|
.demo-form-inline {
|
||||||
.blue-block {
|
.blue-block {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
@ -1,12 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<el-drawer title="查看详情" :visible.sync="visible" size="70%" :wrapperClosable='false' @closed="closeDrawer">
|
<el-drawer title="生产情况" :visible.sync="visible" size="70%" @closed="closeDrawer" :show-close='false'>
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<base-table
|
<base-table :table-props="tableProps" :table-data="tableData" :max-height="tableH" />
|
||||||
:table-props="tableProps"
|
|
||||||
:table-data="tableData"
|
|
||||||
:max-height="tableH"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</el-drawer>
|
</el-drawer>
|
||||||
</div>
|
</div>
|
||||||
@ -53,7 +49,7 @@ export default {
|
|||||||
init(params) {
|
init(params) {
|
||||||
this.visible = true
|
this.visible = true
|
||||||
// console.log(params)
|
// console.log(params)
|
||||||
getByScheduling({id:params.id}).then(res => {
|
getByScheduling({ id: params.id }).then(res => {
|
||||||
let dataList1 = []
|
let dataList1 = []
|
||||||
let dataList2 = []
|
let dataList2 = []
|
||||||
if (res.data.nameData && res.data.nameData.length > 0) {
|
if (res.data.nameData && res.data.nameData.length > 0) {
|
||||||
@ -90,11 +86,11 @@ export default {
|
|||||||
timeArr.push(this.parseTime(item.name))
|
timeArr.push(this.parseTime(item.name))
|
||||||
tablePropsObj.prop = item.name
|
tablePropsObj.prop = item.name
|
||||||
tablePropsObj.label = this.parseTime(item.name)
|
tablePropsObj.label = this.parseTime(item.name)
|
||||||
tablePropsObj.children[0].prop = item.name+'sumInput'
|
tablePropsObj.children[0].prop = item.name + 'sumInput'
|
||||||
tablePropsObj.children[1].prop = item.name+'sumOutput'
|
tablePropsObj.children[1].prop = item.name + 'sumOutput'
|
||||||
tablePropsObj.children[2].prop = item.name+'goodArea'
|
tablePropsObj.children[2].prop = item.name + 'goodArea'
|
||||||
tablePropsObj.children[3].prop = item.name+'dynamicValue'
|
tablePropsObj.children[3].prop = item.name + 'dynamicValue'
|
||||||
tablePropsObj.children[4].prop = item.name+'dynamicRatio'
|
tablePropsObj.children[4].prop = item.name + 'dynamicRatio'
|
||||||
this.tableProps.push(tablePropsObj)
|
this.tableProps.push(tablePropsObj)
|
||||||
})
|
})
|
||||||
getSchedulingMonitoringRecord({
|
getSchedulingMonitoringRecord({
|
||||||
@ -111,15 +107,15 @@ export default {
|
|||||||
obj.workOrderList = dataList1.data[i].workOrderList
|
obj.workOrderList = dataList1.data[i].workOrderList
|
||||||
let subData1 = dataList1.data[i].data
|
let subData1 = dataList1.data[i].data
|
||||||
for (let ii = 0; ii < subData1.length; ii++) {
|
for (let ii = 0; ii < subData1.length; ii++) {
|
||||||
obj[subData1[ii].dynamicName+'sumInput'] = subData1[ii].dynamicValue.sumInput
|
obj[subData1[ii].dynamicName + 'sumInput'] = subData1[ii].dynamicValue.sumInput
|
||||||
obj[subData1[ii].dynamicName+'sumOutput'] = subData1[ii].dynamicValue.sumOutput
|
obj[subData1[ii].dynamicName + 'sumOutput'] = subData1[ii].dynamicValue.sumOutput
|
||||||
obj[subData1[ii].dynamicName+'goodArea'] = subData1[ii].dynamicValue.goodArea
|
obj[subData1[ii].dynamicName + 'goodArea'] = subData1[ii].dynamicValue.goodArea
|
||||||
}
|
}
|
||||||
for (let j = 0; j < dataList2.data.length; j++) {
|
for (let j = 0; j < dataList2.data.length; j++) {
|
||||||
let subData2 = dataList2.data[j].data
|
let subData2 = dataList2.data[j].data
|
||||||
for (let jj = 0; jj < subData2.length; jj++) {
|
for (let jj = 0; jj < subData2.length; jj++) {
|
||||||
obj[subData2[jj].dynamicName+'dynamicValue'] = subData2[jj].dynamicValue
|
obj[subData2[jj].dynamicName + 'dynamicValue'] = subData2[jj].dynamicValue
|
||||||
obj[subData2[jj].dynamicName+'dynamicRatio'] = obj[subData2[jj].dynamicName+'dynamicValue'] / obj[subData2[jj].dynamicName+'sumOutput']
|
obj[subData2[jj].dynamicName + 'dynamicRatio'] = obj[subData2[jj].dynamicName + 'dynamicValue'] / obj[subData2[jj].dynamicName + 'sumOutput']
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.tableData.push(obj)
|
this.tableData.push(obj)
|
||||||
|
@ -1,37 +1,22 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<!-- 搜索工作栏 -->
|
<!-- 搜索工作栏 -->
|
||||||
<search-area @submit="buttonClick"/>
|
<search-area @submit="buttonClick" />
|
||||||
<!-- <search-bar
|
<!-- <search-bar
|
||||||
:formConfigs="formConfig"
|
:formConfigs="formConfig"
|
||||||
ref="searchBarForm"
|
ref="searchBarForm"
|
||||||
@headBtnClick="buttonClick"
|
@headBtnClick="buttonClick"
|
||||||
/> -->
|
/> -->
|
||||||
<!-- 列表 -->
|
<!-- 列表 -->
|
||||||
<base-table
|
<base-table :page="queryParams.pageNo" :limit="queryParams.pageSize" :table-props="tableProps" :table-data="list"
|
||||||
:page="queryParams.pageNo"
|
:max-height="tableH">
|
||||||
:limit="queryParams.pageSize"
|
<method-btn v-if="tableBtn.length" slot="handleBtn" :width="80" label="操作" :method-list="tableBtn"
|
||||||
:table-props="tableProps"
|
@clickBtn="handleClick" />
|
||||||
:table-data="list"
|
|
||||||
:max-height="tableH"
|
|
||||||
>
|
|
||||||
<method-btn
|
|
||||||
v-if="tableBtn.length"
|
|
||||||
slot="handleBtn"
|
|
||||||
:width="80"
|
|
||||||
label="操作"
|
|
||||||
:method-list="tableBtn"
|
|
||||||
@clickBtn="handleClick"
|
|
||||||
/>
|
|
||||||
</base-table>
|
</base-table>
|
||||||
<pagination
|
<pagination :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" :total="total"
|
||||||
:page.sync="queryParams.pageNo"
|
@pagination="getList" />
|
||||||
:limit.sync="queryParams.pageSize"
|
|
||||||
:total="total"
|
|
||||||
@pagination="getList"
|
|
||||||
/>
|
|
||||||
<!-- 查看生产情况 -->
|
<!-- 查看生产情况 -->
|
||||||
<team-production-detail v-if='paramVisible' ref='schedulingMonitoringDetail'/>
|
<team-production-detail v-if='paramVisible' ref='schedulingMonitoringDetail' />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
@ -86,38 +71,6 @@ export default {
|
|||||||
name: 'GroupTeamScheduling',
|
name: 'GroupTeamScheduling',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
formConfig: [
|
|
||||||
{
|
|
||||||
type: 'select',
|
|
||||||
label: '班次信息',
|
|
||||||
selectOptions: [],
|
|
||||||
param: 'classesId'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'input',
|
|
||||||
label: '班组信息',
|
|
||||||
placeholder: '班组信息',
|
|
||||||
param: 'teamName'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'datePicker',
|
|
||||||
label: '上班日期',
|
|
||||||
dateType: 'daterange',
|
|
||||||
format: 'yyyy-MM-dd',
|
|
||||||
valueFormat: 'yyyy-MM-dd',
|
|
||||||
rangeSeparator: '-',
|
|
||||||
// valueFormat: "timestamp",
|
|
||||||
param: 'tiemStr',
|
|
||||||
defaultSelect: '',
|
|
||||||
width: 250
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'button',
|
|
||||||
btnName: '查询',
|
|
||||||
name: 'search',
|
|
||||||
color: 'primary'
|
|
||||||
}
|
|
||||||
],
|
|
||||||
// 查询参数
|
// 查询参数
|
||||||
queryParams: {
|
queryParams: {
|
||||||
pageNo: 1,
|
pageNo: 1,
|
||||||
@ -130,8 +83,9 @@ export default {
|
|||||||
tableBtn: [
|
tableBtn: [
|
||||||
this.$auth.hasPermi('base:team-production:detail')
|
this.$auth.hasPermi('base:team-production:detail')
|
||||||
? {
|
? {
|
||||||
type: 'detail',
|
type: 'productionDetail',
|
||||||
btnName: '详情'
|
btnName: '查看',
|
||||||
|
showTip: '生产情况'
|
||||||
}
|
}
|
||||||
: undefined
|
: undefined
|
||||||
].filter((v) => v),
|
].filter((v) => v),
|
||||||
@ -158,7 +112,7 @@ export default {
|
|||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
getList() {
|
getList() {
|
||||||
groupTeamSchedulingPage({...this.queryParams}).then(res => {
|
groupTeamSchedulingPage({ ...this.queryParams }).then(res => {
|
||||||
console.log(res)
|
console.log(res)
|
||||||
this.list = res.data.list || []
|
this.list = res.data.list || []
|
||||||
this.total = res.data.total || 0
|
this.total = res.data.total || 0
|
||||||
|
Loading…
Reference in New Issue
Block a user