生产追溯维护和电子档案页面开发

dev-scheduling
zhangdi 2 weeks ago
parent a88d4cc6e7
commit fc58bc46df
  1. 245
      src/views/costManagement/costConfiguration.vue
  2. 299
      src/views/costManagement/subjectFeeMaintenance.vue
  3. 182
      src/views/costStatistics/index.vue
  4. 28
      src/views/zhgd-work/eleFilesEdit/index.vue
  5. 89
      src/views/zhgd-work/eleFilesEdit/sintering.vue
  6. 124
      src/views/zhgd-work/eleFilesEdit/tableProcessing.vue
  7. 217
      src/views/zhgd-work/retrospectDefend/components/oneRetrospectDefend.vue
  8. 74
      src/views/zhgd-work/retrospectDefend/components/twoRetrospectDefend.vue
  9. 29
      src/views/zhgd-work/retrospectDefend/index.vue

@ -30,11 +30,11 @@
@on-load="onLoad" @on-load="onLoad"
> >
<template #menu-left> <template #menu-left>
<el-button icon="el-icon-plus" type="primary" @click="handleAdd">新增</el-button> <el-button type="primary" @click="handleAdd">新增</el-button>
<el-button icon="el-icon-delete" type="danger" @click="handleDelete" <el-button type="danger" @click="handleDelete">删除</el-button>
>删除</el-button </template>
> <template #menu-right>
<el-button icon="el-icon-upload" type="success" @click="handleImport">导入</el-button> <el-button type="primary" @click="handleImport">导入</el-button>
</template> </template>
<template #menu="scope"> <template #menu="scope">
<el-button <el-button
@ -53,9 +53,7 @@
</avue-crud> </avue-crud>
<el-dialog :title="title" append-to-body v-model="showDialog" width="60%"> <el-dialog :title="title" append-to-body v-model="showDialog" width="60%">
<div style="margin-bottom: 10px"> <div style="margin-bottom: 10px">
<el-button type="primary" icon="el-icon-plus" @click="insertEvent()" <el-button type="primary" icon="el-icon-plus" @click="insertEvent()">插入一行</el-button>
>插入一行</el-button
>
<el-button plain type="danger" @click="remove">删除选择行</el-button> <el-button plain type="danger" @click="remove">删除选择行</el-button>
<el-button type="primary" @click="handleSave">保存</el-button> <el-button type="primary" @click="handleSave">保存</el-button>
</div> </div>
@ -90,9 +88,7 @@
</el-dialog> </el-dialog>
<el-dialog :title="title" append-to-body v-model="showMaterial" width="60%"> <el-dialog :title="title" append-to-body v-model="showMaterial" width="60%">
<div style="margin-bottom: 10px"> <div style="margin-bottom: 10px">
<el-button type="primary" icon="el-icon-plus" @click="insertRow()" <el-button type="primary" icon="el-icon-plus" @click="insertRow()">插入一行</el-button>
>插入一行</el-button
>
<el-button plain type="danger" @click="removeRow">删除选择行</el-button> <el-button plain type="danger" @click="removeRow">删除选择行</el-button>
<el-button type="primary" @click="handleSave">保存</el-button> <el-button type="primary" @click="handleSave">保存</el-button>
</div> </div>
@ -100,10 +96,7 @@
<el-table-column type="selection" width="55px"></el-table-column> <el-table-column type="selection" width="55px"></el-table-column>
<el-table-column align="center" label="物料编号" prop="goodsNo"> <el-table-column align="center" label="物料编号" prop="goodsNo">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-select <el-select v-model="row.goodsNo" @change="event => changeGoodsNo(event, $index)">
v-model="row.goodsNo"
@change="(event) => changeGoodsNo(event, $index)"
>
<el-option <el-option
v-for="item in goodsData" v-for="item in goodsData"
:label="item.label" :label="item.label"
@ -113,34 +106,34 @@
</el-select> </el-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column align="center" label="物料名称" prop="goodsName"></el-table-column>
align="center"
label="物料名称"
prop="goodsName"
></el-table-column>
</el-table> </el-table>
</el-dialog> </el-dialog>
<!-- 导入 --> <!-- 导入 -->
<basic-import v-if="isShowImport" title="导入" :isShow="isShowImport" <basic-import
v-if="isShowImport"
title="导入"
:isShow="isShowImport"
templateUrl="/blade-desk/QA/CycleTestItem/download-excel-template" templateUrl="/blade-desk/QA/CycleTestItem/download-excel-template"
templateName="试验项目模板.xls" templateName="试验项目模板.xls"
importUrl="/blade-desk/QA/CycleTestItem/import-excel" importUrl="/blade-desk/QA/CycleTestItem/import-excel"
@closeDialog="closeDialog"></basic-import> @closeDialog="closeDialog"
></basic-import>
</basic-container> </basic-container>
</template> </template>
<script> <script>
import costColumnData from "./js/costColumnData"; import costColumnData from './js/costColumnData';
import basicImport from '@/components/basic-import/main.vue' import basicImport from '@/components/basic-import/main.vue';
export default { export default {
components: { components: {
basicImport, basicImport,
}, },
data() { data() {
return { return {
isShowImport:false, isShowImport: false,
tabPosition: "processMaintenance", tabPosition: 'processMaintenance',
loading: false, loading: false,
showDialog: false, showDialog: false,
showMaterial: false, showMaterial: false,
@ -150,20 +143,20 @@ export default {
materialData: [], materialData: [],
data: [], data: [],
goodsData: [ goodsData: [
{ label: "0399-222-21", value: "物料一" }, { label: '0399-222-21', value: '物料一' },
{ label: "0399-222-22", value: "物料二" }, { label: '0399-222-22', value: '物料二' },
{ label: "0399-222-23", value: "物料三" }, { label: '0399-222-23', value: '物料三' },
{ label: "0399-222-24", value: "物料四" }, { label: '0399-222-24', value: '物料四' },
], ],
form: {}, form: {},
title: "新增", title: '新增',
page: { page: {
pageSize: 10, pageSize: 10,
currentPage: 1, currentPage: 1,
total: 0, total: 0,
}, },
option: { option: {
height: "auto", height: 'auto',
calcHeight: 32, calcHeight: 32,
tip: false, tip: false,
simplePage: true, simplePage: true,
@ -179,14 +172,14 @@ export default {
delBtn: false, delBtn: false,
addBtn: false, addBtn: false,
editBtn: false, editBtn: false,
editBtnText: "修改", editBtnText: '修改',
viewBtnIcon: " ", viewBtnIcon: ' ',
delBtnIcon: " ", delBtnIcon: ' ',
editBtnIcon: " ", editBtnIcon: ' ',
viewBtnText: "详情", viewBtnText: '详情',
labelWidth: 120, labelWidth: 120,
searchLabelWidth: 120, searchLabelWidth: 120,
menuWidth: 220, menuWidth: 100,
dialogWidth: 1200, dialogWidth: 1200,
dialogClickModal: false, dialogClickModal: false,
searchEnter: true, searchEnter: true,
@ -198,18 +191,18 @@ export default {
columnSort: true, columnSort: true,
index: false, index: false,
showOverflowTooltip: true, showOverflowTooltip: true,
searchLabelPosition: "left", searchLabelPosition: 'left',
searchLabelPosition: "left", searchLabelPosition: 'left',
searchGutter: 24, searchGutter: 24,
searchSpan: 6, searchSpan: 6,
menuAlign: "left", menuAlign: 'left',
gridBtn: false, gridBtn: false,
searchMenuPosition: "right", searchMenuPosition: 'right',
addBtnIcon: " ", addBtnIcon: ' ',
viewBtnIcon: " ", viewBtnIcon: ' ',
delBtnIcon: " ", delBtnIcon: ' ',
editBtnIcon: " ", editBtnIcon: ' ',
align: "center", align: 'center',
column: [], column: [],
}, },
@ -221,51 +214,51 @@ export default {
methods: { methods: {
// //
handleImport() { handleImport() {
this.isShowImport = true this.isShowImport = true;
}, },
selectionChange(val) { selectionChange(val) {
this.selectionList = val; this.selectionList = val;
}, },
changeGoodsNo(event, index) { changeGoodsNo(event, index) {
let tmp = this.goodsData.find((item) => item.label == event); let tmp = this.goodsData.find(item => item.label == event);
this.materialData[index].goodsName = tmp.value; this.materialData[index].goodsName = tmp.value;
}, },
// //
handleDelete() { handleDelete() {
if (this.selectionList.length == 0) { if (this.selectionList.length == 0) {
this.$message.error("请先选择数据"); this.$message.error('请先选择数据');
return; return;
} }
this.$confirm("确定将选择数据删除?", { this.$confirm('确定将选择数据删除?', {
confirmButtonText: "确定", confirmButtonText: '确定',
cancelButtonText: "取消", cancelButtonText: '取消',
type: "warning", type: 'warning',
}).then((res) => {}); }).then(res => {});
}, },
deleteRow(row) { deleteRow(row) {
this.$confirm("确定将选择数据删除?", { this.$confirm('确定将选择数据删除?', {
confirmButtonText: "确定", confirmButtonText: '确定',
cancelButtonText: "取消", cancelButtonText: '取消',
type: "warning", type: 'warning',
}).then((res) => {}); }).then(res => {});
}, },
tabPositionChange(val) { tabPositionChange(val) {
if (val == "materialMaintenance") { if (val == 'materialMaintenance') {
this.option.menu = false; this.option.menu = false;
this.data = [ this.data = [
{ {
id: 1, id: 1,
goodsNo: "0399-222-21", goodsNo: '0399-222-21',
goodsName: "物料一", goodsName: '物料一',
createUser: "李四", createUser: '李四',
createTime: "2023-08-20 11:23:25", createTime: '2023-08-20 11:23:25',
}, },
{ {
id: 2, id: 2,
goodsNo: "0399-222-22", goodsNo: '0399-222-22',
goodsName: "物料二", goodsName: '物料二',
createUser: "李四", createUser: '李四',
createTime: "2023-08-20 11:23:25", createTime: '2023-08-20 11:23:25',
}, },
]; ];
this.page.total = this.data.length; this.page.total = this.data.length;
@ -274,30 +267,30 @@ export default {
this.data = [ this.data = [
{ {
id: 1, id: 1,
workCenter: "镀金大批量作业中心", workCenter: '镀金大批量作业中心',
processVal: ["1", "2", "3"], processVal: ['1', '2', '3'],
processTitle: "镀金、滚金、化学镀镍", processTitle: '镀金、滚金、化学镀镍',
formulaMode: "1", formulaMode: '1',
createUser: "张三", createUser: '张三',
createTime: "2023-11-20 11:23:25", createTime: '2023-11-20 11:23:25',
}, },
{ {
id: 2, id: 2,
workCenter: "镀金大批量作业中心", workCenter: '镀金大批量作业中心',
processVal: ["1", "3"], processVal: ['1', '3'],
processTitle: "镀金、化学镀镍", processTitle: '镀金、化学镀镍',
formulaMode: "2", formulaMode: '2',
createUser: "张三", createUser: '张三',
createTime: "2023-11-20 11:23:25", createTime: '2023-11-20 11:23:25',
}, },
{ {
id: 3, id: 3,
workCenter: "镀金大批量作业中心", workCenter: '镀金大批量作业中心',
processVal: ["1", "2"], processVal: ['1', '2'],
processTitle: "镀金、滚金", processTitle: '镀金、滚金',
formulaMode: "1", formulaMode: '1',
createUser: "张三", createUser: '张三',
createTime: "2023-11-20 11:23:25", createTime: '2023-11-20 11:23:25',
}, },
]; ];
this.page.total = this.data.length; this.page.total = this.data.length;
@ -305,16 +298,16 @@ export default {
this.option.column = costColumnData[this.tabPosition]; this.option.column = costColumnData[this.tabPosition];
}, },
maintainProcess(row) { maintainProcess(row) {
this.title = "维护"; this.title = '维护';
this.processData = [{ ...row }]; this.processData = [{ ...row }];
this.showDialog = true; this.showDialog = true;
}, },
handleAdd() { handleAdd() {
if (this.tabPosition == "materialMaintenance") { if (this.tabPosition == 'materialMaintenance') {
this.materialData = []; this.materialData = [];
this.showMaterial = true; this.showMaterial = true;
} else { } else {
this.title = "新增"; this.title = '新增';
this.processData = []; this.processData = [];
this.showDialog = true; this.showDialog = true;
} }
@ -337,42 +330,42 @@ export default {
}, },
// //
removeRow() { removeRow() {
let arr = this.materialData.filter((item) => item._select); let arr = this.materialData.filter(item => item._select);
if (arr.length != 0) { if (arr.length != 0) {
this.$confirm("确定将选择数据删除?", { this.$confirm('确定将选择数据删除?', {
confirmButtonText: "确定", confirmButtonText: '确定',
cancelButtonText: "取消", cancelButtonText: '取消',
type: "warning", type: 'warning',
}).then(() => { }).then(() => {
if (this.rowId) { if (this.rowId) {
let deleteData = this.materialData.filter((item) => item._select); let deleteData = this.materialData.filter(item => item._select);
this.deleteProcessArr = deleteData.filter((item) => item.tidId); this.deleteProcessArr = deleteData.filter(item => item.tidId);
} }
let deleteArr = this.materialData.filter((item) => !item._select); let deleteArr = this.materialData.filter(item => !item._select);
this.materialData = deleteArr; this.materialData = deleteArr;
}); });
} else { } else {
this.$message.error("请至少选择一条数据进行操作!"); this.$message.error('请至少选择一条数据进行操作!');
} }
}, },
// //
remove() { remove() {
let arr = this.processData.filter((item) => item._select); let arr = this.processData.filter(item => item._select);
if (arr.length != 0) { if (arr.length != 0) {
this.$confirm("确定将选择数据删除?", { this.$confirm('确定将选择数据删除?', {
confirmButtonText: "确定", confirmButtonText: '确定',
cancelButtonText: "取消", cancelButtonText: '取消',
type: "warning", type: 'warning',
}).then(() => { }).then(() => {
if (this.rowId) { if (this.rowId) {
let deleteData = this.processData.filter((item) => item._select); let deleteData = this.processData.filter(item => item._select);
this.deleteProcessArr = deleteData.filter((item) => item.tidId); this.deleteProcessArr = deleteData.filter(item => item.tidId);
} }
let deleteArr = this.processData.filter((item) => !item._select); let deleteArr = this.processData.filter(item => !item._select);
this.processData = deleteArr; this.processData = deleteArr;
}); });
} else { } else {
this.$message.error("请至少选择一条数据进行操作!"); this.$message.error('请至少选择一条数据进行操作!');
} }
}, },
handleSave() { handleSave() {
@ -383,30 +376,30 @@ export default {
this.data = [ this.data = [
{ {
id: 1, id: 1,
workCenter: "镀金大批量作业中心", workCenter: '镀金大批量作业中心',
processVal: ["1", "2", "3"], processVal: ['1', '2', '3'],
processTitle: "镀金、滚金、化学镀镍", processTitle: '镀金、滚金、化学镀镍',
formulaMode: "1", formulaMode: '1',
createUser: "张三", createUser: '张三',
createTime: "2023-11-20 11:23:25", createTime: '2023-11-20 11:23:25',
}, },
{ {
id: 1, id: 1,
workCenter: "镀金大批量作业中心", workCenter: '镀金大批量作业中心',
processVal: ["1", "3"], processVal: ['1', '3'],
processTitle: "镀金、化学镀镍", processTitle: '镀金、化学镀镍',
formulaMode: "2", formulaMode: '2',
createUser: "张三", createUser: '张三',
createTime: "2023-11-20 11:23:25", createTime: '2023-11-20 11:23:25',
}, },
{ {
id: 1, id: 1,
workCenter: "镀金大批量作业中心", workCenter: '镀金大批量作业中心',
processVal: ["1", "2"], processVal: ['1', '2'],
processTitle: "镀金、滚金", processTitle: '镀金、滚金',
formulaMode: "1", formulaMode: '1',
createUser: "张三", createUser: '张三',
createTime: "2023-11-20 11:23:25", createTime: '2023-11-20 11:23:25',
}, },
]; ];
this.page.total = this.data.length; this.page.total = this.data.length;

@ -1,15 +1,31 @@
<template> <template>
<basic-container> <basic-container>
<!-- 科目费用维护 --> <!-- 科目费用维护 -->
<avue-crud :option="option" :table-loading="loading" :data="data" v-model="form" v-model:page="page" ref="crud" <avue-crud
@row-update="rowUpdate" @row-save="rowSave" @search-change="searchChange" @search-reset="searchReset" :option="option"
@selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange" :table-loading="loading"
@refresh-change="refreshChange" @on-load="onLoad"> :data="data"
v-model="form"
v-model:page="page"
ref="crud"
@row-update="rowUpdate"
@row-save="rowSave"
@search-change="searchChange"
@search-reset="searchReset"
@selection-change="selectionChange"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad"
>
<template #menu-left> <template #menu-left>
<el-button type="primary" icon="el-icon-plus" @click="handleAdd">新增</el-button> <el-button type="primary" @click="handleAdd">新增</el-button>
<el-button type="danger" icon="el-icon-delete" @click="handleDelete">删除</el-button> <el-button type="danger" @click="handleDelete">删除</el-button>
<el-button type="success" icon="el-icon-upload" @click="handleImport">导入</el-button>
<el-button type="warning" icon="el-icon-s-finance" @click="handleCostCalculation">成本计算</el-button> <el-button type="primary" @click="handleCostCalculation">成本计算</el-button>
</template>
<template #menu-right>
<el-button type="primary" @click="handleImport">导入</el-button>
</template> </template>
<template #menu="scope"> <template #menu="scope">
@ -17,7 +33,13 @@
<el-button type="text" @click="maintainRow(scope.row)">维护</el-button> <el-button type="text" @click="maintainRow(scope.row)">维护</el-button>
</template> </template>
</avue-crud> </avue-crud>
<el-dialog append-to-body title="新增" :model-value="showAdd" @update:model-value="val => showAdd = val"> <el-dialog
append-to-body
title="新增"
:model-value="showAdd"
@update:model-value="val => (showAdd = val)"
width="25%"
>
<el-form ref="addForm" :model="addForm" :rules="addRules"> <el-form ref="addForm" :model="addForm" :rules="addRules">
<el-form-item label="费用科目" prop="expenseAccount"> <el-form-item label="费用科目" prop="expenseAccount">
<el-input v-model="addForm.expenseAccount" placeholder="请输入费用科目"></el-input> <el-input v-model="addForm.expenseAccount" placeholder="请输入费用科目"></el-input>
@ -31,11 +53,22 @@
</template> </template>
</el-dialog> </el-dialog>
<!-- 维护弹窗 --> <!-- 维护弹窗 -->
<el-dialog append-to-body :title="title" :model-value="showMaintain" @update:model-value="val => showMaintain = val"> <el-dialog
append-to-body
:title="title"
:model-value="showMaintain"
@update:model-value="val => (showMaintain = val)"
>
<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 v-model="maintainForm.month" type="month" placeholder="选择月份" format="YYYY年MM月" <el-date-picker
value-format="YYYY-MM" :disabled="title == '详情'"></el-date-picker> v-model="maintainForm.month"
type="month"
placeholder="选择月份"
format="YYYY年MM月"
value-format="YYYY-MM"
:disabled="title == '详情'"
></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="费用分配方式" prop="distributeType"> <el-form-item label="费用分配方式" prop="distributeType">
<el-radio-group v-model="maintainForm.distributeType" :disabled="title == '详情'"> <el-radio-group v-model="maintainForm.distributeType" :disabled="title == '详情'">
@ -44,8 +77,12 @@
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="总费用金额" prop="totalCost"> <el-form-item label="总费用金额" prop="totalCost">
<el-input-number v-model="maintainForm.totalCost" controls-position="right" :min="1" <el-input-number
:disabled="title == '详情'"></el-input-number> v-model="maintainForm.totalCost"
controls-position="right"
:min="1"
:disabled="title == '详情'"
></el-input-number>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table :data="tableData"> <el-table :data="tableData">
@ -53,14 +90,23 @@
<el-table-column label="作业中心" prop="workCenter"></el-table-column> <el-table-column label="作业中心" prop="workCenter"></el-table-column>
<el-table-column label="比例" prop="ratio"> <el-table-column label="比例" prop="ratio">
<template #default="scope"> <template #default="scope">
<el-input-number v-model="scope.row.ratio" controls-position="right" :min="1" :max="100" <el-input-number
:disabled="title == '详情'"></el-input-number> v-model="scope.row.ratio"
controls-position="right"
:min="1"
:max="100"
:disabled="title == '详情'"
></el-input-number>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="费用金额(元)" prop="money"> <el-table-column label="费用金额(元)" prop="money">
<template #default="scope"> <template #default="scope">
<el-input-number v-model="scope.row.money" controls-position="right" :min="1" <el-input-number
:disabled="title == '详情'"></el-input-number> v-model="scope.row.money"
controls-position="right"
:min="1"
:disabled="title == '详情'"
></el-input-number>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -72,12 +118,24 @@
</template> </template>
</el-dialog> </el-dialog>
<!-- 导入 --> <!-- 导入 -->
<basic-import v-if="isShowImport" title="导入" :isShow="isShowImport" <basic-import
templateUrl="/blade-desk/QA/CycleTestItem/download-excel-template" templateName="试验项目模板.xls" v-if="isShowImport"
importUrl="/blade-desk/QA/CycleTestItem/import-excel" @closeDialog="closeDialog"></basic-import> title="导入"
:isShow="isShowImport"
templateUrl="/blade-desk/QA/CycleTestItem/download-excel-template"
templateName="试验项目模板.xls"
importUrl="/blade-desk/QA/CycleTestItem/import-excel"
@closeDialog="closeDialog"
></basic-import>
<!-- 成本计算月份选择弹窗 --> <!-- 成本计算月份选择弹窗 -->
<el-dialog append-to-body title="成本计算" :model-value="showCostCalculation" @update:model-value="val => showCostCalculation = val" width="400px"> <el-dialog
append-to-body
title="成本计算"
:model-value="showCostCalculation"
@update:model-value="val => (showCostCalculation = val)"
width="400px"
>
<el-form ref="costForm" :model="costForm" :rules="costRules"> <el-form ref="costForm" :model="costForm" :rules="costRules">
<el-form-item label="选择月份" prop="month"> <el-form-item label="选择月份" prop="month">
<el-date-picker <el-date-picker
@ -101,7 +159,7 @@
</template> </template>
<script> <script>
import basicImport from '@/components/basic-import/main.vue' import basicImport from '@/components/basic-import/main.vue';
export default { export default {
components: { components: {
basicImport, basicImport,
@ -111,29 +169,29 @@ export default {
isShowImport: false, isShowImport: false,
data: [], data: [],
form: {}, form: {},
distributeType: "", distributeType: '',
loading: false, loading: false,
showAdd: false, showAdd: false,
title: "详情", title: '详情',
tableData: [], tableData: [],
addForm: {}, addForm: {},
selectionList: [], selectionList: [],
showMaintain: false, showMaintain: false,
showCostCalculation: false, showCostCalculation: false,
costForm: { costForm: {
month: '' month: '',
}, },
costRules: { costRules: {
month: [{ required: true, message: "请选择月份", trigger: "change" }] month: [{ required: true, message: '请选择月份', trigger: 'change' }],
}, },
calculatedMonths: ['2023-10', '2023-11'], // calculatedMonths: ['2023-10', '2023-11'], //
addRules: { addRules: {
expenseAccount: [{ required: true, message: "请输入费用科目", trigger: "blur" }], expenseAccount: [{ required: true, message: '请输入费用科目', trigger: 'blur' }],
}, },
maintainForm: {}, maintainForm: {},
maintainRules: { maintainRules: {
month: [{ required: true, message: "请选择月份", trigger: "change" }], month: [{ required: true, message: '请选择月份', trigger: 'change' }],
totalCost: [{ required: true, message: "请输入总费用金额", trigger: "blur" }], totalCost: [{ required: true, message: '请输入总费用金额', trigger: 'blur' }],
}, },
page: { page: {
pageSize: 10, pageSize: 10,
@ -141,12 +199,12 @@ export default {
total: 0, total: 0,
}, },
option: { option: {
height: "auto", height: 'auto',
calcHeight: 32, calcHeight: 32,
tip: false, tip: false,
simplePage: true, simplePage: true,
searchShow: true, searchShow: true,
searchMenuSpan: 6, searchMenuSpan: 18,
searchIcon: true, searchIcon: true,
searchIndex: 3, searchIndex: 3,
tree: false, tree: false,
@ -157,14 +215,13 @@ export default {
delBtn: false, delBtn: false,
addBtn: false, addBtn: false,
editBtn: false, editBtn: false,
editBtnText: "修改", editBtnText: '修改',
viewBtnIcon: " ", viewBtnIcon: ' ',
delBtnIcon: " ", delBtnIcon: ' ',
editBtnIcon: " ", editBtnIcon: ' ',
viewBtnText: "详情", viewBtnText: '详情',
labelWidth: 120, labelWidth: 120,
searchLabelWidth: 120, menuWidth: 100,
menuWidth: 220,
dialogWidth: 1200, dialogWidth: 1200,
dialogClickModal: false, dialogClickModal: false,
searchEnter: true, searchEnter: true,
@ -176,92 +233,92 @@ export default {
columnSort: true, columnSort: true,
index: false, index: false,
showOverflowTooltip: true, showOverflowTooltip: true,
searchLabelPosition: "left", searchLabelPosition: 'left',
searchLabelPosition: "left", searchLabelPosition: 'left',
searchGutter: 24, searchGutter: 24,
searchSpan: 6, searchSpan: 6,
menuAlign: "left", menuAlign: 'left',
gridBtn: false, gridBtn: false,
searchMenuPosition: "right", searchMenuPosition: 'right',
addBtnIcon: " ", addBtnIcon: ' ',
viewBtnIcon: " ", viewBtnIcon: ' ',
delBtnIcon: " ", delBtnIcon: ' ',
editBtnIcon: " ", editBtnIcon: ' ',
align: "center", align: 'center',
column: [ column: [
{ {
label: "费用科目", label: '费用科目',
prop: "expenseAccount", prop: 'expenseAccount',
search: true, search: true,
sortable: true, sortable: true,
overHidden: true, overHidden: true,
rules: [ rules: [
{ {
required: true, required: true,
message: "请输入费用科目", message: '请输入费用科目',
trigger: "blur", trigger: 'blur',
}, },
], ],
}, },
{ {
label: "分配方式", label: '分配方式',
prop: "distributeType", prop: 'distributeType',
type: "select", type: 'select',
search: false, search: false,
sortable: true, sortable: true,
overHidden: true, overHidden: true,
rules: [ rules: [
{ {
required: true, required: true,
message: "请输入分配方式", message: '请输入分配方式',
trigger: "blur", trigger: 'blur',
}, },
], ],
dicData: [ dicData: [
{ label: "按金额", value: "1" }, { label: '按金额', value: '1' },
{ label: "按比例", value: "2" }, { label: '按比例', value: '2' },
], ],
}, },
{ {
label: "费用总金额(元)", label: '费用总金额(元)',
prop: "totalCost", prop: 'totalCost',
search: false, search: false,
sortable: true, sortable: true,
overHidden: true, overHidden: true,
rules: [ rules: [
{ {
required: true, required: true,
message: "请输入费用总金额(元)", message: '请输入费用总金额(元)',
trigger: "blur", trigger: 'blur',
}, },
], ],
}, },
{ {
label: "操作人", label: '操作人',
prop: "createUser", prop: 'createUser',
search: false, search: false,
sortable: true, sortable: true,
overHidden: true, overHidden: true,
rules: [ rules: [
{ {
required: true, required: true,
message: "请输入操作人", message: '请输入操作人',
trigger: "blur", trigger: 'blur',
}, },
], ],
}, },
{ {
label: "更新时间", label: '更新时间',
prop: "updateTime", prop: 'updateTime',
search: false, search: false,
sortable: true, sortable: true,
overHidden: true, overHidden: true,
rules: [ rules: [
{ {
required: true, required: true,
message: "请输入更新时间", message: '请输入更新时间',
trigger: "blur", trigger: 'blur',
}, },
], ],
}, },
@ -269,11 +326,11 @@ export default {
}, },
}; };
}, },
mounted() { }, mounted() {},
methods: { methods: {
// //
handleImport() { handleImport() {
this.isShowImport = true this.isShowImport = true;
}, },
// //
selectionChange(val) { selectionChange(val) {
@ -282,14 +339,14 @@ export default {
// //
handleDelete() { handleDelete() {
if (this.selectionList.length == 0) { if (this.selectionList.length == 0) {
this.$message.error("请先选择数据"); this.$message.error('请先选择数据');
return; return;
} }
this.$confirm("确定将选择数据删除?", { this.$confirm('确定将选择数据删除?', {
confirmButtonText: "确定", confirmButtonText: '确定',
cancelButtonText: "取消", cancelButtonText: '取消',
type: "warning", type: 'warning',
}).then((res) => { }); }).then(res => {});
}, },
// //
handleAdd() { handleAdd() {
@ -297,7 +354,7 @@ export default {
}, },
// //
submitAdd() { submitAdd() {
this.$refs.addForm.validate((valid) => { this.$refs.addForm.validate(valid => {
if (valid) { if (valid) {
this.showAdd = false; this.showAdd = false;
} }
@ -305,7 +362,7 @@ export default {
}, },
// //
submitMaintain() { submitMaintain() {
this.$refs.maintainForm.validate((valid) => { this.$refs.maintainForm.validate(valid => {
if (valid) { if (valid) {
this.showMaintain = false; this.showMaintain = false;
} }
@ -313,14 +370,14 @@ export default {
}, },
// //
viewRow(row) { viewRow(row) {
this.title = "详情"; this.title = '详情';
this.maintainForm = { ...row, month: row.month || this.getCurrentMonth() }; this.maintainForm = { ...row, month: row.month || this.getCurrentMonth() };
this.tableData = row.tableData; this.tableData = row.tableData;
this.showMaintain = true; this.showMaintain = true;
}, },
// //
maintainRow(row) { maintainRow(row) {
this.title = "维护"; this.title = '维护';
this.maintainForm = { ...row, month: row.month || this.getCurrentMonth() }; this.maintainForm = { ...row, month: row.month || this.getCurrentMonth() };
this.tableData = row.tableData; this.tableData = row.tableData;
this.showMaintain = true; this.showMaintain = true;
@ -339,26 +396,28 @@ export default {
}, },
// //
submitCostCalculation() { submitCostCalculation() {
this.$refs.costForm.validate((valid) => { this.$refs.costForm.validate(valid => {
if (valid) { if (valid) {
const selectedMonth = this.costForm.month; const selectedMonth = this.costForm.month;
const year = selectedMonth.split('-')[0]; const year = selectedMonth.split('-')[0];
const month = selectedMonth.split('-')[1]; const month = selectedMonth.split('-')[1];
// //
if (this.calculatedMonths.includes(selectedMonth)) { if (this.calculatedMonths.includes(selectedMonth)) {
this.$confirm(`${year}${month}月已计算成本,是否重新计算?`, { this.$confirm(`${year}${month}月已计算成本,是否重新计算?`, {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning',
}).then(() => { })
this.performCostCalculation(selectedMonth); .then(() => {
}).catch(() => { this.performCostCalculation(selectedMonth);
this.$message({ })
type: 'info', .catch(() => {
message: '已取消成本计算' this.$message({
}); type: 'info',
}); message: '已取消成本计算',
});
});
} else { } else {
this.performCostCalculation(selectedMonth); this.performCostCalculation(selectedMonth);
} }
@ -370,19 +429,19 @@ export default {
// API // API
this.$message({ this.$message({
type: 'success', type: 'success',
message: `${month}成本计算中,请稍候...` message: `${month}成本计算中,请稍候...`,
}); });
setTimeout(() => { setTimeout(() => {
// //
if (!this.calculatedMonths.includes(month)) { if (!this.calculatedMonths.includes(month)) {
this.calculatedMonths.push(month); this.calculatedMonths.push(month);
} }
this.showCostCalculation = false; this.showCostCalculation = false;
this.$message({ this.$message({
type: 'success', type: 'success',
message: `${month}成本计算完成` message: `${month}成本计算完成`,
}); });
}, 2000); }, 2000);
}, },
@ -390,41 +449,41 @@ export default {
this.data = [ this.data = [
{ {
id: 1, id: 1,
expenseAccount: "房租补贴", expenseAccount: '房租补贴',
distributeType: "1", distributeType: '1',
totalCost: 1000, totalCost: 1000,
createUser: "张三", createUser: '张三',
updateTime: "2016-09-21 08:50:08", updateTime: '2016-09-21 08:50:08',
tableData: [ tableData: [
{ workCenter: "作业中心一", ratio: 40, money: 400 }, { workCenter: '作业中心一', ratio: 40, money: 400 },
{ workCenter: "作业中心二", ratio: 30, money: 300 }, { workCenter: '作业中心二', ratio: 30, money: 300 },
{ workCenter: "作业中心三", ratio: 30, money: 300 }, { workCenter: '作业中心三', ratio: 30, money: 300 },
], ],
}, },
{ {
id: 2, id: 2,
expenseAccount: "电话费", expenseAccount: '电话费',
distributeType: "2", distributeType: '2',
totalCost: 1000, totalCost: 1000,
createUser: "张三", createUser: '张三',
updateTime: "2016-09-21 08:50:08", updateTime: '2016-09-21 08:50:08',
tableData: [ tableData: [
{ workCenter: "作业中心一", ratio: 20, money: 200 }, { workCenter: '作业中心一', ratio: 20, money: 200 },
{ workCenter: "作业中心二", ratio: 50, money: 500 }, { workCenter: '作业中心二', ratio: 50, money: 500 },
{ workCenter: "作业中心三", ratio: 30, money: 300 }, { workCenter: '作业中心三', ratio: 30, money: 300 },
], ],
}, },
{ {
id: 3, id: 3,
expenseAccount: "差旅费", expenseAccount: '差旅费',
distributeType: "1", distributeType: '1',
totalCost: 1000, totalCost: 1000,
createUser: "张三", createUser: '张三',
updateTime: "2016-09-21 08:50:08", updateTime: '2016-09-21 08:50:08',
tableData: [ tableData: [
{ workCenter: "作业中心一", ratio: 15, money: 150 }, { workCenter: '作业中心一', ratio: 15, money: 150 },
{ workCenter: "作业中心二", ratio: 35, money: 350 }, { workCenter: '作业中心二', ratio: 35, money: 350 },
{ workCenter: "作业中心三", ratio: 50, money: 500 }, { workCenter: '作业中心三', ratio: 50, money: 500 },
], ],
}, },
]; ];

@ -3,12 +3,7 @@
<!-- 成本统计 --> <!-- 成本统计 -->
<el-form :inline="true" :model="searchForm"> <el-form :inline="true" :model="searchForm">
<el-form-item label="月份"> <el-form-item label="月份">
<el-date-picker <el-date-picker v-model="searchForm.monthDate" type="month" placeholder="选择月" required>
v-model="searchForm.monthDate"
type="month"
placeholder="选择月"
required
>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@ -40,7 +35,9 @@
<el-button type="primary" @click="openCostCalcDialog">成本计算</el-button> <el-button type="primary" @click="openCostCalcDialog">成本计算</el-button>
<!-- <el-button type="primary" @click="isLockClick">锁定/解锁</el-button> --> <!-- <el-button type="primary" @click="isLockClick">锁定/解锁</el-button> -->
<el-button type="danger" @click="handleDelete">删除</el-button> <el-button type="danger" @click="handleDelete">删除</el-button>
<el-button type="success">导出</el-button> </template>
<template #menu-right>
<el-button type="primary">导出</el-button>
</template> </template>
<!-- <template #wcCode="{ row }">{{ row.saCostConfig.bsWorkCenter.wcCode }}</template> <!-- <template #wcCode="{ row }">{{ row.saCostConfig.bsWorkCenter.wcCode }}</template>
@ -64,20 +61,23 @@
@size-change="sizeChange" @size-change="sizeChange"
@refresh-change="refreshChange" @refresh-change="refreshChange"
@on-load="onLoad" @on-load="onLoad"
style="margin-top: 46px; margin-left: 12px" style="margin-top: 30px; margin-left: 12px"
></avue-crud> ></avue-crud>
</el-col> </el-col>
</el-row> </el-row>
<el-dialog <el-dialog
:modelValue="openShow" :modelValue="openShow"
title="提示" title="提示"
width="400px" width="400px"
:close-on-click-modal="false" :close-on-click-modal="false"
class="cost-confirm-dialog" class="cost-confirm-dialog"
> >
<div class="dialog-content"> <div class="dialog-content">
<i class="el-icon-warning"></i> <i class="el-icon-warning"></i>
<p><span class="month-highlight">{{ selectMonth }}</span>月已计算成本是否重新计算</p> <p>
<span class="month-highlight">{{ selectMonth }}</span
>月已计算成本是否重新计算
</p>
</div> </div>
<template #footer> <template #footer>
<div class="dialog-footer"> <div class="dialog-footer">
@ -105,10 +105,9 @@ export default {
total: 0, total: 0,
}, },
option: { option: {
height: "auto", height: 'auto',
calcHeight: 32, calcHeight: 32,
tip: false, tip: false,
size: "medium",
simplePage: true, simplePage: true,
searchShow: true, searchShow: true,
searchMenuSpan: 6, searchMenuSpan: 6,
@ -122,8 +121,8 @@ export default {
delBtn: false, delBtn: false,
addBtn: false, addBtn: false,
editBtn: false, editBtn: false,
editBtnText: "修改", editBtnText: '修改',
viewBtnText: "详情", viewBtnText: '详情',
labelWidth: 120, labelWidth: 120,
searchLabelWidth: 120, searchLabelWidth: 120,
menu: false, menu: false,
@ -139,88 +138,87 @@ export default {
columnSort: true, columnSort: true,
index: false, index: false,
showOverflowTooltip: true, showOverflowTooltip: true,
searchLabelPosition: "left", searchLabelPosition: 'left',
searchLabelPosition: "left",
searchGutter: 24, searchGutter: 24,
searchSpan: 6, searchSpan: 6,
menuAlign: "left", menuAlign: 'left',
gridBtn: false, gridBtn: false,
searchMenuPosition: "right", searchMenuPosition: 'right',
addBtnIcon: " ", addBtnIcon: ' ',
viewBtnIcon: " ", viewBtnIcon: ' ',
delBtnIcon: " ", delBtnIcon: ' ',
editBtnIcon: " ", editBtnIcon: ' ',
align: "center", align: 'center',
column: [ column: [
{ {
label: "作业中心", label: '作业中心',
prop: "wcName", prop: 'wcName',
search: false, search: false,
sortable: true, sortable: false,
overHidden: true, overHidden: true,
}, },
{ {
label: "月份", label: '月份',
prop: "month", prop: 'month',
search: false, search: false,
sortable: true, sortable: false,
overHidden: true, overHidden: true,
}, },
{ {
label: "制造费用(元)", label: '制造费用(元)',
prop: "drainCosts", prop: 'drainCosts',
search: false, search: false,
sortable: true, sortable: false,
overHidden: true, overHidden: true,
width: 130, width: 100,
}, },
{ {
label: "作业中心材料费用(元)", label: '作业中心材料费用(元)',
prop: "materialCosts", prop: 'materialCosts',
search: false, search: false,
sortable: true, sortable: false,
overHidden: true, overHidden: true,
width: 200, width: 160,
}, },
{ {
label: "辅助人员材料费用(元)", label: '辅助人员材料费用(元)',
prop: "materialCosts1", prop: 'materialCosts1',
search: false, search: false,
width: 200, width: 160,
sortable: true, sortable: false,
overHidden: true, overHidden: true,
}, },
{ {
label: "单位成本(元)", label: '单位成本(元)',
prop: "unitCost", prop: 'unitCost',
search: false, search: false,
sortable: true, sortable: false,
overHidden: true, overHidden: true,
width: 130, width: 120,
}, },
{ {
label: "月度产出(dm²)", label: '月度产出(dm²)',
prop: "monthlyOutput", prop: 'monthlyOutput',
search: false, search: false,
width: 150, width: 120,
sortable: true, sortable: false,
overHidden: true, overHidden: true,
}, },
{ {
label: "月度产出(v)", label: '月度产出(v)',
prop: "volumeOutput2", prop: 'volumeOutput2',
search: false, search: false,
sortable: true, sortable: false,
overHidden: true, overHidden: true,
}, },
], ],
}, },
detailsOption: { detailsOption: {
height: "auto", height: 'auto',
calcHeight: 32, calcHeight: 32,
tip: false, tip: false,
size: "medium", size: 'medium',
simplePage: true, simplePage: true,
searchShow: true, searchShow: true,
searchMenuSpan: 6, searchMenuSpan: 6,
@ -234,8 +232,8 @@ export default {
delBtn: false, delBtn: false,
addBtn: false, addBtn: false,
editBtn: false, editBtn: false,
editBtnText: "修改", editBtnText: '修改',
viewBtnText: "详情", viewBtnText: '详情',
labelWidth: 120, labelWidth: 120,
searchLabelWidth: 120, searchLabelWidth: 120,
menu: false, menu: false,
@ -251,34 +249,34 @@ export default {
columnSort: true, columnSort: true,
index: false, index: false,
showOverflowTooltip: true, showOverflowTooltip: true,
searchLabelPosition: "left", searchLabelPosition: 'left',
searchLabelPosition: "left", searchLabelPosition: 'left',
searchGutter: 24, searchGutter: 24,
searchSpan: 6, searchSpan: 6,
menuAlign: "left", menuAlign: 'left',
gridBtn: false, gridBtn: false,
searchMenuPosition: "right", searchMenuPosition: 'right',
addBtnIcon: " ", addBtnIcon: ' ',
viewBtnIcon: " ", viewBtnIcon: ' ',
delBtnIcon: " ", delBtnIcon: ' ',
editBtnIcon: " ", editBtnIcon: ' ',
align: "center", align: 'center',
menu: false, menu: false,
header: false, header: false,
column: [ column: [
{ {
label: "类型", label: '类型',
prop: "wcCode", prop: 'wcCode',
search: false, search: false,
sortable: true, sortable: false,
overHidden: true, overHidden: true,
}, },
{ {
label: "金额", label: '金额',
prop: "wcCode1", prop: 'wcCode1',
search: false, search: false,
sortable: true, sortable: false,
overHidden: true, overHidden: true,
}, },
], ],
@ -288,50 +286,50 @@ export default {
mounted() {}, mounted() {},
methods: { methods: {
openCostCalcDialog() { openCostCalcDialog() {
this.openShow = true this.openShow = true;
}, },
CloseDialog() { CloseDialog() {
this.openShow = false this.openShow = false;
}, },
handleRecalculate() { handleRecalculate() {
this.$message.success("重新计算成功") this.$message.success('重新计算成功');
this.openShow = false this.openShow = false;
}, },
selectionChange(val) { selectionChange(val) {
this.selectionList = val; this.selectionList = val;
}, },
isLockClick() { isLockClick() {
if (this.selectionList.length == 0) { if (this.selectionList.length == 0) {
this.$message.error("请先选择数据"); this.$message.error('请先选择数据');
return; return;
} }
}, },
handleDelete() { handleDelete() {
if (this.selectionList.length == 0) { if (this.selectionList.length == 0) {
this.$message.error("请先选择数据"); this.$message.error('请先选择数据');
return; return;
} }
this.$confirm("确定将选择数据删除?", { this.$confirm('确定将选择数据删除?', {
confirmButtonText: "确定", confirmButtonText: '确定',
cancelButtonText: "取消", cancelButtonText: '取消',
type: "warning", type: 'warning',
}).then(() => {}); }).then(() => {});
}, },
onLoad() { onLoad() {
this.data = [ this.data = [
{ {
id: 1, id: 1,
wcName: "作业中心1", wcName: '作业中心1',
month: "2025-3", month: '2025-3',
materialCosts: 99, materialCosts: 99,
materialCosts1: 0, materialCosts1: 0,
unitCost: "89", unitCost: '89',
monthlyOutput: 0, monthlyOutput: 0,
volumeOutput: "9", volumeOutput: '9',
drainCosts: "99", drainCosts: '99',
volumeOutput2: "90", volumeOutput2: '90',
wcCode: "类型1", wcCode: '类型1',
wcCode1: "4", wcCode1: '4',
}, },
]; ];
}, },

@ -1,3 +1,27 @@
<template> <template>
<div>电子档案维护</div> <basic-container>
</template> <el-tabs v-model="activeName" class="demo-tabs">
<el-tab-pane label="表处理模块" name="tableProcessing"></el-tab-pane>
<el-tab-pane label="烧结特定模块" name="sintering"></el-tab-pane>
</el-tabs>
<tableProcessing v-if="activeName=='tableProcessing'"></tableProcessing>
<sintering v-if="activeName=='sintering'"></sintering>
</basic-container>
</template>
<script>
import tableProcessing from './tableProcessing.vue';
import sintering from './sintering.vue';
export default {
components: {
tableProcessing,
sintering,
},
data() {
return {
activeName: 'tableProcessing',
};
},
};
</script>
<style lang="scss" scoped>
</style>

@ -0,0 +1,89 @@
<template>
<div>
<el-form ref="form" inline @submit.native.prevent>
<el-row>
<el-col :span="8">
<el-form-item label="流程卡号:" label-width="100px">
<el-input
ref="codeFocus"
v-model="cardNo"
placeholder="请扫描流程卡号"
@keyup.enter.native="codeKeyUp"
style="width: 220px"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item v-limits="'RB250906'" label="设备编码:" prop="ecId">
<!-- <equipment-card v-model="ecId" clearable /> -->
</el-form-item>
</el-col>
<el-form-item>
<el-button
v-limits="'RB251905'"
:disabled="qcProduceRunList.length == 0"
style="margin-top: 4px"
type="primary"
@click="onSubmit"
>保存</el-button
>
</el-form-item>
<el-form-item>
<el-button
v-limits="'RB251907'"
:disabled="!wpId"
style="margin-top: 4px"
type="danger"
@click="deletedFun"
>删除</el-button
>
</el-form-item>
</el-row>
</el-form>
<el-card class="box-card">
<div slot="header" class="clearfix">
<span style="color: rgb(85, 85, 243)">绑定数据</span>
<el-button
v-limits="'RB250906'"
v-if="wpId"
style="float: right; padding: 3px 0"
type="text"
@click="insertEvent"
>新增记录</el-button
>
</div>
</el-card>
</div>
</template>
<script>
export default {
data() {
return {
cardNo: '',
qcProduceRunList: [],
prWorkPlanList: [],
isOpen: false,
itemObj: { procedureSet: {} },
mtnCode: null,
wpId: null,
recOpen: false,
recList: [],
rfpId: null,
dsRbFilePreserveList: [],
ecId: null,
lineType: null,
};
},
methods: {
async codeKeyUp() {
if (this.cardNo) {
// const res = await this.$ajax.get('prWorkPlan/getWorkOrderProcess/' + this.cardNo);
// if (this.$ifAjax(res)) {
// this.prWorkPlanList = res.data;
// this.isOpen = true;
// }
}
},
},
};
</script>

@ -0,0 +1,124 @@
<template>
<div>
<el-form ref="form" inline @submit.native.prevent>
<el-row>
<el-col :span="8">
<el-form-item label="流程卡号:" label-width="100px">
<el-input
ref="codeFocus"
v-model="cardNo"
placeholder="请扫描流程卡号"
@keyup.enter.native="codeKeyUp"
style="width: 220px;"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="模板:" prop="rfpId">
<el-select
v-model="rfpId"
clearable
placeholder="请选择"
@change="rbFilePreserveChange"
style="width: 220px;"
>
<el-option
v-for="item in dsRbFilePreserveList"
:key="item.rfpId"
:label="item.name"
:value="item.rfpId"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="设备编码:" prop="ecId">
<!-- <equipment-card v-model="ecId" clearable /> -->
</el-form-item>
</el-col>
<el-col :span="24">
<el-radio v-model="lineType" :label="2">自动线</el-radio>
<el-radio v-model="lineType" :label="1">上线前</el-radio>
<el-radio v-model="lineType" :label="3">下线后</el-radio>
<el-button
v-limits="'RB251902'"
:disabled="preserveSlotList.length == 0"
style="margin-top: 4px"
type="primary"
@click="onSubmit"
>保存</el-button
>
<el-button
v-limits="'RB251904'"
:disabled="!wpId"
style="margin-top: 4px"
type="danger"
@click="deletedFun"
>删除</el-button
>
</el-col>
<el-col :span="8"> </el-col>
</el-row>
</el-form>
<el-card class="box-card">
<div slot="header" class="clearfix">
<span style="color: rgb(85, 85, 243)">电子档案</span>
</div>
<div class="tableBox"></div>
</el-card>
</div>
</template>
<script>
export default {
data() {
return {
cardNo: '',
preserveSlotList: [],
prWorkPlanList: [],
isOpen: false,
itemObj: {},
mtnCode: null,
wpId: null,
recOpen: false,
recList: [],
rfpId: null,
dsRbFilePreserveList: [],
ecId: null,
lineType: null,
};
},
methods: {
//
async getRbFilePreserve(wpId) {
// const res = await this.$ajax.post(
// 'dsRbFilePreserve/getRbFilePreserveByWpId',
// {
// wpId
// }
// );
// if (this.$ifAjax(res)) {
// this.dsRbFilePreserveList = res.data;
// }
},
//
async codeKeyUp() {
if (this.cardNo) {
// const res = await this.$ajax.get('prWorkPlan/getWorkOrderProcess/' + this.cardNo);
// if (this.$ifAjax(res)) {
// this.prWorkPlanList = res.data;
// this.isOpen = true;
// }
}
},
//
async rbFilePreserveChange() {
// const res = await this.$ajax.get('dsRbFilePreserveSlot/getByRfpId/' + this.rfpId);
// if (this.$ifAjax(res)) {
// this.mtnCode = null;
// const { preserveSlotList } = res.data;
// this.preserveSlotList = preserveSlotList;
// }
},
},
};
</script>

@ -0,0 +1,217 @@
<template>
<div>
<el-form ref="form" inline @submit.native.prevent>
<el-row>
<el-col :span="5">
<el-form-item label="流程卡号:">
<el-input
ref="codeFocus"
v-model="cardNo"
placeholder="请扫描流程卡号"
@keyup.enter.native="codeKeyUp"
/>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="同槽编号:">
<el-input
ref="codeFocus"
v-model="mtnCode"
placeholder="请扫描同槽编号"
@keyup.enter.native="codeKeyUpMtnCode"
/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item style="margin: 0px 20px 0px 20px">
<el-switch v-model="line" active-text="上线前" inactive-text="下线后" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item>
<el-button
:disabled="wpList.length == 0"
style="margin-top: 4px"
type="primary"
@click="onSubmit"
>保存</el-button
>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-table :data="wpList" :export-excel="false" :height="400" border>
<el-table-column type="index" width="50px" align="center" />
<el-table-column label="车间订单号" align="center" prop="poCode" />
<el-table-column label="产品号" align="center" prop="partCode" />
<el-table-column label="批次号" align="center" prop="batchNo" />
<el-table-column label="当前工序" align="center" prop="currentWpTitle" />
<el-table-column align="center" width="100" fixed="right" label="操作">
<template #scope="scope">
<el-button type="text" size="mini" @click="deleteRow(scope.row.currentWpId)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<el-card class="box-card">
<div slot="header" class="clearfix">
<span style="color: rgb(85, 85, 243)">维护电子档案</span>
</div>
<el-form ref="form" :model="formData" :rules="rulesMold" inline>
<el-row>
<el-col :span="6">
<el-form-item label="设备编码:" prop="ecId">
<!-- <equipment-card v-model="formData.ecId" clearable /> -->
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="模板:" prop="rfpId">
<el-select
v-model="formData.rfpId"
clearable
placeholder="请选择"
@change="rbFilePreserveChange"
style="width: 220px"
>
<el-option
v-for="item in dsRbFilePreserveList"
:key="item.rfpId"
:label="item.name"
:value="item.rfpId"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
</div>
</template>
<script>
export default {
data() {
return {
cardNo: '',
mtnCode: '',
dsRbFilePreserveList: [],
preserveSlotList: [],
wpList: [],
line: true,
formData: { ecId: null, rfpId: null },
rulesMold: {
// ecId: [this.$validation.required],
// rfpId: [this.$validation.required],
},
};
},
methods: {
codeKeyUp() {
if (this.cardNo) {
this.commonMethod(this.cardNo);
}
},
commonMethod(item) {
if (item) {
// this.$ajax.get('prMakeRec/loadCurrentWp/' + item).then(res => {
// if (this.$ifAjax(res)) {
// const obj = this.wpList.find(item => {
// return item.currentWpId == res.data.currentWpId;
// });
// if (obj != null) {
// return this.$message.warning('');
// }
// this.dsRbFilePreserveList = [];
// this.wpList.push(res.data);
// this.getRbFilePreserve(res.data.currentWpId);
// }
// });
}
},
codeKeyUpMtnCode() {
if (this.mtnCode) {
// this.$ajax.get('prMacToolUse/loadPrMacToolUseByMtnCode/' + this.mtnCode).then((res) => {
// if (this.$ifAjax(res)) {
// console.log(res);
// const list = res.data;
// for(var i =0;i < list.length; i++){
// this.commonMethod(list[i]);
// }
// }
// });
}
},
//
deleteRow(currentWpId) {
this.wpList.forEach((item, index) => {
if (item.currentWpId === currentWpId) {
this.wpList.splice(index, 1);
}
});
},
//
onSubmit() {
this.$refs.form.validate(valid => {
if (valid) {
const wpIdList = [];
this.wpList.forEach(item => {
wpIdList.push(item.currentWpId);
});
// this.$ajax
// .post('prMakeRec/saveRetrospectDefend', {
// wpIdList,
// ecId: this.formData.ecId,
// rfpId: this.formData.rfpId,
// line: this.line,
// preserveSlotList: this.preserveSlotList,
// })
// .then(res => {
// if (this.$ifAjax(res)) {
// this.$message.success(this.$t('global.saveOk'));
// this.$refs.form.resetFields();
// this.formData = {};
// this.cardNo = '';
// this.wpList = [];
// this.preserveSlotList = [];
// }
// });
}
});
},
},
};
</script>
<style lang="scss" scoped>
.tableBox {
height: 430px;
overflow: auto;
padding-bottom: 30px;
table {
tr {
page-break-inside: avoid;
}
td {
width: 168px;
height: 30px;
border: 1px solid #000;
background: transparent;
color: #000;
font-size: 14px;
text-align: center;
// padding: 0;
// margin: 0;
// /deep/ .el-input__inner {
// text-align: center;
// height: 26px !important;
// width: 80% !important;
// }
}
}
}
.box-card {
margin-top: 10px !important;
}
</style>

@ -0,0 +1,74 @@
<template>
<div>
<el-form ref="form" inline @submit.native.prevent>
<el-row>
<el-col :span="6">
<el-form-item label="流程卡号:">
<el-input
ref="codeFocus"
v-model="cardNo"
placeholder="请扫描流程卡号"
@keyup.enter.native="codeKeyUp"
/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item style="margin: 0px 20px 0px 20px">
<el-switch v-model="line" active-text="上线前" inactive-text="下线后" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item>
<el-button
:disabled="preserveSlotList.length == 0"
style="margin-top: 4px"
type="primary"
@click="onSubmit"
>保存</el-button
>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-card class="box-card">
<div slot="header" class="clearfix">
<span style="color: rgb(85, 85, 243)">电子档案</span>
</div>
</el-card>
</div>
</template>
<script>
export default {
data() {
return {
cardNo: '',
preserveSlotList: [],
line: true,
obj: {},
};
},
methods: {
codeKeyUp() {
if (this.cardNo) {
// this.$ajax
// .post('prMakeRec/remarryRedeemRetrospectDefend', {
// cardNo: this.cardNo,
// line: this.line
// })
// .then((res) => {
// if (this.$ifAjax(res)) {
// if (
// res.data != null &&
// res.data.dsRbFilePreserveSlotList.length <= 0
// ) {
// return this.$message.warning('');
// }
// this.preserveSlotList = res.data.dsRbFilePreserveSlotList;
// this.obj = res.data;
// }
// });
}
},
},
};
</script>

@ -1,7 +1,34 @@
<template> <template>
<basic-container>生产追溯维护</basic-container> <basic-container>
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
<el-tab-pane label="首次维护" name="oneRetrospectDefend"></el-tab-pane>
<el-tab-pane label="后续维护" name="twoRetrospectDefend"></el-tab-pane>
</el-tabs>
<oneRetrospectDefend v-if="activeName == 'oneRetrospectDefend'"></oneRetrospectDefend>
<twoRetrospectDefend v-if="activeName == 'twoRetrospectDefend'"></twoRetrospectDefend>
</basic-container>
</template> </template>
<script> <script>
import oneRetrospectDefend from './components/oneRetrospectDefend.vue';
import twoRetrospectDefend from './components/twoRetrospectDefend.vue';
export default {
components: {
oneRetrospectDefend,
twoRetrospectDefend,
},
data() {
return {
activeName: 'oneRetrospectDefend',
};
},
methods: {
handleClick() {
if (this.activeName === 'twoRetrospectDefend') {
this.$refs.listRef.loadData();
}
},
},
};
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>

Loading…
Cancel
Save