新增出库单

This commit is contained in:
朱文强 2024-04-17 14:20:48 +08:00
parent 89e51af775
commit baa2094fb6
5 changed files with 1056 additions and 39 deletions

100
src/api/oth/delivery.js Normal file
View File

@ -0,0 +1,100 @@
/*
* @Author: zwq
* @Date: 2024-04-16 15:08:37
* @LastEditors: zwq
* @LastEditTime: 2024-04-16 16:22:00
* @Description:
*/
import request from '@/utils/request'
// 创建出库单
export function createDelivery(data) {
return request({
url: '/asrs/delivery/create',
method: 'post',
data: data
})
}
// 更新出库单
export function updateDelivery(data) {
return request({
url: '/asrs/delivery/update',
method: 'put',
data: data
})
}
// 删除出库单
export function deleteDelivery(id) {
return request({
url: '/asrs/delivery/delete?id=' + id,
method: 'delete'
})
}
// 获得出库单
export function getDelivery(id) {
return request({
url: '/asrs/delivery/get?id=' + id,
method: 'get'
})
}
// 获得出库单分页
export function getDeliveryPage(query) {
return request({
url: '/asrs/delivery/page',
method: 'get',
params: query
})
}
// 重启当前出库单
export function restartDelivery(data) {
return request({
url: '/asrs/delivery/restart',
method: 'put',
data: data
})
}
// 暂停当前出库单
export function pauseDelivery(data) {
return request({
url: '/asrs/delivery/pause',
method: 'put',
data: data
})
}
// 提升当前出库单
export function improveDelivery(data) {
return request({
url: '/asrs/delivery/improve',
method: 'put',
data: data
})
}
// 取消当前出库单
export function cancelDelivery(data) {
return request({
url: '/asrs/delivery/cancel',
method: 'put',
data: data
})
}
// 获得出库单分页
export function getDeliveryHisPage(query) {
return request({
url: '/asrs/delivery-history/page',
method: 'get',
params: query
})
}
// 获得code
export function getCode() {
return request({
url: '/asrs/delivery/getCode',
method: 'post'
})
}

View File

