|
|
<template> <div class="sl"> <div ref="sl_search"> <span @click="favoriteFunction()"> <icon-svg :name="favorite?'xiangqufill':'xiangqu'" class="sl-svg"></icon-svg> </span> <el-button @click="searchShowDiv()" type="primary">{{ buttons.search }}</el-button> <el-button @click="userSetting" type="primary">{{ buttons.settingTable }}</el-button> <el-button v-if="isAuth('sys:setting')" @click="saveColumnList()" type="primary" v-show="showDefault">{{ buttons.defaultTable }} </el-button> <el-form :inline="true" label-position="top" :model="queryData" @keyup.enter.native="searchList()" v-show="searchShow"> <el-form-item label="箱号"> <el-input style="width: 150px" v-model="queryData.boxNo" clearable> </el-input> </el-form-item> <el-form-item label="销售单号"> <el-input style="width: 150px" v-model="queryData.orderNo" clearable> </el-input> </el-form-item> <el-form-item label="物料编号"> <el-input style="width: 150px" v-model="queryData.itemCode" clearable> </el-input> </el-form-item> <el-form-item label="创建时间"> <el-date-picker style="width: 150px" value-format="yyyy-MM-dd HH:mm:ss" type="date" v-model="queryData.createdDate"> </el-date-picker> </el-form-item> <el-form-item label=" - "> <el-button @click="searchList()" type="primary">{{ buttons.select }}</el-button> </el-form-item> </el-form> </div>
<el-table
:height="height" :data="dataList" border v-loading="dataListLoading" style="width: 100%;"> <el-table-column v-for="(item,index) in columnList" :key="index" :sortable="item.columnSortable" :prop="item.columnProp" :header-align="item.headerAlign" :show-overflow-tooltip="item.showOverflowTooltip" :align="item.align" :fixed="item.fixed" :min-width="item.columnWidth" :label="item.columnLabel"> <template slot-scope="scope"> {{ scope.row[item.columnProp] }} <!-- <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>--> <!-- <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"--> <!-- style="width: 100px; height: 80px"/></span>--> </template> </el-table-column> <el-table-column fixed="right" header-align="center" align="center" width="150" :label="buttons.cz"> <template slot-scope="scope"> <a type="text" size="small" @click="openPrintDialog(scope.row)" herf="#">{{ buttons.boxPrint }}</a> </template> </el-table-column> </el-table>
<!-- 模板列表 --> <el-dialog v-drag :title="pageLanguageData.printDialog" :visible.sync="printVisible" width="220px" center> <dev style="margin: 0 auto"> <el-select style="width: 200px" :placeholder="pageLanguageData.printTemplateMsg" v-model="reportFileVo"> <el-option v-for="(item,index) in printTemplates" :key="index" :label="item.reportFileVo" :value="item.reportIdVo"></el-option> </el-select> </dev>
<span slot="footer" class="dialog-footer"> <el-button type="primary" @click="printBox()">{{ buttons.print }}</el-button> <el-button @click="printVisible = false">{{ buttons.close }}</el-button> </span> </el-dialog>
<!-- 设置列 --> <column v-if="visible" ref="column" @refreshData="getTableUserColumn"></column>
</div></template>
<script>
import { getSoBoxingList, getReportFileListByCustomerId, getCustomerId, printPacking} from '@/api/finishedProductWarehouse/soBoxes.js'import column from "../common/column";import search from "../common/search";import { searchSysLanguageParam, searchFunctionButtonList, saveButtonList, searchPageLanguageData} from "@/api/sysLanguage.js"import { saveTableDefaultList, getTableDefaultListLanguage, getTableUserListLanguage} from "@/api/table.js"import {userFavoriteList, saveUserFavorite, removeUserFavorite} from '@/api/userFavorite.js'
export default { data() { return { printVisible: false, searchVisible: false, searchShow: false, // table高度
height: 450, // 是否收藏
favorite: false, addLanguage: false, functionId: 1001, tableId: "1001BoxingPrint", languageCode: this.$i18n.locale, visible: false, showDefault: false, queryData: { boxNo: '', orderNo: '', itemCode: '', createdDate: this.dayjs().format('YYYY-MM-DD HH:mm:ss') }, reportFileVo: '', boxNumber: 0, itemCode: '', orderNo: '', boxNo:'', // 打印模板列表
printTemplates: [], // 语言词典集合
sysLanguageParams: [], columnList: [ { userId: this.$store.state.user.name, functionId: 1001, tableId: "1001BoxingPrint", tableName: "so_receive_boxes", columnProp: "id", headerAlign: "center", align: "center", columnLabel: "主键", columnHidden: false, columnImage: false, columnSortable: false, sortLv: 0, status: true, fixed: false, serialNumber: '1001BoxingPrintId' }, { userId: this.$store.state.user.name, functionId: 1001, tableId: "1001BoxingPrint", tableName: "so_receive_boxes", columnProp: "site", headerAlign: "center", align: "center", columnLabel: "工厂编号", columnHidden: false, columnImage: false, columnSortable: false, sortLv: 0, status: true, fixed: false, serialNumber: '1001BoxingPrintSite' }, { userId: this.$store.state.user.name, functionId: 1001, tableId: "1001BoxingPrint", tableName: "so_receive_boxes", columnProp: "boxNo", headerAlign: "center", align: "center", columnLabel: "箱编号", columnHidden: false, columnImage: false, columnSortable: false, sortLv: 0, status: true, fixed: false, serialNumber: '1001BoxingPrintBoxNo' }, { userId: this.$store.state.user.name, functionId: 1001, tableId: "1001BoxingPrint", tableName: "so_receive_boxes", columnProp: "orderNo", headerAlign: "center", align: "center", columnLabel: "订单编号", columnHidden: false, columnImage: false, columnSortable: false, sortLv: 0, status: true, fixed: false, serialNumber: '1001BoxingPrintOrderNo' }, { userId: this.$store.state.user.name, functionId: 1001, tableId: "1001BoxingPrint", tableName: "so_receive_boxes", columnProp: "batchCode", headerAlign: "center", align: "center", columnLabel: "批号", columnHidden: false, columnImage: false, columnSortable: false, sortLv: 0, status: true, fixed: false, serialNumber: '1001BoxingPrintBatchCode' }, { userId: this.$store.state.user.name, functionId: 1001, tableId: "1001BoxingPrint", tableName: "so_receive_boxes", columnProp: "itemCode", headerAlign: "center", align: "center", columnLabel: "物料编码", columnHidden: false, columnImage: false, columnSortable: false, sortLv: 0, status: true, fixed: false, serialNumber: '1001BoxingPrintItemCode' }, { userId: this.$store.state.user.name, functionId: 1001, tableId: "1001BoxingPrint", tableName: "so_receive_boxes", columnProp: "status", headerAlign: "center", align: "center", columnLabel: "状态", columnHidden: false, columnImage: false, columnSortable: false, sortLv: 0, status: true, fixed: false, serialNumber: '1001BoxingPrintStatus' }, { userId: this.$store.state.user.name, functionId: 1001, tableId: "1001BoxingPrint", tableName: "so_receive_boxes", columnProp: "status2", headerAlign: "center", align: "center", columnLabel: "状态2", columnHidden: false, columnImage: false, columnSortable: false, sortLv: 0, status: true, fixed: false, serialNumber: '1001BoxingPrintStatus2' }, { userId: this.$store.state.user.name, functionId: 1001, tableId: "1001BoxingPrint", tableName: "so_receive_boxes", columnProp: "rollsQty", headerAlign: "center", align: "center", columnLabel: "卷数量", columnHidden: false, columnImage: false, columnSortable: false, sortLv: 0, status: true, fixed: false, serialNumber: '1001BoxingPrintRollsQty' }, { userId: this.$store.state.user.name, functionId: 1001, tableId: "1001BoxingPrint", tableName: "so_receive_boxes", columnProp: "boxType", headerAlign: "center", align: "center", columnLabel: "箱类型", columnHidden: true, columnImage: false, columnSortable: false, sortLv: 0, status: true, fixed: false, serialNumber: '1001BoxingPrintBoxType' }, { userId: this.$store.state.user.name, functionId: 1001, tableId: "1001BoxingPrint", tableName: "so_receive_boxes", columnProp: "createdDate", headerAlign: "center", align: "center", columnLabel: "创建时间", columnHidden: true, columnImage: false, columnSortable: false, sortLv: 0, status: true, fixed: false, serialNumber: '1001BoxingPrintCreatedDate' }, { userId: this.$store.state.user.name, functionId: 1001, tableId: "1001BoxingPrint", tableName: "so_receive_boxes", columnProp: "createdBy", headerAlign: "center", align: "center", columnLabel: "创建人", columnHidden: true, columnImage: false, columnSortable: false, sortLv: 0, status: true, fixed: false, serialNumber: '1001BoxingPrintCreatedBy' } ], dataList: [], pageLanguageDataList: [ { functionId: "1001", languageValue: '操作', objectId: 'operate', objectType: "page", tableId: "boxingPrint" }, { functionId: "1001", languageValue: '销售单号', objectId: 'shopOrderNo', objectType: "page", tableId: "boxingPrint" }, { functionId: "1001", languageValue: '箱号', objectId: 'boxNo', objectType: "page", tableId: "boxingPrint" }, { functionId: "1001", languageValue: '物料编号', objectId: 'partNo', objectType: "page", tableId: "boxingPrint" }, { functionId: "1001", languageValue: '创建时间', objectId: 'createdDate', objectType: "page", tableId: "boxingPrint" }, { functionId: "1001", languageValue: '搜索', objectId: 'search', objectType: "page", tableId: "boxingPrint" }, { functionId: "1001", languageValue: '设置列表', objectId: 'setting', objectType: "page", tableId: "boxingPrint" }, { functionId: "1001", languageValue: '取消', objectId: 'recall', objectType: "page", tableId: "boxingPrint" }, { functionId: "1001", languageValue: '打印', objectId: 'print', objectType: "page", tableId: "boxingPrint" }, { functionId: "1001", languageValue: '请选择模板', objectId: 'printTemplateMsg', objectType: "page", tableId: "boxingPrint" }, { functionId: "1001", languageValue: '打印模板选择', objectId: 'printDialog', objectType: "page", tableId: "boxingPrint" }, { functionId: "1001", languageValue: '标签打印', objectId: 'labelPrint', objectType: "page", tableId: "boxingPrint" } ], queryPageLang: { functionId: "1001", objectType: "page", tableId: "boxingPrint", languageCode: this.$i18n.locale }, buttons: { add: '添加', edit: '编辑', delete: '删除', deleteList: '批量删除', cz: '操作', search: '搜索', select: '查询', download: '导出', settingTable: '设置列表', defaultTable: '设置默认配置', print: '打印', close: '取消', boxPrint: '标签打印' }, pageLanguageData: { printDialog: "打印模板选择", printTemplateMsg: "请选择模板", }, dataListLoading: false, dataListSelections: [], addOrUpdateVisible: false } }, components: { column, search }, mounted() { this.getAutoHeight() }, activated() { this.searchList() },
methods: { // 打开搜索条件
searchShowDiv() { if (this.searchShow) { this.searchShow = false } else { this.searchShow = true }
}, // 打开打印模态框
openPrintDialog(val) { this.boxNumber = val.rollsQty this.itemCode = val.itemCode this.orderNo = val.orderNo this.boxNo = val.boxNo this.printVisible = true this.getReportFileListByCustomerId(val.itemCode) }, // 打印
printBox() { this.printVisible = false let reportFile = this.reportFileVo.split(":");
let reportFileVo = { reportFile: reportFile[2], reportId: reportFile[1], isCustomer: reportFile[0], pickingNumber: this.boxNumber, partNo: this.itemCode, orderNo: this.orderNo, boxNo: this.boxNo, } printPacking(reportFileVo).then(({data}) => { if (data.code == 0) { this.$message.success(data.msg) } if (data.code == 500) { this.$message.error(data.msg) }
}) }, // 获取打印模板数据
getReportFileListByCustomerId(partNo) { let vo = { partNo: partNo } getCustomerId(vo).then((data) => { let reportFileVo = { customerId: data.customerId, reportFamily: '外箱标签' } getReportFileListByCustomerId(reportFileVo).then(({data}) => { this.printTemplates = data.reportFileVos this.reportFileVo = data.reportFileVos[0].reportIdVo }) }) }, // 获取数据
searchList() { getSoBoxingList(this.queryData).then(({data}) => { this.dataList = data.data }) },
// 这个方法用来动态设置 height
getAutoHeight() { // 一定要使用 nextTick 来改变height 不然不会起作用
this.$nextTick(() => { this.height = window.innerHeight - 174; }); }, // 校验用户是否收藏
favoriteIsOk() { let userFavorite = { userId: this.$store.state.user.id, languageCode: this.$i18n.locale } userFavoriteList(userFavorite).then(({data}) => { let size = data.list.filter(item => item.menuId == this.$route.meta.menuId).length; if (size > 0) { this.favorite = true } else { this.favorite = false } }) }, // 收藏 OR 取消收藏
favoriteFunction() { let userFavorite = { userId: this.$store.state.user.id, functionId: this.$route.meta.menuId, } if (this.favorite) { // 取消收藏
this.$confirm(`确定取消收藏`, '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { removeUserFavorite(userFavorite).then(({data}) => { this.$message.success(data.msg) this.favorite = false }) }) } else { // 收藏
saveUserFavorite(userFavorite).then(({data}) => { this.$message.success(data.msg) this.favorite = true }) }
}, // 获取页面所有语言数据
// 获取页面提示信息
getPageLanguageData() { searchPageLanguageData(this.queryPageLang).then((data) => { if (JSON.stringify(data.data) != '{}') { this.pageLanguageData = data.data } else { } }) }, // 获取button的词典
getFunctionButtonList() { let queryButton = { functionId: this.functionId, tableId: this.tableId, languageCode: this.languageCode, objectType: 'button' } searchFunctionButtonList(queryButton).then(({data}) => { if (data.data.length > 0) { this.buttons = data.data } }) }, // 获取语言词典
getSysLanguageParamList() { let querySysLanguageParam = { languageCode: this.$i18n.locale } searchSysLanguageParam(querySysLanguageParam).then(({data}) => { this.sysLanguageParams = data.rows }) }, // 打开页面设置
userSetting() { this.visible = true; let queryTable = { userId: this.userId, functionId: this.functionId, tableId: this.tableId, languageCode: this.languageCode } this.$nextTick(() => { this.$refs.column.init(queryTable); }); }, // 获取 用户保存的 格式列
getTableUserColumn() { let queryTableUser = { userId: this.userId, functionId: this.functionId, tableId: this.tableId, languageCode: this.languageCode, status: true, } getTableUserListLanguage(queryTableUser).then(({data}) => { if (data.rows.length > 0) { //this.columnList = []
this.columnList = data.rows } else { this.getColumnList() }
}) }, // 保存 默认配置 列
saveColumnList() { this.showDefault = false saveButtonList(this.buttonList).then(({data}) => { }) saveButtonList(this.buttonList).then(({data}) => { }) saveTableDefaultList(this.columnList).then(({data}) => { if (data.code == 0) { this.$message.success(data.msg) this.showDefault = false } else { this.showDefault = true this.$message.error(data.msg) } })/* this.getFunctionButtonList(); this.getPageLanguageData() this.getColumnList()*/ }, // 获取 tableDefault 列
getColumnList() { let queryTable = { functionId: this.functionId, tableId: this.tableId, languageCode: this.languageCode } getTableDefaultListLanguage(queryTable).then(({data}) => { if (!data.rows.length == 0) { this.showDefault = false this.columnList = data.rows } else { this.showDefault = true } }) }, }, created() { this.getTableUserColumn() this.getSysLanguageParamList() this.getFunctionButtonList() this.favoriteIsOk()
}}</script><style>.sl-svg { overflow: hidden; float: right;}
.el-dialog--center .el-dialog__body { text-align: center; padding: 0;}
</style>
|