This commit is contained in:
朱文强 2024-08-20 16:55:49 +08:00
parent 30ed83a8c2
commit 072757fada
19 changed files with 497 additions and 154 deletions

View File

@ -16,6 +16,22 @@ export function inventoryOverview(id) {
method: 'get' method: 'get'
}) })
} }
// 熟化时间提醒
export function rollTimeRemind(day) {
return request({
url: '/asrs/warehouse-storehouse-goods-specification/xday?xDays=' + day,
method: 'get'
})
}
// 导出熟化时间提醒 Excel
export function exportgetoverfinishtimeExcel(day) {
return request({
url: '/asrs/warehouse-storehouse-goods-specification/exportgetoverfinishtime?xDays=' + day,
method: 'get',
responseType: 'blob'
})
}
// 更新立体仓库货物规格关联 // 更新立体仓库货物规格关联
export function updateWarehouseStorehouseGoodsSpecification(data) { export function updateWarehouseStorehouseGoodsSpecification(data) {
return request({ return request({

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2024-04-16 15:08:37 * @Date: 2024-04-16 15:08:37
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2024-05-28 14:30:33 * @LastEditTime: 2024-07-15 13:42:39
* @Description: * @Description:
*/ */
import request from '@/utils/request' import request from '@/utils/request'
@ -131,6 +131,7 @@ export function mesoutsync(data) {
return request({ return request({
url: '/asrs/delivery-history/mesoutsync', url: '/asrs/delivery-history/mesoutsync',
method: 'post', method: 'post',
data: data data: data,
timeout: 100000,
}) })
} }

View File

@ -1,37 +1,21 @@
<!--
* @Author: zwq
* @Date: 2023-08-17 15:10:53
* @LastEditors: zwq
* @LastEditTime: 2024-08-20 15:30:57
* @Description:
-->
<template> <template>
<div> <div title="膜卷熟化时间提醒" >
<el-popover placement="bottom" width="600" trigger="click"> <svg-icon icon-class="message" @click="refreshPage" />
<!-- icon 展示 --> <!-- icon 展示 -->
<el-badge slot="reference" :is-dot="unreadCount > 0" type="danger"> <el-badge :value="unreadCount" type="danger" />
<svg-icon icon-class="message" @click="getList"/>
</el-badge>
<!-- 弹出列表 -->
<el-table v-loading="loading" :data="list">
<el-table-column width="120" property="templateNickname" label="发送人" />
<el-table-column width="180" property="createTime" label="发送时间">
<template v-slot="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="类型" align="center" prop="templateType" width="100">
<template v-slot="scope">
<dict-tag :type="DICT_TYPE.SYSTEM_NOTIFY_TEMPLATE_TYPE" :value="scope.row.templateType" />
</template>
</el-table-column>
<el-table-column property="templateContent" label="内容" />
</el-table>
<!-- 更多 -->
<div style="text-align: right; margin-top: 10px">
<el-button type="primary" size="mini" @click="goMyList">查看全部</el-button>
</div>
</el-popover>
</div> </div>
</template> </template>
<script> <script>
import {getUnreadNotifyMessageCount, getUnreadNotifyMessageList} from "@/api/system/notify/message"; import { listData } from '@/api/system/dict/data';
import { rollTimeRemind } from '@/api/asrs/warehouseStorehouseGoodsSpecification';
export default { export default {
name: 'NotifyMessage', name: 'NotifyMessage',
@ -43,38 +27,55 @@ export default {
list: [], list: [],
// , // ,
unreadCount: 0, unreadCount: 0,
} xDays: '',
};
},
mounted() {
this.setTimer();
}, },
created() { created() {
// //
this.getUnreadCount() this.refreshPage();
// //
setInterval(() => { setInterval(() => {
this.getUnreadCount() this.refreshPage();
},1000 * 60 * 2) }, 1000 * 60 * 60);
}, },
methods: { methods: {
getList: function() { setTimer() {
this.loading = true; //
getUnreadNotifyMessageList().then(response => { const now = new Date();
this.list = response.data; // 12
this.loading = false; const timeToMidnight =
// unreadCount 0 23 * 60 * 60 * 1000 +
this.unreadCount = 0 59 * 60 * 1000 +
}); 59 * 1000 -
(now.getTime() % (24 * 60 * 60 * 1000));
//
this.timer = setTimeout(this.refreshPage, timeToMidnight);
}, },
getUnreadCount: function() { refreshPage() {
getUnreadNotifyMessageCount().then(response => { this.unreadCount = 0;
this.unreadCount = response.data; const queryParams = {
}) pageNo: 1,
}, pageSize: 99,
goMyList: function() { dictType: 'rollTimeRemind',
this.$router.push({ };
name: 'MyNotifyMessage' listData(queryParams).then((response) => {
if (response.data.list.length > 0) {
this.xDays = response.data.list[0].value;
rollTimeRemind(this.xDays).then((response) => {
this.unreadCount = response.length;
console.log(this.unreadCount);
}); });
} }
} });
}
//
this.setTimer();
},
},
};
</script> </script>
<style> <style>
.el-badge__content.is-fixed { .el-badge__content.is-fixed {

View File

@ -10,7 +10,7 @@
<!-- <search id="header-search" class="right-menu-item" /> --> <!-- <search id="header-search" class="right-menu-item" /> -->
<!-- 站内信 --> <!-- 站内信 -->
<!-- <notify-message class="right-menu-item hover-effect" /> --> <notify-message class="right-menu-item hover-effect" />
<!-- <screenfull id="screenfull" class="right-menu-item hover-effect" /> --> <!-- <screenfull id="screenfull" class="right-menu-item hover-effect" /> -->

View File

@ -1,3 +1,10 @@
/*
* @Author: zwq
* @Date: 2023-10-13 16:08:51
* @LastEditors: zwq
* @LastEditTime: 2024-05-31 14:01:29
* @Description:
*/
import router from './router' import router from './router'
import store from './store' import store from './store'
import { Message } from 'element-ui' import { Message } from 'element-ui'

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2023-08-17 15:10:53 * @Date: 2023-08-17 15:10:53
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2023-10-08 15:33:03 * @LastEditTime: 2024-08-19 10:29:41
* @Description: * @Description:
*/ */
import Vue from 'vue' import Vue from 'vue'
@ -83,6 +83,18 @@ export const constantRoutes = [
} }
] ]
}, },
{
path: '/dict',
component: Layout,
hidden: true,
children: [{
path: 'type/data/:dictId(\\d+)',
component: (resolve) => require(['@/views/system/dict/data'], resolve),
name: 'SystemDictData',
meta: { title: '字典数据', icon: '', activeMenu: '/system/dict' }
}
]
},
{ {
path: '/user', path: '/user',
component: Layout, component: Layout,

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2021-11-18 14:16:25 * @Date: 2021-11-18 14:16:25
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2024-06-03 16:50:47 * @LastEditTime: 2024-08-19 09:42:47
* @Description: * @Description:
--> -->
<template> <template>
@ -53,9 +53,9 @@
<el-radio-group <el-radio-group
v-model="dataForm.deliveryType" v-model="dataForm.deliveryType"
@input="setNeedTrayNumber"> @input="setNeedTrayNumber">
<el-radio :label="1">单托盘出库</el-radio> <el-radio :label="1">单托盘出库(空托盘)</el-radio>
<el-radio :label="2">多托盘出库</el-radio> <el-radio :label="2">多托盘出库(自动包装线)</el-radio>
<el-radio :label="3">点对点出库</el-radio> <el-radio :label="3">点对点出库(工单出库)</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>

View File

@ -30,7 +30,7 @@
@cancel="handleCancel" @cancel="handleCancel"
@confirm="handleConfirm" @confirm="handleConfirm"
:before-close="handleCancel" :before-close="handleCancel"
width="50%"> width="70%">
<add-or-update ref="addOrUpdate" @refreshDataList="successSubmit" /> <add-or-update ref="addOrUpdate" @refreshDataList="successSubmit" />
</base-dialog> </base-dialog>
</div> </div>

View File

@ -279,7 +279,10 @@ export default {
} }
}, },
otherMethods(val) { otherMethods(val) {
mesoutsync({deliveryCode:val.data.deliveryCode}).then(({ data }) => { mesoutsync({
deliveryCode: val.data.deliveryCode,
trayCode: val.data.trayCode,
}).then(({ data }) => {
this.$message({ this.$message({
message: '操作成功', message: '操作成功',
type: 'success', type: 'success',

View File

@ -133,6 +133,18 @@ const mainTaskType = [
name: '平库移库', name: '平库移库',
id: 10, id: 10,
}, },
{
name: '盘库出库',
id: 11,
},
{
name: '盘库入库',
id: 12,
},
{
name: '盘库出库+移库',
id: 13,
},
]; ];
const mainTaskState = [ const mainTaskState = [
{ {

View File

@ -133,6 +133,18 @@ const mainTaskType = [
name: '平库移库', name: '平库移库',
id: 10, id: 10,
}, },
{
name: '盘库出库',
id: 11,
},
{
name: '盘库入库',
id: 12,
},
{
name: '盘库出库+移库',
id: 13,
},
]; ];
const mainTaskState = [ const mainTaskState = [
{ {

View File

@ -132,6 +132,18 @@ const mainTaskType = [
name: '平库移库', name: '平库移库',
id: 10, id: 10,
}, },
{
name: '盘库出库',
id: 11,
},
{
name: '盘库入库',
id: 12,
},
{
name: '盘库出库+移库',
id: 13,
},
]; ];
const mainTaskState = [ const mainTaskState = [
{ {

View File

@ -2,7 +2,7 @@
/* /*
* @Date: 2020-12-29 16:49:28 * @Date: 2020-12-29 16:49:28
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2024-06-05 11:00:34 * @LastEditTime: 2024-06-21 15:00:05
* @FilePath: \basic-admin\src\filters\basicData\index.js * @FilePath: \basic-admin\src\filters\basicData\index.js
* @Description: * @Description:
*/ */
@ -41,6 +41,9 @@ const table = {
8: '不带agv出库+移库', 8: '不带agv出库+移库',
9: '入库+12臂空托盘出库', 9: '入库+12臂空托盘出库',
10: '平库移库', 10: '平库移库',
11: '盘库出库',
12: '盘库入库',
13: '盘库出库+移库',
}, },
mainTaskState: { mainTaskState: {
0: '开始', 0: '开始',
@ -52,6 +55,7 @@ const table = {
6: '已发送传输线', 6: '已发送传输线',
7: '传输线运行中', 7: '传输线运行中',
8: '暂时无空托盘', 8: '暂时无空托盘',
9: '已处理',
}, },
taskSource: { taskSource: {
1: 'mes下发', 1: 'mes下发',

View File

@ -0,0 +1,165 @@
<!--
* @Author: zwq
* @Date: 2024-02-27 14:43:14
* @LastEditors: zwq
* @LastEditTime: 2024-08-20 16:17:36
* @Description:
-->
<template>
<div class="app-container">
<!-- 搜索工作栏 -->
<search-bar
:formConfigs="formConfig"
ref="searchBarForm"
@headBtnClick="buttonClick" />
<div v-if="containerCodeArr.length > 0">
<el-descriptions title="膜卷熟化时间信息" size="mini" border>
<el-descriptions-item label="当前设置天数">
{{ this.xDays.value }}
</el-descriptions-item>
<el-descriptions-item label="提醒数量">
{{ containerCodeArr.length }}
</el-descriptions-item>
<el-descriptions-item label="每页数量">
<el-input-number
v-model="pageSize"
:step="50"
:min="100"
size="small"
step-strictly />
</el-descriptions-item>
</el-descriptions>
<el-divider content-position="left">
以下每页上限 {{ pageSize }} 条数据
</el-divider>
<el-tabs v-model="activeName">
<el-tab-pane
v-for="i in Math.ceil(containerCodeArr.length / pageSize)"
:key="i"
:label="'第' + i + '页'"
:name="i + '页'">
<el-tag
style="margin: 5px; border: 1px solid #67c23a"
v-for="(item, index) in containerCodeArr.slice(
(i - 1) * pageSize,
i * pageSize
)"
:key="index"
effect="plain"
size="small">
{{ item.containerCode }}
</el-tag>
</el-tab-pane>
</el-tabs>
</div>
</div>
</template>
<script>
import { listData, updateData } from '@/api/system/dict/data';
import {
rollTimeRemind,
exportgetoverfinishtimeExcel,
} from '@/api/asrs/warehouseStorehouseGoodsSpecification';
export default {
data() {
return {
warehouseId: '1696803324030865409',
xDays: {},
containerCodeArr: [],
activeName: '1页',
pageSize: 200,
formConfig: [
{
type: 'input',
label: '设置天数',
placeholder: '设置天数',
param: 'day',
},
{
type: 'button',
btnName: '设置',
name: 'search',
color: 'primary',
},
{
type: 'button',
btnName: '导出',
name: 'export',
color: 'primary',
plain: true,
},
],
};
},
components: {},
created() {
this.init();
const queryParams = {
pageNo: 1,
pageSize: 99,
dictType: 'rollTimeRemind',
};
listData(queryParams).then((response) => {
this.formConfig[0].selectOptions = response.data.list;
if (response.data.list.length > 0) {
this.formConfig[0].placeholder = response.data.list[0].value;
this.xDays = response.data.list[0];
this.setDay();
}
});
},
methods: {
init() {},
setDay() {
this.containerCodeArr = [];
rollTimeRemind(this.xDays.value).then((response) => {
this.containerCodeArr = response;
});
},
buttonClick(val) {
switch (val.btnName) {
case 'search':
const regex = /^[1-9]\d*$/;
if (regex.test(val.day)) {
this.xDays.value = val.day;
this.setDay();
this.setDict(); //
} else {
this.$message({
message: '请输入正整数天数!',
type: 'warning',
});
}
break;
case 'export':
this.handleExport('膜卷熟化时间信息',val.day);
break;
default:
console.log(val);
}
},
/** 修改字典天数设置 */
setDict: function () {
updateData(this.xDays).then((response) => {});
},
/** 导出按钮操作 */
handleExport(name,day) {
//
this.$modal
.confirm('是否确认导出膜卷熟化时间信息')
.then(() => {
this.exportLoading = true;
return exportgetoverfinishtimeExcel(day);
})
.then((response) => {
this.$download.excel(response, name + '.xls');
this.exportLoading = false;
})
.catch(() => {});
},
},
};
</script>
<style lang="scss" scoped></style>

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2023-08-22 15:01:55 * @Date: 2023-08-22 15:01:55
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2024-06-07 15:50:38 * @LastEditTime: 2024-06-21 15:18:01
* @Description: * @Description:
--> -->
<template> <template>
@ -75,7 +75,12 @@
:height="400" :height="400"
:table-data="productAttributeList"></base-table> :table-data="productAttributeList"></base-table>
<!-- 表格底部加号 --> <!-- 表格底部加号 -->
<el-button class="checkButton" type="primary" @click="check" :loading="isloading"> <el-button
v-if="!isDetail"
class="checkButton"
type="primary"
@click="check"
:loading="isloading">
检查 检查
</el-button> </el-button>
</div> </div>
@ -84,7 +89,7 @@
<div style="position: absolute; bottom: 24px; right: 24px"> <div style="position: absolute; bottom: 24px; right: 24px">
<el-button style="margin-right: 10px" @click="goback()">返回</el-button> <el-button style="margin-right: 10px" @click="goback()">返回</el-button>
<span> <span v-if="!isDetail">
<el-button <el-button
style="margin-right: 10px" style="margin-right: 10px"
type="success" type="success"
@ -107,7 +112,7 @@ import {
makeWarehouseIn, makeWarehouseIn,
checkout, checkout,
} from '@/api/asrs/warehousePklb'; } from '@/api/asrs/warehousePklb';
import inputArea from '../mixins/inputArea'; import inputArea from './inputArea';
import SmallTitle from './SmallTitle'; import SmallTitle from './SmallTitle';
const tableProps = [ const tableProps = [
@ -148,15 +153,18 @@ export default {
asrsLineEdgeLibraryName: null, asrsLineEdgeLibraryName: null,
}, },
dataRule: {}, dataRule: {},
isDetail: false,
}; };
}, },
methods: { methods: {
initData() { initData() {
this.productAttributeList.splice(0); this.productAttributeList.splice(0);
}, },
init(data) { init(data, isDetail) {
this.isloading = false; this.isloading = false;
this.dataForm.warehouseStorehouseStorageId = data.warehouseStorehouseStorageId; this.isDetail = isDetail;
this.dataForm.warehouseStorehouseStorageId =
data.warehouseStorehouseStorageId;
this.listQuery = { this.listQuery = {
agvEndPoint: data.agvEndPoint, agvEndPoint: data.agvEndPoint,
barCode: data.barCode, barCode: data.barCode,
@ -175,10 +183,16 @@ export default {
this.dataForm.warehouseStorehouseStorageId, this.dataForm.warehouseStorehouseStorageId,
}; };
getWarehousePklbDetailPage(params).then((response) => { getWarehousePklbDetailPage(params).then((response) => {
if (response.data.list.length>0) { if (response.data.list.length > 0) {
this.dataForm = response.data.list[0]; this.dataForm = response.data.list[0];
} }
this.productAttributeList = response.data.list; this.productAttributeList = response.data.list;
this.productAttributeList.forEach((item) => {
item.isDisabled = this.isDetail;
if (this.isDetail) {
item.inventoryInput = item.rollCodeCheck;
}
});
}); });
}); });
}, },
@ -215,10 +229,12 @@ export default {
}); });
if (cancel) return; if (cancel) return;
const data = { const data = {
warehouseStorehouseStorageId:this.dataForm.warehouseStorehouseStorageId, warehouseStorehouseStorageId:
userInputCheckList:strings this.dataForm.warehouseStorehouseStorageId,
} userInputCheckList: strings,
getWarehousePklbDetailCheck(data).then((response) => { };
getWarehousePklbDetailCheck(data)
.then((response) => {
this.$modal.msgWarning(response); this.$modal.msgWarning(response);
this.isloading = false; this.isloading = false;
}) })
@ -234,7 +250,8 @@ export default {
this.dataForm.warehouseStorehouseStorageId, this.dataForm.warehouseStorehouseStorageId,
}; };
this.isloading = true; this.isloading = true;
checkout(data).then((response) => { checkout(data)
.then((response) => {
this.$modal.msgSuccess('同步mes出库成功'); this.$modal.msgSuccess('同步mes出库成功');
this.visible = false; this.visible = false;
this.isloading = false; this.isloading = false;
@ -252,7 +269,8 @@ export default {
makeoutlist: this.productAttributeList, makeoutlist: this.productAttributeList,
}; };
this.isloading = true; this.isloading = true;
makeWarehouseIn(data).then((response) => { makeWarehouseIn(data)
.then((response) => {
this.$modal.msgSuccess('入库成功'); this.$modal.msgSuccess('入库成功');
this.visible = false; this.visible = false;
this.isloading = false; this.isloading = false;

View File

@ -14,7 +14,7 @@
<method-btn <method-btn
v-if="tableBtn.length" v-if="tableBtn.length"
slot="handleBtn" slot="handleBtn"
:width="80" :width="90"
label="操作" label="操作"
:method-list="tableBtn" :method-list="tableBtn"
@clickBtn="handleClick" /> @clickBtn="handleClick" />
@ -180,6 +180,10 @@ const mainTaskState = [
name: '暂时无空托盘', name: '暂时无空托盘',
id: 8, id: 8,
}, },
{
name: '已处理',
id: 9,
},
]; ];
export default { export default {
mixins: [basicPage], mixins: [basicPage],
@ -209,6 +213,20 @@ export default {
], ],
}, },
}, },
{
type: 'detail',
btnName: '详情',
showParam: {
type: '&',
data: [
{
type: 'equal',
name: 'mainTaskState',
value: 9,
},
],
},
},
], ],
tableData: [], tableData: [],
formConfig: [ formConfig: [
@ -319,11 +337,19 @@ export default {
} }
}, },
otherMethods(val) { otherMethods(val) {
if (val.type === 'check') {
this.addOrUpdateVisible = true; this.addOrUpdateVisible = true;
this.addOrEditTitle = '盘货明细表'; this.addOrEditTitle = '盘货明细表';
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.addOrUpdate.init(val.data); this.$refs.addOrUpdate.init(val.data, false);
}); });
} else if (val.type === 'detail') {
this.addOrUpdateVisible = true;
this.addOrEditTitle = '盘货明细表';
this.$nextTick(() => {
this.$refs.addOrUpdate.init(val.data, true);
});
}
}, },
}, },
}; };

