Files
shgx_tz_vue-sync/src/views/wmsManagement/WmGoodsChangeLog.vue
2024-04-18 10:59:11 +08:00

368 lines
12 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!--
* @Descripttion: (仓库操作日志/wm_goods_change_log)
* @version: (1.0)
* @Author: (admin)
* @Date: (2024-04-18)
* @LastEditors: (admin)
* @LastEditTime: (2024-04-18)
-->
<template>
<div class="app-container">
<!-- :model属性用于表单验证使用 比如下面的el-form-item prop属性用于对表单值进行验证操作 -->
<el-form :model="queryParams" size="small" label-position="right" inline ref="queryForm" :label-width="labelWidth" v-show="showSearch" @submit.native.prevent>
<el-form-item label="操作类型">
<el-select v-model="queryParams.type" placeholder="请选择操作类型">
<el-option v-for="item in typeOptions" :key="item.value" :label="item.label" :value="parseInt(item.value)"></el-option>
</el-select>
</el-form-item>
<el-form-item label="操作时间">
<el-date-picker value-format="yyyy-MM-dd" v-model="queryParams.times" type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<!-- 工具区域 -->
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" v-hasPermi="['business:wmgoodschangelog:add']" plain icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" :disabled="single" v-hasPermi="['business:wmgoodschangelog:edit']" plain icon="el-icon-edit" size="mini" @click="handleUpdate">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" :disabled="multiple" v-hasPermi="['business:wmgoodschangelog:delete']" plain icon="el-icon-delete" size="mini" @click="handleDelete">删除</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<!-- 数据区域 -->
<el-table :data="dataList" v-loading="loading" ref="table" border highlight-current-row @sort-change="sortChange" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="50" align="center" />
<el-table-column prop="type" label="操作类型" align="center">
<template slot-scope="scope">
<el-tag effect="dark" :type="typeOptions[scope.row.type].type">{{typeOptions[scope.row.type].label}}</el-tag>
</template>
</el-table-column>
<el-table-column prop="description" label="描述" align="center" :show-overflow-tooltip="true" />
<!-- <el-table-column prop="jsonMsg" label="内容" align="center" :show-overflow-tooltip="true" /> -->
<el-table-column prop="createdBy" label="操作人" align="center" :show-overflow-tooltip="true" />
<el-table-column prop="createdTime" label="操作时间" align="center" :show-overflow-tooltip="true" />
<el-table-column label="操作" align="center" width="240">
<template slot-scope="scope">
<el-button size="mini" v-hasPermi="['business:wmgoodschangelog:edit']" type="info" title="详细信息" @click="handleUpdate(scope.row)">详细信息</el-button>
<el-button size="mini" v-hasPermi="['business:wmgoodschangelog:edit']" type="success" icon="el-icon-edit" title="编辑" @click="handleUpdate(scope.row)"></el-button>
<el-button size="mini" v-hasPermi="['business:wmgoodschangelog:delete']" type="danger" icon="el-icon-delete" title="删除" @click="handleDelete(scope.row)"></el-button>
</template>
</el-table-column>
</el-table>
<pagination class="mt10" background :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
<!-- 添加或修改仓库操作日志对话框 -->
<el-dialog :title="title" :lock-scroll="false" :visible.sync="open">
<el-form ref="form" :model="form" :rules="rules" :label-width="formLabelWidth">
<el-row :gutter="20">
<el-col :lg="12">
<el-form-item label="操作类型" prop="type">
<el-select v-model="form.type" placeholder="请选择操作类型">
<el-option v-for="item in typeOptions" :key="item.value" :label="item.label" :value="parseInt(item.value)"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :lg="24">
<el-form-item label="描述" prop="description">
<el-input type="textarea" v-model="form.description" placeholder="请输入描述" />
</el-form-item>
</el-col>
<el-col :lg="24">
<el-form-item label="内容" prop="jsonMsg">
<el-input type="textarea" v-model="form.jsonMsg" placeholder="请输入内容" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="创建人" prop="createdBy">
<el-input v-model="form.createdBy" placeholder="请输入创建人" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="创建时间" prop="createdTime">
<el-date-picker v-model="form.createdTime" type="datetime" placeholder="选择日期时间"></el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="cancel"> </el-button>
<el-button type="primary" @click="submitForm"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listWmGoodsChangeLog,
addWmGoodsChangeLog,
delWmGoodsChangeLog,
updateWmGoodsChangeLog,
getWmGoodsChangeLog,
} from '@/api/wmsManagement/wmGoodsChangeLog.js';
export default {
name: "wmgoodschangelog",
data() {
return {
labelWidth: "100px",
formLabelWidth: "100px",
// 选中id数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 遮罩层
loading: false,
// 显示搜索条件
showSearch: true,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
type: 0,
times: [],
startTimeStr: '',
endTimeStr: '',
sort: undefined,
sortType: undefined,
},
// 弹出层标题
title: "",
// 操作类型 1、add 2、edit
opertype: 0,
// 是否显示弹出层
open: false,
// 表单参数
form: {},
columns: [
{ index: 0, key: 'id', label: `主键`, checked: true },
{ index: 1, key: 'type', label: `操作类型;0-默认1-拼箱2-拆箱3-移库4-待定。。。其余待定`, checked: true },
{ index: 2, key: 'description', label: `描述`, checked: true },
{ index: 3, key: 'jsonMsg', label: `内容;存入json格式字符串根据type类型不同灵活存储不同数据不可解析算作空`, checked: true },
{ index: 4, key: 'createdBy', label: `创建人`, checked: true },
{ index: 5, key: 'createdTime', label: `创建时间`, checked: true },
{ index: 6, key: 'updatedBy', label: `更新人`, checked: true },
{ index: 7, key: 'updatedTime', label: `更新时间`, checked: true },
],
// 操作类型;0-默认1-拼箱2-拆箱3-移库4-待定。。。其余待定选项列表 格式 eg:{ label: '标签', value: '0'}
typeOptions: [
{
label: '全部',
value: 0,
type: 'info'
},
{
label: '拼箱',
value: 1,
type: 'success'
},
{
label: '拆箱',
value: 2,
type: 'warning'
},
{
label: '移库',
value: 3,
type: 'primary'
}, ],
// 数据列表
dataList: [],
// 总记录数
total: 0,
// 提交按钮是否显示
btnSubmitVisible: true,
// 表单校验
rules: {},
pickerOptions: {
shortcuts: [{
text: '最近一周',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近一个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近三个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit('pick', [start, end]);
}
}]
},
};
},
created() {
// 列表数据查询
this.getList();
var dictParams = [];
},
methods: {
// 查询数据
getList() {
this.loading = true;
setTimeout(() => {
this.loading = false;
}, 30000)
let _times = this.queryParams.times;
this.queryParams.startTimeStr = '';
this.queryParams.endTimeStr = '';
if (_times) {
this.queryParams.startTimeStr = _times[0] || '';
this.queryParams.endTimeStr = _times[1] || '';
}
listWmGoodsChangeLog(this.queryParams).then(res => {
if (res.code == 200) {
this.dataList = res.data.result;
this.total = res.data.totalNum;
this.loading = false;
}
})
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 重置数据表单
reset() {
this.form = {
id: undefined,
type: undefined,
description: undefined,
jsonMsg: undefined,
createdBy: undefined,
createdTime: undefined,
updatedBy: undefined,
updatedTime: undefined,
};
this.resetForm("form");
},
// 重置查询操作
resetQuery() {
this.timeRange = [];
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length != 1
this.multiple = !selection.length;
},
// 自定义排序
sortChange(column) {
if (column.prop == null || column.order == null) {
this.queryParams.sort = undefined;
this.queryParams.sortType = undefined;
} else {
this.queryParams.sort = column.prop;
this.queryParams.sortType = column.order;
}
this.handleQuery();
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加";
this.opertype = 1;
},
/** 删除按钮操作 */
handleDelete(row) {
const Ids = row.id || this.ids;
this.$confirm('是否确认删除参数编号为"' + Ids + '"的数据项?')
.then(function () {
return delWmGoodsChangeLog(Ids);
})
.then(() => {
this.handleQuery();
this.msgSuccess("删除成功");
})
.catch(() => {});
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
getWmGoodsChangeLog(id).then((res) => {
const { code, data } = res;
if (code == 200) {
this.open = true;
this.title = "修改数据";
this.opertype = 2;
this.form = {
...data,
};
}
});
},
// 操作类型;0-默认1-拼箱2-拆箱3-移库4-待定。。。其余待定字典翻译
typeFormat(row, column) {
return this.selectlabel(this.typeOptions, row.type);
},
/** 提交按钮 */
submitForm: function () {
this.$refs["form"].validate((valid) => {
if (valid) {
console.log(JSON.stringify(this.form));
if (this.form.id != undefined && this.opertype === 2) {
updateWmGoodsChangeLog(this.form)
.then((res) => {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.catch((err) => {
//TODO 错误逻辑
});
} else {
addWmGoodsChangeLog(this.form)
.then((res) => {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
})
.catch((err) => {
//TODO 错误逻辑
});
}
}
});
},
},
};
</script>