|
|
@@ -2,7 +2,7 @@
|
|
|
<div class="ele-body">
|
|
|
<el-card shadow="never" v-loading="loading">
|
|
|
<div class="ele-border-lighter form-content" v-loading="loading">
|
|
|
- <search-table @search="reload"> </search-table>
|
|
|
+ <search-table @search="reload"></search-table>
|
|
|
|
|
|
<!-- 数据表格 -->
|
|
|
<ele-pro-table
|
|
|
@@ -31,13 +31,22 @@
|
|
|
<el-button
|
|
|
size="small"
|
|
|
type="danger"
|
|
|
- el-icon-delete
|
|
|
- class="ele-btn-icon"
|
|
|
+
|
|
|
+ class="el-icon-delete"
|
|
|
@click="allDelBtn"
|
|
|
:disabled="selection?.length === 0"
|
|
|
>
|
|
|
批量删除
|
|
|
</el-button>
|
|
|
+ <el-button
|
|
|
+ size="small"
|
|
|
+ type="primary"
|
|
|
+ class="el-icon-printer"
|
|
|
+ @click="handlePrint"
|
|
|
+ :disabled="selection?.length === 0"
|
|
|
+ >
|
|
|
+ 打印发货单
|
|
|
+ </el-button>
|
|
|
</template>
|
|
|
|
|
|
<!-- 查看详情列 -->
|
|
|
@@ -48,7 +57,8 @@
|
|
|
:underline="false"
|
|
|
@click="openorderDetail(row, 'docNo')"
|
|
|
>
|
|
|
- {{ row.docNo }}</el-link
|
|
|
+ {{ row.docNo }}
|
|
|
+ </el-link
|
|
|
>
|
|
|
</template>
|
|
|
<template v-slot:orderNo="{ row }">
|
|
|
@@ -57,7 +67,8 @@
|
|
|
:underline="false"
|
|
|
@click="openorderDetail(row, 'orderNo')"
|
|
|
>
|
|
|
- {{ row.orderNo }}</el-link
|
|
|
+ {{ row.orderNo }}
|
|
|
+ </el-link
|
|
|
>
|
|
|
</template>
|
|
|
<!-- 操作列 -->
|
|
|
@@ -124,245 +135,261 @@
|
|
|
content="是否确定删除?"
|
|
|
@done="commitBtn"
|
|
|
/>
|
|
|
+ <print-template ref="printTemplateRef"></print-template>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
- import searchTable from './components/searchTable.vue';
|
|
|
- import addInvoiceDialog from './components/addInvoiceDialog.vue';
|
|
|
- import detailDialog from './components/detailDialog.vue';
|
|
|
- import popModal from '@/components/pop-modal';
|
|
|
- import { reviewStatusEnum } from '@/enum/dict';
|
|
|
- import orderDetailDialog from '@/views/saleManage/saleOrder/components/detailDialog.vue';
|
|
|
- import addReturnGoodsDialog from '@/views/saleManage/saleOrder/returnGoods/components/addReturnGoodsDialog';
|
|
|
+import searchTable from './components/searchTable.vue';
|
|
|
+import addInvoiceDialog from './components/addInvoiceDialog.vue';
|
|
|
+import detailDialog from './components/detailDialog.vue';
|
|
|
+import popModal from '@/components/pop-modal';
|
|
|
+import {reviewStatusEnum} from '@/enum/dict';
|
|
|
+import orderDetailDialog from '@/views/saleManage/saleOrder/components/detailDialog.vue';
|
|
|
+import addReturnGoodsDialog from '@/views/saleManage/saleOrder/returnGoods/components/addReturnGoodsDialog';
|
|
|
+import printTemplate from "@/views/saleManage/saleOrder/invoice/components/print-template.vue";
|
|
|
+import {deleteSendInformation, getSendTableList, submit} from '@/api/saleManage/saleordersendrecord';
|
|
|
+import dictMixins from '@/mixins/dictMixins';
|
|
|
|
|
|
- import {
|
|
|
- getSendTableList,
|
|
|
- submit,
|
|
|
- deleteSendInformation
|
|
|
- } from '@/api/saleManage/saleordersendrecord';
|
|
|
- import dictMixins from '@/mixins/dictMixins';
|
|
|
+export default {
|
|
|
+ mixins: [dictMixins],
|
|
|
+ components: {
|
|
|
+ printTemplate,
|
|
|
+ searchTable,
|
|
|
+ popModal,
|
|
|
+ addReturnGoodsDialog,
|
|
|
+ orderDetailDialog,
|
|
|
+ addInvoiceDialog,
|
|
|
+ detailDialog
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ activeComp: 'saleorder',
|
|
|
+ tabOptions: [
|
|
|
+ {key: 'saleorder', name: '销售订单'},
|
|
|
+ {key: 'invoice', name: '发货单'},
|
|
|
+ {key: 'returnorder', name: '退货单'}
|
|
|
+ ],
|
|
|
+ selection: [], //单选中集合
|
|
|
+ delVisible: false, //批量删除弹框状态
|
|
|
+ loading: false, // 加载状态
|
|
|
+ columns: [
|
|
|
+ {
|
|
|
+ width: 45,
|
|
|
+ type: 'selection',
|
|
|
+ columnKey: 'selection',
|
|
|
+ align: 'center'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ columnKey: 'index',
|
|
|
+ label: '序号',
|
|
|
+ type: 'index',
|
|
|
+ width: 55,
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ fixed: 'left'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'docNo',
|
|
|
+ label: '发货单编码',
|
|
|
+ align: 'center',
|
|
|
+ sortable: true,
|
|
|
+ slot: 'docNo',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ minWidth: 200
|
|
|
+ },
|
|
|
|
|
|
- export default {
|
|
|
- mixins: [dictMixins],
|
|
|
- components: {
|
|
|
- searchTable,
|
|
|
- popModal,
|
|
|
- addReturnGoodsDialog,
|
|
|
- orderDetailDialog,
|
|
|
- addInvoiceDialog,
|
|
|
- detailDialog
|
|
|
- },
|
|
|
- data() {
|
|
|
- return {
|
|
|
- activeComp: 'saleorder',
|
|
|
- tabOptions: [
|
|
|
- { key: 'saleorder', name: '销售订单' },
|
|
|
- { key: 'invoice', name: '发货单' },
|
|
|
- { key: 'returnorder', name: '退货单' }
|
|
|
- ],
|
|
|
- selection: [], //单选中集合
|
|
|
- delVisible: false, //批量删除弹框状态
|
|
|
- loading: false, // 加载状态
|
|
|
- columns: [
|
|
|
- {
|
|
|
- width: 45,
|
|
|
- type: 'selection',
|
|
|
- columnKey: 'selection',
|
|
|
- align: 'center'
|
|
|
- },
|
|
|
- {
|
|
|
- columnKey: 'index',
|
|
|
- label: '序号',
|
|
|
- type: 'index',
|
|
|
- width: 55,
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true,
|
|
|
- fixed: 'left'
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'docNo',
|
|
|
- label: '发货单编码',
|
|
|
- align: 'center',
|
|
|
- sortable: true,
|
|
|
- slot: 'docNo',
|
|
|
- showOverflowTooltip: true,
|
|
|
- minWidth: 200
|
|
|
- },
|
|
|
-
|
|
|
- {
|
|
|
- prop: 'orderNo',
|
|
|
- label: '销售订单编码',
|
|
|
- align: 'center',
|
|
|
- sortable: true,
|
|
|
- slot: 'orderNo',
|
|
|
- showOverflowTooltip: true,
|
|
|
- minWidth: 200
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'productNames',
|
|
|
- label: '产品名称',
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true,
|
|
|
- minWidth: 140
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'contactName',
|
|
|
- label: '客户名称',
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true,
|
|
|
- minWidth: 180
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'replied',
|
|
|
- label: '是否回执',
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true,
|
|
|
- minWidth:120,
|
|
|
- formatter: (_row, _column, cellValue) => {
|
|
|
- return _row.replied == 1 ? '是' : '否';
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'reviewStatus',
|
|
|
- label: '状态',
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true,
|
|
|
- minWidth: 100,
|
|
|
- formatter: (_row, _column, cellValue) => {
|
|
|
- return reviewStatusEnum[_row.reviewStatus].label;
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'createTime',
|
|
|
- label: '创建时间',
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true,
|
|
|
- minWidth: 170
|
|
|
- },
|
|
|
- {
|
|
|
- columnKey: 'action',
|
|
|
- label: '操作',
|
|
|
- width: 230,
|
|
|
- align: 'center',
|
|
|
- resizable: false,
|
|
|
- slot: 'action',
|
|
|
- showOverflowTooltip: true,
|
|
|
- fixed: 'right'
|
|
|
+ {
|
|
|
+ prop: 'orderNo',
|
|
|
+ label: '销售订单编码',
|
|
|
+ align: 'center',
|
|
|
+ sortable: true,
|
|
|
+ slot: 'orderNo',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ minWidth: 200
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'productNames',
|
|
|
+ label: '产品名称',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ minWidth: 140
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'contactName',
|
|
|
+ label: '客户名称',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ minWidth: 180
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'replied',
|
|
|
+ label: '是否回执',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ minWidth: 120,
|
|
|
+ formatter: (_row, _column, cellValue) => {
|
|
|
+ return _row.replied == 1 ? '是' : '否';
|
|
|
}
|
|
|
- ]
|
|
|
- };
|
|
|
- },
|
|
|
- computed: {},
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'reviewStatus',
|
|
|
+ label: '状态',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ minWidth: 100,
|
|
|
+ formatter: (_row, _column, cellValue) => {
|
|
|
+ return reviewStatusEnum[_row.reviewStatus].label;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'createTime',
|
|
|
+ label: '创建时间',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ minWidth: 170
|
|
|
+ },
|
|
|
+ {
|
|
|
+ columnKey: 'action',
|
|
|
+ label: '操作',
|
|
|
+ width: 230,
|
|
|
+ align: 'center',
|
|
|
+ resizable: false,
|
|
|
+ slot: 'action',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ fixed: 'right'
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ };
|
|
|
+ },
|
|
|
+ computed: {},
|
|
|
|
|
|
- methods: {
|
|
|
- /* 表格数据源 */
|
|
|
- datasource({ page, limit, where, order }) {
|
|
|
- return getSendTableList({
|
|
|
- pageNum: page,
|
|
|
- size: limit,
|
|
|
- ...where
|
|
|
- });
|
|
|
- },
|
|
|
+ methods: {
|
|
|
+ /* 表格数据源 */
|
|
|
+ datasource({page, limit, where, order}) {
|
|
|
+ return getSendTableList({
|
|
|
+ pageNum: page,
|
|
|
+ size: limit,
|
|
|
+ ...where
|
|
|
+ });
|
|
|
+ },
|
|
|
|
|
|
- //创建退货单
|
|
|
- creatReturnGoods(type, row) {
|
|
|
- this.$refs.addReturnGoodsRef.open(type, {}, row.id);
|
|
|
- },
|
|
|
+ //创建退货单
|
|
|
+ creatReturnGoods(type, row) {
|
|
|
+ this.$refs.addReturnGoodsRef.open(type, {}, row.id);
|
|
|
+ },
|
|
|
|
|
|
- /* 刷新表格 */
|
|
|
- reload(where) {
|
|
|
- this.$refs.table.reload({ page: 1, where });
|
|
|
- },
|
|
|
+ /* 刷新表格 */
|
|
|
+ reload(where) {
|
|
|
+ this.$refs.table.reload({page: 1, where});
|
|
|
+ },
|
|
|
|
|
|
- //新增编辑
|
|
|
- openEdit(type, row) {
|
|
|
- this.$refs.invoiceDialogRef.open(type, row);
|
|
|
- this.$refs.invoiceDialogRef.$refs.form &&
|
|
|
- this.$refs.invoiceDialogRef.$refs.form.clearValidate();
|
|
|
- },
|
|
|
+ //新增编辑
|
|
|
+ openEdit(type, row) {
|
|
|
+ this.$refs.invoiceDialogRef.open(type, row);
|
|
|
+ this.$refs.invoiceDialogRef.$refs.form &&
|
|
|
+ this.$refs.invoiceDialogRef.$refs.form.clearValidate();
|
|
|
+ },
|
|
|
|
|
|
- //批量删除
|
|
|
- allDelBtn() {
|
|
|
- if (this.selection.length === 0) return;
|
|
|
- let flag = this.selection.some(item=>[1,2].includes(item.reviewStatus))
|
|
|
- if(flag) return this.$message.warning('抱歉已审核、审核中的数据不能删除,请检查')
|
|
|
- this.delVisible = true;
|
|
|
- },
|
|
|
+ //批量删除
|
|
|
+ allDelBtn() {
|
|
|
+ if (this.selection.length === 0) return;
|
|
|
+ let flag = this.selection.some(item => [1, 2].includes(item.reviewStatus))
|
|
|
+ if (flag) return this.$message.warning('抱歉已审核、审核中的数据不能删除,请检查')
|
|
|
+ this.delVisible = true;
|
|
|
+ },
|
|
|
+ handlePrint() {
|
|
|
+ if (this.selection.length > 1) return this.$message.warning('请选择一条');
|
|
|
+ this.$confirm('是否需要打印价格', '提示', {
|
|
|
+ type: 'warning',
|
|
|
+ cancelButtonText: '否',
|
|
|
+ confirmButtonText: '是',
|
|
|
+ }).then(res => {
|
|
|
+ this.$refs.printTemplateRef.open(this.selection[0].id, true)
|
|
|
+ }).catch(err => {
|
|
|
+ this.$refs.printTemplateRef.open(this.selection[0].id, false)
|
|
|
+ })
|
|
|
|
|
|
- //删除接口
|
|
|
- remove(delData) {
|
|
|
- deleteSendInformation(delData).then((res) => {
|
|
|
- this.$message.success('删除成功!');
|
|
|
- this.reload();
|
|
|
- });
|
|
|
- },
|
|
|
+ },
|
|
|
+ //删除接口
|
|
|
+ remove(delData) {
|
|
|
+ deleteSendInformation(delData).then((res) => {
|
|
|
+ this.$message.success('删除成功!');
|
|
|
+ this.reload();
|
|
|
+ });
|
|
|
+ },
|
|
|
|
|
|
- //删除弹框确定
|
|
|
- commitBtn() {
|
|
|
- const dataId = this.selection.map((v) => v.id);
|
|
|
- this.remove(dataId);
|
|
|
- },
|
|
|
- sendSubmit(res) {
|
|
|
- submit({
|
|
|
- businessId:res.id
|
|
|
- }).then((res) => {
|
|
|
- this.$message.success('提交成功!');
|
|
|
- this.reload();
|
|
|
- });
|
|
|
- },
|
|
|
- //查看详情
|
|
|
- openorderDetail(row, type) {
|
|
|
- if (type === 'docNo') {
|
|
|
- this.$refs.DetailDialogRef.open(row);
|
|
|
- }
|
|
|
- if (type === 'orderNo') {
|
|
|
- this.$refs.orderDetailDialogRef.open({ id: row.orderId });
|
|
|
- }
|
|
|
+ //删除弹框确定
|
|
|
+ commitBtn() {
|
|
|
+ const dataId = this.selection.map((v) => v.id);
|
|
|
+ this.remove(dataId);
|
|
|
+ },
|
|
|
+ sendSubmit(res) {
|
|
|
+ submit({
|
|
|
+ businessId: res.id
|
|
|
+ }).then((res) => {
|
|
|
+ this.$message.success('提交成功!');
|
|
|
+ this.reload();
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //查看详情
|
|
|
+ openorderDetail(row, type) {
|
|
|
+ if (type === 'docNo') {
|
|
|
+ this.$refs.DetailDialogRef.open(row);
|
|
|
+ }
|
|
|
+ if (type === 'orderNo') {
|
|
|
+ this.$refs.orderDetailDialogRef.open({id: row.orderId});
|
|
|
}
|
|
|
}
|
|
|
- };
|
|
|
+ }
|
|
|
+};
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
- .ele-body {
|
|
|
- padding-top: 0;
|
|
|
- padding-bottom: 0;
|
|
|
- }
|
|
|
- :deep .el-card__body {
|
|
|
- padding: 0;
|
|
|
- }
|
|
|
- :deep(.el-link--inner) {
|
|
|
- margin-left: 0px !important;
|
|
|
- }
|
|
|
+.ele-body {
|
|
|
+ padding-top: 0;
|
|
|
+ padding-bottom: 0;
|
|
|
+}
|
|
|
|
|
|
- .sys-organization-list {
|
|
|
- height: calc(100vh - 264px);
|
|
|
- box-sizing: border-box;
|
|
|
- border-width: 1px;
|
|
|
- border-style: solid;
|
|
|
- overflow: auto;
|
|
|
- }
|
|
|
- .sys-organization-list :deep(.el-tree-node__content) {
|
|
|
- height: 40px;
|
|
|
- & > .el-tree-node__expand-icon {
|
|
|
- margin-left: 10px;
|
|
|
- }
|
|
|
- }
|
|
|
+:deep .el-card__body {
|
|
|
+ padding: 0;
|
|
|
+}
|
|
|
|
|
|
- .switch_left ul .active {
|
|
|
- border-top: 4px solid var(--color-primary);
|
|
|
- color: var(--color-primary-5);
|
|
|
- }
|
|
|
- .switch {
|
|
|
- padding-bottom: 20px;
|
|
|
- }
|
|
|
+:deep(.el-link--inner) {
|
|
|
+ margin-left: 0px !important;
|
|
|
+}
|
|
|
|
|
|
- .el-dropdown-link {
|
|
|
- cursor: pointer;
|
|
|
- color: var(--color-primary-5);
|
|
|
- }
|
|
|
- .el-icon-arrow-down {
|
|
|
- font-size: 12px;
|
|
|
+.sys-organization-list {
|
|
|
+ height: calc(100vh - 264px);
|
|
|
+ box-sizing: border-box;
|
|
|
+ border-width: 1px;
|
|
|
+ border-style: solid;
|
|
|
+ overflow: auto;
|
|
|
+}
|
|
|
+
|
|
|
+.sys-organization-list :deep(.el-tree-node__content) {
|
|
|
+ height: 40px;
|
|
|
+
|
|
|
+ & > .el-tree-node__expand-icon {
|
|
|
+ margin-left: 10px;
|
|
|
}
|
|
|
+}
|
|
|
+
|
|
|
+.switch_left ul .active {
|
|
|
+ border-top: 4px solid var(--color-primary);
|
|
|
+ color: var(--color-primary-5);
|
|
|
+}
|
|
|
+
|
|
|
+.switch {
|
|
|
+ padding-bottom: 20px;
|
|
|
+}
|
|
|
+
|
|
|
+.el-dropdown-link {
|
|
|
+ cursor: pointer;
|
|
|
+ color: var(--color-primary-5);
|
|
|
+}
|
|
|
+
|
|
|
+.el-icon-arrow-down {
|
|
|
+ font-size: 12px;
|
|
|
+}
|
|
|
</style>
|