@ -0,0 +1,241 @@
<!--
* @Author: zwq
* @Date: 2021-11-18 14:16:25
* @LastEditors: zwq
* @LastEditTime: 2024-04-17 14:13:36
* @Description:
-->
<template>
<el-form
:model="dataForm"
:rules="dataRule"
ref="dataForm"
@keyup.enter.native="dataFormSubmit()"
label-width="100px">
<el-form-item label="出库单号" prop="deliveryCode">
<el-input
v-model="dataForm.deliveryCode"
clearable
placeholder="请输入出库单号" />
</el-form-item>
<el-form-item label="货物名称" prop="productName">
<el-select
v-model="dataForm.productName"
filterable
style="display: inline-block"
@change="setShowTrayType"
placeholder="请选择货物名称">
<el-option
v-for="item in productArr"
:key="item.id"
:label="item.goodSpecificationName"
:value="item.goodSpecificationName"></el-option>
</el-select>
<div style="display: inline-block;margin-left: 10px;">
<el-tag size="mini" type="warning">
<i class="el-icon-question" />
出空托盘请选择无产品
</el-tag>
</div>
</el-form-item>
<el-form-item label="出库类型" prop="deliveryType">
<el-radio-group
v-model="dataForm.deliveryType"
@input="setNeedTrayNumber">
<el-radio :label="1">单托盘出库</el-radio>
<el-radio :label="2">多托盘出库</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="所需托盘数" prop="needTrayNumber">
<el-input-number
v-model="dataForm.needTrayNumber"
:min="dataForm.deliveryType === 2 ? 2 : 1"
:disabled="dataForm.deliveryType === 1" />
</el-form-item>
<el-form-item label="已补托盘数" prop="alreadyOutNumber">
<el-input-number v-model="dataForm.alreadyOutNumber" disabled />
</el-form-item>
<el-form-item
label="发货位置"
prop="lineEdgeLibraryCode"
key="lineEdgeLibraryCode"
v-if="dataForm.deliveryType === 1">
<el-select
v-model="dataForm.lineEdgeLibraryCode"
filterable
placeholder="请选择">
<el-option
v-for="item in potArr"
:key="item.id"
:label="item.lineEdgeLibraryCode"
:value="item.lineEdgeLibraryCode"></el-option>
</el-select>
</el-form-item>
<el-form-item
label="发货区域"
prop="region"
key="region"
v-if="dataForm.deliveryType === 2">
<el-select v-model="dataForm.region" placeholder="请选择">
<el-option
v-for="item in regionArr"
:key="item.id"
:label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item
label="货物品质"
prop="productQuality"
key="productQuality"
v-if="!showTrayType">
<el-input
v-model="dataForm.productQuality"
clearable
placeholder="请输入货物品质" />
</el-form-item>
<el-form-item
label="膜卷号"
prop="rollCode"
key="rollCode"
v-if="dataForm.deliveryType === 1 && !showTrayType">
<el-input
v-model="dataForm.rollCode"
clearable
placeholder="请输入膜卷号" />
</el-form-item>
<el-form-item
label="托盘类型"
key="trayType"
prop="trayType"
v-if="showTrayType">
<el-select v-model="dataForm.trayType" placeholder="请选择">
<el-option
v-for="item in trayTypeArr"
:key="item.id"
:label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
</el-form>
</template>
<script>
import basicAdd from '../mixins/basic-add';
import {
createDelivery,
updateDelivery,
getDelivery,
getCode,
} from '@/api/oth/delivery';
import { getLineList } from '@/api/asrs/warehouseStorehouse';
import { getGoodSpecificationPage } from '@/api/asrs/goodSpecification';
const regionArr = [
{ name: '一次分切区域', id: 1 },
{ name: '一次分拣区域', id: 2 },
{ name: '二次分切区域', id: 3 },
{ name: '二次分拣区域', id: 4 },
{ name: '手动包装区域', id: 5 },
{ name: '涂覆区域', id: 6 },
{ name: '其他', id: 7 },
{ name: '自动包装区域', id: 8 },
];
export default {
mixins: [basicAdd],
data() {
return {
urlOptions: {
isGetCode: true,
codeURL: getCode,
codeName: 'deliveryCode',
createURL: createDelivery,
updateURL: updateDelivery,
infoURL: getDelivery,
getOption: true,
},
dataForm: {
id: undefined,
deliveryCode: undefined,
productName: undefined,
deliveryType: 1,
needTrayNumber: 1,
alreadyOutNumber: 0,
status: 2,
lineEdgeLibraryCode: null,
productQuality: null,
rollCode: null,
trayType: null,
},
regionArr,
potArr: [],
productArr: [],
showTrayType: false,
trayTypeArr: [
{ id: 1, name: '6臂' },
{ id: 2, name: '12臂' },
],
dataRule: {
deliveryCode: [
{ required: true, message: '出库单号不能为空', trigger: 'blur' },
],
productQuality: [
{ required: true, message: '货物品质不能为空', trigger: 'blur' },
],
lineEdgeLibraryCode: [
{ required: true, message: '发货位置不能为空', trigger: 'change' },
],
productName: [
{ required: true, message: '货物名称不能为空', trigger: 'change' },
],
region: [
{ required: true, message: '发货区域不能为空', trigger: 'change' },
],
trayType: [
{ required: true, message: '托盘类型不能为空', trigger: 'change' },
],
},
};
},
methods: {
getArr() {
this.showTrayType = false;
this.dataForm.rollCode = null;
this.dataForm.trayType = null;
getLineList({ warehouseId: this.aId }).then((response) => {
this.potArr = response.data;
});
const params = {
pageSize: 100,
pageNo: 1,
warehouseId: this.aId,
};
getGoodSpecificationPage(params).then((response) => {
this.productArr = response.data.list;
});
},
setNeedTrayNumber(val) {
if (val === 1) {
this.dataForm.needTrayNumber = 1;
this.dataForm.region = null;
if (this.dataForm.productName !== '无产品') {
this.showTrayType = false;
} else {
this.showTrayType = true;
}
} else {
this.dataForm.needTrayNumber = 2;
this.dataForm.lineEdgeLibraryCode = null;
this.showTrayType = true;
}
},
setShowTrayType(val) {
if (val === '无产品') {
this.showTrayType = true;
} else {
this.showTrayType = false;
}
},
},
};
</script>

View File