View File

@ -0,0 +1,55 @@
<!--
* @Author: zwq
* @Date: 2023-09-22 15:36:40
* @LastEditors: zwq
* @LastEditTime: 2024-06-21 15:07:10
* @Description:
-->
<template>
<div class="tableInner">
<el-input
v-model="list[itemProp]"
:id="'inputFocus'+injectData._pageIndex"
:disabled="injectData.isDisabled"
@blur="changeInput"
@keyup.enter.native="nextInput" />
</div>
</template>
<script>
export default {
name: 'InputArea',
props: {
injectData: {
type: Object,
default: () => ({}),
},
itemProp: {
type: String,
},
},
data() {
return {
list: this.injectData,
};
},
methods: {
changeInput() {
this.list.sType = 1;
this.$emit('emitData', this.list, 1);
},
nextInput(){
this.list.sType = 3;
this.$emit('emitData', this.list, 3);
}
},
};
</script>
<style scoped>
.tableInner >>> .el-input__inner {
color: #409eff;
border: 1px rgb(232, 231, 231) solid;
padding: 0;
text-align: center;
height: 30px;
}
</style>

View File

@ -26,6 +26,7 @@
<el-table-column <el-table-column
prop="warehouseStorehouseCode" prop="warehouseStorehouseCode"
label="库位编码"></el-table-column> label="库位编码"></el-table-column>
<el-table-column prop="workOrderCode" label="工单编码" />
<el-table-column prop="trayCode" label="托盘编码"></el-table-column> <el-table-column prop="trayCode" label="托盘编码"></el-table-column>
<el-table-column <el-table-column
prop="process" prop="process"

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2023-08-21 14:26:23 * @Date: 2023-08-21 14:26:23
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2024-02-22 14:23:55 * @LastEditTime: 2024-08-19 09:38:57
* @Description: * @Description:
--> -->
<template> <template>
@ -76,29 +76,28 @@ export default {
exportURL: exportFinishProductWarehouseExcel, exportURL: exportFinishProductWarehouseExcel,
}, },
listQuery: { listQuery: {
wareLayer: 1,
total: 0, total: 0,
}, },
wareData: [], wareData: [],
bgColor: ['#d3d3d3', '#16DC09'], // bgColor: ['#d3d3d3', '#16DC09'], //
formConfig: [ formConfig: [
{ // {
type: 'select', // type: 'select',
label: '选择层', // label: '',
selectOptions: [ // selectOptions: [
{ id: 1, name: '1' }, // { id: 1, name: '1' },
{ id: 2, name: '2' }, // { id: 2, name: '2' },
{ id: 3, name: '3' }, // { id: 3, name: '3' },
{ id: 4, name: '4' }, // { id: 4, name: '4' },
], // ],
param: 'value', // param: 'value',
filterable: true, // filterable: true,
defaultSelect: 1, // defaultSelect: 1,
clearable: false, // clearable: false,
}, // },
{ {
type: 'button', type: 'button',
btnName: '搜索', btnName: '刷新',
name: 'search', name: 'search',
color: 'primary', color: 'primary',
}, },
@ -128,7 +127,6 @@ export default {
buttonClick(val) { buttonClick(val) {
switch (val.btnName) { switch (val.btnName) {
case 'search': case 'search':
this.listQuery.wareLayer = val.value;
this.getDataList(); this.getDataList();
break; break;
case 'export': case 'export':