From 7bdc84b5844d2a481e2f17cdd2c8204fd4a403ee Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期一, 29 九月 2025 16:48:31 +0800
Subject: [PATCH] 业务管理相关页面添加`批号`查询条件
---
src/views/business/productOrder/index.vue | 256 ++++++++++++++++++++++++++++++++++++--------------
1 files changed, 184 insertions(+), 72 deletions(-)
diff --git a/src/views/business/productOrder/index.vue b/src/views/business/productOrder/index.vue
index 5bcd383..b674f14 100644
--- a/src/views/business/productOrder/index.vue
+++ b/src/views/business/productOrder/index.vue
@@ -8,20 +8,16 @@
</el-input>
</el-form-item>
<el-form-item label="鏍峰搧鍚嶇О" prop="sampleName">
- <el-input v-model="entity.partNo" clearable placeholder="璇疯緭鍏�" size="small"
+ <el-input v-model="entity.sampleName" clearable placeholder="璇疯緭鍏�" size="small"
@keyup.enter.native="refreshTable"></el-input>
</el-form-item>
<el-form-item label="鏍峰搧鍨嬪彿" prop="sampleModel">
<el-input v-model="entity.sampleModel" clearable placeholder="璇疯緭鍏�" size="small"
@keyup.enter.native="refreshTable()"></el-input>
</el-form-item>
-<!-- <el-form-item label="鏍峰搧缂栧彿" prop="sampleCode" v-if="more">-->
-<!-- <el-input v-model="entity.sampleCode" clearable placeholder="璇疯緭鍏�" size="small"-->
-<!-- @keyup.enter.native="refreshTable">-->
-<!-- </el-input>-->
-<!-- </el-form-item>-->
<el-form-item label="涓嬪崟鏃堕棿" prop="createTime" v-if="more">
<el-date-picker v-model="entity.createTime" clearable format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡" size="small"
+ @change="refreshTable"
style="width:100%" type="date" value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker>
</el-form-item>
@@ -38,35 +34,37 @@
<el-form-item>
<el-button :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" style="color: #3A7BFA;" type="text"
@click="more = !more">{{ !more ? '鏇村' : '鏀惰捣' }}</el-button>
- <el-button size="small" @click="refresh()">閲� 缃�</el-button>
- <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
+ <el-button size="mini" type="primary" @click="refreshTable()">鏌ヨ</el-button>
+ <el-button size="mini" @click="refresh()">閲嶇疆</el-button>
</el-form-item>
</el-form>
</div>
- <div class="table-tab">
- <div>
- <ul class="tab">
- <li :class="{ active: tabIndex === 0 }" v-if="checkPermi(['get:insOrder:reviewed'])" @click="handleTab(0)">寰呭鏍�</li>
- <li :class="{ active: tabIndex === 1 }" v-if="checkPermi(['get:insOrder:checkout'])" @click="handleTab(1)">妫�楠屼腑</li>
- <li :class="{ active: tabIndex === 2 }" v-if="checkPermi(['get:insOrder:customerOrdered'])" @click="handleTab(2)">濮旀墭宸叉</li>
- <li :class="{ active: tabIndex === 3 }" v-if="checkPermi(['get:insOrder:spotCheck'])" @click="handleTab(3)">鎶芥牱宸叉</li>
- <li :class="{ active: tabIndex === 4 }" v-if="checkPermi(['get:insOrder:sendBack'])" @click="handleTab(4)">閫�鍥�</li>
- <li :class="{ active: tabIndex === 5 }" v-if="checkPermi(['get:insOrder:revocation'])" @click="handleTab(5)">鎾ら攢</li>
- <li :class="{ active: tabIndex === 6 }" v-if="checkPermi(['get:insOrder:all'])" @click="handleTab(6)">鍏ㄩ儴</li>
- </ul>
+ <div class="container" v-loading="isLoading">
+ <div class="table-tab">
+ <div>
+ <ul class="tab">
+ <li :class="{ active: tabIndex === 0 }" v-if="checkPermi(['get:insOrder:reviewed'])" @click="handleTab(0)">寰呭鏍�</li>
+ <li :class="{ active: tabIndex === 1 }" v-if="checkPermi(['get:insOrder:checkout'])" @click="handleTab(1)">妫�楠屼腑</li>
+ <li :class="{ active: tabIndex === 2 }" v-if="checkPermi(['get:insOrder:customerOrdered'])" @click="handleTab(2)">濮旀墭宸叉</li>
+ <li :class="{ active: tabIndex === 3 }" v-if="checkPermi(['get:insOrder:spotCheck'])" @click="handleTab(3)">鎶芥牱宸叉</li>
+ <li :class="{ active: tabIndex === 4 }" v-if="checkPermi(['get:insOrder:sendBack'])" @click="handleTab(4)">閫�鍥�</li>
+ <li :class="{ active: tabIndex === 5 }" v-if="checkPermi(['get:insOrder:revocation'])" @click="handleTab(5)">鎾ら攢</li>
+ <li :class="{ active: tabIndex === 6 }" v-if="checkPermi(['get:insOrder:all'])" @click="handleTab(6)">鍏ㄩ儴</li>
+ </ul>
+ </div>
+ <div>
+ <el-button v-if="tabIndex === 2 || tabIndex === 3 || tabIndex === 6" size="small"
+ @click="downLoad">瀵煎嚭</el-button>
+ <el-button v-if="tabIndex === 1" size="small" type="primary" @click="openAddIns">娣诲姞妫�楠岄」</el-button>
+ <el-button size="small" type="primary" @click="openPrint">鏍囩鎵撳嵃</el-button>
+ <el-button v-if="checkPermi(['add:insOrder'])" size="small" type="primary" @click="playOrder(1)">涓嬪崟</el-button>
+ </div>
</div>
- <div>
- <el-button v-if="tabIndex === 2 || tabIndex === 3 || tabIndex === 6" size="small"
- @click="downLoad">瀵煎嚭</el-button>
- <el-button v-if="tabIndex === 1" size="small" type="primary" @click="openAddIns">娣诲姞妫�楠岄」</el-button>
- <el-button size="small" type="primary" @click="openPrint">鏍囩鎵撳嵃</el-button>
- <el-button v-if="checkPermi(['add:insOrder'])" size="small" type="primary" @click="playOrder(1)">涓嬪崟</el-button>
+ <div class="table">
+ <lims-table :tableData="tableData" :column="column" :isSelection="true" :handleSelectionChange="selectMethod"
+ @pagination="pagination" :height="'calc(100vh - 280px)'" :key="upIndex" :page="page"
+ :tableLoading="tableLoading"></lims-table>
</div>
- </div>
- <div class="table">
- <lims-table :tableData="tableData" :column="column" :isSelection="true" :handleSelectionChange="selectMethod"
- @pagination="pagination" :height="'calc(100vh - 280px)'" :key="upIndex" :page="page"
- :tableLoading="tableLoading"></lims-table>
</div>
<div>
<!-- 瀹℃牳 -->
@@ -298,9 +296,28 @@
@closePrintDialog="closePrintDialog"></print-dialog>
<!--娣诲姞閬楁紡妫�楠岄」寮规-->
<add-inspection-dia v-if="addInspectionDia" ref="addInspectionDia"></add-inspection-dia>
- <!-- <Inspection v-if="state>0" :key="InspectionKey" :inspectorList="inspectorList" :orderId="orderId"-->
- <!-- :sonLaboratory="sonLaboratory" :state="state"-->
- <!-- :typeSource="typeSource" @goback="goback" @refreshView="refreshView"/>-->
+ <!--淇敼鏍峰搧鍨嬪彿寮规-->
+ <el-dialog :close-on-click-modal="false" :close-on-press-escape="false"
+ :visible.sync="dialogVisible" title="淇敼鏍峰搧鍨嬪彿" width="80%">
+ <el-table ref="sampleTable" :data="sampleList" border highlight-current-row
+ :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }"
+ max-height="400px" tooltip-effect="dark">
+ <el-table-column align="center" label="搴忓彿" type="index" width="65"></el-table-column>
+ <el-table-column align="center" label="鏍峰搧鍚嶇О" min-width="100" prop="sample"> </el-table-column>
+ <el-table-column align="center" label="鏍峰搧缂栧彿" min-width="100" prop="sampleCode"></el-table-column>
+ <el-table-column align="center" label="鏍峰搧鍨嬪彿" min-width="60" prop="model">
+ <template slot-scope="scope">
+ <el-input v-model="scope.row.model" clearable placeholder="涓嶅~鍐欏垯绯荤粺鑷姩鐢熸垚"
+ size="small"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column align="center" label="妫�楠屾爣鍑�" min-width="100" prop="standardMethodName"></el-table-column>
+ </el-table>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
+ <el-button :loading="submitListLoad" type="primary" @click="submitList">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
</div>
</template>
@@ -311,11 +328,11 @@
import AddInspectionDia from "@/views/business/productOrder/components/addInspectionDia.vue";
import limsTable from "@/components/Table/lims-table.vue";
import {
- checkUpdate, delInsOrder,
+ checkUpdate, delInsOrder, getSampleByOrderId,
rawAllInsOrderExport,
selectInsOrderParameter, selectNoProducts, selectOrderManDay,
updateInspected,
- updateOrderEntrustCode, updateStatus, upInsOrder, upPlanUser2
+ updateOrderEntrustCode, updateSampleModel, updateStatus, upInsOrder, upPlanUser2
} from "@/api/business/productOrder";
import { selectUserCondition } from "@/api/performance/class";
import { downFile, getFileList, selectSampleAndProductByOrderId } from "@/api/business/rawMaterialOrder";
@@ -330,6 +347,7 @@
},
data() {
return {
+ isLoading: false, // 鎺у埗鍔犺浇鐘舵��
entity: {
orderType: '',
state: '',
@@ -338,10 +356,28 @@
tableData: [],
tableLoading: false,
column: [
- { label: '濮旀墭缂栧彿', prop: 'entrustCode', width: '160px' },
+ {
+ label: "濮旀墭缂栧彿",
+ prop: "entrustCode",
+ width: "160px",
+ dataType: "link",
+ linkMethod: "changeEntrustCode",
+ },
{ label: '濮旀墭鍗曚綅', prop: 'company' },
- { label: '鏍峰搧鍚嶇О', prop: 'sampleName' },
- { label: '鏍峰搧鍨嬪彿', prop: 'sampleModel' },
+ {
+ label: "鏍峰搧鍚嶇О",
+ prop: "sampleName",
+ width: "160px",
+ dataType: "link",
+ linkMethod: "selectAllByOne",
+ },
+ {
+ label: "鏍峰搧鍨嬪彿",
+ prop: "sampleModel",
+ width: "160px",
+ dataType: "link",
+ linkMethod: "editSampleModel",
+ },
{ label: '鏍峰搧鏁伴噺', prop: 'sampleNum' },
{ label: '妫�楠屼汉', prop: 'testingName' },
{
@@ -522,7 +558,7 @@
],
page: {
total: 0,
- size: 10,
+ size: 20,
current: 1
},
state: 0,// 0:鍙拌处椤碉紝1锛氭楠岄〉闈�,2妫�楠岄〉闈�(澶嶆牳)锛岄粯璁や负0,3鏁版嵁鏌ョ湅
@@ -551,7 +587,7 @@
tableDataLook: [],
tableDataLookPage: {
total: 0,
- size: 10,
+ size: 20,
current: 1
},
tableDataLookColumn: [
@@ -642,7 +678,7 @@
],
pageFile: {
total: 0,
- size: 10,
+ size: 20,
current: 1
},
formData: {},
@@ -679,7 +715,7 @@
],
pageDelete: {
total: 0,
- size: 10,
+ size: 20,
current: 1
},
deleteDialogVisible: false,
@@ -728,7 +764,10 @@
multipleSelection: [],
sonLaboratoryList: [],
printDialog: false,
- addInspectionDia: false
+ addInspectionDia: false,
+ dialogVisible: false,
+ submitListLoad: false,
+ sampleList: []
}
},
watch: {
@@ -745,8 +784,16 @@
...mapGetters(["nickName"]),
},
mounted() {
+ if (this.checkPermi(['get:raw:await'])) {
+ this.tabIndex = 0
+ } else {
+ this.tabIndex = 2
+ }
this.refreshTable()
this.getAuthorizedPerson()
+ },
+ activated() {
+ this.refreshTable()
},
methods: {
// 鏌ヨ鍒楄〃鏁版嵁
@@ -761,8 +808,9 @@
}
}
const params = { ...this.entity, state: this.tabList[this.tabIndex].value }
- this.tableLoading = true
+ this.isLoading = true; // 寮�濮嬪姞杞�
selectInsOrderParameter({...this.page,...params}).then(res => {
+ this.isLoading = false; // 缁撴潫鍔犺浇
this.upIndex++
this.tableLoading = false
if (res.code === 200) {
@@ -770,7 +818,7 @@
this.page.total = res.data.total
}
}).catch(err => {
- this.tableLoading = false
+ this.isLoading = false; // 缁撴潫鍔犺浇
})
},
refresh() {
@@ -783,6 +831,9 @@
},
// 鎵撳紑淇敼濮旀墭缂栧彿寮规
changeEntrustCode(row) {
+ if (this.tabIndex !== 1) {
+ return
+ }
this.entrustCodeVisible = true
this.entrustCodeInfo = { ...row }
},
@@ -876,7 +927,12 @@
},
// 瀵煎嚭璁板綍
downLoad() {
- const params = { ...this.entity, state: this.tabList[this.tabIndex].value }
+ let params = {}
+ if (this.multipleSelection.length > 0) {
+ params.ids = this.multipleSelection.map(item => item.id).join(',');
+ } else {
+ params = { ...this.entity, state: this.tabList[this.tabIndex].value }
+ }
rawAllInsOrderExport({ ...params }).then(res => {
const blob = new Blob([res], { type: 'application/octet-stream' });
this.$download.saveAs(blob, '濮旀墭妫�娴嬩俊鎭鍑�.xlsx');
@@ -927,17 +983,54 @@
this.dataDialogVisible = false;
this.upLoad = false;
},
- // 璇︽儏
+ // 鐐瑰嚮鏍峰搧鍚嶇О
selectAllByOne(row) {
- this.active = 2;
- // console.log(row);
- // //鎵撳紑寮规
- // this.dialogVisible = true;
- // //row = 鐐瑰嚮瀵瑰簲琛屽��
- // //澶嶅埗缁檉ormData
- // this.formData = this.HaveJson(row);
- this.currentId = row.id
- this.examine = 1
+ if (this.tabIndex === 4) {
+ this.$router.push({
+ path: "/productOrder/addOrder", query: {
+ examine: 1,
+ active: 2,
+ currentId: row.id,
+ tabIndex: this.tabIndex,
+ }
+ });
+ } else {
+ this.$router.push({
+ path: "/productOrder/addView", query: {
+ examine: 1,
+ active: 2,
+ currentId: row.id,
+ tabIndex: this.tabIndex,
+ }
+ });
+ }
+
+ },
+ // 淇敼鏍峰搧鍨嬪彿
+ editSampleModel (row) {
+ if (this.tabIndex !== 1) {
+ return
+ }
+ this.dialogVisible = true
+ this.getDataList(row)
+ },
+ getDataList(row) {
+ this.dialogVisible = true
+ getSampleByOrderId({insOrderId: row.id}).then(res => {
+ this.sampleList = res.data
+ })
+ },
+ // 鎻愪氦鏍峰搧鍨嬪彿淇敼
+ submitList () {
+ this.submitListLoad = true
+ updateSampleModel(this.sampleList).then(res => {
+ this.submitListLoad = false
+ this.dialogVisible = false
+ this.$message.success('淇敼鎴愬姛')
+ this.refreshTable()
+ }).catch(err => {
+ this.submitListLoad = false
+ })
},
// 鏁版嵁鏌ョ湅
handleDataLook(row) {
@@ -965,7 +1058,7 @@
closeDia () {
this.tableDataLookPage = {
total: 0,
- size: 10,
+ size: 20,
current: 1
}
this.dataDialogVisible = false
@@ -1004,8 +1097,13 @@
// 涓嬭浇鎶ュ憡
download(row) {
let url = row.urlS ? row.urlS : row.url;
- if (url) {
- this.$download.saveAs(url, row.entrustCode);
+ if(url){
+ url = url.split('.')[0]+'.pdf'
+ const link = document.createElement('a');
+ link.href = this.javaApi + url;
+ link.target = '_blank';
+ document.body.appendChild(link);
+ link.click();
}
},
// 鎾ら攢
@@ -1023,7 +1121,7 @@
},
getDeleteList() {
this.tableLoadingDelete = true
- selectNoProducts({ orderId: this.orderId, revocationInsProductIds: this.revocationInsProductIds }).then(res => {
+ selectNoProducts({ orderId: this.orderId, revocationInsProductIds: this.revocationInsProductIds, ...this.pageDelete }).then(res => {
this.tableLoadingDelete = false
this.componentDataDelete = res.data.records
this.pageDelete.total = res.data.total
@@ -1171,14 +1269,15 @@
},
// 涓嬪崟
playOrder(num) {
- this.$router.push({ path: "/productOrder/add", query: { examine: 0, active: num, tabIndex: this.tabIndex } });
+ this.$router.push({ path: "/productOrder/addOrder", query: { examine: 0, active: num, tabIndex: this.tabIndex } });
},
// 瀹℃牳
handleVerify(row) {
- this.$router.push({ path: "/productOrder/add", query: { examine: 1, active: 3, currentId: row.id } });
+ this.$router.push({ path: "/productOrder/addView", query: { examine: 1, active: 3, currentId: row.id } });
},
handleTab(i) {
this.tabIndex = i;
+ this.multipleSelection = []
this.refreshTable()
},
// 鏌ョ湅妫�楠屾暟鎹�
@@ -1189,16 +1288,29 @@
inspectorList = row.userName.split(',')
}
inspectorList.push(this.nickName)
- this.$router.push({
- path: "/inspectionTask/inspection",
- query: {
- sonLaboratory: row.sonLaboratory,
- state: 3,
- typeSource: row.typeSource,
- orderId: row.id,
- inspectorList: inspectorList,
- },
- })
+ if (this.checkPermi(['business:inspectionView'])) {
+ this.$router.push({
+ name: "InspectionView",
+ query: {
+ sonLaboratory: row.sonLaboratory,
+ state: 3,
+ typeSource: row.typeSource,
+ orderId: row.id,
+ inspectorList: inspectorList,
+ },
+ })
+ } else {
+ this.$router.push({
+ path: "/inspectionTask/inspection",
+ query: {
+ sonLaboratory: row.sonLaboratory,
+ state: 3,
+ typeSource: row.typeSource,
+ orderId: row.id,
+ inspectorList: inspectorList,
+ },
+ })
+ }
},
goback() {
this.state = 0
--
Gitblit v1.9.3