no message

main
暴炳林 2024-07-03 17:39:43 +08:00
parent dac10d92b0
commit 6db20588e5
12 changed files with 259 additions and 18 deletions

View File

@ -54,4 +54,11 @@ export function sendReAgvTask(ids) {
data: ids data: ids
}) })
} }
export default { add, edit, del,missionStateCallback,agvTaskCallback,queryAgvTaskInfo,sendReAgvTask } export function closeAgvTask(id) {
return request({
url: 'api/agvTask/closeAgvTask',
method: 'post',
data: id
})
}
export default { add, edit, del,missionStateCallback,agvTaskCallback,queryAgvTaskInfo,sendReAgvTask,closeAgvTask }

View File

@ -23,5 +23,11 @@ export function edit(data) {
data data
}) })
} }
export function mlsMo(data) {
export default { add, edit, del } return request({
url: 'api/moTask/mlsMo',
method: 'post',
data
})
}
export default { add, edit, del, mlsMo }

View File

@ -23,5 +23,11 @@ export function edit(data) {
data data
}) })
} }
export function mlsOrder(data) {
export default { add, edit, del } return request({
url: 'api/orderTask/mlsOrder',
method: 'post',
data
})
}
export default { add, edit, del,mlsOrder }

View File

@ -124,6 +124,9 @@
<el-form-item label="名称"> <el-form-item label="名称">
<el-input v-model="form.name" style="width: 370px;"/> <el-input v-model="form.name" style="width: 370px;"/>
</el-form-item> </el-form-item>
<el-form-item label="地标码">
<el-input v-model="form.beatCode" style="width: 370px;"/>
</el-form-item>
<el-form-item label="类型" prop="type"> <el-form-item label="类型" prop="type">
<el-select v-model="form.type" filterable placeholder="请选择" style="width: 370px;" <el-select v-model="form.type" filterable placeholder="请选择" style="width: 370px;"
:default-first-option="true"> :default-first-option="true">
@ -197,6 +200,7 @@
<div>{{ scope.row.area.name }}</div> <div>{{ scope.row.area.name }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="beatCode" label="地标码"/>
<!-- <el-table-column prop="beatCode" label="冷却区-小库区编号"/>--> <!-- <el-table-column prop="beatCode" label="冷却区-小库区编号"/>-->
<el-table-column :show-overflow-tooltip="true" prop="deptName" label="仓库"> <el-table-column :show-overflow-tooltip="true" prop="deptName" label="仓库">
<template slot-scope="scope"> <template slot-scope="scope">

View File

@ -105,7 +105,21 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="点位" prop="point">
<el-select v-model="form.point" clearable @focus="getPoint" filterable placeholder="请选点位" value-key="id"
style="width: 180px;">
<el-option
v-for="point in points"
:key="point.id"
:label="point.code"
:value="point"
>
<span style="float: left">{{ point.code }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ point.status }}</span>
</el-option>
</el-select>
</el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="text" @click="crud.cancelCU"></el-button> <el-button type="text" @click="crud.cancelCU"></el-button>
@ -175,7 +189,7 @@ import {getToken} from "@/utils/auth";
import {getAres} from "@/api/area"; import {getAres} from "@/api/area";
import {mapGetters} from "vuex"; import {mapGetters} from "vuex";
const defaultForm = { id: null, status: 'FREE',stockType: null,code: null, pid: null, pointId: null, subCount: null, name: null, typeId: null, length: null, width: null, height: null, weight: null, size: null, useWeight: null, useSize: null, usageWeight: null, usageSize: null, enabled: 1, createBy: null, updateBy: null, createTime: null, updateTime: null, topId: null} const defaultForm = { id: null, status: 'FREE',stockType: null,code: null, pid: null, point: null, subCount: null, name: null, typeId: null, length: null, width: null, height: null, weight: null, size: null, useWeight: null, useSize: null, usageWeight: null, usageSize: null, enabled: 1, createBy: null, updateBy: null, createTime: null, updateTime: null, topId: null}
export default { export default {
name: 'Stock', name: 'Stock',
components: {pagination, crudOperation, rrOperation, udOperation }, components: {pagination, crudOperation, rrOperation, udOperation },
@ -195,6 +209,7 @@ export default {
}, },
data() { data() {
return { return {
points: [],
// //
fileList:[], fileList:[],
areas:[], areas:[],
@ -226,7 +241,7 @@ export default {
this.getArea(); this.getArea();
this.getStockType(); this.getStockType();
// //
this.getPointListData(); this.getPoint();
}, },
methods: { methods: {
handleSuccess(response, file, fileList,crud) { handleSuccess(response, file, fileList,crud) {
@ -246,6 +261,11 @@ export default {
[CRUD.HOOK.beforeRefresh]() { [CRUD.HOOK.beforeRefresh]() {
return true return true
}, },
getPoint() {
queryPointList().then(res => {
this.points = res
})
},
getStockType() { getStockType() {
getStockTypes({ }).then(res => { getStockTypes({ }).then(res => {
this.stockTypes= res.content.map(function(obj) { this.stockTypes= res.content.map(function(obj) {

View File

@ -65,6 +65,7 @@
class="filter-item" class="filter-item"
size="mini" size="mini"
type="success" type="success"
:loading="crud.status.cu === 2"
icon="el-icon-check" icon="el-icon-check"
@click="sendReAgvTask(crud.selections)"> @click="sendReAgvTask(crud.selections)">
发送 发送
@ -176,8 +177,8 @@
:disabled="scope.row.status!='ATCALL' && scope.row.status!='UP_CONTAINER' && scope.row.status!='OPEN' " :disabled="scope.row.status!='ATCALL' && scope.row.status!='UP_CONTAINER' && scope.row.status!='OPEN' "
align="center" align="center"
size="mini" size="mini"
@click="toAgvTaskCANCELED(scope.row)"> @click="closeAgvTask(scope.row)">
取消 关闭
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
@ -192,7 +193,7 @@
</template> </template>
<script> <script>
import crudAgvTask, {missionStateCallback} from '@/api/agvTask' import crudAgvTask, {missionStateCallback,closeAgvTask} from '@/api/agvTask'
import CRUD, {presenter, header, form, crud} from '@crud/crud' import CRUD, {presenter, header, form, crud} from '@crud/crud'
import rrOperation from '@crud/RR.operation' import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation' import crudOperation from '@crud/CRUD.operation'
@ -316,6 +317,13 @@ export default {
this.crud.toQuery() this.crud.toQuery()
}) })
}, },
closeAgvTask(row) {
crudAgvTask.closeAgvTask(row.id).then(res => {
this.crud.notify(res.message, CRUD.NOTIFICATION_TYPE.SUCCESS)
this.crud.toQuery()
})
},
toAgvTaskFinish(data) { toAgvTaskFinish(data) {
this.MissionStateCallback.containerCode = data.stockCode this.MissionStateCallback.containerCode = data.stockCode

View File

@ -192,7 +192,7 @@ export default {
optShow: { optShow: {
add: false, add: false,
edit: false, edit: false,
del: false, del: true,
reset: false, reset: false,
download: true download: true
} }

View File

@ -40,7 +40,19 @@
</el-radio-group> </el-radio-group>
</div> </div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'--> <!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" :tableKey="this.$options.name"/> <crudOperation :permission="permission" :tableKey="this.$options.name">
<el-button
slot="left"
class="filter-item"
type="success"
icon="el-icon-zoom-out"
size="mini"
@click="$refs.mlsMo.openForm()"
>
获取Mo票
</el-button>
</crudOperation>
<MlsMo ref="mlsMo"></MlsMo>
<!--表单组件--> <!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" <el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0"
:title="crud.status.title" width="500px"> :title="crud.status.title" width="500px">
@ -112,6 +124,7 @@
<script> <script>
import crudMo from '@/api/mo' import crudMo from '@/api/mo'
import MlsMo from './mlsMo'
import CRUD, {presenter, header, form, crud} from '@crud/crud' import CRUD, {presenter, header, form, crud} from '@crud/crud'
import rrOperation from '@crud/RR.operation' import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation' import crudOperation from '@crud/CRUD.operation'
@ -124,7 +137,7 @@ const defaultForm = {
} }
export default { export default {
name: 'Mo', name: 'Mo',
components: {DateRangePicker, pagination, crudOperation, rrOperation, udOperation}, components: {MlsMo,DateRangePicker, pagination, crudOperation, rrOperation, udOperation},
mixins: [presenter(), header(), form(defaultForm), crud()], mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() { cruds() {
return CRUD({ return CRUD({

View File

@ -0,0 +1,79 @@
<template>
<div>
<el-dialog :close-on-click-modal="false" :before-close="cancelForm" :visible.sync="this.dialog" :title="title" width="450px">
<el-form ref="form" :model="form" :rules="rules" size="small">
<!-- <el-date-picker v-model="query.createTime" class="date-item" style="width: 100px"/>-->
<el-date-picker
prop="item"
style="width: 350px"
type="dates"
v-model="from.createTime"
placeholder="选择一个或多个日期">
</el-date-picker>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="cancelForm"> </el-button>
<el-button type="primary" @click="submitMlsOrder(from)"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import crudMo from "@/api/mo"
import DateRangePicker from "@/components/DateRangePicker/index.vue";
import CRUD, {form, crud} from '@crud/crud'
import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination'
const defaultForm = {
id: null
}
export default {
// name: 'MlsOrder',
components: {DateRangePicker, pagination, crudOperation, rrOperation, udOperation},
mixins: [form(defaultForm), crud()], data() {
return {
dialog:false,
title: '获取Mo票',
from:{
createTime:null
},
rules: {
item: [
{required: true, message: '必填', trigger: 'blur'}
]
},
}
},
methods: {
openForm(){
this.dialog = true;
},
cancelForm(){
this.dialog = false;
this.$refs['form'].resetFields();
},
submitMlsOrder(data) {
crudMo.mlsMo(data.createTime).then(res => {
this.crud.notify(res.msg, CRUD.NOTIFICATION_TYPE.SUCCESS);
this.crud.toQuery();
this.dialog = false;//
})
}
}
}
</script>
<style scoped>
.java.hljs {
color: #444;
background: #ffffff !important;
}
::v-deep .el-dialog__body {
padding: 0 20px 10px 20px !important;
}
</style>

View File

@ -39,7 +39,19 @@
</div> </div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'--> <!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" /> <crudOperation :permission="permission">
<el-button
slot="left"
class="filter-item"
type="success"
icon="el-icon-zoom-out"
size="mini"
@click="$refs.mlsOrder.openForm()"
>
获取送货单
</el-button>
</crudOperation>
<MlsOrder ref="mlsOrder"/>
<!--表单组件--> <!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" <el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0"
:title="crud.status.title" width="500px"> :title="crud.status.title" width="500px">
@ -98,9 +110,9 @@
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import crudOrder from '@/api/order' import crudOrder from '@/api/order'
import MlsOrder from './mlsOrder'
import CRUD, {presenter, header, form, crud} from '@crud/crud' import CRUD, {presenter, header, form, crud} from '@crud/crud'
import rrOperation from '@crud/RR.operation' import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation' import crudOperation from '@crud/CRUD.operation'
@ -113,7 +125,7 @@ const defaultForm = {
} }
export default { export default {
name: 'Order', name: 'Order',
components: {DateRangePicker, pagination, crudOperation, rrOperation, udOperation}, components: {MlsOrder,DateRangePicker, pagination, crudOperation, rrOperation, udOperation},
mixins: [presenter(), header(), form(defaultForm), crud()], mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() { cruds() {
return CRUD({ return CRUD({

View File

@ -0,0 +1,84 @@
<template>
<div>
<el-dialog :visible.sync="this.dialog"
:title="title"
width="450px"
:before-close="cancelForm">
<el-form ref="form" :model="form" :rules="rules" size="small">
<!-- <el-date-picker v-model="query.createTime" class="date-item" style="width: 100px"/>-->
<el-date-picker
prop="item"
style="width: 350px"
type="dates"
v-model="from.createTime"
placeholder="选择一个或多个日期">
</el-date-picker>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="cancelForm"> </el-button>
<el-button type="primary" @click="submitMlsOrder(from)"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import stockUrl from "@/api/stock"
import crudOrder from "@/api/order"
import DateRangePicker from "@/components/DateRangePicker/index.vue";
import CRUD, {presenter, header, form, crud} from '@crud/crud'
import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination'
const defaultForm = {
id: null
}
export default {
// name: 'MlsOrder',
components: {DateRangePicker, pagination, crudOperation, rrOperation, udOperation},
mixins: [form(defaultForm), crud()], data() {
return {
dialog:false,
title: '获取出库单',
from:{
createTime:null
},
rules: {
item: [
{required: true, message: '必填', trigger: 'blur'}
]
},
}
},
methods: {
openForm(){
console.log("打开")
this.dialog = true;
},
cancelForm(){
this.dialog = false;
this.$refs['form'].resetFields();
},
submitMlsOrder(data) {
crudOrder.mlsOrder(data.createTime).then(res => {
this.crud.notify(res.msg, CRUD.NOTIFICATION_TYPE.SUCCESS);
this.crud.toQuery();
this.dialog = false;//
})
}
}
}
</script>
<style scoped>
.java.hljs {
color: #444;
background: #ffffff !important;
}
::v-deep .el-dialog__body {
padding: 0 20px 10px 20px !important;
}
</style>

View File

@ -29,10 +29,12 @@
<el-table-column :show-overflow-tooltip="true" prop="cronExpression" label="cron表达式" /> <el-table-column :show-overflow-tooltip="true" prop="cronExpression" label="cron表达式" />
<el-table-column prop="createTime" label="异常详情" width="110px"> <el-table-column prop="createTime" label="异常详情" width="110px">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-show="scope.row.exceptionDetail" size="mini" type="text" @click="info(scope.row.exceptionDetail)"></el-button> <el-button size="mini" type="text" @click="info(scope.row.exceptionDetail)"></el-button>
<!-- <el-button v-show="scope.row.exceptionDetail" size="mini" type="text" @click="info(scope.row.exceptionDetail)"></el-button>-->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :show-overflow-tooltip="true" align="center" prop="time" width="100px" label="耗时(毫秒)" /> <el-table-column :show-overflow-tooltip="true" align="center" prop="time" width="100px" label="耗时(毫秒)" />
<el-table-column :show-overflow-tooltip="true" align="center" prop="freq" width="100px" label="重复请求" />
<el-table-column align="center" prop="isSuccess" width="80px" label="状态"> <el-table-column align="center" prop="isSuccess" width="80px" label="状态">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag :type="scope.row.isSuccess ? 'success' : 'danger'">{{ scope.row.isSuccess ? '成功' : '失败' }}</el-tag> <el-tag :type="scope.row.isSuccess ? 'success' : 'danger'">{{ scope.row.isSuccess ? '成功' : '失败' }}</el-tag>