From 00064cb80d74bb19e499764cb39d499a3e3f08b2 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期二, 25 三月 2025 14:41:01 +0800
Subject: [PATCH] 外购件完成80%
---
src/api/business/productOrder.js | 122 +++++++-------
src/components/Table/lims-table.vue | 4
src/views/business/outsourcedParts/index.vue | 289 ++++++++++++++++++++++++++++++++++++
src/api/business/outsourcedParts.js | 29 +++
4 files changed, 381 insertions(+), 63 deletions(-)
diff --git a/src/api/business/outsourcedParts.js b/src/api/business/outsourcedParts.js
new file mode 100644
index 0000000..e05ec57
--- /dev/null
+++ b/src/api/business/outsourcedParts.js
@@ -0,0 +1,29 @@
+// 澶栬喘浠堕〉闈㈢浉鍏虫帴鍙�
+import request from "@/utils/request";
+
+// 鍒楄〃
+export function selectInspection(query) {
+ return request({
+ url: "/inspectionPurchased/selectInspection",
+ method: "get",
+ params: query,
+ });
+}
+
+// 缂栬緫/鏂板
+export function addOrUpdateInspection(query) {
+ return request({
+ url: "/inspectionPurchased/addOrUpdateInspection",
+ method: "post",
+ data: query,
+ });
+}
+
+// 鍒犻櫎
+export function delInspection(query) {
+ return request({
+ url: "/inspectionPurchased/delInspection",
+ method: "delete",
+ params: query,
+ });
+}
diff --git a/src/api/business/productOrder.js b/src/api/business/productOrder.js
index 8be32b1..f72cb01 100644
--- a/src/api/business/productOrder.js
+++ b/src/api/business/productOrder.js
@@ -1,124 +1,124 @@
// 鎴愬搧涓嬪崟椤甸潰鐩稿叧鎺ュ彛
-import request from '@/utils/request'
+import request from "@/utils/request";
// 鏌ヨ鎴愬搧涓嬪崟鍒楄〃
export function selectInsOrderParameter(query) {
return request({
- url: '/insOrder/selectInsOrderParameter',
- method: 'get',
- params: query
- })
+ url: "/insOrder/selectInsOrderParameter",
+ method: "get",
+ params: query,
+ });
}
// 淇敼鎴愬搧濮旀墭缂栧彿
export function updateOrderEntrustCode(query) {
return request({
- url: '/insOrder/updateOrderEntrustCode',
- method: 'post',
- data: query
- })
+ url: "/insOrder/updateOrderEntrustCode",
+ method: "post",
+ data: query,
+ });
}
// 鎴愬搧妫�楠屽崟鍏ㄩ儴淇℃伅瀵煎嚭
export function rawAllInsOrderExport(query) {
return request({
- url: '/insOrder/rawAllInsOrderExport',
- method: 'get',
+ url: "/insOrder/rawAllInsOrderExport",
+ method: "get",
params: query,
- responseType: "blob"
- })
+ responseType: "blob",
+ });
}
// 灏嗗緟妫�楠岀殑鐨勬挙閿�杩涜鏇存敼
export function updateInspected(query) {
return request({
- url: '/insOrder/updateInspected',
- method: 'post',
- data: query
- })
+ url: "/insOrder/updateInspected",
+ method: "post",
+ data: query,
+ });
}
// 鎾ら攢瀹℃牳閫氳繃
export function checkUpdate(query) {
return request({
- url: '/insOrder/checkUpdate',
- method: 'post',
- data: query
- })
+ url: "/insOrder/checkUpdate",
+ method: "post",
+ data: query,
+ });
}
// 鏌ヨ璁㈠崟鎬诲叡棰勮鏃堕棿
export function selectOrderManDay(query) {
return request({
- url: '/insOrder/selectOrderManDay',
- method: 'get',
- params: query
- })
+ url: "/insOrder/selectOrderManDay",
+ method: "get",
+ params: query,
+ });
}
// 浠诲姟浜ゆ帴
export function upPlanUser2(query) {
return request({
- url: '/insOrderPlan/upPlanUser2',
- method: 'get',
- params: query
- })
+ url: "/insOrderPlan/upPlanUser2",
+ method: "get",
+ params: query,
+ });
}
// 妫�楠屼笅鍙�
export function upInsOrder(query) {
return request({
- url: '/insOrder/upInsOrder',
- method: 'post',
- params: query
- })
+ url: "/insOrder/upInsOrder",
+ method: "post",
+ params: query,
+ });
}
// 灏嗗緟瀹℃牳鏇存柊鎴愭挙閿�鐘舵��
export function updateStatus(query) {
return request({
- url: '/insOrder/updateStatus',
- method: 'post',
- data: query
- })
+ url: "/insOrder/updateStatus",
+ method: "post",
+ data: query,
+ });
}
// 灏嗗緟瀹℃牳鏇存柊鎴愭挙閿�鐘舵��
export function delInsOrder(query) {
return request({
- url: '/insOrder/delInsOrder',
- method: 'delete',
- params: query
- })
+ url: "/insOrder/delInsOrder",
+ method: "delete",
+ params: query,
+ });
}
// 灏嗗緟瀹℃牳鏇存柊鎴愭挙閿�鐘舵��
export function selectNoProducts(query) {
return request({
- url: '/insOrder/selectNoProducts',
- method: 'get',
- params: query
- })
+ url: "/insOrder/selectNoProducts",
+ method: "get",
+ params: query,
+ });
}
// 鏌ヨ鎴愬搧鏍囩鎵撳嵃淇℃伅
export function labelOrderPrinting(query) {
return request({
- url: '/insOrder/labelOrderPrinting',
- method: 'post',
- data: query
- })
+ url: "/insOrder/labelOrderPrinting",
+ method: "post",
+ data: query,
+ });
}
// 鏍规嵁璁㈠崟id鏌ヨ鏍峰搧
export function getSampleByOrderId(query) {
return request({
- url: '/insOrder/getSampleByOrderId',
- method: 'get',
- params: query
- })
+ url: "/insOrder/getSampleByOrderId",
+ method: "get",
+ params: query,
+ });
}
// 鏍规嵁鏍峰搧id鏌ヨ妫�楠岄」鏍�
export function getProductTreeBySampleId(query) {
return request({
- url: '/insOrder/getProductTreeBySampleId',
- method: 'get',
- params: query
- })
+ url: "/insOrder/getProductTreeBySampleId",
+ method: "get",
+ params: query,
+ });
}
// 娣诲姞閬楁紡鐨勬楠岄」
export function addOmitOrderProduct(query) {
return request({
- url: '/insOrder/addOmitOrderProduct',
- method: 'post',
- data: query
- })
+ url: "/insOrder/addOmitOrderProduct",
+ method: "post",
+ data: query,
+ });
}
diff --git a/src/components/Table/lims-table.vue b/src/components/Table/lims-table.vue
index 6bd9259..f3f3b41 100644
--- a/src/components/Table/lims-table.vue
+++ b/src/components/Table/lims-table.vue
@@ -15,7 +15,7 @@
:show-overflow-tooltip="item.dataType === 'action' || item.dataType === 'slot' ? false : true"
:min-width="item.dataType == 'action' ? btnWidth : getTitleWidth(item)" :sortable="item.sortable ? true : false"
:type="item.type"
- :width="item.dataType == 'action' ? btnWidth : (column.length < 6 ? 'auto' : getTitleWidth(item))"
+ :width="item.dataType == 'action' ? btnWidth : (column.length < 10 ? 'auto' : getTitleWidth(item))"
align="center">
<!-- <div class="123" v-if="item.type == ''"> -->
<template v-if="item.hasOwnProperty('colunmTemplate')" :slot="item.colunmTemplate" slot-scope="scope">
@@ -305,7 +305,7 @@
return count * 15 + 50 + "px";
},
getTitleWidth(row) {
- if (row.label.includes('鏃堕棿') || row.label.includes('缂栧彿') || row.label.includes('鏍峰搧鍚嶇О') || row.label.includes('闆朵欢')) {
+ if (row.label.includes('鏃堕棿') || row.label.includes('鍙�') || row.label.includes('鏍峰搧鍚嶇О') || row.label.includes('闆朵欢')) {
return 160
} else if (row.label.includes('浜у搧') || row.label.includes('妯℃澘鍚嶇О')) {
return 200
diff --git a/src/views/business/outsourcedParts/index.vue b/src/views/business/outsourcedParts/index.vue
new file mode 100644
index 0000000..eaecbd8
--- /dev/null
+++ b/src/views/business/outsourcedParts/index.vue
@@ -0,0 +1,289 @@
+<template>
+ <div class="app-container">
+ <div class="search">
+ <el-form :model="queryParams" ref="queryParams" size="small" :inline="true">
+ <el-row>
+ <el-form-item label="浜у搧鍚嶇О" prop="name">
+ <el-input v-model="queryParams.name" clearable placeholder="璇疯緭鍏�" size="small"
+ @keyup.enter.native="refreshTable"></el-input>
+ </el-form-item>
+ <el-form-item label="SP鍙�" prop="spNum">
+ <el-input v-model="queryParams.spNum" clearable placeholder="璇疯緭鍏�" size="small"
+ @keyup.enter.native="refreshTable">
+ </el-input>
+ </el-form-item>
+ <el-form-item>
+ <el-button size="mini" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
+ <el-button size="mini" @click="refresh()">閲� 缃�</el-button>
+ </el-form-item>
+ </el-row>
+ </el-form>
+ <div>
+ <el-button size="mini" type="primary">鑾峰彇璁㈠崟</el-button>
+ <el-button size="mini" type="primary" @click="openAdd('鏂板')">鏂板</el-button>
+ </div>
+ </div>
+ <lims-table :tableData="tableData" :column="column" :tableLoading="tableLoading" :height="'calc(100vh - 220px)'"
+ :page="page" @pagination="pagination"></lims-table>
+ <!-- 鏂板/缂栬緫 -->
+ <el-dialog :title="title" :visible.sync="addDia" width="500px">
+ <el-form :model="addForm" v-if="addDia" ref="addForm" :rules="addRules" label-position="right"
+ label-width="120px">
+ <el-form-item label="浜у搧" prop="name">
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addForm.name"
+ :disabled="title == '妫�楠�'"></el-input>
+ </el-form-item>
+ <el-form-item label="鏉ユ枡鏁伴噺" prop="num">
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addForm.num" :disabled="title == '妫�楠�'">
+ </el-input>
+ </el-form-item>
+ <el-form-item label="渚涜揣鍘傚" prop="supplier">
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addForm.supplier" :disabled="title == '妫�楠�'">
+ </el-input>
+ </el-form-item>
+ <el-form-item label="璁㈠崟鍙�" prop="orderNum">
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addForm.orderNum" :disabled="title == '妫�楠�'">
+ </el-input>
+ </el-form-item>
+ <el-form-item label="SP鍙�" prop="spNum">
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addForm.spNum" :disabled="title == '妫�楠�'">
+ </el-input>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="remark">
+ <el-input size="small" placeholder="璇疯緭鍏�" type="textarea" :rows="2" clearable v-model="addForm.remark"
+ :disabled="title == '妫�楠�'">
+ </el-input>
+ </el-form-item>
+ <el-form-item label="澶栬" prop="inspectionItems" v-if="title == '妫�楠�'">
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addForm.inspectionItems">
+ </el-input>
+ </el-form-item>
+ <el-form-item label="妫�娴嬬粨鏋�" prop="result" v-if="title == '妫�楠�'">
+ <el-switch v-model="addForm.result" active-text="鍚堟牸" inactive-text="涓嶅悎鏍�" active-value="鍚堟牸"
+ inactive-value="涓嶅悎鏍�">
+ </el-switch>
+ </el-form-item>
+ <el-form-item label="娴嬭瘯鏂囦欢" prop="file" v-if="title == '妫�楠�'">
+ <el-upload action="#" :auto-upload="false" :multiple="false"
+ accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.pdf,' :on-change="handleChangeUpload">
+ <el-button size="mini" type="primary">涓婁紶闄勪欢</el-button>
+ </el-upload>
+ </el-form-item>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="addDia = false">鍙� 娑�</el-button>
+ <el-button :loading="uploading" type="primary" @click="submitProduct('addForm')">纭� 璁�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import limsTable from "@/components/Table/lims-table.vue";
+import { selectInspection, addOrUpdateInspection, delInspection } from '@/api/business/outsourcedParts.js'
+export default {
+ components: { limsTable },
+ data() {
+ return {
+ queryParams: {},
+ tableData: [],
+ column: [
+ { label: "濮旀墭缂栧彿", prop: "entrustmentNo" },
+ { label: "浜у搧", prop: "name" },
+ { label: "鏉ユ枡鏁伴噺", prop: "num" },
+ {
+ label: "渚涜揣鍘傚",
+ prop: "supplier"
+ },
+ { label: "璁㈠崟鍙�", prop: "orderNum" },
+ { label: "SP鍙�", prop: "spNum" },
+ {
+ label: "妫�楠岀姸鎬�", prop: "inspectionStatus", dataType: 'tag',
+ formatData: (params) => {
+ let obj = this.inspectionTaskState.find(m => m.value == params)
+ if (obj) {
+ return obj.label
+ } else {
+ return ''
+ }
+ },
+ formatType: (params) => {
+ if (params == 0) {
+ return 'danger'
+ } else {
+ return 'success'
+ }
+ }
+ },
+ { label: "澶囨敞", prop: "remark" },
+ {
+ dataType: "action",
+ label: "鎿嶄綔",
+ operation: [
+ {
+ name: "缂栬緫",
+ type: "text",
+ clickFun: (row) => {
+ this.openAdd("缂栬緫", row);
+ },
+ },
+ {
+ name: "鍒犻櫎",
+ type: "text",
+ clickFun: (row) => {
+ this.handleDelete(row);
+ },
+ disabled: (row) => {
+ return !!row.ratifyUser
+ },
+ },
+ {
+ name: "妫�楠�",
+ type: "text",
+ clickFun: (row) => {
+ this.openAdd('妫�楠�', row);
+ },
+ },
+ ],
+ },
+ ],
+ page: {
+ total: 0,
+ size: 20,
+ current: 0,
+ },
+ tableLoading: false,
+ title: "鏂板",
+ addDia: false,
+ addForm: {},
+ addRules: {
+ name: [{ required: true, message: "璇疯緭鍏ヤ骇鍝佸悕绉�", trigger: "blur" }],
+ num: [
+ { required: true, message: "璇疯緭鍏ユ潵鏂欐暟閲�", trigger: "blur" },
+ ],
+ supplier: [
+ { required: true, message: "璇疯緭鍏ヤ緵璐у巶瀹�", trigger: "blur" },
+ ],
+ orderNum: [{ required: true, message: "璇疯緭鍏ヨ鍗曞彿", trigger: "blur" }],
+ spNum: [
+ { required: true, message: "璇疯緭鍏P鍙�", trigger: "blur" },
+ ],
+ inspectionItems: [
+ { required: true, message: "璇疯緭鍏ュ瑙�", trigger: "blur" },
+ ],
+ },
+ uploading: false,
+ inspectionTaskState: []
+ }
+ },
+ mounted() {
+ this.getDicts("inspection_task_state").then((response) => {
+ this.inspectionTaskState = this.dictToValue(response.data);
+ });
+ },
+ methods: {
+ getList() {
+ this.tableLoading = true;
+ let param = { ...this.queryParams, ...this.page };
+ delete param.total;
+ selectInspection({ ...param })
+ .then((res) => {
+ this.tableLoading = false;
+ if (res.code === 200) {
+ this.tableData = res.data.records;
+ this.page.total = res.data.total;
+ }
+ })
+ .catch((err) => {
+ this.tableLoading = false;
+ });
+ },
+ pagination({ page, limit }) {
+ this.page.current = page;
+ this.page.size = limit;
+ this.getList();
+ },
+ refresh() {
+ this.queryParams = {};
+ this.page.current = 1;
+ this.getList();
+ },
+ refreshTable() {
+ this.page.current = 1;
+ this.getList();
+ },
+ // 鏂板/缂栬緫/妫�楠�
+ openAdd(title, row) {
+ this.title = title;
+ this.file = null;
+ if (row) {
+ this.addForm = row;
+ } else {
+ this.addForm = {};
+ }
+ this.addDia = true;
+ },
+ // 鏂板/缂栬緫/妫�楠�--鎻愪氦
+ submitProduct(formName) {
+ this.$refs[formName].validate((valid) => {
+ if (valid) {
+ this.uploading = true;
+ if (this.title == "鏂板" || this.title == "缂栬緫") {
+ addOrUpdateInspection(this.addForm)
+ .then((res) => {
+ this.uploading = false;
+ if (res.code != 200) {
+ return;
+ }
+ this.$message.success("鎻愪氦鎴愬姛");
+ this.refresh();
+ this.addDia = false;
+ })
+ .catch((err) => {
+ this.uploading = false;
+ });
+ } else {
+ // 妫�楠�
+ let fd = new FormData();
+ //鏂囦欢淇℃伅涓璻aw鎵嶆槸鐪熺殑鏂囦欢
+ if (this.file) {
+ fd.append("file", this.file.raw);
+ }
+ }
+ } else {
+ return false;
+ }
+ });
+ },
+ // 鍒犻櫎
+ handleDelete(row) {
+ this.$confirm("鏄惁鍒犻櫎璇ユ潯鏁版嵁?", "鎻愮ず", {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "warning",
+ })
+ .then(() => {
+ delInspection({ id: row.id }).then((res) => {
+ if (res.code == 200) {
+ this.$message.success("鍒犻櫎鎴愬姛");
+ this.refresh();
+ }
+ });
+ })
+ .catch(() => { });
+ },
+ handleChangeUpload(file, fileLists) {
+ this.addForm.file = file
+ },
+
+ }
+}
+</script>
+
+<style scoped>
+.search {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+</style>
\ No newline at end of file
--
Gitblit v1.9.3