From 9bce6d06fc72b109ebfe1fa779c57e1d62a43b57 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期五, 13 九月 2024 16:58:56 +0800
Subject: [PATCH] 来样方式改成订单类型
---
src/components/view/b1-inspect-order-plan.vue | 251 +++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 238 insertions(+), 13 deletions(-)
diff --git a/src/components/view/b1-inspect-order-plan.vue b/src/components/view/b1-inspect-order-plan.vue
index 2bd248c..bb8207d 100644
--- a/src/components/view/b1-inspect-order-plan.vue
+++ b/src/components/view/b1-inspect-order-plan.vue
@@ -97,6 +97,10 @@
.view-self-checkbox {
margin-left: 50px;
}
+ .draggable-row {
+ cursor: move;
+ position: relative;
+ }
</style>
<style>
.ins-order-plan-main .el-form-item__label{
@@ -149,15 +153,108 @@
<el-col :span="3">
<div class="center-title">
<span>鎬昏浠诲姟鏁伴噺:</span>
- <span v-if="$refs.insOrderPlan != undefined">{{$refs.insOrderPlan.total}}</span>
+ <span>{{total}}</span>
</div>
</el-col>
</el-row>
</div>
- <ValueTable :tableRowClassName="changeRowClass" class="value-table" ref="insOrderPlan"
+ <!-- <ValueTable :tableRowClassName="changeRowClass" class="value-table" ref="insOrderPlan"
:isColumnWidth="true"
:url="$api.insOrderPlan.selectInsOrderPlanList" :upUrl="$api.user.updateUser" :componentData="componentData" @handleInspection="handleInspection"
- :key="upIndex"/>
+ :key="upIndex"/> -->
+ <el-table
+ :data="tableData"
+ ref="table0"
+ border
+ style="width: 100%;"
+ height="calc(100% - 80px)"
+ :row-class-name="rowClassName"
+ v-loading="tableLoading"
+ row-key="orderStateId"
+ >
+ <el-table-column
+ prop="entrustCode"
+ label="濮旀墭缂栧彿"
+ width="140px"
+ >
+ <template slot-scope="scope">
+ <el-button @click="selectAllByOne(scope.row)" type="text" size="small">{{ scope.row.entrustCode }}</el-button>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="sample"
+ label="鏍峰搧鍚嶇О"
+ width="100px"
+ ></el-table-column>
+ <el-table-column
+ prop="type"
+ label="绱ф�ョ▼搴�"
+ width="100px"
+ >
+ <template slot-scope="scope">
+ <el-tag :type="typeList.find(m=>m.value==scope.row.type).type" size="small">{{ typeList.find(m=>m.value==scope.row.type).label }}</el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="insState"
+ label="鐘舵��"
+ width="100px"
+ >
+ <template slot-scope="scope">
+ <el-tag :type="insStateList.find(m=>m.value==scope.row.insState).type" size="small">{{ insStateList.find(m=>m.value==scope.row.insState).label }}</el-tag>
+ </template></el-table-column>
+ <el-table-column
+ prop="userName"
+ label="妫�楠屼汉"
+ width="140px"
+ ></el-table-column>
+ <el-table-column
+ prop="checkName"
+ label="澶嶆牳浜�"
+ width="100px"
+ ></el-table-column>
+ <el-table-column
+ prop="appointed"
+ label="绾﹀畾鏃堕棿"
+ width="120px"
+ ></el-table-column>
+ <el-table-column
+ prop="sendTime"
+ label="涓嬪彂鏃堕棿"
+ width="160px"
+ ></el-table-column>
+ <el-table-column
+ prop="insTime"
+ label="妫�楠屽紑濮嬫椂闂�"
+ width="160px"
+ ></el-table-column>
+ <el-table-column
+ prop="verifyTell"
+ label="鐞嗙敱"
+ width="150px"
+ ></el-table-column>
+ <el-table-column
+ fixed="right"
+ align="center" label="鎿嶄綔"
+ width="320px"
+ >
+ <template slot-scope="scope">
+ <el-button @click="handleDataLook(scope.row)" type="text" size="small">鏁版嵁鏌ョ湅</el-button>
+ <el-button @click="handleInspection(scope.row)" type="text" size="small" :disabled="scope.row.userName == null || scope.row.insState == 3 || scope.row.insState == 5||scope.row.insState == 6||(scope.row.userName&&!scope.row.userName.includes(userName))" v-if="inspection">妫�楠�</el-button>
+ <el-button @click="handleConnect(scope.row)" type="text" size="small" :disabled="scope.row.userName == null || scope.row.insState == 5 || scope.row.insState == 3||scope.row.insState == 6||(scope.row.userName&&!scope.row.userName.includes(userName))" v-if="connect">浜ゆ帴</el-button>
+ <el-button @click="handleReview(scope.row)" type="text" size="small" :disabled="scope.row.userName == null || scope.row.insState != 3 ||(scope.row.checkName&&!scope.row.checkName.includes(userName))" v-if="review">澶嶆牳</el-button>
+ <el-button @click="claimFun(scope.row)" type="text" size="small" :disabled="scope.row.userName != null || scope.row.checkName!=null" v-if="claim">璁ら</el-button>
+ <el-button @click="lookHistory(scope.row)" type="text" size="small" :disabled="!scope.row.num1 || scope.row.num1<1" v-if="getInsProduct2">鏌ョ湅璁板綍</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <div style="display: flex;justify-content: flex-end;width: 100%;margin-top: 10px;">
+ <span></span>
+ <el-pagination @size-change="refreshTable" @current-change="refreshTable" :current-page="page.current"
+ :page-sizes="[10, 20, 30, 50, 100]" :page-size="page.size" layout="total, sizes, prev, pager, next, jumper"
+ :total="total">
+ </el-pagination>
+ </div>
</div>
</div>
<el-dialog title="鎻愮ず" :visible.sync="claimVisible" width="400px">
@@ -202,7 +299,7 @@
<div style="width: 100%;height: 100%;" v-if="activeFace >0">
<Add :active="activeFace" :currentId="currentId" :examine="examine"/>
</div>
- <Inspection v-if="state>0" @goback="goback" :orderId="orderId" :inspectorList="inspectorList" :sonLaboratory="componentData.entity.sonLaboratory" :state="state"/>
+ <Inspection v-if="state>0" @goback="goback" :orderId="orderId" :inspectorList="inspectorList" :sonLaboratory="componentData.entity.sonLaboratory" :state="state" :orderStateId="orderStateId" :version="version" :isLook="isLook" :num1="num1"/>
<el-dialog title="鏁版嵁鏌ョ湅" :visible.sync="dataDialogVisible" width="80%">
<div style="height: 70vh;overflow-y: auto;" v-if="dataDialogVisible">
<ValueTable ref="ValueTableDataLook" :rowKey="'insProductId'" :url="$api.insOrder.selectSampleAndProductByOrderId"
@@ -219,7 +316,7 @@
getYearAndMonthAndDays
} from '../../util/date'
import Add from '../do/b1-ins-order/add.vue'
-import { CellGroup } from 'iview'
+ import Sortable from 'sortablejs';
export default {
components: {
ValueTable,
@@ -228,6 +325,8 @@
},
data() {
return {
+ orderStateId:null,
+ version:null,
examine: null,
inspectorList: [],//妫�楠屼汉鍛樺垪琛�
alone: false,
@@ -299,6 +398,7 @@
insState: null,
userId: null
},
+ sortable:true,
isIndex: true,
showSelect: false,
select: false,
@@ -353,6 +453,14 @@
disabFun: (row, index) => {
return row.userName != null || row.checkName!=null
}
+ }, {
+ id: '',
+ font: '鏌ョ湅璁板綍',
+ type: 'text',
+ method: 'claimFun',
+ disabFun: (row, index) => {
+ return !row.num1 || row.num1<2
+ }
}
],
linkEvent: {
@@ -387,6 +495,7 @@
requiredAdd: [],
requiredUp: []
},
+ userName:JSON.parse(localStorage.getItem("user")).name,
upIndex: 0,
planTotal: 0,
insStateList: [],
@@ -403,7 +512,36 @@
},
loading:false,
currentTime: null,
- sonLaboratoryList:[]
+ sonLaboratoryList:[],
+ tableData: [],
+ page:{
+ current:1,
+ size:20,
+ },
+ total:0,
+ tableLoading:false,
+ jumpTeam:false,
+ insResultList:[{
+ value: 0,
+ label: '涓嶅悎鏍�',
+ type: 'danger'
+ },{
+ value: 1,
+ label: '鍚堟牸',
+ type: 'success'
+ },{
+ value: '',
+ label: '鏈嚭缁撴灉',
+ type: 'info'
+ }],
+ typeList:[],
+ getInsProduct2:false,
+ claim:false,
+ review:false,
+ connect:false,
+ inspection:false,
+ isLook:false,//鏄惁鏄煡鐪嬪巻鍙查〉闈�
+ num1:null,
}
},
created() {
@@ -416,8 +554,50 @@
mounted() {
this.entityCopy = this.HaveJson(this.componentData.entity)
this.getPower()
+ if(this.jumpTeam){
+ this.initializeSortable();
+ }
},
methods: {
+ // 鎷栨嫿
+ initializeSortable() {
+ const tableBody = this.$refs.table0.$el.querySelector('.el-table__body-wrapper > table > tbody');
+ if (tableBody) {
+ Sortable.create(tableBody, {
+ handle: '.el-table__row', // 鎷栧姩鎵嬫焺
+ animation: 200,
+ onEnd: this.handleSortEnd,
+ });
+ } else {
+ console.error('Table body not found.');
+ }
+ },
+ handleSortEnd(evt) {
+ const oldIndex = evt.oldIndex;
+ const newIndex = evt.newIndex;
+ const movedItem = this.tableData[oldIndex];
+ if (oldIndex !== newIndex) {
+ this.tableData.splice(oldIndex, 1);
+ this.tableData.splice(newIndex, 0, movedItem);
+ }
+ this.upIndex++
+ this.$axios.post(this.$api.insOrderPlan.jumpTeam,
+ {
+ id: movedItem.orderStateId,
+ sort: newIndex+1,
+ ...this.page
+ }, {
+ headers: {
+ 'Content-Type': 'application/json'
+ }
+ }
+ ).then(res => {
+
+ })
+ },
+ rowClassName({ row, rowIndex }) {
+ return 'draggable-row';
+ },
// 鏁版嵁鏌ョ湅
handleDataLook(row) {
this.componentDataDataLook.entity.id = row.id
@@ -430,6 +610,8 @@
let connect = false
let review = false
let claim = false
+ let jumpTeam = false
+ let getInsProduct2 = false
for (var i = 0; i < power.length; i++) {
if (power[i].menuMethod == 'doInsOrder') {
inspection = true
@@ -443,19 +625,34 @@
if (power[i].menuMethod == 'claimInsOrderPlan') {
claim = true
}
+ if (power[i].menuMethod == 'jumpTeam') {
+ jumpTeam = true
+ }
+ if (power[i].menuMethod == 'getInsProduct2') {
+ getInsProduct2 = true
+ }
+ }
+ if (!getInsProduct2) {
+ this.componentData.do.splice(5, 1)
}
if (!claim) {
- this.componentData.do.splice(3, 1)
+ this.componentData.do.splice(4, 1)
}
if (!review) {
- this.componentData.do.splice(2, 1)
+ this.componentData.do.splice(3, 1)
}
if (!connect) {
- this.componentData.do.splice(1, 1)
+ this.componentData.do.splice(2, 1)
}
if (!inspection) {
- this.componentData.do.splice(0, 1)
+ this.componentData.do.splice(1, 1)
}
+ this.getInsProduct2 = getInsProduct2
+ this.claim = claim
+ this.review = review
+ this.connect = connect
+ this.inspection = inspection
+ this.jumpTeam = jumpTeam
},
changeCheckBox(val) {
this.componentData.entity.userId = val?0:null
@@ -499,8 +696,21 @@
this.loading = false;
})
},
- refreshTable(e) {
- this.$refs.insOrderPlan.selectList(e)
+ refreshTable() {
+ this.tableLoading = true
+ this.$axios.post(this.$api.insOrderPlan.selectInsOrderPlanList,{
+ entity:this.componentData.entity,
+ page:this.page
+ }, {
+ headers: {
+ 'Content-Type': 'application/json'
+ }
+ }).then((res) => {
+ this.tableLoading = false
+ this.total = res.data.body.total
+ this.tableData = res.data.body.records
+ // this.$refs.table0.doLayout()
+ })
},
changeRowClass({
row,
@@ -549,6 +759,7 @@
}
})
this.componentData.tagField.type.select = data
+ this.typeList = data
})
},
getInsStateDicts() {
@@ -609,8 +820,11 @@
inspectorList.push(user.name)
}
this.inspectorList = inspectorList
- this.state = 1;
this.orderId = row.id
+ this.version = row.version
+ this.orderStateId = row.orderStateId
+ this.state = 1;
+ this.isLook = false
},
handleConnect(row){
this.orderId = row.id
@@ -660,6 +874,9 @@
handleReview(row){
this.state = 2;
this.orderId = row.id
+ this.version = row.version
+ this.orderStateId = row.orderStateId
+ this.isLook = false
},
getAuthorizedPerson() {
this.$axios.get(this.$api.user.getUserMenu).then(res => {
@@ -673,6 +890,14 @@
this.personList = data
})
},
+ lookHistory(row){
+ this.isLook = true
+ this.state = 2;
+ this.orderId = row.id
+ this.version = row.version
+ this.orderStateId = row.orderStateId
+ this.num1 = row.num1
+ }
}
}
</script>
--
Gitblit v1.9.3