@ -0,0 +1,493 @@
<template>
<div class="app-container">
<el-tabs v-model="activeName" @tab-click="toggleTab">
<el-tab-pane label="单托盘出库" name="one">
<search-bar
:formConfigs="formConfig"
ref="searchBarForm"
@headBtnClick="buttonClick" />
</el-tab-pane>
<el-tab-pane label="多托盘出库" name="more">
<search-bar
:formConfigs="formConfig2"
ref="searchBarForm2"
@headBtnClick="buttonClick" />
</el-tab-pane>
</el-tabs>
<div v-if="activeName === 'one'">
<base-table
v-loading="dataListLoading"
:table-props="tableProps"
:page="listQuery.pageNo"
:limit="listQuery.pageSize"
:table-data="tableData">
<method-btn
v-if="tableBtn.length"
slot="handleBtn"
:width="200"
label="操作"
:method-list="tableBtn"
@clickBtn="handleClick" />
</base-table>
</div>
<div v-if="activeName === 'more'">
<base-table
v-loading="dataListLoading"
:table-props="tableProps2"
:page="listQuery.pageNo"
:limit="listQuery.pageSize"
:table-data="tableData">
<method-btn
v-if="tableBtn.length"
slot="handleBtn"
:width="200"
label="操作"
:method-list="tableBtn"
@clickBtn="handleClick" />
</base-table>
</div>
<pagination
:limit.sync="listQuery.pageSize"
:page.sync="listQuery.pageNo"
:total="listQuery.total"
@pagination="getDataList" />
<base-dialog
:dialogTitle="addOrEditTitle"
:dialogVisible="addOrUpdateVisible"
@cancel="handleCancel"
@confirm="handleConfirm"
:before-close="handleCancel"
width="50%">
<add-or-update ref="addOrUpdate" @refreshDataList="successSubmit" />
</base-dialog>
</div>
</template>
<script>
import basicPage from '../mixins/basic-page';
import AddOrUpdate from './add-or-updata';
import { parseTime } from '../mixins/code-filter';
import {
getDeliveryPage,
restartDelivery,
pauseDelivery,
improveDelivery,
cancelDelivery,
deleteDelivery,
} from '@/api/oth/delivery';
import { getLineList } from '@/api/asrs/warehouseStorehouse';
import { getGoodSpecificationPage } from '@/api/asrs/goodSpecification';
import codeFilter from '../mixins/code-filter';
const tableProps = [
{
prop: 'deliveryCode',
label: '出库单号',
fixed: true,
},
{
prop: 'productName',
label: '货物名称',
},
{
prop: 'needTrayNumber',
label: '所需托盘数',
width: 90,
},
{
prop: 'alreadyOutNumber',
label: '已补托盘数',
width: 90,
},
{
prop: 'status',
label: '出库单状态',
filter: codeFilter('status'),
width: 90,
},
{
prop: 'deliveryType',
label: '出库类型',
filter: codeFilter('deliveryType'),
width: 95,
},
{
prop: 'lineEdgeLibraryCode',
label: '码头位置',
},
{
prop: 'productQuality',
label: '货物品质',
},
{
prop: 'rollCode',
label: '膜卷号',
},
{
prop: 'trayType',
label: '托盘类型',
filter: codeFilter('trayType'),
width: 80,
},
{
prop: 'updateTime',
label: '更新时间',
filter: parseTime,
width: 150,
},
];
const tableProps2 = [
{
prop: 'deliveryCode',
label: '出库单号',
fixed: true,
},
{
prop: 'productName',
label: '货物名称',
},
{
prop: 'needTrayNumber',
label: '所需托盘数',
width: 90,
},
{
prop: 'alreadyOutNumber',
label: '已补托盘数',
width: 90,
},
{
prop: 'status',
label: '出库单状态',
filter: codeFilter('status'),
width: 90,
},
{
prop: 'deliveryType',
label: '出库类型',
filter: codeFilter('deliveryType'),
width: 95,
},
{
prop: 'region',
label: '发货区域',
filter: codeFilter('region'),
},
{
prop: 'productQuality',
label: '货物品质',
},
{
prop: 'trayType',
label: '托盘类型',
filter: codeFilter('trayType'),
width: 80,
},
{
prop: 'updateTime',
label: '更新时间',
filter: parseTime,
width: 150,
},
];
const regionArr = [
{ name: '一次分切区域', id: 1 },
{ name: '一次分拣区域', id: 2 },
{ name: '二次分切区域', id: 3 },
{ name: '二次分拣区域', id: 4 },
{ name: '手动包装区域', id: 5 },
{ name: '涂覆区域', id: 6 },
{ name: '其他', id: 7 },
{ name: '自动包装区域', id: 8 },
];
export default {
mixins: [basicPage],
data() {
return {
urlOptions: {
getDataListURL: getDeliveryPage,
deleteURL: deleteDelivery,
},
regionArr,
tableProps,
tableProps2,
tableData: [],
activeName: 'one',
listQuery: {
deliveryType: '1',
},
tableBtn: [
{
type: 'restart',
btnName: '重启',
showParam: {
type: '&',
data: [
{
type: 'equal',
name: 'status',
value: 3,
},
],
},
},
{
type: 'pause',
btnName: '暂停',
showParam: {
type: '&',
data: [
{
type: 'unequal',
name: 'status',
value: 3,
},
],
},
},
{
type: 'improve',
btnName: '提升',
showParam: {
type: '&',
data: [
{
type: 'equal',
name: 'status',
value: 2,
},
],
},
},
{
type: 'cancel',
btnName: '取消',
},
].filter((v) => v),
formConfig: [
{
type: 'select',
label: '货物名称',
selectOptions: [],
param: 'productName',
defaultSelect: '',
filterable: true,
labelField: 'goodSpecificationName',
valueField: 'goodSpecificationName',
},
{
type: 'select',
label: '发货位置',
selectOptions: [],
param: 'lineEdgeLibraryCode',
defaultSelect: '',
filterable: true,
labelField: 'lineEdgeLibraryCode',
valueField: 'lineEdgeLibraryCode',
},
{
type: 'button',
btnName: '搜索',
name: 'search',
color: 'primary',
},
{
type: 'separate',
},
{
type: 'button',
btnName: '新增',
name: 'add',
color: 'success',
plain: true,
},
],
formConfig2: [
{
type: 'select',
label: '货物名称',
selectOptions: [],
param: 'productName',
defaultSelect: '',
filterable: true,
labelField: 'goodSpecificationName',
valueField: 'goodSpecificationName',
},
{
type: 'select',
label: '发货区域',
selectOptions: regionArr,
param: 'region',
defaultSelect: '',
filterable: true,
},
{
type: 'button',
btnName: '搜索',
name: 'search',
color: 'primary',
},
{
type: 'separate',
},
{
type: 'button',
btnName: '新增',
name: 'add',
color: 'success',
plain: true,
},
],
};
},
components: { AddOrUpdate },
created() {
const params = {
pageSize: 100,
pageNo: 1,
warehouseId: this.listQuery.warehouseId,
};
getGoodSpecificationPage(params).then((response) => {
this.formConfig[0].selectOptions = response.data.list;
});
getLineList({ warehouseId: this.listQuery.warehouseId }).then(
(response) => {
this.formConfig[1].selectOptions = response.data;
}
);
},
methods: {
buttonClick(val) {
switch (val.btnName) {
case 'search':
this.listQuery.pageNo = 1;
this.listQuery.pageSize = 10;
this.listQuery.productName = val.productName;
if (this.listQuery.deliveryType === '1') {
this.listQuery.lineEdgeLibraryCode = val.lineEdgeLibraryCode;
this.listQuery.region = null;
} else {
this.listQuery.lineEdgeLibraryCode = null;
this.listQuery.region = val.region;
}
this.getDataList();
break;
case 'add':
this.addOrEditTitle = '新增';
this.addOrUpdateVisible = true;
this.addOrUpdateHandle();
break;
default:
console.log(val);
}
},
toggleTab() {
if (this.activeName === 'one') {
this.listQuery.deliveryType = '1';
this.listQuery.region = null;
} else {
this.listQuery.deliveryType = '2';
this.listQuery.lineEdgeLibraryCode = null;
}
this.listQuery.pageNo = 1;
this.getDataList();
},
//tableBtn
otherMethods(val) {
if (val.type === 'restart') {
this.$confirm(
`确定对出库单号:${val.data.deliveryCode}进行重启操作?`,
'提示',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}
)
.then(() => {
restartDelivery(val.data).then((response) => {
this.$message({
message: '重启操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.getDataList();
},
});
});
})
.catch(() => {});
} else if (val.type === 'pause') {
this.$confirm(
`确定对出库单号:${val.data.deliveryCode}进行暂停操作?`,
'提示',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}
)
.then(() => {
pauseDelivery(val.data).then((response) => {
this.$message({
message: '暂停操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.getDataList();
},
});
});
})
.catch(() => {});
} else if (val.type === 'improve') {
this.$confirm(
`确定对出库单号:${val.data.deliveryCode}进行提升操作?`,
'提示',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}
)
.then(() => {
improveDelivery(val.data).then((response) => {
this.$message({
message: '提升操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.getDataList();
},
});
});
})
.catch(() => {});
} else {
this.$confirm(
`确定对出库单号:${val.data.deliveryCode}进行取消操作?`,
'提示',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}
)
.then(() => {
cancelDelivery(val.data).then((response) => {
this.$message({
message: '取消操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.getDataList();
},
});
});
})
.catch(() => {});
}
},
},
};
</script>

