From 5dbf3ac4647bc2ab26dc3cccee3e853ffe1491e3 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期四, 10 四月 2025 10:49:28 +0800
Subject: [PATCH] 原辅材和成品下单修正
---
src/views/standard/standardLibrary/index.vue | 279 +++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 196 insertions(+), 83 deletions(-)
diff --git a/src/views/standard/standardLibrary/index.vue b/src/views/standard/standardLibrary/index.vue
index f7f807f..d6ea973 100644
--- a/src/views/standard/standardLibrary/index.vue
+++ b/src/views/standard/standardLibrary/index.vue
@@ -8,7 +8,8 @@
</el-col>
<el-col v-if="checkPermi(['standard:standardLibrary:add'])" :span="4"
style="text-align: center; line-height: 30px">
- <el-button circle icon="el-icon-plus" size="mini" type="primary" @click="openAddDia"></el-button>
+ <el-button circle icon="el-icon-plus" size="mini" type="primary" @click="openAddDia"
+ v-if="!auditId"></el-button>
</el-col>
</el-row>
<el-tree ref="tree" v-loading="treeLoad" :allow-drop="allowDrop" :data="list"
@@ -33,19 +34,17 @@
</el-col>
<el-col v-if="
checkPermi(['standard:standardLibrary:delStandardTree']) &&
- (node.data.children === null ||
- node.data.children === undefined)
+ data.level == 7
" :span="2" style="text-align: right">
- <el-button size="mini" type="text" @click.stop="editTreeName(node.data)">
+ <el-button size="mini" type="text" @click.stop="editTreeName(node.data)" v-if="!auditId">
<i class="el-icon-edit"></i>
</el-button>
</el-col>
<el-col v-if="
checkPermi(['standard:standardLibrary:delStandardTree']) &&
- (node.data.children === null ||
- node.data.children === undefined)
+ data.level == 7
" :span="2" style="text-align: right">
- <el-button size="mini" type="text" @click.stop="remove(node, data)">
+ <el-button size="mini" type="text" @click.stop="remove(node, data)" v-if="!auditId">
<i class="el-icon-delete"></i>
</el-button>
</el-col>
@@ -58,8 +57,8 @@
<el-col :span="19" style="font-size: 14px; color: #999"><span>{{
selectTree
}} </span></el-col>
- <el-col :span="5" style="position: absolute;top: -3px;right: -25px;">
- <el-button size="small" type="primary" @click="submitReview">鎻愪氦鍙樻洿</el-button>
+ <el-col :span="5" style="position: absolute;top: -3px;right: -25px;" v-if="!auditId && !standardCkeck">
+ <el-button size="small" type="primary" @click="submitReview" :loading="submitReviewLoad">鎻愪氦鍙樻洿</el-button>
<el-button v-if="isShowCopy" size="small" type="primary" @click="openCopyDia">鎵归噺澶嶅埗</el-button>
</el-col>
</el-row>
@@ -83,8 +82,8 @@
:header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border :fit="true"
:row-class-name="tableRowClassName" class="productTable" header-row-class-name="header-class" height="100%"
row-key="id" stripe style="width: 100%" tooltip-effect="dark" @select="upProductSelect"
- @selection-change="handleSelectionChange" @select-all="handleAll">
- <el-table-column type="selection" width="50"> </el-table-column>
+ @selection-change="handleSelectionChange" @select-all="handleAll" :header-cell-class-name="headerCellStyle">
+ <el-table-column type="selection" width="50" :selectable="selectable"> </el-table-column>
<el-table-column label="浜у搧" min-width="100" prop="sample" show-overflow-tooltip></el-table-column>
<el-table-column label="鍨嬪彿" min-width="100" prop="model" show-overflow-tooltip></el-table-column>
<el-table-column label="妫�楠岄」鍒嗙被" min-width="140" prop="inspectionItemClass"
@@ -92,13 +91,22 @@
<el-table-column label="妫�楠岄」" min-width="140" prop="inspectionItem" show-overflow-tooltip></el-table-column>
<el-table-column label="妫�楠岄」瀛愰」" min-width="140" prop="inspectionItemSubclass"
show-overflow-tooltip></el-table-column>
- <el-table-column label="瀛愬疄楠屽" prop="sonLaboratory" show-overflow-tooltip width="130"></el-table-column>
+ <!-- checkStatusList -->
+ <el-table-column label="瀹℃牳鐘舵��" min-width="140" prop="checkStatus">
+ <template slot-scope="scope">
+ <el-tag :type="checkStatusList.find(m => m.value == scope.row.checkStatus).type"
+ v-if="checkStatusList.find(m => m.value == scope.row.checkStatus) && scope.row.checkStatus !== '' && scope.row.checkStatus !== null"
+ size="small">{{
+ checkStatusList.find(m => m.value == scope.row.checkStatus).label }}</el-tag>
+ </template>
+ </el-table-column>
<el-table-column label="瑕佹眰鍊�" min-width="200px" prop="ask">
<template slot-scope="scope">
<el-input v-if="
checkPermi(['standard:standardLibrary:upStandardProduct'])
" v-model="scope.row.ask" :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="瑕佹眰鍊�" size="small"
- type="textarea" @change="(value) => upStandardProductList(value, scope.row.id)"></el-input>
+ type="textarea" @change="(value) => upStandardProductList(value, scope.row.id)"
+ :disabled="!!auditId || standardCkeck"></el-input>
<span v-else>{{ scope.row.ask }}</span>
</template>
</el-table-column>
@@ -108,11 +116,12 @@
checkPermi(['standard:standardLibrary:upStandardProduct'])
" v-model="scope.row.tell" :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="瑕佹眰鎻忚堪"
size="small" type="textarea" @change="(value) => upStandardProductListOfTell(value, scope.row.id)
- "></el-input>
+ " :disabled="!!auditId || standardCkeck"></el-input>
<span v-else>{{ scope.row.ask }}</span>
</template>
</el-table-column>
- <el-table-column label="璇曢獙鏂规硶" prop="method" width="200">
+ <el-table-column label="瀛愬疄楠屽" prop="sonLaboratory" show-overflow-tooltip width="130"></el-table-column>
+ <!-- <el-table-column label="璇曢獙鏂规硶" prop="method" width="200">
<template slot-scope="scope">
<el-select v-if="
checkPermi(['standard:standardLibrary:upStandardProduct'])
@@ -123,13 +132,13 @@
</el-select>
<span v-else>{{ scope.row.methodS }}</span>
</template>
- </el-table-column>
- <el-table-column label="鏉′欢" min-width="140" prop="radius" show-overflow-tooltip>
+ </el-table-column> -->
+ <el-table-column label="璇曢獙鏉′欢" min-width="140" prop="radius" show-overflow-tooltip>
<template slot-scope="scope">
<el-select v-if="
checkPermi(['standard:standardLibrary:upStandardProduct'])
- " v-model="scope.row.radius" clearable placeholder="鏉′欢" size="small" @change="(value) => upStandardProductListOfRadius(value, scope.row.id)
- ">
+ " v-model="scope.row.radius" clearable placeholder="璇曢獙鏉′欢" size="small" @change="(value) => upStandardProductListOfRadius(value, scope.row.id)
+ " :disabled="!!auditId || standardCkeck" allow-create filterable>
<el-option v-for="(a, i) in scope.row.radiusList &&
JSON.parse(scope.row.radiusList)" :key="i" :label="a" :value="a"></el-option>
</el-select>
@@ -142,7 +151,7 @@
<el-input v-if="
checkPermi(['standard:standardLibrary:upStandardProduct'])
" v-model="scope.row.price" placeholder="鍗曚环(鍏�)" size="small" @change="(value) => upStandardProductListOfPrice(value, scope.row.id)
- ">
+ " :disabled="!!auditId || standardCkeck">
</el-input>
<span v-else>{{ scope.row.price }}</span>
</template>
@@ -152,7 +161,7 @@
<el-input v-if="
checkPermi(['standard:standardLibrary:upStandardProduct'])
" v-model="scope.row.manHour" placeholder="鍗曚环(鍏�)" size="small" @change="(value) => upStandardProductListOfManHour(value, scope.row.id)
- ">
+ " :disabled="!!auditId || standardCkeck">
</el-input>
<span v-else>{{ scope.row.manHour }}</span>
</template>
@@ -160,7 +169,7 @@
<el-table-column label="宸ユ椂鍒嗙粍" prop="manHourGroup" show-overflow-tooltip width="100"></el-table-column>
<el-table-column label="妯℃澘" prop="templateId" width="200">
<template slot-scope="scope">
- <el-select v-model="scope.row.templateId" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct'])
+ <el-select v-model="scope.row.templateId" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct']) || !!auditId || standardCkeck
" filterable size="small" @change="(value) =>
upStandardProductListOfTemplate(value, scope.row.id)
">
@@ -169,7 +178,7 @@
</template>
</el-table-column>
<el-table-column label="鍖洪棿" prop="section" show-overflow-tooltip width="120"></el-table-column>
- <el-table-column label="鎿嶄綔" prop="section" width="160">
+ <el-table-column label="鎿嶄綔" prop="section" width="160" v-if="!auditId && !standardCkeck">
<template slot-scope="scope">
<el-button type="text" @click="sectionUp(scope.row)" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct'])
">鍖洪棿璁剧疆</el-button>
@@ -267,7 +276,7 @@
</el-dialog>
<bindSupplierDensityDialogAsk v-if="bindSupplierDensityDialog"
:bindSupplierDensityDialog="bindSupplierDensityDialog" :currentRow="currentSupplierDensityRow"
- @closeBindPartDialog="closeBindSupplierDensityDialog">
+ @closeBindPartDialog="closeBindSupplierDensityDialog" @refreshList="refreshList">
</bindSupplierDensityDialogAsk>
<BatchCopy v-if="batchCopyDia" ref="BatchCopy" :selectTree1="selectTree" :standardId="standardId"
@refreshList="refreshList"></BatchCopy>
@@ -295,11 +304,14 @@
getStandardTemplate,
selectStandardProductByMethodId,
selectStandardProductEnumByMethodId,
+ productListSubmit,
+ standardProductListRecordRelPage,
+ existCheckingRecord,
} from "@/api/standard/standardLibrary";
import bindSupplierDensityDialogAsk from "./components/bindSupplierDensityDialogAsk.vue";
import BatchCopy from "./components/BatchCopy.vue";
export default {
- name: 'StandardLibrary',
+ // name: 'StandardLibrary',
components: {
BatchCopy,
bindSupplierDensityDialogAsk,
@@ -362,7 +374,6 @@
inspectionItem: null,
inspectionItemSubclass: null,
sonLaboratory: null,
- token: null,
fileList: [],
uploading: false,
isEquipment: true,
@@ -374,9 +385,30 @@
batchCopyDia: false,
VUE_APP_BASE_API: process.env.VUE_APP_BASE_API,
moreSelects: [],
+ checkStatusList: [
+ {
+ value: 0,
+ label: '鏈彁浜�',
+ type: 'danger'
+ },
+ {
+ value: 1,
+ label: '瀹℃牳涓�',
+ type: 'warning'
+ },
+ {
+ value: 2,
+ label: '宸叉洿鏂�',
+ type: 'success'
+ },
+ ],
+ submitReviewLoad: false,
+ auditId: null,//鏍囧噯鍙樻洿璁板綍ID
+ standardCkeck: false,//褰撳墠鏄惁鏈夋鍦ㄥ鏍哥殑鍙樻洿
};
},
mounted() {
+ this.existCheckingRecord()
this.selectEnumByCategoryForFactory();
this.selectStandardTreeList();
this.obtainItemParameterList();
@@ -386,11 +418,27 @@
this.selectEnumByCategoryForsampleType();
this.getStandardTemplate();
this.selectStandardMethodsSec();
- this.token = {
- token: sessionStorage.getItem("token"),
- };
+ if (this.$route.query && this.$route.query.auditId) {
+ let {
+ auditId
+ } = this.$route.query
+ this.auditId = auditId
+ } else {
+ this.auditId = null
+ }
},
methods: {
+ // 鏍囧噯搴撳彉鏇存椂绂佺敤鍏ㄩ��
+ headerCellStyle({ columnIndex }) {
+ if (columnIndex === 0 && (this.auditId || this.standardCkeck)) {
+ return 'disable-select-all';
+ }
+ return '';
+ },
+ // 鏍囧噯搴撳彉鏇存椂绂佺敤澶氶��
+ selectable(row, index) {
+ return !this.auditId && !this.standardCkeck;
+ },
// 鎷栨嫿鏃跺垽瀹氱洰鏍囪妭鐐硅兘鍚﹁鏀剧疆
// 'prev'銆�'inner' 鍜� 'next'锛屽墠銆佹彃鍏ャ�佸悗
allowDrop(draggingNode, dropNode, type) {
@@ -566,7 +614,11 @@
this.selectTree = "";
// 鎷兼帴鏍戣矾寰�
this.selectTree = this.getReversedTreePath(node);
- delStandardTree({ tree: this.selectTree }).then((res) => {
+ delStandardTree({
+ tree: this.selectTree,
+ level: data.level,
+ id: data.value
+ }).then((res) => {
this.$message.success("宸插垹闄�");
let arr = this.selectTree.split(" - ");
this.deleteStandard(this.list, arr[arr.length - 1]);
@@ -723,6 +775,7 @@
}),
}).then((res) => {
this.$message.success("宸蹭繚瀛�");
+ this.refreshList()
});
},
upStandardProductListOfTell(value, index) {
@@ -733,6 +786,7 @@
}),
}).then((res) => {
this.$message.success("宸蹭繚瀛�");
+ this.refreshList()
});
},
// 鏍囧噯搴撻�夋嫨瀹為獙鏂规硶鐨勫洖璋�
@@ -744,6 +798,7 @@
}),
}).then((res) => {
this.$message.success("宸蹭繚瀛�");
+ this.refreshList()
});
},
// 鏍囧噯搴撻�夋嫨鏉′欢鐨勫洖璋�
@@ -755,6 +810,7 @@
}),
}).then((res) => {
this.$message.success("宸蹭繚瀛�");
+ this.refreshList()
});
},
upStandardProductListOfPrice(value, index) {
@@ -765,6 +821,7 @@
}),
}).then((res) => {
this.$message.success("宸蹭繚瀛�");
+ this.refreshList()
});
},
upStandardProductListOfManHour(value, index) {
@@ -775,6 +832,7 @@
}),
}).then((res) => {
this.$message.success("宸蹭繚瀛�");
+ this.refreshList()
});
},
upStandardProductListOfTemplate(value, index) {
@@ -785,6 +843,7 @@
}),
}).then((res) => {
this.$message.success("宸蹭繚瀛�");
+ this.refreshList()
});
},
handleSelectionChange(val) {
@@ -807,45 +866,65 @@
this.currentPage = 1;
this.tableLoad2 = true;
this.standardId = row.id;
- selectStandardProductListByMethodId({
- id: row.id,
- tree: this.selectTree,
- page: this.currentPage,
- }).then((res) => {
- this.productList = res.data.productList;
- this.total = res.data.total;
- setTimeout(() => {
- this.productList.forEach((a) => {
- if (a.state == 1) this.toggleSelection(a);
- });
- }, 300);
- this.tableLoad2 = false;
- const tree = this.selectTree.split(" - ");
- // 閫夋嫨鏈�鍚庝竴灞傛爲鎵嶅彲浠ユ嫋鎷芥帓搴�
- if (tree.length === 4) {
- const name = tree[3] + "[4]";
- this.hasChildWithId(this.list, name);
- if (
- this.isHaveChildren.children &&
- this.isHaveChildren.children.length > 0
- ) {
+ if (this.auditId) {
+ // 鏍囧噯搴撳彉鏇寸殑妫�楠岄」鏌ヨ
+ standardProductListRecordRelPage({
+ standardMethodListId: row.id,
+ tree: this.selectTree,
+ standardProductListUpdateRecordId: this.auditId,
+ }).then((res) => {
+ this.productList = res.data.productList;
+ this.total = res.data.total;
+ setTimeout(() => {
+ this.productList.forEach((a) => {
+ if (a.state == 1) this.toggleSelection(a);
+ });
+ }, 300);
+ this.tableLoad2 = false;
+ });
+ } else {
+ // 姝e父鎯呭喌涓嬬殑鏍囧噯鏌ヨ
+ selectStandardProductListByMethodId({
+ id: row.id,
+ tree: this.selectTree,
+ page: this.currentPage,
+ }).then((res) => {
+ this.productList = res.data.productList;
+ this.total = res.data.total;
+ setTimeout(() => {
+ this.productList.forEach((a) => {
+ if (a.state == 1) this.toggleSelection(a);
+ });
+ }, 300);
+ this.tableLoad2 = false;
+ const tree = this.selectTree.split(" - ");
+ // 閫夋嫨鏈�鍚庝竴灞傛爲鎵嶅彲浠ユ嫋鎷芥帓搴�
+ if (tree.length === 4) {
+ const name = tree[3] + "[4]";
+ this.hasChildWithId(this.list, name);
+ if (
+ this.isHaveChildren.children &&
+ this.isHaveChildren.children.length > 0
+ ) {
+ if (this.sortTable) {
+ this.sortTable.destroy();
+ this.sortTable = null;
+ }
+ return;
+ }
+ } else if (tree.length < 4) {
if (this.sortTable) {
this.sortTable.destroy();
this.sortTable = null;
}
return;
}
- } else if (tree.length < 4) {
- if (this.sortTable) {
- this.sortTable.destroy();
- this.sortTable = null;
- }
- return;
- }
- this.$nextTick(() => {
- this.rowDrop(row.id);
+ this.$nextTick(() => {
+ this.rowDrop(row.id);
+ });
});
- });
+ }
+
},
toggleSelection(row) {
this.$refs.productTable.toggleRowSelection(row, true);
@@ -865,6 +944,7 @@
}),
}).then((res) => {
this.$message.success('宸蹭繚瀛�')
+ this.refreshList()
});
},
filterHandler(value) {
@@ -1016,6 +1096,7 @@
this.sectionLoad = false;
this.$message.success("宸蹭繚瀛�");
this.sectionUpDia = false;
+ this.refreshList()
});
} else {
upStandardProducts({
@@ -1061,19 +1142,36 @@
handleCurrentChange(val) {
this.currentPage = val;
this.tableLoad2 = true;
- selectStandardProductListByMethodId({
- id: this.standardId,
- tree: this.selectTree,
- page: val,
- }).then((res) => {
- this.productList = res.data.productList;
- setTimeout(() => {
- this.productList.forEach((a) => {
- if (a.state == 1) this.toggleSelection(a);
- });
- }, 200);
- this.tableLoad2 = false;
- });
+ if (this.auditId) {
+ // 鏍囧噯搴撳彉鏇存煡璇
+ standardProductListRecordRelPage({
+ standardMethodListId: this.standardId,
+ tree: this.selectTree,
+ standardProductListUpdateRecordId: this.auditId,
+ }).then((res) => {
+ this.productList = res.data.productList;
+ setTimeout(() => {
+ this.productList.forEach((a) => {
+ if (a.state == 1) this.toggleSelection(a);
+ });
+ }, 200);
+ this.tableLoad2 = false;
+ });
+ } else {
+ selectStandardProductListByMethodId({
+ id: this.standardId,
+ tree: this.selectTree,
+ page: val,
+ }).then((res) => {
+ this.productList = res.data.productList;
+ setTimeout(() => {
+ this.productList.forEach((a) => {
+ if (a.state == 1) this.toggleSelection(a);
+ });
+ }, 200);
+ this.tableLoad2 = false;
+ });
+ }
},
openCopyDia() {
this.batchCopyDia = true;
@@ -1180,16 +1278,26 @@
return true;
}
}).then(({ value }) => {
- // this.$message({
- // type: 'success',
- // message: '浣犵殑閭鏄�: ' + value
- // });
+ this.submitReviewLoad = true
+ productListSubmit({
+ remark: value
+ }).then(res => {
+ this.submitReviewLoad = false
+ this.selectsStandardMethodByFLSSM();
+ this.existCheckingRecord()
+ this.refreshList()
+ this.$refs.productTable.doLayout()
+ }).catch(err => {
+ this.submitReviewLoad = false
+ })
}).catch(() => {
- // this.$message({
- // type: 'info',
- // message: '鍙栨秷杈撳叆'
- // });
});
+ },
+ // 鑾峰彇褰撳墠鏈夋病鏈夋鍦ㄥ鏍哥殑鍙樻洿
+ existCheckingRecord() {
+ existCheckingRecord().then(res => {
+ this.standardCkeck = res.data
+ })
}
},
};
@@ -1376,4 +1484,9 @@
align-items: center;
justify-content: center;
}
+
+/* 闅愯棌鍏ㄩ�夊閫夋 */
+>>>.disable-select-all .el-checkbox {
+ display: none !important;
+}
</style>
--
Gitblit v1.9.3