仓库按钮权限添加

dev-scheduling
jinna 2 weeks ago
parent ff66571276
commit 9ae463e59c
  1. 51
      src/views/inboundOutboundManagement/glassCakeOutbound/index.vue
  2. 42
      src/views/inboundOutboundManagement/graphiteMoldOutbound/index.vue
  3. 43
      src/views/inboundOutboundManagement/materialIssuing.vue
  4. 54
      src/views/inboundOutboundManagement/otherIssuing/index.vue
  5. 40
      src/views/inboundOutboundManagement/otherReceiving.vue
  6. 33
      src/views/inboundOutboundManagement/pickListPrinting.vue
  7. 36
      src/views/inboundOutboundManagement/returnReceiving.vue
  8. 51
      src/views/inboundOutboundManagement/warehouseTransfer/index.vue
  9. 68
      src/views/warehouseManagement/additionalPlan/components/additionalPlan.vue
  10. 61
      src/views/warehouseManagement/additionalPlan/components/purchase.vue
  11. 50
      src/views/warehouseManagement/workwearPlan/index.vue

@ -16,18 +16,19 @@
@size-change="sizeChange" @size-change="sizeChange"
@on-load="onLoad" @on-load="onLoad"
@row-save="rowSave" @row-save="rowSave"
@sort-change="sortChange"
> >
<template #menu-left> <template #menu-left>
<!-- <el-button type="primary" @click="addFn">新增出库</el-button> --> <!-- <el-button type="primary" @click="addFn">新增出库</el-button> -->
<el-button type="primary" @click="handleOut">打印</el-button> <el-button type="primary" @click="handleOut" v-if="permission.glassCakeOutbound_print">打印</el-button>
<el-button type="primary" @click="outboundFn">出库</el-button> <el-button type="primary" @click="outboundFn" v-if="permission.glassCakeOutbound_outStorage">出库</el-button>
<el-button type="danger" @click="handleDelete">删除</el-button> <el-button type="danger" @click="handleDelete" v-if="permission.glassCakeOutbound_del">删除</el-button>
</template> </template>
<template #menu="scope"> <template #menu="scope">
<el-button type="text" @click="handleEdit(scope.row)" v-if="scope.row.curStatus == 0" <el-button type="text" @click="handleEdit(scope.row)" v-if="scope.row.curStatus == 0 && permission.glassCakeOutbound_edit"
>修改</el-button >修改</el-button
> >
<el-button type="text" @click="handleScrap(scope.row)" v-if="scope.row.curStatus == 1" <el-button type="text" @click="handleScrap(scope.row)" v-if="scope.row.curStatus == 1 && permission.glassCakeOutbound_scrap"
>报废 >报废
</el-button> </el-button>
</template> </template>
@ -97,6 +98,7 @@ import addOut from './components/addDialog.vue';
import detailsDialog from './components/detailsDialog.vue'; import detailsDialog from './components/detailsDialog.vue';
import outboundDialog from './components/outboundDialog.vue'; import outboundDialog from './components/outboundDialog.vue';
import { getUserByRoleAlias } from '@/api/storeManagement/warehouseMaintenance'; import { getUserByRoleAlias } from '@/api/storeManagement/warehouseMaintenance';
import { mapGetters } from 'vuex';
export default { export default {
components: { components: {
addOut, addOut,
@ -188,12 +190,14 @@ export default {
label: '出库单号', label: '出库单号',
prop: 'outCode', prop: 'outCode',
search: false, search: false,
sortable: 'custom',
width: 150, width: 150,
}, },
{ {
label: '生产单号', label: '生产单号',
prop: 'yoCode', prop: 'yoCode',
search: true, search: true,
sortable: 'custom',
order: 2, order: 2,
width: 150, width: 150,
}, },
@ -201,24 +205,28 @@ export default {
label: '零件号', label: '零件号',
prop: 'partCode', prop: 'partCode',
search: false, search: false,
sortable: 'custom',
width: 150, width: 150,
}, },
{ {
label: '零件名称', label: '零件名称',
prop: 'partName', prop: 'partName',
search: false, search: false,
sortable: 'custom',
width: 150, width: 150,
}, },
{ {
label: '批次号', label: '批次号',
prop: 'piNo', prop: 'piNo',
search: false, search: false,
sortable: 'custom',
width: 150, width: 150,
}, },
{ {
label: '流程卡号', label: '流程卡号',
prop: 'cardNo', prop: 'cardNo',
search: true, search: true,
sortable: 'custom',
width: 150, width: 150,
order: 5, order: 5,
}, },
@ -226,6 +234,7 @@ export default {
label: '生产数量', label: '生产数量',
prop: 'quantity', prop: 'quantity',
search: false, search: false,
sortable: 'custom',
width: 120, width: 120,
}, },
@ -234,36 +243,42 @@ export default {
prop: 'goodsCode', prop: 'goodsCode',
search: true, search: true,
width: 150, width: 150,
sortable: 'custom',
order: 4, order: 4,
}, },
{ {
label: '物料名称', label: '物料名称',
prop: 'goodsName', prop: 'goodsName',
search: false, search: false,
sortable: 'custom',
width: 150, width: 150,
}, },
{ {
label: '物料需求数量', label: '物料需求数量',
prop: 'requireQty', prop: 'requireQty',
search: false, search: false,
sortable: 'custom',
width: 120, width: 120,
}, },
{ {
label: '库房', label: '库房',
prop: 'shName', prop: 'shName',
search: false, search: false,
sortable: 'custom',
width: 120, width: 120,
}, },
{ {
label: '库位', label: '库位',
prop: 'location', prop: 'location',
search: false, search: false,
sortable: 'custom',
width: 120, width: 120,
}, },
{ {
label: '是否印字', label: '是否印字',
prop: 'printMark', prop: 'printMark',
search: false, search: false,
sortable: 'custom',
width: 120, width: 120,
type: 'select', type: 'select',
dicData: [ dicData: [
@ -281,30 +296,35 @@ export default {
label: '粉重', label: '粉重',
prop: 'powderWeight', prop: 'powderWeight',
search: false, search: false,
sortable: 'custom',
width: 120, width: 120,
}, },
{ {
label: '材料号', label: '材料号',
prop: 'materialNo', prop: 'materialNo',
search: false, search: false,
sortable: 'custom',
width: 120, width: 120,
}, },
{ {
label: '成型厚度', label: '成型厚度',
prop: 'thickness', prop: 'thickness',
search: false, search: false,
sortable: 'custom',
width: 120, width: 120,
}, },
{ {
label: '炉批号', label: '炉批号',
prop: 'stovePiNo', prop: 'stovePiNo',
search: false, search: false,
sortable: 'custom',
width: 120, width: 120,
}, },
{ {
label: '已出库数量', label: '已出库数量',
prop: 'outQty', prop: 'outQty',
search: false, search: false,
sortable: 'custom',
width: 120, width: 120,
}, },
// { // {
@ -320,6 +340,7 @@ export default {
search: true, search: true,
width: 120, width: 120,
order: 3, order: 3,
sortable: 'custom',
searchLabelWidth: 60, searchLabelWidth: 60,
type: 'select', type: 'select',
dicData: [ dicData: [
@ -347,6 +368,7 @@ export default {
search: true, search: true,
width: 120, width: 120,
searchLabelWidth: 100, searchLabelWidth: 100,
sortable: 'custom',
hide: true, hide: true,
format: 'YYYY-MM-DD', format: 'YYYY-MM-DD',
valueFormat: 'YYYY-MM-DD', valueFormat: 'YYYY-MM-DD',
@ -365,6 +387,7 @@ export default {
label: '创建时间', label: '创建时间',
prop: 'createTime', prop: 'createTime',
search: false, search: false,
sortable: 'custom',
width: 180, width: 180,
type: 'datetime', type: 'datetime',
}, },
@ -372,12 +395,14 @@ export default {
label: '创建人', label: '创建人',
prop: 'createUserName', prop: 'createUserName',
search: false, search: false,
sortable: 'custom',
width: 120, width: 120,
}, },
{ {
label: '出库时间', label: '出库时间',
prop: 'outTime', prop: 'outTime',
search: false, search: false,
sortable: 'custom',
width: 180, width: 180,
type: 'datetime', type: 'datetime',
}, },
@ -385,12 +410,14 @@ export default {
label: '出库人', label: '出库人',
prop: 'outUserName', prop: 'outUserName',
search: false, search: false,
sortable: 'custom',
width: 120, width: 120,
}, },
{ {
label: '领料人', label: '领料人',
prop: 'pickerName', prop: 'pickerName',
search: false, search: false,
sortable: 'custom',
width: 120, width: 120,
}, },
], ],
@ -403,6 +430,9 @@ export default {
approverList: [], // approverList: [], //
}; };
}, },
computed: {
...mapGetters(['permission']),
},
mounted() { mounted() {
this.getApproverList(); this.getApproverList();
if (JSON.stringify(this.$store.state.client.pieOutParams) !== '{}') { if (JSON.stringify(this.$store.state.client.pieOutParams) !== '{}') {
@ -411,6 +441,17 @@ export default {
} }
}, },
methods: { methods: {
//
sortChange({ prop, order }) {
this.query.descs = undefined;
this.query.ascs = undefined;
let orderByFieldKey = order === 'descending' ? 'descs' : 'ascs';
this.query[orderByFieldKey] = !prop
? undefined
: prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
//
this.onLoad(this.page, this.query);
},
getApproverList() { getApproverList() {
getUserByRoleAlias({ roleAlias: 'sj_craft' }).then(res => { getUserByRoleAlias({ roleAlias: 'sj_craft' }).then(res => {
this.approverList = res.data.data; this.approverList = res.data.data;

@ -16,17 +16,18 @@
@size-change="sizeChange" @size-change="sizeChange"
@on-load="onLoad" @on-load="onLoad"
@row-save="rowSave" @row-save="rowSave"
@sort-change="sortChange"
> >
<template #menu-left> <template #menu-left>
<el-button type="primary" @click="handleOut">打印</el-button> <el-button type="primary" @click="handleOut" v-if="permission.graphiteMoldOutbound_print">打印</el-button>
<el-button type="primary" @click="outboundFn">出库</el-button> <el-button type="primary" @click="outboundFn" v-if="permission.graphiteMoldOutbound_outStorage">出库</el-button>
<el-button type="danger" @click="handleDelete">删除</el-button> <el-button type="danger" @click="handleDelete" v-if="permission.graphiteMoldOutbound_del">删除</el-button>
</template> </template>
<template #menu="scope"> <template #menu="scope">
<el-button type="text" @click="handleEdit(scope.row)" v-if="scope.row.curStatus == 0" <el-button type="text" @click="handleEdit(scope.row)" v-if="scope.row.curStatus == 0 && permission.graphiteMoldOutbound_edit"
>修改</el-button >修改</el-button
> >
<el-button type="text" @click="handleScrap(scope.row)" v-if="scope.row.curStatus == 1" <el-button type="text" @click="handleScrap(scope.row)" v-if="scope.row.curStatus == 1 && permission.graphiteMoldOutbound_scrap"
>报废 >报废
</el-button> </el-button>
</template> </template>
@ -89,6 +90,7 @@ import { getList, scrapOut, delIssue } from '@/api/storeManagement/graphiteMoldO
import addOut from './components/addDialog.vue'; import addOut from './components/addDialog.vue';
import outboundDialog from './components/outboundDialog.vue'; import outboundDialog from './components/outboundDialog.vue';
import { getUserByRoleAlias } from '@/api/storeManagement/warehouseMaintenance'; import { getUserByRoleAlias } from '@/api/storeManagement/warehouseMaintenance';
import { mapGetters } from 'vuex';
export default { export default {
components: { components: {
addOut, addOut,
@ -180,24 +182,28 @@ export default {
prop: 'outCode', prop: 'outCode',
search: false, search: false,
width: 150, width: 150,
sortable: 'custom',
}, },
{ {
label: '生产单号', label: '生产单号',
prop: 'yoCode', prop: 'yoCode',
search: true, search: true,
order: 2, order: 2,
sortable: 'custom',
width: 150, width: 150,
}, },
{ {
label: '批次号', label: '批次号',
prop: 'piNo', prop: 'piNo',
search: false, search: false,
sortable: 'custom',
width: 150, width: 150,
}, },
{ {
label: '流程卡号', label: '流程卡号',
prop: 'cardNo', prop: 'cardNo',
search: true, search: true,
sortable: 'custom',
width: 150, width: 150,
order: 5, order: 5,
}, },
@ -208,6 +214,7 @@ export default {
prop: 'goodsCode', prop: 'goodsCode',
search: true, search: true,
width: 150, width: 150,
sortable: 'custom',
order: 4, order: 4,
}, },
{ {
@ -215,29 +222,34 @@ export default {
prop: 'goodsName', prop: 'goodsName',
search: false, search: false,
width: 150, width: 150,
sortable: 'custom',
}, },
{ {
label: '物料需求数量', label: '物料需求数量',
prop: 'needQuantity', prop: 'needQuantity',
search: false, search: false,
sortable: 'custom',
width: 120, width: 120,
}, },
{ {
label: '库房', label: '库房',
prop: 'shName', prop: 'shName',
search: false, search: false,
sortable: 'custom',
width: 120, width: 120,
}, },
{ {
label: '库位', label: '库位',
prop: 'location', prop: 'location',
search: false, search: false,
sortable: 'custom',
width: 120, width: 120,
}, },
{ {
label: '已出库数量', label: '已出库数量',
prop: 'outedQuantity', prop: 'outedQuantity',
search: false, search: false,
sortable: 'custom',
width: 120, width: 120,
}, },
{ {
@ -247,6 +259,7 @@ export default {
width: 120, width: 120,
order: 3, order: 3,
searchLabelWidth: 60, searchLabelWidth: 60,
sortable: 'custom',
type: 'select', type: 'select',
dicData: [ dicData: [
{ {
@ -265,17 +278,20 @@ export default {
search: false, search: false,
width: 180, width: 180,
type: 'datetime', type: 'datetime',
sortable: 'custom',
}, },
{ {
label: '创建人', label: '创建人',
prop: 'createUserName', prop: 'createUserName',
search: false, search: false,
sortable: 'custom',
width: 120, width: 120,
}, },
{ {
label: '出库时间', label: '出库时间',
prop: 'outTime', prop: 'outTime',
search: false, search: false,
sortable: 'custom',
width: 180, width: 180,
type: 'datetime', type: 'datetime',
}, },
@ -283,12 +299,14 @@ export default {
label: '出库人', label: '出库人',
prop: 'outUserName', prop: 'outUserName',
search: false, search: false,
sortable: 'custom',
width: 120, width: 120,
}, },
{ {
label: '领料人', label: '领料人',
prop: 'pickerName', prop: 'pickerName',
search: false, search: false,
sortable: 'custom',
width: 120, width: 120,
}, },
], ],
@ -301,6 +319,9 @@ export default {
approverList: [], // approverList: [], //
}; };
}, },
computed: {
...mapGetters(['permission']),
},
mounted() { mounted() {
this.getApproverList(); this.getApproverList();
if (JSON.stringify(this.$store.state.client.pieOutParams) !== '{}') { if (JSON.stringify(this.$store.state.client.pieOutParams) !== '{}') {
@ -309,6 +330,17 @@ export default {
} }
}, },
methods: { methods: {
//
sortChange({ prop, order }) {
this.query.descs = undefined;
this.query.ascs = undefined;
let orderByFieldKey = order === 'descending' ? 'descs' : 'ascs';
this.query[orderByFieldKey] = !prop
? undefined
: prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
//
this.onLoad(this.page, this.query);
},
getApproverList() { getApproverList() {
getUserByRoleAlias({ roleAlias: 'sj_craft' }).then(res => { getUserByRoleAlias({ roleAlias: 'sj_craft' }).then(res => {
this.approverList = res.data.data; this.approverList = res.data.data;

@ -18,6 +18,7 @@
@refresh-change="refreshChange" @refresh-change="refreshChange"
@on-load="onLoad" @on-load="onLoad"
@row-save="rowSave" @row-save="rowSave"
@sort-change="sortChange"
> >
<template #menu-left> <template #menu-left>
<el-input <el-input
@ -26,15 +27,15 @@
@keyup.enter.native="changeCode" @keyup.enter.native="changeCode"
placeholder="请扫描提请单号" placeholder="请扫描提请单号"
/> />
<el-button type="primary" @click="handleOut">出库</el-button> <el-button type="primary" @click="handleOut" v-if="permission.materialIssuing_outStorage">出库</el-button>
</template> </template>
<template #menu="scope"> <template #menu="scope">
<el-button type="text" @click="outRow(scope.row)">出库</el-button> <el-button type="text" @click="outRow(scope.row)" v-if="permission.materialIssuing_outStorage">出库</el-button>
<el-button type="text" @click="completeRow(scope.row)">完成</el-button> <el-button type="text" @click="completeRow(scope.row)" v-if="permission.materialIssuing_finish">完成</el-button>
<el-button type="text" @click="deleteRow(scope.row)">删除</el-button> <el-button type="text" @click="deleteRow(scope.row)" v-if="permission.materialIssuing_del">删除</el-button>
</template> </template>
<template #location="scope"> <template #location="scope">
<el-button type="text" @click="editRow(scope.row, scope.row.$index)">{{ <el-button type="text" @click="editRow(scope.row, scope.row.$index)" :disabled="!permission.materialIssuing_selectHouse">{{
scope.row.location == '' || scope.row.location == null ? '请选择库位' : scope.row.location scope.row.location == '' || scope.row.location == null ? '请选择库位' : scope.row.location
}}</el-button> }}</el-button>
</template> </template>
@ -58,6 +59,7 @@ import {
batchIssue, batchIssue,
} from '@/api/storeManagement/materialIssuing'; } from '@/api/storeManagement/materialIssuing';
import editMaterial from './components/editMaterial.vue'; import editMaterial from './components/editMaterial.vue';
import { mapGetters } from 'vuex';
export default { export default {
components: { components: {
editMaterial, editMaterial,
@ -128,6 +130,7 @@ export default {
prop: 'crCode', prop: 'crCode',
span: 8, span: 8,
overflow: true, overflow: true,
sortable: 'custom',
search: false, search: false,
width: 160, width: 160,
}, },
@ -136,6 +139,7 @@ export default {
prop: 'goodsCode', prop: 'goodsCode',
span: 8, span: 8,
overflow: true, overflow: true,
// sortable: 'custom',
search: true, search: true,
width: 160, width: 160,
}, },
@ -145,6 +149,7 @@ export default {
span: 8, span: 8,
overflow: true, overflow: true,
width: 120, width: 120,
sortable: 'custom',
search: true, search: true,
}, },
{ {
@ -152,6 +157,7 @@ export default {
prop: 'location', prop: 'location',
span: 8, span: 8,
overflow: true, overflow: true,
sortable: 'custom',
width: 120, width: 120,
search: false, search: false,
}, },
@ -161,6 +167,7 @@ export default {
span: 8, span: 8,
overflow: true, overflow: true,
width: 120, width: 120,
sortable: 'custom',
search: false, search: false,
}, },
{ {
@ -169,6 +176,7 @@ export default {
span: 8, span: 8,
overflow: true, overflow: true,
width: 120, width: 120,
sortable: 'custom',
search: false, search: false,
}, },
{ {
@ -177,6 +185,7 @@ export default {
span: 8, span: 8,
overflow: true, overflow: true,
width: 120, width: 120,
sortable: 'custom',
search: false, search: false,
}, },
{ {
@ -185,6 +194,7 @@ export default {
span: 8, span: 8,
overflow: true, overflow: true,
width: 120, width: 120,
sortable: 'custom',
search: false, search: false,
}, },
{ {
@ -194,11 +204,13 @@ export default {
width: 100, width: 100,
overflow: true, overflow: true,
search: false, search: false,
sortable: 'custom',
}, },
{ {
label: '规格', label: '规格',
prop: 'specifications', prop: 'specifications',
span: 8, span: 8,
sortable: 'custom',
overflow: true, overflow: true,
search: false, search: false,
width: 100, width: 100,
@ -208,6 +220,7 @@ export default {
prop: 'checkCode', prop: 'checkCode',
span: 8, span: 8,
overflow: true, overflow: true,
sortable: 'custom',
width: 150, width: 150,
search: false, search: false,
}, },
@ -216,6 +229,7 @@ export default {
label: '总库存', label: '总库存',
prop: 'currentStock', prop: 'currentStock',
width: 100, width: 100,
// sortable: 'custom',
span: 8, span: 8,
overflow: true, overflow: true,
search: false, search: false,
@ -226,11 +240,13 @@ export default {
prop: 'quantity', prop: 'quantity',
span: 8, span: 8,
overflow: true, overflow: true,
// sortable: 'custom',
search: false, search: false,
}, },
{ {
label: '计量单位', label: '计量单位',
prop: 'unitName', prop: 'unitName',
sortable: 'custom',
width: 100, width: 100,
span: 8, span: 8,
overflow: true, overflow: true,
@ -242,6 +258,7 @@ export default {
prop: 'pendingApplyQty', prop: 'pendingApplyQty',
span: 8, span: 8,
overflow: true, overflow: true,
// sortable: 'custom',
width: 100, width: 100,
search: false, search: false,
}, },
@ -250,6 +267,7 @@ export default {
prop: 'outQuantity', prop: 'outQuantity',
span: 8, span: 8,
overflow: true, overflow: true,
// sortable: 'custom',
width: 100, width: 100,
search: false, search: false,
}, },
@ -259,6 +277,7 @@ export default {
prop: 'memo', prop: 'memo',
span: 8, span: 8,
overflow: true, overflow: true,
sortable: 'custom',
search: false, search: false,
width: 130, width: 130,
}, },
@ -267,6 +286,9 @@ export default {
searchForm: {}, searchForm: {},
}; };
}, },
computed: {
...mapGetters(['permission']),
},
created() { created() {
if (JSON.stringify(this.$store.state.client.exchangeOutParams) !== '{}') { if (JSON.stringify(this.$store.state.client.exchangeOutParams) !== '{}') {
this.query = this.$store.state.client.exchangeOutParams; this.query = this.$store.state.client.exchangeOutParams;
@ -274,6 +296,17 @@ export default {
} }
}, },
methods: { methods: {
//
sortChange({ prop, order }) {
this.query.descs = undefined;
this.query.ascs = undefined;
let orderByFieldKey = order === 'descending' ? 'descs' : 'ascs';
this.query[orderByFieldKey] = !prop
? undefined
: prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
//
this.onLoad(this.page, this.query);
},
changeCode(val) { changeCode(val) {
if (this.checkCode == '') return; if (this.checkCode == '') return;
this.query.crCode = this.checkCode; this.query.crCode = this.checkCode;

@ -17,6 +17,7 @@
@refresh-change="refreshChange" @refresh-change="refreshChange"
@on-load="onLoad" @on-load="onLoad"
:before-open="beforeOpen" :before-open="beforeOpen"
@sort-change="sortChange"
> >
<template #menu-left> <template #menu-left>
<el-input <el-input
@ -25,14 +26,14 @@
style="width: 240px; margin-right: 24px" style="width: 240px; margin-right: 24px"
placeholder="请扫描条形码" placeholder="请扫描条形码"
/> />
<el-button type="primary" @click="addView()">新增</el-button> <el-button type="primary" @click="addView()" v-if="permission.otherIssuing_add">新增</el-button>
</template> </template>
<template #menu-right> </template> <template #menu-right> </template>
<template #menu="scope"> <template #menu="scope">
<el-button type="text" @click="handeDetails(scope.row)">详情</el-button> <el-button type="text" @click="handeDetails(scope.row)" v-if="permission.otherIssuing_detail">详情</el-button>
<el-button <el-button
type="text" type="text"
v-if="scope.row.approvalStatus === 0" v-if="scope.row.approvalStatus === 0 && permission.otherIssuing_approval"
@click="handeExamine(scope.row)" @click="handeExamine(scope.row)"
>审批</el-button >审批</el-button
> >
@ -74,6 +75,7 @@
import { getList, getDetail, approve } from '@/api/storeManagement/otherIssuing'; import { getList, getDetail, approve } from '@/api/storeManagement/otherIssuing';
import otherIssuingDailog from './otherIssuingDailog.vue'; import otherIssuingDailog from './otherIssuingDailog.vue';
import detailsDialog from './detailsDialog.vue'; import detailsDialog from './detailsDialog.vue';
import { mapGetters } from 'vuex';
export default { export default {
components: { components: {
otherIssuingDailog, otherIssuingDailog,
@ -141,7 +143,7 @@ export default {
label: '出库单号', label: '出库单号',
prop: 'sirCode', prop: 'sirCode',
// bind: "stAccBill.billCode", // bind: "stAccBill.billCode",
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
search: true, search: true,
@ -152,7 +154,7 @@ export default {
prop: 'inOutDate', prop: 'inOutDate',
// bind: "stAccBill.billDate", // bind: "stAccBill.billDate",
search: true, search: true,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 180, width: 180,
@ -167,7 +169,7 @@ export default {
label: '出库仓库', label: '出库仓库',
prop: 'shName', prop: 'shName',
search: true, search: true,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 180, width: 180,
@ -177,7 +179,7 @@ export default {
prop: 'outType', prop: 'outType',
type: 'select', type: 'select',
search: false, search: false,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 110, width: 110,
@ -199,7 +201,7 @@ export default {
prop: 'inOutReason', prop: 'inOutReason',
type: 'select', type: 'select',
search: false, search: false,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 180, width: 180,
@ -247,7 +249,7 @@ export default {
label: '领料人', label: '领料人',
prop: 'pickerName', prop: 'pickerName',
search: true, search: true,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 100, width: 100,
@ -256,7 +258,7 @@ export default {
label: '制单人', label: '制单人',
prop: 'createUserName', prop: 'createUserName',
search: false, search: false,
sortable: true, // sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 100, width: 100,
@ -265,7 +267,7 @@ export default {
label: '工装编号', label: '工装编号',
prop: 'toolCode', prop: 'toolCode',
search: false, search: false,
sortable: true, // sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
display: false, display: false,
@ -275,7 +277,7 @@ export default {
label: '报废单号', label: '报废单号',
prop: 'bfCode', prop: 'bfCode',
search: false, search: false,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
display: false, display: false,
@ -285,7 +287,7 @@ export default {
label: '关联车间订单号', label: '关联车间订单号',
prop: 'woCode', prop: 'woCode',
search: false, search: false,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
display: false, display: false,
@ -295,7 +297,7 @@ export default {
label: '审批状态', label: '审批状态',
prop: 'approvalStatus', prop: 'approvalStatus',
search: false, search: false,
sortable: true, // sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
display: false, display: false,
@ -322,7 +324,7 @@ export default {
label: '审批人', label: '审批人',
prop: 'approverName', prop: 'approverName',
search: false, search: false,
sortable: true, // sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
display: false, display: false,
@ -332,7 +334,7 @@ export default {
label: '审批时间', label: '审批时间',
prop: 'approvalTime', prop: 'approvalTime',
search: false, search: false,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
display: false, display: false,
@ -345,7 +347,7 @@ export default {
// bind: "scrapReason", // bind: "scrapReason",
search: false, search: false,
type: 'select', type: 'select',
sortable: true, sortable: 'custom',
// /** // /**
// * // *
// */ // */
@ -373,7 +375,7 @@ export default {
label: '提请单号', label: '提请单号',
prop: 'crCode', prop: 'crCode',
// bind: "stAccBill.billCode", // bind: "stAccBill.billCode",
sortable: true, // sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
search: true, search: true,
@ -383,7 +385,7 @@ export default {
label: '备注', label: '备注',
prop: 'memo', prop: 'memo',
search: false, search: false,
sortable: true, // sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
display: false, display: false,
@ -405,6 +407,9 @@ export default {
openType:'' openType:''
}; };
}, },
computed: {
...mapGetters(['permission']),
},
created() { created() {
if (JSON.stringify(this.$store.state.client.otherOutParams) !== '{}') { if (JSON.stringify(this.$store.state.client.otherOutParams) !== '{}') {
this.query = this.$store.state.client.otherOutParams; this.query = this.$store.state.client.otherOutParams;
@ -412,6 +417,17 @@ export default {
} }
}, },
methods: { methods: {
//
sortChange({ prop, order }) {
this.query.descs = undefined;
this.query.ascs = undefined;
let orderByFieldKey = order === 'descending' ? 'descs' : 'ascs';
this.query[orderByFieldKey] = !prop
? undefined
: prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
//
this.onLoad(this.page, this.query);
},
addView() { addView() {
this.openShow = true; this.openShow = true;
this.openType = '新增' this.openType = '新增'

@ -4,12 +4,13 @@
<avue-crud :option="option" :table-loading="loading" :data="data" v-model="form" v-model:search="searchForm" v-model:page="page" ref="crud" <avue-crud :option="option" :table-loading="loading" :data="data" v-model="form" v-model:search="searchForm" v-model:page="page" ref="crud"
@search-change="searchChange" @search-reset="searchReset" :before-open="beforeOpen" @search-change="searchChange" @search-reset="searchReset" :before-open="beforeOpen"
@selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange" @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
@refresh-change="refreshChange" @on-load="onLoad" @row-save="rowSave"> @refresh-change="refreshChange" @on-load="onLoad" @row-save="rowSave"
@sort-change="sortChange">
<template #menu-right> <template #menu-right>
<el-button type="primary" @click="handleImport">导入</el-button> <el-button type="primary" @click="handleImport" v-if="permission.otherReceiving_import">导入</el-button>
</template> </template>
<template #menu-left> <template #menu-left>
<el-button type="primary" @click="handleAdd">新增</el-button> <el-button type="primary" @click="handleAdd" v-if="permission.otherReceiving_add">新增</el-button>
</template> </template>
<!-- <template #goodsCode="{ row }">{{ row.goods.goodsCode }}</template> <!-- <template #goodsCode="{ row }">{{ row.goods.goodsCode }}</template>
@ -36,6 +37,7 @@
import {getOtherInList} from '@/api/storeManagement/otherReceiving' import {getOtherInList} from '@/api/storeManagement/otherReceiving'
import addEditDialog from './components/addEditDialog.vue' import addEditDialog from './components/addEditDialog.vue'
import basicImport from '@/components/basic-import/main.vue' import basicImport from '@/components/basic-import/main.vue'
import { mapGetters } from 'vuex';
export default { export default {
components: { components: {
addEditDialog, addEditDialog,
@ -105,6 +107,7 @@ export default {
overflow: true, overflow: true,
search: true, search: true,
hide: false, hide: false,
sortable: 'custom',
order: 17, order: 17,
width: 140, width: 140,
rules: [ rules: [
@ -121,6 +124,7 @@ export default {
span: 8, span: 8,
overflow: true, overflow: true,
search: true, search: true,
sortable: 'custom',
width: 140, width: 140,
rules: [ rules: [
{ {
@ -136,6 +140,7 @@ export default {
span: 8, span: 8,
overflow: true, overflow: true,
search: false, search: false,
sortable: 'custom',
width: 140, width: 140,
rules: [ rules: [
{ {
@ -151,6 +156,7 @@ export default {
span: 8, span: 8,
overflow: true, overflow: true,
search: false, search: false,
sortable: 'custom',
width: 140, width: 140,
rules: [ rules: [
{ {
@ -166,6 +172,7 @@ export default {
span: 8, span: 8,
overflow: true, overflow: true,
search: false, search: false,
sortable: 'custom',
width: 140, width: 140,
rules: [ rules: [
{ {
@ -181,6 +188,7 @@ export default {
span: 8, span: 8,
overflow: true, overflow: true,
search: false, search: false,
sortable: 'custom',
width: 140, width: 140,
rules: [ rules: [
{ {
@ -196,6 +204,7 @@ export default {
span: 8, span: 8,
overflow: true, overflow: true,
search: false, search: false,
sortable: 'custom',
width: 140, width: 140,
rules: [ rules: [
{ {
@ -211,6 +220,7 @@ export default {
span: 8, span: 8,
overflow: true, overflow: true,
search: false, search: false,
sortable: 'custom',
width: 140, width: 140,
rules: [ rules: [
{ {
@ -229,6 +239,7 @@ export default {
span: 8, span: 8,
overflow: true, overflow: true,
search: false, search: false,
sortable: 'custom',
width: 140, width: 140,
rules: [ rules: [
{ {
@ -244,6 +255,7 @@ export default {
span: 8, span: 8,
overflow: true, overflow: true,
search: false, search: false,
sortable: 'custom',
width: 140, width: 140,
rules: [ rules: [
{ {
@ -261,6 +273,7 @@ export default {
editDisplay: false, editDisplay: false,
overflow: true, overflow: true,
search: false, search: false,
sortable: 'custom',
width: 140, width: 140,
rules: [ rules: [
{ {
@ -277,6 +290,7 @@ export default {
order: 15, order: 15,
span: 8, span: 8,
overflow: true, overflow: true,
sortable: 'custom',
search: true, search: true,
width: 140, width: 140,
rules: [ rules: [
@ -299,6 +313,7 @@ export default {
editDisplay: false, editDisplay: false,
overflow: true, overflow: true,
search: false, search: false,
sortable: 'custom',
width: 140, width: 140,
rules: [ rules: [
{ {
@ -330,6 +345,7 @@ export default {
span: 8, span: 8,
overflow: true, overflow: true,
search: false, search: false,
sortable: 'custom',
width: 140, width: 140,
rules: [ rules: [
{ {
@ -345,6 +361,7 @@ export default {
span: 8, span: 8,
overflow: true, overflow: true,
search: false, search: false,
sortable: 'custom',
width: 140, width: 140,
rules: [ rules: [
{ {
@ -362,6 +379,7 @@ export default {
span: 8, span: 8,
overflow: true, overflow: true,
search: true, search: true,
// sortable: 'custom',
width: 140, width: 140,
rules: [ rules: [
{ {
@ -389,6 +407,7 @@ export default {
order: 16, order: 16,
overflow: true, overflow: true,
search: true, search: true,
sortable: 'custom',
width: 140, width: 140,
rules: [ rules: [
{ {
@ -406,6 +425,7 @@ export default {
order: 13, order: 13,
overflow: true, overflow: true,
search: true, search: true,
sortable: 'custom',
width: 140, width: 140,
rules: [ rules: [
{ {
@ -433,6 +453,9 @@ export default {
moldAddMore: false, moldAddMore: false,
} }
}, },
computed: {
...mapGetters(['permission']),
},
created() { created() {
console.log('otherInParams--------',this.$store.state.client.otherInParams) console.log('otherInParams--------',this.$store.state.client.otherInParams)
if (JSON.stringify(this.$store.state.client.otherInParams) !== "{}") { if (JSON.stringify(this.$store.state.client.otherInParams) !== "{}") {
@ -441,6 +464,17 @@ export default {
} }
}, },
methods: { methods: {
//
sortChange({ prop, order }) {
this.query.descs = undefined;
this.query.ascs = undefined;
let orderByFieldKey = order === 'descending' ? 'descs' : 'ascs';
this.query[orderByFieldKey] = !prop
? undefined
: prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
//
this.onLoad(this.page, this.query);
},
searchChange(params, done){ searchChange(params, done){
this.query = params this.query = params
this.page.currentPage = 1; this.page.currentPage = 1;

@ -18,15 +18,20 @@
@size-change="sizeChange" @size-change="sizeChange"
@refresh-change="refreshChange" @refresh-change="refreshChange"
@on-load="onLoad" @on-load="onLoad"
@sort-change="sortChange"
> >
<template #menu="scope"> <template #menu="scope">
<!-- <el-button type="text" @click="showDetail(scope.row)">详情</el-button> --> <!-- <el-button type="text" @click="showDetail(scope.row)">详情</el-button> -->
</template> </template>
<template #menu-left> <template #menu-left>
<el-button type="primary" :disabled="selectionList.length == 0 || selectionList.length > 1" @click="printRequisition" <el-button type="primary" :disabled="selectionList.length == 0 || selectionList.length > 1"
v-if="permission.pickListPrinting_printRequisition"
@click="printRequisition"
>领用单打印</el-button >领用单打印</el-button
> >
<el-button type="primary" :disabled="selectionList.length == 0 || selectionList.length > 1" @click="printDetail" <el-button type="primary" :disabled="selectionList.length == 0 || selectionList.length > 1"
v-if="permission.pickListPrinting_printRequisitionDetail"
@click="printDetail"
>领用单明细打印</el-button >领用单明细打印</el-button
> >
</template> </template>
@ -84,6 +89,7 @@
</template> </template>
<script> <script>
import {getList,getRequisition} from "@/api/storeManagement/pickListPrinting.js" import {getList,getRequisition} from "@/api/storeManagement/pickListPrinting.js"
import { mapGetters } from 'vuex';
export default { export default {
data() { data() {
return { return {
@ -153,6 +159,7 @@ export default {
labelWidth: 140, labelWidth: 140,
overflow: true, overflow: true,
search: true, search: true,
sortable: 'custom',
rules: [ rules: [
{ {
required: true, required: true,
@ -168,6 +175,7 @@ export default {
labelWidth: 140, labelWidth: 140,
overflow: true, overflow: true,
search: true, search: true,
sortable: 'custom',
rules: [ rules: [
{ {
required: true, required: true,
@ -183,6 +191,7 @@ export default {
labelWidth: 140, labelWidth: 140,
overflow: true, overflow: true,
search: true, search: true,
sortable: 'custom',
rules: [ rules: [
{ {
required: true, required: true,
@ -198,6 +207,7 @@ export default {
labelWidth: 140, labelWidth: 140,
overflow: true, overflow: true,
search: false, search: false,
sortable: 'custom',
rules: [ rules: [
{ {
required: true, required: true,
@ -213,6 +223,7 @@ export default {
labelWidth: 140, labelWidth: 140,
overflow: true, overflow: true,
search: false, search: false,
sortable: 'custom',
rules: [ rules: [
{ {
required: true, required: true,
@ -228,6 +239,7 @@ export default {
labelWidth: 140, labelWidth: 140,
overflow: true, overflow: true,
search: false, search: false,
sortable: 'custom',
rules: [ rules: [
{ {
required: true, required: true,
@ -243,6 +255,7 @@ export default {
labelWidth: 140, labelWidth: 140,
overflow: true, overflow: true,
search: true, search: true,
sortable: 'custom',
rules: [ rules: [
{ {
required: true, required: true,
@ -258,6 +271,7 @@ export default {
labelWidth: 140, labelWidth: 140,
overflow: true, overflow: true,
search: true, search: true,
sortable: 'custom',
rules: [ rules: [
{ {
required: true, required: true,
@ -273,6 +287,7 @@ export default {
labelWidth: 140, labelWidth: 140,
overflow: true, overflow: true,
search: true, search: true,
sortable: 'custom',
rules: [ rules: [
{ {
required: true, required: true,
@ -285,8 +300,22 @@ export default {
}, },
}; };
}, },
computed: {
...mapGetters(['permission']),
},
mounted() {}, mounted() {},
methods: { methods: {
//
sortChange({ prop, order }) {
this.query.descs = undefined;
this.query.ascs = undefined;
let orderByFieldKey = order === 'descending' ? 'descs' : 'ascs';
this.query[orderByFieldKey] = !prop
? undefined
: prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
//
this.onLoad(this.page, this.query);
},
// //
selectionChange(val) { selectionChange(val) {
this.selectionList = val; this.selectionList = val;

@ -14,6 +14,7 @@
@size-change="sizeChange" @size-change="sizeChange"
@refresh-change="refreshChange" @refresh-change="refreshChange"
@on-load="onLoad" @on-load="onLoad"
@sort-change="sortChange"
> >
<template #menu-left> <template #menu-left>
<span style="font-size: 12px; color: #606266">物料编号</span> <span style="font-size: 12px; color: #606266">物料编号</span>
@ -24,7 +25,7 @@
></el-input> ></el-input>
</template> </template>
<template #menu="scope"> <template #menu="scope">
<el-button type="text" @click="warehousing(scope.row)"> 入库</el-button> <el-button type="text" @click="warehousing(scope.row)" v-if="permission.returnReceiving_inStorage"> 入库</el-button>
</template> </template>
<!-- 入库数量 --> <!-- 入库数量 -->
<template #pushQuantity="{ row }"> <template #pushQuantity="{ row }">
@ -67,6 +68,7 @@ import {
addIssue, addIssue,
} from '@/api/storeManagement/returnReceiving'; } from '@/api/storeManagement/returnReceiving';
import { getLocationList } from '@/api/storeManagement/warehouseMaintenance'; import { getLocationList } from '@/api/storeManagement/warehouseMaintenance';
import { mapGetters } from 'vuex';
export default { export default {
data() { data() {
return { return {
@ -140,12 +142,15 @@ export default {
overflow: true, overflow: true,
search: false, search: false,
width: 160, width: 160,
sortable: 'custom',
}, },
{ {
label: '材料名称', label: '材料名称',
prop: 'prtdesc', prop: 'prtdesc',
span: 24, span: 24,
overflow: true, overflow: true,
sortable: 'custom',
width: 120,
search: true, search: true,
}, },
{ {
@ -154,19 +159,24 @@ export default {
span: 24, span: 24,
overflow: true, overflow: true,
search: false, search: false,
sortable: 'custom',
}, },
{ {
label: '生产标识', label: '生产标识',
prop: 'prtlotno', prop: 'prtlotno',
span: 24, span: 24,
overflow: true, overflow: true,
width: 120,
search: false, search: false,
sortable: 'custom',
}, },
{ {
label: '出库单号', label: '出库单号',
prop: 'invadjCode', prop: 'invadjCode',
span: 24, span: 24,
overflow: true, overflow: true,
sortable: 'custom',
width: 160,
search: false, search: false,
}, },
{ {
@ -174,6 +184,8 @@ export default {
prop: 'invysqty', prop: 'invysqty',
span: 24, span: 24,
overflow: true, overflow: true,
sortable: 'custom',
width: 120,
search: false, search: false,
}, },
{ {
@ -182,6 +194,7 @@ export default {
span: 24, span: 24,
overflow: true, overflow: true,
search: false, search: false,
// sortable: 'custom',
width: 140, width: 140,
}, },
{ {
@ -190,6 +203,7 @@ export default {
span: 24, span: 24,
overflow: true, overflow: true,
search: false, search: false,
// sortable: 'custom',
width: 140, width: 140,
}, },
{ {
@ -198,6 +212,7 @@ export default {
span: 24, span: 24,
overflow: true, overflow: true,
search: false, search: false,
// sortable: 'custom',
width: 140, width: 140,
}, },
{ {
@ -205,6 +220,7 @@ export default {
prop: 'invadjMoney', prop: 'invadjMoney',
span: 24, span: 24,
overflow: true, overflow: true,
sortable: 'custom',
search: false, search: false,
}, },
{ {
@ -212,10 +228,13 @@ export default {
prop: 'prtum', prop: 'prtum',
span: 24, span: 24,
overflow: true, overflow: true,
sortable: 'custom',
search: false, search: false,
}, },
{ {
label: '到期日期', label: '到期日期',
sortable: 'custom',
width: 120,
prop: 'validdat', prop: 'validdat',
}, },
{ {
@ -224,12 +243,16 @@ export default {
width: 150, width: 150,
search: false, search: false,
sortable: true, sortable: true,
sortable: 'custom',
overHidden: true, overHidden: true,
}, },
], ],
}, },
}; };
}, },
computed: {
...mapGetters(['permission']),
},
mounted() { mounted() {
this.getWare(); this.getWare();
if (JSON.stringify(this.$store.state.client.materialInParams) !== '{}') { if (JSON.stringify(this.$store.state.client.materialInParams) !== '{}') {
@ -238,6 +261,17 @@ export default {
} }
}, },
methods: { methods: {
//
sortChange({ prop, order }) {
this.query.descs = undefined;
this.query.ascs = undefined;
let orderByFieldKey = order === 'descending' ? 'descs' : 'ascs';
this.query[orderByFieldKey] = !prop
? undefined
: prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
//
this.onLoad(this.page, this.query);
},
searchChange(params, done) { searchChange(params, done) {
this.query = params; this.query = params;
this.page.currentPage = 1; this.page.currentPage = 1;

@ -15,11 +15,12 @@
@size-change="sizeChange" @size-change="sizeChange"
@refresh-change="refreshChange" @refresh-change="refreshChange"
@on-load="onLoad" @on-load="onLoad"
@sort-change="sortChange"
> >
<template #menu-left> </template> <template #menu-left> </template>
<template #menu-right> </template> <template #menu-right> </template>
<template #menu="scope"> <template #menu="scope">
<el-button type="text" @click="warehousing(scope.row)"> 入库 </el-button> <el-button type="text" @click="warehousing(scope.row)" v-if="permission.warehouseTransfer_inStorage"> 入库 </el-button>
</template> </template>
<!-- 入库数量 --> <!-- 入库数量 -->
@ -69,7 +70,7 @@ import {
getLocationData, getLocationData,
addIssue, addIssue,
} from '@/api/storeManagement/warehouseTransfer'; } from '@/api/storeManagement/warehouseTransfer';
import { mapGetters } from 'vuex';
export default { export default {
data() { data() {
return { return {
@ -104,30 +105,44 @@ export default {
menuAlign: 'center', menuAlign: 'center',
showOverflowTooltip: true, showOverflowTooltip: true,
column: [ column: [
{ label: '出库单号', prop: 'outCode', search: true, width: 120 }, { label: '出库单号', prop: 'outCode', search: true, width: 120,sortable: 'custom', },
{ label: '材料编号', prop: 'goodsCode', search: true, width: 180 }, { label: '材料编号', prop: 'goodsCode', search: true, width: 180,sortable: 'custom', },
{ label: '出库数量', prop: 'outQuantity', width: 120 }, { label: '出库数量', prop: 'outQuantity', width: 120,sortable: 'custom', },
{ label: '出库人', prop: 'checkUser', width: 120 }, { label: '出库人', prop: 'checkUser', width: 120,sortable: 'custom', },
{ label: '入库数量', prop: 'putQuantity', width: 140 }, { label: '入库数量', prop: 'putQuantity', width: 140,sortable: 'custom', },
{ label: '入库库房', prop: 'shId', width: 140 }, { label: '入库库房', prop: 'shId', width: 140,sortable: 'custom', },
{ label: '入库库位', prop: 'location', width: 140 }, { label: '入库库位', prop: 'location', width: 140,sortable: 'custom', },
{ label: '材料名称', prop: 'goodsName', search: true, width: 120 }, { label: '材料名称', prop: 'goodsName', search: true, width: 120,sortable: 'custom', },
{ label: '物料规格', prop: 'specifications', width: 120 }, { label: '物料规格', prop: 'specifications', width: 120,sortable: 'custom', },
{ label: '型号/牌号', prop: 'materialModel', width: 120 }, { label: '型号/牌号', prop: 'materialModel', width: 120,sortable: 'custom', },
{ label: '单位', prop: 'unitName', width: 120 }, { label: '单位', prop: 'unitName', width: 120,sortable: 'custom', },
{ label: '批次号', prop: 'batchCode', search: true, width: 120 }, { label: '批次号', prop: 'batchCode', search: true, width: 120,sortable: 'custom', },
{ label: '炉批号', prop: 'prtWoCode', width: 120 }, { label: '炉批号', prop: 'prtWoCode', width: 120,sortable: 'custom', },
{ label: '单价', prop: 'unitPrice', width: 120 }, { label: '单价', prop: 'unitPrice', width: 120,sortable: 'custom', },
{ label: '检验编号', prop: 'checkCode', search: true, width: 120 }, { label: '检验编号', prop: 'checkCode', search: true, width: 120, },
{ label: '到期日期', prop: 'scrapCycle', width: 120 }, { label: '到期日期', prop: 'scrapCycle', width: 120,sortable: 'custom', },
], ],
}, },
}; };
}, },
computed: {
...mapGetters(['permission']),
},
created() { created() {
this.getWare(); this.getWare();
}, },
methods: { methods: {
//
sortChange({ prop, order }) {
this.query.descs = undefined;
this.query.ascs = undefined;
let orderByFieldKey = order === 'descending' ? 'descs' : 'ascs';
this.query[orderByFieldKey] = !prop
? undefined
: prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
//
this.onLoad(this.page, this.query);
},
async onLoad() { async onLoad() {
this.loading = true; this.loading = true;
try { try {

@ -15,19 +15,20 @@
@size-change="sizeChange" @size-change="sizeChange"
@refresh-change="refreshChange" @refresh-change="refreshChange"
@on-load="onLoad" @on-load="onLoad"
@sort-change="sortChange"
> >
<template #menu-left> <template #menu-left>
<el-button type="primary" @click="handleAdd">新增 </el-button> <el-button type="primary" @click="handleAdd" v-if="permission.additionalPlan_add">新增 </el-button>
<el-button type="primary" @click="handleImport">批量发送 </el-button> <el-button type="primary" @click="handleImport" v-if="permission.additionalPlan_batchSend">批量发送 </el-button>
</template> </template>
<template #menu="{ row }"> <template #menu="{ row }">
<el-button type="text" @click="approvalRow(row)" v-if="row.approvalStatus == 0" <el-button type="text" @click="approvalRow(row)" v-if="row.approvalStatus == 0 && permission.additionalPlan_approval"
>一级审批</el-button >一级审批</el-button
> >
<el-button type="text" @click="approvalSecondRow(row)" v-if="row.approvalStatus == 1" <el-button type="text" @click="approvalSecondRow(row)" v-if="row.approvalStatus == 1 && permission.additionalPlan_approvalSecond"
>二级审批</el-button >二级审批</el-button
> >
<el-button type="text" @click="delRow(row)" v-if="row.approvalStatus == 0">删除</el-button> <el-button type="text" @click="delRow(row)" v-if="row.approvalStatus == 0 && permission.additionalPlan_del">删除</el-button>
</template> </template>
<template #menu-right> </template> <template #menu-right> </template>
</avue-crud> </avue-crud>
@ -64,6 +65,7 @@
<script> <script>
import addEditDialog from './addEditDialog.vue'; import addEditDialog from './addEditDialog.vue';
import { getList, batchSend, approve, del } from '@/api/storeManagement/additionalPlan'; import { getList, batchSend, approve, del } from '@/api/storeManagement/additionalPlan';
import { mapGetters } from 'vuex';
export default { export default {
components: { components: {
addEditDialog, addEditDialog,
@ -133,7 +135,7 @@ export default {
label: 'MES采购单号', label: 'MES采购单号',
prop: 'boCode', prop: 'boCode',
search: true, search: true,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -144,7 +146,7 @@ export default {
label: '物料编号', label: '物料编号',
prop: 'goodsCode', prop: 'goodsCode',
search: true, search: true,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 180, width: 180,
@ -154,7 +156,7 @@ export default {
label: '物料名称', label: '物料名称',
prop: 'goodsName', prop: 'goodsName',
search: false, search: false,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -163,7 +165,7 @@ export default {
label: '型号/牌号', label: '型号/牌号',
prop: 'mtltmrk', prop: 'mtltmrk',
search: false, search: false,
sortable: true, // sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -172,7 +174,7 @@ export default {
label: '物料规格', label: '物料规格',
prop: 'specifications', prop: 'specifications',
search: false, search: false,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -181,7 +183,7 @@ export default {
label: '采购数量', label: '采购数量',
prop: 'buyQty', prop: 'buyQty',
search: false, search: false,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -190,7 +192,7 @@ export default {
label: '单位', label: '单位',
prop: 'unitName', prop: 'unitName',
search: false, search: false,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -199,7 +201,7 @@ export default {
label: '生产标识', label: '生产标识',
prop: 'grade', prop: 'grade',
search: false, search: false,
sortable: true, // sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -208,7 +210,7 @@ export default {
label: '需求日期', label: '需求日期',
prop: 'needDate', prop: 'needDate',
search: true, search: true,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -224,7 +226,7 @@ export default {
label: '备注', label: '备注',
prop: 'memo', prop: 'memo',
search: false, search: false,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -233,7 +235,7 @@ export default {
label: '采购部门', label: '采购部门',
prop: 'purchaseDeptName', prop: 'purchaseDeptName',
search: false, search: false,
sortable: true, // sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -242,7 +244,7 @@ export default {
label: '需求部门', label: '需求部门',
prop: 'requireDeptName', prop: 'requireDeptName',
search: true, search: true,
sortable: true, // sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -253,7 +255,7 @@ export default {
prop: 'batchStatus', prop: 'batchStatus',
type: 'select', type: 'select',
search: true, search: true,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -273,7 +275,7 @@ export default {
prop: 'pickStatus', prop: 'pickStatus',
type: 'select', type: 'select',
search: true, search: true,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -289,7 +291,7 @@ export default {
label: '申报人', label: '申报人',
prop: 'declareManName', prop: 'declareManName',
search: true, search: true,
sortable: true, // sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -299,7 +301,7 @@ export default {
label: '采购员', label: '采购员',
prop: 'buyManName', prop: 'buyManName',
search: true, search: true,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -308,7 +310,7 @@ export default {
label: '申报日期', label: '申报日期',
prop: 'declareDate', prop: 'declareDate',
search: true, search: true,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
format: 'YYYY-MM-DD', format: 'YYYY-MM-DD',
@ -324,7 +326,7 @@ export default {
label: '采购周期(天)', label: '采购周期(天)',
prop: 'buyCycle', prop: 'buyCycle',
search: true, search: true,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -334,7 +336,7 @@ export default {
label: '技术条件', label: '技术条件',
prop: 'skillCon', prop: 'skillCon',
search: false, search: false,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -343,7 +345,7 @@ export default {
label: '计划区域', label: '计划区域',
prop: 'planArea', prop: 'planArea',
search: false, search: false,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -353,7 +355,7 @@ export default {
prop: 'approvalStatus', prop: 'approvalStatus',
type: 'select', type: 'select',
search: false, search: false,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -381,7 +383,21 @@ export default {
rowItem: {}, rowItem: {},
}; };
}, },
computed: {
...mapGetters(['permission']),
},
methods: { methods: {
//
sortChange({ prop, order }) {
this.query.descs = undefined;
this.query.ascs = undefined;
let orderByFieldKey = order === 'descending' ? 'descs' : 'ascs';
this.query[orderByFieldKey] = !prop
? undefined
: prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
//
this.onLoad(this.page, this.query);
},
// //
handleAdd() { handleAdd() {
this.isOpen = true; this.isOpen = true;

@ -2,7 +2,9 @@
<div> <div>
<avue-crud :option="option" :table-loading="loading" :data="data" v-model="form" v-model:page="page" ref="crud" <avue-crud :option="option" :table-loading="loading" :data="data" v-model="form" v-model:page="page" ref="crud"
@row-del="rowDel" @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange" @row-del="rowDel" @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
@current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad"> @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange"
@on-load="onLoad"
@sort-change="sortChange">
<template #menu-left> <template #menu-left>
<!-- <el-button type="danger" icon="el-icon-delete" @click="handleDelete"> <!-- <el-button type="danger" icon="el-icon-delete" @click="handleDelete">
</el-button> --> </el-button> -->
@ -12,7 +14,7 @@
</el-button> --> </el-button> -->
</template> </template>
<template #menu="scope"> <template #menu="scope">
<el-button type="text" @click="detailsFn(scope.row)">详情</el-button> <el-button type="text" @click="detailsFn(scope.row)" v-if="permission.purchase_detail">详情</el-button>
<!-- <el-button type="text" @click="render(scope.row)">提交</el-button> --> <!-- <el-button type="text" @click="render(scope.row)">提交</el-button> -->
</template> </template>
</avue-crud> </avue-crud>
@ -24,6 +26,7 @@
<script> <script>
import { getTrackList } from "@/api/storeManagement/additionalPlan" import { getTrackList } from "@/api/storeManagement/additionalPlan"
import detailsDialog from "./details.vue" import detailsDialog from "./details.vue"
import { mapGetters } from 'vuex';
export default { export default {
components: { detailsDialog }, components: { detailsDialog },
data() { data() {
@ -86,7 +89,7 @@ export default {
label: "采购单号", label: "采购单号",
prop: "boCode", prop: "boCode",
search: true, search: true,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -97,7 +100,7 @@ export default {
prop: "goodsCode", prop: "goodsCode",
// bind: "coGoods.goodsCode", // bind: "coGoods.goodsCode",
search: true, search: true,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -107,7 +110,7 @@ export default {
prop: "goodsName", prop: "goodsName",
// bind: "coGoods.goodsName", // bind: "coGoods.goodsName",
search: true, search: true,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -117,7 +120,7 @@ export default {
prop: "materialModel", prop: "materialModel",
// bind: "coGoods.mtltmrk", // bind: "coGoods.mtltmrk",
search: false, search: false,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -127,7 +130,7 @@ export default {
prop: "specifications", prop: "specifications",
// bind: "coGoods.specifications", // bind: "coGoods.specifications",
search: false, search: false,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -136,7 +139,7 @@ export default {
label: "采购数量", label: "采购数量",
prop: "buyQty", prop: "buyQty",
search: false, search: false,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -146,7 +149,7 @@ export default {
prop: "unitName", prop: "unitName",
// bind: "coGoods.unitName", // bind: "coGoods.unitName",
search: false, search: false,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -156,7 +159,7 @@ export default {
prop: "batchStatus", prop: "batchStatus",
type: "select", type: "select",
search: true, search: true,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -175,7 +178,7 @@ export default {
prop: "pickStatus", prop: "pickStatus",
type: "select", type: "select",
search: true, search: true,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -190,7 +193,7 @@ export default {
label: "生产标识", label: "生产标识",
prop: "grade", prop: "grade",
search: false, search: false,
sortable: true, // sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -199,7 +202,7 @@ export default {
label: "需求日期", label: "需求日期",
prop: "needDate", prop: "needDate",
search: true, search: true,
sortable: true, sortable: 'custom',
filter: true, filter: true,
format: "YYYY-MM-DD", format: "YYYY-MM-DD",
valueFormat: "YYYY-MM-DD", valueFormat: "YYYY-MM-DD",
@ -214,7 +217,7 @@ export default {
label: "备注", label: "备注",
prop: "memo", prop: "memo",
search: false, search: false,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -224,7 +227,7 @@ export default {
prop: "declareManName", prop: "declareManName",
// bind: "declareMan.userName", // bind: "declareMan.userName",
search: true, search: true,
sortable: true, // sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -234,7 +237,7 @@ export default {
prop: 'purchaseDeptName', prop: 'purchaseDeptName',
// bind: 'buyDept.deptName', // bind: 'buyDept.deptName',
search: false, search: false,
sortable: true, // sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -244,7 +247,7 @@ export default {
prop: 'requireDeptName', prop: 'requireDeptName',
// bind: 'needDept.deptName', // bind: 'needDept.deptName',
search: true, search: true,
sortable: true, // sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -256,7 +259,7 @@ export default {
// prop: "buyManName", // prop: "buyManName",
// // bind: "buyMan.userName", // // bind: "buyMan.userName",
// search: true, // search: true,
// sortable: true, // sortable: 'custom',
// filter: true, // filter: true,
// span: 12, // span: 12,
// width: 140, // width: 140,
@ -265,7 +268,7 @@ export default {
label: "申报日期", label: "申报日期",
prop: "declareDate", prop: "declareDate",
search: true, search: true,
sortable: true, sortable: 'custom',
filter: true, filter: true,
format: "YYYY-MM-DD", format: "YYYY-MM-DD",
valueFormat: "YYYY-MM-DD", valueFormat: "YYYY-MM-DD",
@ -280,7 +283,7 @@ export default {
label: "采购周期(天)", label: "采购周期(天)",
prop: "buyCycle", prop: "buyCycle",
search: true, search: true,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -290,7 +293,7 @@ export default {
label: "技术条件", label: "技术条件",
prop: "skillCon", prop: "skillCon",
search: false, search: false,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -299,7 +302,7 @@ export default {
label: "计划区域", label: "计划区域",
prop: "planArea", prop: "planArea",
search: false, search: false,
sortable: true, sortable: 'custom',
filter: true, filter: true,
span: 12, span: 12,
width: 140, width: 140,
@ -315,7 +318,21 @@ export default {
}, },
}; };
}, },
computed: {
...mapGetters(['permission']),
},
methods: { methods: {
//
sortChange({ prop, order }) {
this.query.descs = undefined;
this.query.ascs = undefined;
let orderByFieldKey = order === 'descending' ? 'descs' : 'ascs';
this.query[orderByFieldKey] = !prop
? undefined
: prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
//
this.onLoad(this.page, this.query);
},
// //
detailsFn(row) { detailsFn(row) {
this.detailsShow = true this.detailsShow = true

@ -16,16 +16,17 @@
@size-change="sizeChange" @size-change="sizeChange"
@refresh-change="refreshChange" @refresh-change="refreshChange"
@on-load="onLoad" @on-load="onLoad"
@sort-change="sortChange"
> >
<template #menu-left> <template #menu-left>
<el-button type="primary" @click="handleAdd">新增</el-button> <el-button type="primary" @click="handleAdd" v-if="permission.workwearPlan_add">新增</el-button>
<el-button type="primary" @click="sendCheck">发送审批</el-button> <el-button type="primary" @click="sendCheck" v-if="permission.workwearPlan_submitApproval">发送审批</el-button>
</template> </template>
<template #menu="scope"> <template #menu="scope">
<el-button type="text" @click="editRow(scope.row)" v-if="scope.row.mafStatus==0||scope.row.approvalStatus==2">修改</el-button> <el-button type="text" @click="editRow(scope.row)" v-if="(scope.row.mafStatus==0||scope.row.approvalStatus==2) && permission.workwearPlan_edit">修改</el-button>
<el-button type="text" @click="checkRow(scope.row)" v-if="scope.row.mafStatus==1&&scope.row.approvalStatus==0">审批</el-button> <el-button type="text" @click="checkRow(scope.row)" v-if="(scope.row.mafStatus==1&&scope.row.approvalStatus==0) && permission.workwearPlan_approval">审批</el-button>
<el-button type="text" @click="deleteRow(scope.row)" v-if="scope.row.mafStatus==0">删除</el-button> <el-button type="text" @click="deleteRow(scope.row)" v-if="scope.row.mafStatus==0 && permission.workwearPlan_del">删除</el-button>
</template> </template>
</avue-crud> </avue-crud>
@ -170,6 +171,7 @@ import {
removeByIds, removeByIds,
renderApproval, renderApproval,
} from '@/api/storeManagement/workwearPlan'; } from '@/api/storeManagement/workwearPlan';
import { mapGetters } from 'vuex';
export default { export default {
components:{checkDialog}, components:{checkDialog},
data() { data() {
@ -250,7 +252,7 @@ export default {
label: '工装号', label: '工装号',
prop: 'moCode', prop: 'moCode',
search: true, search: true,
sortable: true, sortable: 'custom',
overHidden: true, overHidden: true,
width: 120, width: 120,
}, },
@ -258,7 +260,7 @@ export default {
label: '工装名称', label: '工装名称',
prop: 'moName', prop: 'moName',
search: true, search: true,
sortable: true, sortable: 'custom',
overHidden: true, overHidden: true,
width: 120, width: 120,
}, },
@ -266,7 +268,7 @@ export default {
label: '计划类型', label: '计划类型',
prop: 'planType', prop: 'planType',
search: true, search: true,
sortable: true, sortable: 'custom',
overHidden: true, overHidden: true,
width: 120, width: 120,
}, },
@ -274,7 +276,7 @@ export default {
label: '数量', label: '数量',
prop: 'quantity', prop: 'quantity',
search: false, search: false,
sortable: true, sortable: 'custom',
overHidden: true, overHidden: true,
width: 120, width: 120,
}, },
@ -288,7 +290,7 @@ export default {
search: true, search: true,
format: 'YYYY-MM-DD', format: 'YYYY-MM-DD',
valueFormat: 'YYYY-MM-DD', valueFormat: 'YYYY-MM-DD',
sortable: true, sortable: 'custom',
overHidden: true, overHidden: true,
width: 120, width: 120,
}, },
@ -296,7 +298,7 @@ export default {
label: '生产标识', label: '生产标识',
prop: 'quaLevel', prop: 'quaLevel',
search: true, search: true,
sortable: true, sortable: 'custom',
overHidden: true, overHidden: true,
width: 120, width: 120,
}, },
@ -304,7 +306,7 @@ export default {
label: '紧急状态', label: '紧急状态',
prop: 'urgentType', prop: 'urgentType',
search: false, search: false,
sortable: true, sortable: 'custom',
overHidden: true, overHidden: true,
type: 'select', type: 'select',
dicData: [ dicData: [
@ -317,7 +319,7 @@ export default {
label: '状态', label: '状态',
prop: 'mafStatus', prop: 'mafStatus',
search: true, search: true,
sortable: true, sortable: 'custom',
overHidden: true, overHidden: true,
width: 120, width: 120,
searchOrder: 20, searchOrder: 20,
@ -349,7 +351,7 @@ export default {
label: '审批状态', label: '审批状态',
prop: 'approvalStatus', prop: 'approvalStatus',
search: true, search: true,
sortable: true, sortable: 'custom',
overHidden: true, overHidden: true,
width: 120, width: 120,
searchOrder: 20, searchOrder: 20,
@ -374,7 +376,7 @@ export default {
label: '保管员', label: '保管员',
prop: 'keeperName', prop: 'keeperName',
search: false, search: false,
sortable: true, sortable: 'custom',
overHidden: true, overHidden: true,
width: 120, width: 120,
}, },
@ -382,7 +384,7 @@ export default {
label: '备注', label: '备注',
prop: 'memo', prop: 'memo',
search: false, search: false,
sortable: true, sortable: 'custom',
overHidden: true, overHidden: true,
width: 120, width: 120,
}, },
@ -390,7 +392,7 @@ export default {
label: '创建时间', label: '创建时间',
prop: 'createTime', prop: 'createTime',
search: false, search: false,
sortable: true, // sortable: 'custom',
overHidden: true, overHidden: true,
width: 160, width: 160,
}, },
@ -400,12 +402,26 @@ export default {
checkShow:false, checkShow:false,
}; };
}, },
computed: {
...mapGetters(['permission']),
},
mounted() { mounted() {
this.getProdIdentList(); this.getProdIdentList();
this.getUser(); this.getUser();
this.getGoods(); this.getGoods();
}, },
methods: { methods: {
//
sortChange({ prop, order }) {
this.query.descs = undefined;
this.query.ascs = undefined;
let orderByFieldKey = order === 'descending' ? 'descs' : 'ascs';
this.query[orderByFieldKey] = !prop
? undefined
: prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
//
this.onLoad(this.page, this.query);
},
getProdIdentList() { getProdIdentList() {
getProdIdentList().then(res => { getProdIdentList().then(res => {
this.quaLevelList = res.data.data; this.quaLevelList = res.data.data;

Loading…
Cancel
Save