View File

@ -0,0 +1,157 @@
<template>
<div class="app-container">
<search-bar
:formConfigs="formConfig"
ref="searchBarForm"
@headBtnClick="buttonClick" />
<base-table
v-loading="dataListLoading"
:table-props="tableProps"
:page="listQuery.pageNo"
:limit="listQuery.pageSize"
:table-data="tableData"></base-table>
<pagination
:limit.sync="listQuery.pageSize"
:page.sync="listQuery.pageNo"
:total="listQuery.total"
@pagination="getDataList" />
</div>
</template>
<script>
import basicPage from '../mixins/basic-page';
import { parseTime } from '../mixins/code-filter';
import { getDeliveryHisPage } from '@/api/oth/delivery';
import codeFilter from '../mixins/code-filter';
import { getGoodSpecificationPage } from '@/api/asrs/goodSpecification';
const tableProps = [
{
prop: 'deliveryCode',
label: '出库单号',
},
{
prop: 'productName',
label: '货物名称',
},
{
prop: 'needTrayNumber',
label: '所需托盘数',
width: 90
},
{
prop: 'alreadyOutNumber',
label: '已补托盘数',
width: 90
},
{
prop: 'status',
label: '出库单状态',
filter: codeFilter('status'),
width: 90
},
{
prop: 'deliveryType',
label: '出库类型',
filter: codeFilter('deliveryType'),
width: 95
},
{
prop: 'lineEdgeLibraryCode',
label: '码头位置',
},
{
prop: 'region',
label: '发货区域',
filter: codeFilter('region'),
},
{
prop: 'productQuality',
label: '货物品质',
},
{
prop: 'rollCode',
label: '膜卷号',
},
{
prop: 'trayType',
label: '托盘类型',
filter: codeFilter('trayType'),
width: 80
},
{
prop: 'createTime',
label: '创建时间',
filter: parseTime,
width: 150,
},
];
const deliveryTypeArr = [
{ name: '单托盘出库', id: 1 },
{ name: '多托盘出库', id: 2 },
];
export default {
mixins: [basicPage],
data() {
return {
urlOptions: {
getDataListURL: getDeliveryHisPage,
},
tableProps,
tableData: [],
formConfig: [
{
type: 'select',
label: '货物名称',
selectOptions: [],
param: 'productName',
defaultSelect: '',
filterable: true,
labelField: 'goodSpecificationName',
valueField: 'goodSpecificationName',
},
{
type: 'select',
label: '出库类型',
selectOptions: deliveryTypeArr,
param: 'deliveryType',
defaultSelect: '',
filterable: true,
},
{
type: 'button',
btnName: '搜索',
name: 'search',
color: 'primary',
},
],
};
},
components: {},
created() {
const params = {
pageSize: 100,
pageNo: 1,
warehouseId: this.listQuery.warehouseId,
};
getGoodSpecificationPage(params).then((response) => {
this.formConfig[0].selectOptions = response.data.list;
});
},
methods: {
buttonClick(val) {
switch (val.btnName) {
case 'search':
this.listQuery.pageNo = 1;
this.listQuery.pageSize = 10;
this.listQuery.productName = val.productName;
this.listQuery.deliveryType = val.deliveryType;
this.getDataList();
break;
default:
console.log(val);
}
},
},
};
</script>

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-04-02 14:16:16 * @LastEditTime: 2024-04-17 09:24:05
* @FilePath: \basic-admin\src\filters\basicData\index.js * @FilePath: \basic-admin\src\filters\basicData\index.js
* @Description: * @Description:
*/ */
@ -16,38 +16,38 @@ const table = {
1: '启用', 1: '启用',
0: '停用', 0: '停用',
}, },
isOrno:{ isOrno: {
1: '是', 1: '是',
0: '否', 0: '否',
}, },
quality:{ quality: {
2: 'C', 2: 'C',
1: 'B', 1: 'B',
0: 'A', 0: 'A',
}, },
mainTaskType:{ mainTaskType: {
1: '入库', 1: '入库',
2: '出库', 2: '出库',
3: '移库', 3: '移库',
4: '出库+移库', 4: '出库+移库',
5: '不带agv入库', 5: '不带agv入库',
6: '不带agv出库', 6: '不带agv出库',
7: '入库+6臂空托盘出库', 7: '入库+6臂空托盘出库',
8: '不带agv出库+移库', 8: '不带agv出库+移库',
9: '入库+12臂空托盘出库', 9: '入库+12臂空托盘出库',
10: '平库移库', 10: '平库移库',
}, },
mainTaskState:{ mainTaskState: {
0: '开始', 0: '开始',
1: '已发送agv', 1: '已发送agv',
2: 'agv运行中', 2: 'agv运行中',
3: '已发送堆垛机', 3: '已发送堆垛机',
4: '堆垛机运行中', 4: '堆垛机运行中',
5: '完成', 5: '完成',
6: '已发送传输线', 6: '已发送传输线',
7: '传输线运行中', 7: '传输线运行中',
8: '暂时无空托盘', 8: '暂时无空托盘',
}, },
taskSource: { taskSource: {
1: 'mes下发', 1: 'mes下发',
2: 'wms手动', 2: 'wms手动',
@ -61,9 +61,35 @@ const table = {
2: '清洗', 2: '清洗',
3: '润滑', 3: '润滑',
}, },
specification:{ specification: {
0: '卷', 0: '卷',
}, },
status: {
1: '优先执行',
2: '正常运行',
3: '暂停',
4: '完成',
5: '取消',
},
region: {
1: '一次分切区域',
2: '一次分拣区域',
3: '二次分切区域',
4: '二次分拣区域',
5: '手动包装区域',
6: '涂覆区域',
7: '其他',
8: '自动包装区域',
},
deliveryType: {
1: '单托盘出库',
2: '多托盘出库',
},
trayType: {
2: '12臂',
1: '6臂',
0: '无要求',
},
} }
// 日期格式化 // 日期格式化
@ -79,7 +105,7 @@ export function parseTime(time, pattern) {
if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) { if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
time = parseInt(time) time = parseInt(time)
} else if (typeof time === 'string') { } else if (typeof time === 'string') {
time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.\d{3}/gm),''); time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.\d{3}/gm), '');
} }
if ((typeof time === 'number') && (time.toString().length === 10)) { if ((typeof time === 'number') && (time.toString().length === 10)) {
time = time * 1000 time = time * 1000
@ -110,17 +136,17 @@ export function parseTime(time, pattern) {
} }
// 去除浮点相乘 // 去除浮点相乘
export function mul(num1, num2) { export function mul(num1, num2) {
if (parseFloat(num1).toString() == "NaN" || parseFloat(num2).toString() == "NaN") return; if (parseFloat(num1).toString() == "NaN" || parseFloat(num2).toString() == "NaN") return;
var m = 0, s1 = num1.toString(), s2 = num2.toString(); var m = 0, s1 = num1.toString(), s2 = num2.toString();
try { try {
m += s1.split(".")[1].length m += s1.split(".")[1].length
} catch (e) { } catch (e) {
} }
try { try {
m += s2.split(".")[1].length m += s2.split(".")[1].length
} catch (e) { } catch (e) {
} }
return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m); return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);
} }
export default function (dictTable) { export default function (dictTable) {
return function (val) { return function (val) {