成本按钮添加及排序添加

dev-scheduling
jinna 1 month ago
parent 09d3887d4b
commit d8d43e4134
  1. 4
      src/views/costManagement/components/batchAddProcess.vue
  2. 4
      src/views/costManagement/components/maintenanceCost.vue
  3. 38
      src/views/costManagement/components/materialMaintenance.vue
  4. 48
      src/views/costManagement/components/processMaintenance.vue
  5. 50
      src/views/costManagement/subjectFeeMaintenance.vue
  6. 72
      src/views/costStatistics/index.vue

@ -186,7 +186,9 @@ export default {
addTable(){ addTable(){
this.form.tableData.push({ this.form.tableData.push({
_select:false, _select:false,
batchNo:'' workCenterId:'',
type:'0',
processId:''
}) })
}, },
changeWork(val,row){ changeWork(val,row){

@ -1,5 +1,5 @@
<template> <template>
<el-dialog :title="title" append-to-body :modelValue="openShow" width="70%" @close="closeDialog()"> <el-dialog :title="title" append-to-body :modelValue="openShow" width="70%" @close="closeDialog()" fullscreen>
<el-form :inline="true" :model="maintainForm" ref="maintainForm" :rules="maintainRules"> <el-form :inline="true" :model="maintainForm" ref="maintainForm" :rules="maintainRules">
<el-form-item label="月份" prop="month"> <el-form-item label="月份" prop="month">
<el-date-picker <el-date-picker
@ -40,7 +40,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table :data="tableData" v-loading="loading"> <el-table :data="tableData" v-loading="loading">
<el-table-column type="index"></el-table-column> <el-table-column type="index" label="序号" width="80" align="center"></el-table-column>
<el-table-column label="作业中心" prop="workCenterName" align="center"></el-table-column> <el-table-column label="作业中心" prop="workCenterName" align="center"></el-table-column>
<el-table-column label="比例" prop="rate" align="center"> <el-table-column label="比例" prop="rate" align="center">
<template #default="scope"> <template #default="scope">

@ -22,12 +22,13 @@
@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="danger" @click="handleDelete">删除</el-button> <el-button type="danger" @click="handleDelete" v-if="permission.materialMaintenance_delete">删除</el-button>
</template> </template>
<template #menu-right> <template #menu-right>
<el-button type="primary" @click="handleImport">导入</el-button> <el-button type="primary" @click="handleImport" v-if="permission.materialMaintenance_import">导入</el-button>
</template> </template>
</avue-crud> </avue-crud>
<!-- 导入 --> <!-- 导入 -->
@ -46,6 +47,7 @@
<script> <script>
import {getMaterialList,deleteMaterial} from "@/api/costManagement/costConfiguration" import {getMaterialList,deleteMaterial} from "@/api/costManagement/costConfiguration"
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:{
basicImport basicImport
@ -117,29 +119,61 @@ export default {
{ {
label:"物料编号", label:"物料编号",
prop:"goodsCode", prop:"goodsCode",
sortable: 'custom',
search:true search:true
}, },
{ {
label:"物料名称", label:"物料名称",
prop:"goodsName", prop:"goodsName",
sortable: 'custom',
search:true search:true
}, },
{ {
label:"维护人", label:"维护人",
sortable: 'custom',
prop:"updateUserName", prop:"updateUserName",
}, },
{ {
label:"维护时间", label:"维护时间",
sortable: 'custom',
prop:"updateTime", prop:"updateTime",
} }
], ],
}, },
} }
}, },
computed: {
...mapGetters(['permission']),
},
created(){ created(){
}, },
methods:{ methods:{
//
sortChange({ prop, order }) {
console.log('prop----------',prop)
console.log('order----------',order)
if (!prop) {
//
this.query.orderByField = undefined;
// this.query.isAsc = undefined;
this.query.asc = undefined;
} else {
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
if(order === 'ascending'){
this.query.ascs = orderByField;
this.query.descs = undefined;
}else{
this.query.descs = orderByField;
this.query.ascs = undefined;
}
// this.query.orderByField = orderByField;
// this.query.isAsc = order === 'ascending' ? true : false;
// this.query.asc = order === 'ascending' ? true : false;
}
// //
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

@ -14,13 +14,14 @@
@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.processMaintenance_add">新增</el-button>
<el-button type="danger" @click="handleDelete">删除</el-button> <el-button type="danger" @click="handleDelete" v-if="permission.processMaintenance_delete">删除</el-button>
</template> </template>
<template #menu-right> <template #menu-right>
<el-button type="primary" @click="handleImport">导入</el-button> <el-button type="primary" @click="handleImport" v-if="permission.processMaintenance_import">导入</el-button>
</template> </template>
<template #menu="scope"> <template #menu="scope">
<el-button <el-button
@ -61,6 +62,7 @@
import {getCostList,deleteProcess} from "@/api/costManagement/costConfiguration" import {getCostList,deleteProcess} from "@/api/costManagement/costConfiguration"
import batchAddProcess from './batchAddProcess.vue' import batchAddProcess from './batchAddProcess.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:{
batchAddProcess, batchAddProcess,
@ -131,14 +133,13 @@ export default {
delBtnIcon: ' ', delBtnIcon: ' ',
editBtnIcon: ' ', editBtnIcon: ' ',
align: 'center', align: 'center',
column: [ column: [
{ {
label: '作业中心', label: '作业中心',
prop: 'workCenterId', prop: 'workCenterId',
type: 'select', type: 'select',
search: true, search: true,
sortable: true, sortable: 'custom',
overHidden: true, overHidden: true,
dicUrl: '/blade-desk/bsWorkCenter/getList', dicUrl: '/blade-desk/bsWorkCenter/getList',
props: { props: {
@ -156,6 +157,7 @@ export default {
{ {
label: '工序', label: '工序',
prop: 'processName', prop: 'processName',
sortable: 'custom',
search:false search:false
}, },
{ {
@ -163,7 +165,7 @@ export default {
prop: 'processId', prop: 'processId',
type:"select", type:"select",
search: true, search: true,
sortable: true, sortable: 'custom',
overHidden: true, overHidden: true,
hide:true, hide:true,
remote:true, remote:true,
@ -187,7 +189,7 @@ export default {
prop: 'type', prop: 'type',
type:'select', type:'select',
search: false, search: false,
sortable: true, sortable: 'custom',
overHidden: true, overHidden: true,
rules: [ rules: [
{ {
@ -205,7 +207,7 @@ export default {
label: '维护人', label: '维护人',
prop: 'updateUserName', prop: 'updateUserName',
search: false, search: false,
sortable: true, sortable: 'custom',
overHidden: true, overHidden: true,
rules: [ rules: [
{ {
@ -219,7 +221,7 @@ export default {
label: '维护时间', label: '维护时间',
prop: 'updateTime', prop: 'updateTime',
search: false, search: false,
sortable: true, sortable: 'custom',
overHidden: true, overHidden: true,
rules: [ rules: [
{ {
@ -233,10 +235,38 @@ export default {
}, },
} }
}, },
computed: {
...mapGetters(['permission']),
},
created(){ created(){
}, },
methods:{ methods:{
//
sortChange({ prop, order }) {
console.log('prop----------',prop)
console.log('order----------',order)
if (!prop) {
//
this.query.orderByField = undefined;
// this.query.isAsc = undefined;
this.query.asc = undefined;
} else {
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
if(order === 'ascending'){
this.query.ascs = orderByField == 'WORK_CENTER_ID' ? 'WORK_CENTER_CODE' : orderByField;
this.query.descs = undefined;
}else{
this.query.descs = orderByField;
this.query.ascs = undefined;
}
// this.query.orderByField = orderByField;
// this.query.isAsc = order === 'ascending' ? true : false;
// this.query.asc = order === 'ascending' ? true : false;
}
// //
this.onLoad(this.page, this.query);
},
handleImport(){ handleImport(){
this.isShowImport = true this.isShowImport = true
}, },

@ -15,10 +15,11 @@
@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.subjectFeeMaintenance_add">新增</el-button>
<el-button type="danger" @click="handleDelete">删除</el-button> <el-button type="danger" @click="handleDelete" v-if="permission.subjectFeeMaintenance_delete">删除</el-button>
<!-- <el-button type="primary" @click="handleCostCalculation">成本计算</el-button> --> <!-- <el-button type="primary" @click="handleCostCalculation">成本计算</el-button> -->
</template> </template>
@ -27,8 +28,8 @@
</template> </template>
<template #menu="scope"> <template #menu="scope">
<el-button type="primary" text @click="viewRow(scope.row)">详情</el-button> <el-button type="primary" v-if="permission.subjectFeeMaintenance_detail" text @click="viewRow(scope.row)">详情</el-button>
<el-button type="primary" text @click="maintenanceRow(scope.row)">维护</el-button> <el-button type="primary" v-if="permission.subjectFeeMaintenance_maintain" text @click="maintenanceRow(scope.row)">维护</el-button>
</template> </template>
</avue-crud> </avue-crud>
<el-dialog <el-dialog
@ -170,6 +171,7 @@
import {getList,addSubjectFee,delSubjectFee} from '@/api/costManagement/subjectFeeMaintenance' import {getList,addSubjectFee,delSubjectFee} from '@/api/costManagement/subjectFeeMaintenance'
import basicImport from '@/components/basic-import/main.vue'; import basicImport from '@/components/basic-import/main.vue';
import maintenaceCost from "./components/maintenanceCost.vue" import maintenaceCost from "./components/maintenanceCost.vue"
import { mapGetters } from 'vuex';
export default { export default {
components: { components: {
basicImport, basicImport,
@ -269,7 +271,7 @@ export default {
label: '费用科目', label: '费用科目',
prop: 'subjectName', prop: 'subjectName',
search: true, search: true,
sortable: true, sortable: 'custom',
overHidden: true, overHidden: true,
rules: [ rules: [
{ {
@ -283,7 +285,7 @@ export default {
{ {
label:"费用时间", label:"费用时间",
prop: 'month', prop: 'month',
sortable: true, sortable: 'custom',
minWidth:100 minWidth:100
}, },
{ {
@ -292,7 +294,7 @@ export default {
type: 'select', type: 'select',
search: false, search: false,
minWidth:100, minWidth:100,
sortable: true, sortable: 'custom',
overHidden: true, overHidden: true,
rules: [ rules: [
{ {
@ -310,7 +312,7 @@ export default {
label: '费用总金额(元)', label: '费用总金额(元)',
prop: 'totalFee', prop: 'totalFee',
search: false, search: false,
sortable: true, sortable: 'custom',
overHidden: true, overHidden: true,
minWidth:100, minWidth:100,
rules: [ rules: [
@ -326,7 +328,7 @@ export default {
prop: 'updateUserName', prop: 'updateUserName',
minWidth:100, minWidth:100,
search: false, search: false,
sortable: true, sortable: 'custom',
overHidden: true, overHidden: true,
rules: [ rules: [
{ {
@ -341,7 +343,7 @@ export default {
prop: 'updateTime', prop: 'updateTime',
minWidth:100, minWidth:100,
search: false, search: false,
sortable: true, sortable: 'custom',
overHidden: true, overHidden: true,
rules: [ rules: [
{ {
@ -355,8 +357,36 @@ export default {
}, },
}; };
}, },
computed: {
...mapGetters(['permission']),
},
mounted() {}, mounted() {},
methods: { methods: {
//
sortChange({ prop, order }) {
console.log('prop----------',prop)
console.log('order----------',order)
if (!prop) {
//
this.query.orderByField = undefined;
// this.query.isAsc = undefined;
this.query.asc = undefined;
} else {
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
if(order === 'ascending'){
this.query.ascs = orderByField;
this.query.descs = undefined;
}else{
this.query.descs = orderByField;
this.query.ascs = undefined;
}
// this.query.orderByField = orderByField;
// this.query.isAsc = order === 'ascending' ? true : false;
// this.query.asc = order === 'ascending' ? true : false;
}
// //
this.onLoad(this.page, this.query);
},
changeType(val){ changeType(val){
console.log('val---------------------',val) console.log('val---------------------',val)
if(val == 1){ if(val == 1){

@ -20,13 +20,14 @@
@on-load="onLoad" @on-load="onLoad"
@cell-click="cellClick" @cell-click="cellClick"
:cell-class-name="tableCellClassName" :cell-class-name="tableCellClassName"
@sort-change="sortChange"
> >
<template #menu-left> <template #menu-left>
<el-button type="primary" @click="handleCost">成本计算</el-button> <el-button type="primary" @click="handleCost" v-if="permission.costStatistics_calculate">成本计算</el-button>
<el-button type="danger" @click="handleDelete">删除</el-button> <el-button type="danger" @click="handleDelete" v-if="permission.calculate_delete">删除</el-button>
</template> </template>
<template #menu-right> <template #menu-right>
<el-button type="primary" @click="handleExport">导出</el-button> <el-button type="primary" @click="handleExport" v-if="permission.calculate_export">导出</el-button>
</template> </template>
</avue-crud> </avue-crud>
</div> </div>
@ -75,6 +76,7 @@
<script> <script>
import {getList,deleteTable,verifyTable,calculateTable,exportData,getDetail,exportMaterial,exportWorkCenterMaterial,exportAuxiliaryPersonMaterial} from "@/api/costManagement/costStatistics" import {getList,deleteTable,verifyTable,calculateTable,exportData,getDetail,exportMaterial,exportWorkCenterMaterial,exportAuxiliaryPersonMaterial} from "@/api/costManagement/costStatistics"
import { mapGetters } from 'vuex';
export default { export default {
data(){ data(){
return{ return{
@ -82,7 +84,9 @@ export default {
openShow:false, openShow:false,
data:[], data:[],
form:{}, form:{},
query:{}, query:{
ascs:'work_center_code'
},
page:{ page:{
pageSize: 10, pageSize: 10,
currentPage: 1, currentPage: 1,
@ -154,7 +158,9 @@ export default {
prop: 'workCenterName', prop: 'workCenterName',
search: false, search: false,
sortable: false, sortable: false,
sortable: 'custom',
overHidden: true, overHidden: true,
minWidth:150,
}, },
{ {
label: '月份', label: '月份',
@ -162,8 +168,8 @@ export default {
type:"month", type:"month",
format:"YYYY-MM", format:"YYYY-MM",
valueFormat:"YYYY-MM", valueFormat:"YYYY-MM",
sortable: 'custom',
search: true, search: true,
sortable: false,
overHidden: true, overHidden: true,
width:80, width:80,
}, },
@ -172,46 +178,52 @@ export default {
prop: 'productCost', prop: 'productCost',
search: false, search: false,
sortable: false, sortable: false,
sortable: 'custom',
overHidden: true, overHidden: true,
width: 95, width: 110,
}, },
{ {
label: '材料费用(元)', label: '材料费用(元)',
prop: 'materialCost', prop: 'materialCost',
search: false, search: false,
sortable: false, sortable: false,
sortable: 'custom',
overHidden: true, overHidden: true,
width: 95, width: 110,
}, },
{ {
label: '作业中心材料费用(元)', label: '作业中心材料费用(元)',
prop: 'workCenterMaterialCost', prop: 'workCenterMaterialCost',
search: false, search: false,
sortable: false, sortable: false,
sortable: 'custom',
overHidden: true, overHidden: true,
width: 140, width: 160,
}, },
{ {
label: '辅助人员材料费用(元)', label: '辅助人员材料费用(元)',
prop: 'assistantMaterialCost', prop: 'assistantMaterialCost',
search: false, search: false,
width: 140, width: 160,
sortable: false, sortable: false,
sortable: 'custom',
overHidden: true, overHidden: true,
}, },
{ {
label: '单位成本(元)', label: '单位成本(元)',
prop: 'unitCost', prop: 'unitCost',
search: false, search: false,
sortable: 'custom',
sortable: false, sortable: false,
overHidden: true, overHidden: true,
width: 100, width: 115,
}, },
{ {
label: '月度产出(dm²)', label: '月度产出(dm²)',
prop: 'monthOutputArea', prop: 'monthOutputArea',
search: false, search: false,
sortable: false, sortable: false,
sortable: 'custom',
overHidden: true, overHidden: true,
width:120, width:120,
}, },
@ -219,16 +231,19 @@ export default {
label: '月度产出(v)', label: '月度产出(v)',
prop: 'monthOutputVolume', prop: 'monthOutputVolume',
search: false, search: false,
sortable: 'custom',
sortable: false, sortable: false,
width:120, width:120,
overHidden: true, overHidden: true,
}, },
{ {
label:"更新人", label:"更新人",
sortable: 'custom',
prop:"updateUserName", prop:"updateUserName",
width: 80, width: 80,
}, },
{ {
sortable: 'custom',
label:"更新时间", label:"更新时间",
prop:"updateTime", prop:"updateTime",
width:160, width:160,
@ -304,10 +319,38 @@ export default {
} }
} }
}, },
computed: {
...mapGetters(['permission']),
},
created(){ created(){
}, },
methods:{ methods:{
//
sortChange({ prop, order }) {
console.log('prop----------',prop)
console.log('order----------',order)
if (!prop) {
//
this.query.orderByField = undefined;
// this.query.isAsc = undefined;
this.query.asc = undefined;
} else {
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
if(order === 'ascending'){
this.query.ascs = orderByField == 'WORK_CENTER_NAME' ? 'WORK_CENTER_CODE' : orderByField;
this.query.descs = undefined;
}else{
this.query.descs = orderByField == 'WORK_CENTER_NAME' ? 'WORK_CENTER_CODE' : orderByField;
this.query.ascs = undefined;
}
// this.query.orderByField = orderByField;
// this.query.isAsc = order === 'ascending' ? true : false;
// this.query.asc = order === 'ascending' ? true : false;
}
// //
this.onLoad(this.page, this.query);
},
cellClick(row, column, cell, event){ cellClick(row, column, cell, event){
console.log('row----------',row) console.log('row----------',row)
console.log('column----------',column) console.log('column----------',column)
@ -505,13 +548,18 @@ export default {
}) })
}, },
searchChange(params, done){ searchChange(params, done){
this.query = params; this.query = {
...params,
ascs:'work_center_code'
};
this.page.currentPage = 1; this.page.currentPage = 1;
this.onLoad() this.onLoad()
done(); done();
}, },
searchReset(){ searchReset(){
this.query = {} this.query = {
ascs:'work_center_code'
}
this.onLoad() this.onLoad()
}, },
selectionChange(list){ selectionChange(list){

Loading…
Cancel
Save