From deca2e2a19cd15502b81698b7dd8133633ac4c4f Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期二, 03 九月 2024 09:59:38 +0800
Subject: [PATCH] 修改插队bug
---
src/components/view/b1-inspect-order-plan.vue | 247 +++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 215 insertions(+), 32 deletions(-)
diff --git a/src/components/view/b1-inspect-order-plan.vue b/src/components/view/b1-inspect-order-plan.vue
index 53ece84..5e0dd6f 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,107 @@
<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="typeList.find(m=>m.value==scope.row.insState).type" size="small">{{ typeList.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="250px"
+ >
+ <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))">妫�楠�</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))">浜ゆ帴</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))">澶嶆牳</el-button>
+ <el-button @click="claimFun(scope.row)" type="text" size="small" :disabled="scope.row.userName != null || scope.row.checkName!=null">璁ら</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">
@@ -181,7 +277,7 @@
</el-select>
</div>
</div>
- <div class="search_thing">
+ <!-- <div class="search_thing">
<div class="search_label" style="width:90px"><span class="required-span">* </span>璇曢獙瀹わ細</div>
<div class="search_input">
<el-select v-model="connect.sonLaboratory" placeholder="璇烽�夋嫨" style="width: 100%;" filterable>
@@ -193,7 +289,7 @@
</el-option>
</el-select>
</div>
- </div>
+ </div> -->
<span slot="footer" class="dialog-footer">
<el-button @click="connectVisible = false">鍙� 娑�</el-button>
<el-button type="primary" @click="confirmConnect" :loading="loading">纭� 瀹�</el-button>
@@ -219,7 +315,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,
@@ -299,6 +395,7 @@
insState: null,
userId: null
},
+ sortable:true,
isIndex: true,
showSelect: false,
select: false,
@@ -323,7 +420,7 @@
type: 'text',
method: 'handleInspection',
disabFun: (row, index) => {
- return row.userName == null || row.insState == 3 || row.insState == 5||(row.userName&&!row.userName.includes(JSON.parse(localStorage.getItem("user")).name))
+ return row.userName == null || row.insState == 3 || row.insState == 5||row.insState == 6||(row.userName&&!row.userName.includes(JSON.parse(localStorage.getItem("user")).name))
}
// disabFun: (row, index) => {
// return row.userId == null || row.insState == 3 || row.insState == 5
@@ -334,7 +431,7 @@
type: 'text',
method: 'handleConnect',
disabFun: (row, index) => {
- return row.userName == null || row.insState == 5 || row.insState == 3||(row.userName&&!row.userName.includes(JSON.parse(localStorage.getItem("user")).name))
+ return row.userName == null || row.insState == 5 || row.insState == 3||row.insState == 6||(row.userName&&!row.userName.includes(JSON.parse(localStorage.getItem("user")).name))
}
},
{
@@ -387,6 +484,7 @@
requiredAdd: [],
requiredUp: []
},
+ userName:JSON.parse(localStorage.getItem("user")).name,
upIndex: 0,
planTotal: 0,
insStateList: [],
@@ -399,11 +497,33 @@
connectVisible:false,
connect:{
connectPerson:'',
- sonLaboratory:''
+ // sonLaboratory:''
},
loading:false,
currentTime: null,
- sonLaboratoryList:[]
+ sonLaboratoryList:[],
+ tableData: null,
+ 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:[]
}
},
created() {
@@ -416,8 +536,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 +592,7 @@
let connect = false
let review = false
let claim = false
+ let jumpTeam = false
for (var i = 0; i < power.length; i++) {
if (power[i].menuMethod == 'doInsOrder') {
inspection = true
@@ -442,6 +605,9 @@
}
if (power[i].menuMethod == 'claimInsOrderPlan') {
claim = true
+ }
+ if (power[i].menuMethod == 'jumpTeam') {
+ jumpTeam = true
}
}
if (!claim) {
@@ -456,6 +622,7 @@
if (!inspection) {
this.componentData.do.splice(0, 1)
}
+ this.jumpTeam = jumpTeam
},
changeCheckBox(val) {
this.componentData.entity.userId = val?0:null
@@ -474,7 +641,7 @@
this.sampleUserForm = {
entrustCode: row.entrustCode,
insSampleId: row.id,
- sonLaboratory: row.sonLaboratory,
+ sonLaboratory: row.sonLaboratory,
}
this.claimVisible = true
}
@@ -491,14 +658,29 @@
this.$message.success("璁ら鎴愬姛")
this.claimVisible = false
this.refreshTable('page')
+ } else {
+ this.loading = false;
}
}).catch(error => {
console.error(error)
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,
@@ -547,6 +729,7 @@
}
})
this.componentData.tagField.type.select = data
+ this.typeList = data
})
},
getInsStateDicts() {
@@ -614,35 +797,35 @@
this.orderId = row.id
this.connect = {}
this.connectVisible=true;
- this.$axios.post(this.$api.insOrderPlan.upPlanUser2, {
- orderId:this.orderId,
- }).then(res => {
- if (res.code === 200&&res.data.length>0) {
- this.sonLaboratoryList = [];
- res.data.forEach(m=>{
- this.sonLaboratoryList.push({
- value:m,
- label:m
- })
- })
- this.connect.sonLaboratory = this.sonLaboratoryList[0].value
- }
- })
+ // this.$axios.post(this.$api.insOrderPlan.upPlanUser2, {
+ // orderId:this.orderId,
+ // }).then(res => {
+ // if (res.code === 200&&res.data.length>0) {
+ // this.sonLaboratoryList = [];
+ // res.data.forEach(m=>{
+ // this.sonLaboratoryList.push({
+ // value:m,
+ // label:m
+ // })
+ // })
+ // // this.connect.sonLaboratory = this.sonLaboratoryList[0].value
+ // }
+ // })
},
confirmConnect(){
if(this.connect.connectPerson==null||this.connect.connectPerson==''||this.connect.connectPerson==undefined){
this.$message.error('鏈�夋嫨浜ゆ帴浜哄憳')
return
}
- if(this.connect.sonLaboratory==null||this.connect.sonLaboratory==''||this.connect.sonLaboratory==undefined){
- this.$message.error('鏈�夋嫨璇曢獙瀹�')
- return
- }
+ // if(this.connect.sonLaboratory==null||this.connect.sonLaboratory==''||this.connect.sonLaboratory==undefined){
+ // this.$message.error('鏈�夋嫨璇曢獙瀹�')
+ // return
+ // }
this.loading = true;
this.$axios.post(this.$api.insOrderPlan.upPlanUser, {
orderId:this.orderId,
userId:this.connect.connectPerson,
- sonLaboratory:this.connect.sonLaboratory,
+ sonLaboratory:this.componentData.entity.sonLaboratory,
}).then(res => {
if (res.code === 200) {
this.loading = false;
--
Gitblit v1.9.3