成本按钮添加及排序添加

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(){
this.form.tableData.push({
_select:false,
batchNo:''
workCenterId:'',
type:'0',
processId:''
})
},
changeWork(val,row){

@ -1,5 +1,5 @@
<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-item label="月份" prop="month">
<el-date-picker
@ -40,7 +40,7 @@
</el-form-item>
</el-form>
<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="rate" align="center">
<template #default="scope">

@ -22,12 +22,13 @@
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad"
@sort-change="sortChange"
>
<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 #menu-right>
<el-button type="primary" @click="handleImport">导入</el-button>
<el-button type="primary" @click="handleImport" v-if="permission.materialMaintenance_import">导入</el-button>
</template>
</avue-crud>
<!-- 导入 -->
@ -46,6 +47,7 @@
<script>
import {getMaterialList,deleteMaterial} from "@/api/costManagement/costConfiguration"
import basicImport from '@/components/basic-import/main.vue';
import { mapGetters } from 'vuex';
export default {
components:{
basicImport
@ -117,29 +119,61 @@ export default {
{
label:"物料编号",
prop:"goodsCode",
sortable: 'custom',
search:true
},
{
label:"物料名称",
prop:"goodsName",
sortable: 'custom',
search:true
},
{
label:"维护人",
sortable: 'custom',
prop:"updateUserName",
},
{
label:"维护时间",
sortable: 'custom',
prop:"updateTime",
}
],
},
}
},
computed: {
...mapGetters(['permission']),
},
created(){
},
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){
this.query = params;
this.page.currentPage = 1

@ -14,13 +14,14 @@
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad"
@sort-change="sortChange"
>
<template #menu-left>
<el-button type="primary" @click="handleAdd">新增</el-button>
<el-button type="danger" @click="handleDelete">删除</el-button>
<el-button type="primary" @click="handleAdd" v-if="permission.processMaintenance_add">新增</el-button>
<el-button type="danger" @click="handleDelete" v-if="permission.processMaintenance_delete">删除</el-button>
</template>
<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 #menu="scope">
<el-button
@ -61,6 +62,7 @@
import {getCostList,deleteProcess} from "@/api/costManagement/costConfiguration"
import batchAddProcess from './batchAddProcess.vue'
import basicImport from '@/components/basic-import/main.vue';
import { mapGetters } from 'vuex';
export default {
components:{
batchAddProcess,
@ -131,14 +133,13 @@ export default {
delBtnIcon: ' ',
editBtnIcon: ' ',
align: 'center',
column: [
{
label: '作业中心',
prop: 'workCenterId',
type: 'select',
search: true,
sortable: true,
sortable: 'custom',
overHidden: true,
dicUrl: '/blade-desk/bsWorkCenter/getList',
props: {
@ -156,6 +157,7 @@ export default {
{
label: '工序',
prop: 'processName',
sortable: 'custom',
search:false
},
{
@ -163,7 +165,7 @@ export default {
prop: 'processId',
type:"select",
search: true,
sortable: true,
sortable: 'custom',
overHidden: true,
hide:true,
remote:true,
@ -187,7 +189,7 @@ export default {
prop: 'type',
type:'select',
search: false,
sortable: true,
sortable: 'custom',
overHidden: true,
rules: [
{
@ -205,7 +207,7 @@ export default {
label: '维护人',
prop: 'updateUserName',
search: false,
sortable: true,
sortable: 'custom',
overHidden: true,
rules: [
{
@ -219,7 +221,7 @@ export default {
label: '维护时间',
prop: 'updateTime',
search: false,
sortable: true,
sortable: 'custom',
overHidden: true,
rules: [
{
@ -233,10 +235,38 @@ export default {
},
}
},
computed: {
...mapGetters(['permission']),
},
created(){
},
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(){
this.isShowImport = true
},

@ -15,10 +15,11 @@
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad"
@sort-change="sortChange"
>
<template #menu-left>
<el-button type="primary" @click="handleAdd">新增</el-button>
<el-button type="danger" @click="handleDelete">删除</el-button>
<el-button type="primary" @click="handleAdd" v-if="permission.subjectFeeMaintenance_add">新增</el-button>
<el-button type="danger" @click="handleDelete" v-if="permission.subjectFeeMaintenance_delete">删除</el-button>
<!-- <el-button type="primary" @click="handleCostCalculation">成本计算</el-button> -->
</template>
@ -27,8 +28,8 @@
</template>
<template #menu="scope">
<el-button type="primary" 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_detail" text @click="viewRow(scope.row)">详情</el-button>
<el-button type="primary" v-if="permission.subjectFeeMaintenance_maintain" text @click="maintenanceRow(scope.row)">维护</el-button>
</template>
</avue-crud>
<el-dialog
@ -170,6 +171,7 @@
import {getList,addSubjectFee,delSubjectFee} from '@/api/costManagement/subjectFeeMaintenance'
import basicImport from '@/components/basic-import/main.vue';
import maintenaceCost from "./components/maintenanceCost.vue"
import { mapGetters } from 'vuex';
export default {
components: {
basicImport,
@ -269,7 +271,7 @@ export default {
label: '费用科目',
prop: 'subjectName',
search: true,
sortable: true,
sortable: 'custom',
overHidden: true,
rules: [
{
@ -283,7 +285,7 @@ export default {
{
label:"费用时间",
prop: 'month',
sortable: true,
sortable: 'custom',
minWidth:100
},
{
@ -292,7 +294,7 @@ export default {
type: 'select',
search: false,
minWidth:100,
sortable: true,
sortable: 'custom',
overHidden: true,
rules: [
{
@ -310,7 +312,7 @@ export default {
label: '费用总金额(元)',
prop: 'totalFee',
search: false,
sortable: true,
sortable: 'custom',
overHidden: true,
minWidth:100,
rules: [
@ -326,7 +328,7 @@ export default {
prop: 'updateUserName',
minWidth:100,
search: false,
sortable: true,
sortable: 'custom',
overHidden: true,
rules: [
{
@ -341,7 +343,7 @@ export default {
prop: 'updateTime',
minWidth:100,
search: false,
sortable: true,
sortable: 'custom',
overHidden: true,
rules: [
{
@ -355,8 +357,36 @@ export default {
},
};
},
computed: {
...mapGetters(['permission']),
},
mounted() {},
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){
console.log('val---------------------',val)
if(val == 1){

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

Loading…
Cancel
Save