From 490e2309b3ea598b4ffe14ceb0e5a8d3bd222347 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 22 四月 2025 13:13:30 +0800
Subject: [PATCH] 1.检测或校准物品的处置
---
src/views/CNAS/process/disposal/sampleDisposal/index.vue | 502 ++++++++++++++++++++++++++++++-------------------------
src/api/cnas/process/sampleDisposal.js | 13
2 files changed, 281 insertions(+), 234 deletions(-)
diff --git a/src/api/cnas/process/sampleDisposal.js b/src/api/cnas/process/sampleDisposal.js
index 0a6cda7..fb04b4d 100644
--- a/src/api/cnas/process/sampleDisposal.js
+++ b/src/api/cnas/process/sampleDisposal.js
@@ -10,7 +10,7 @@
});
}
-// 鏂板
+// 鏂板璇︽儏
export function addProcessDeal(data) {
return request({
url: "/processDeal/addProcessDeal",
@@ -27,13 +27,12 @@
data: data,
});
}
-
-//鏌ヨ璇︽儏 鍒嗛〉鏌ヨ閲岄潰totaldealId 浼犲弬鍘嗗彶鐨刬d
-export function pageProcessDeal(query) {
+// 鎻愪氦鍘嗗彶 浼犲弬id
+export function addProcessTotaldeal(data) {
return request({
- url: "/processDeal/pageProcessDeal",
- method: "get",
- params: query,
+ url: "/processTotaldeal/addProcessTotaldeal",
+ method: "post",
+ data: data,
});
}
diff --git a/src/views/CNAS/process/disposal/sampleDisposal/index.vue b/src/views/CNAS/process/disposal/sampleDisposal/index.vue
index 31a1624..761f6ea 100644
--- a/src/views/CNAS/process/disposal/sampleDisposal/index.vue
+++ b/src/views/CNAS/process/disposal/sampleDisposal/index.vue
@@ -1,96 +1,104 @@
<template>
<div class="capacity-scope">
- <el-tabs type="border-card" v-model="activeName" style="height: 100%;" @tab-click="queryParams.totaldealId = ''">
- <el-tab-pane label="濉啓" name="濉啓" style="height: 100%;" :key="1">
- <el-button size="small" type="primary" @click="handleAdd0" style="margin-bottom: 10px">鏂板</el-button>
- <div class="table" style="height: calc(100% - 200px)" v-if="activeName == '濉啓'">
- <lims-table :tableData="tableData" :column="column" :tableLoading="tableLoading"
- key="tableData" :height="'calc(100vh - 290px)'" :page="page" @pagination="pagination"></lims-table>
- </div>
- </el-tab-pane>
- <el-tab-pane label="鍘嗗彶璁板綍" name="鍘嗗彶璁板綍" style="height: 100%;" :key="2">
- <el-form :model="queryParams0" ref="queryParams0" size="small" :inline="true">
- <el-form-item label="骞存湀" prop="month">
- <el-date-picker v-model="queryParams0.month" type="month" placeholder="閫夋嫨鏈�" format="yyyy-MM"
- value-format="yyyy-MM" size="small" @change="refreshTable()">
- </el-date-picker>
- </el-form-item>
- <el-form-item>
- <el-button type="primary" size="mini" @click="refreshTable">鏌ヨ</el-button>
- <el-button size="mini" @click="refresh">閲嶇疆</el-button>
- </el-form-item>
- </el-form>
- <div class="table">
- <lims-table :tableData="tableData0" :column="column0" :tableLoading="tableLoading"
- key="tableData0"
- :height="'calc(100vh - 300px)'" :page="page0" @pagination="pagination0"></lims-table>
- </div>
- </el-tab-pane>
- </el-tabs>
+ <div style="display: flex;justify-content: space-between;align-items: flex-start">
+ <el-form :model="queryParams0" ref="queryParams0" size="small" :inline="true">
+ <el-form-item label="骞存湀" prop="month">
+ <el-date-picker v-model="queryParams0.month" type="month" placeholder="閫夋嫨鏈�" format="yyyy-MM"
+ value-format="yyyy-MM" size="small" @change="refreshTable()">
+ </el-date-picker>
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" size="mini" @click="refreshTable">鏌ヨ</el-button>
+ <el-button size="mini" @click="refresh">閲嶇疆</el-button>
+ </el-form-item>
+ </el-form>
+ <el-button size="small" type="primary" @click="handleAdd0">鏂板</el-button>
+ </div>
+ <div class="table">
+ <lims-table :tableData="tableData0" :column="column0" :tableLoading="tableLoading"
+ key="tableData0" :height="'calc(100vh - 240px)'" :page="page0" @pagination="pagination0"></lims-table>
+ </div>
+ <el-dialog title="璇︽儏" :visible.sync="editDialogVisible" width="70%">
+ <el-button size="small" type="primary" @click="handleAdd('add')" style="margin-bottom: 10px">鏂板</el-button>
+ <lims-table :tableData="tableData" :column="column" :tableLoading="tableLoading"
+ key="tableData" :height="'calc(100vh - 290px)'">
+ </lims-table>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="editDialogVisible = false">鍙栨秷</el-button>
+ </span>
+ </el-dialog>
<!-- 鏂板鏍峰搧 -->
- <el-dialog :title="title" :visible.sync="addDialogVisible" width="400px">
- <el-row>
- <el-col :span="24" style="margin-bottom: 16px;">
- <div class="search_thing">
- <div class="search_label">鏍峰搧鍚嶇О锛�</div>
- <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
- v-model="addInfo.sampleName"></el-input></div>
- </div>
- </el-col>
- <el-col :span="24" style="margin-bottom: 16px;">
- <div class="search_thing">
- <div class="search_label">鏍峰搧缂栧彿锛�</div>
- <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
- v-model="addInfo.sampleCode"></el-input></div>
- </div>
- </el-col>
- <el-col :span="24" style="margin-bottom: 16px;">
- <div class="search_thing">
- <div class="search_label">渚涙牱鍗曚綅锛�</div>
- <div class="search_input">
+ <el-dialog title="鏂板" :visible.sync="addDialogVisible" width="400px" @close="closeAddDialogVisible">
+ <el-form ref="addInfo" :model="addInfo" :rules="rules" label-width="120px">
+ <el-row>
+ <el-col :span="24">
+ <el-form-item label="鏍峰搧鍚嶇О" prop="sampleName">
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable
+ v-model="addInfo.sampleName"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="24">
+ <el-form-item label="鏍峰搧缂栧彿" prop="sampleCode">
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable
+ v-model="addInfo.sampleCode"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="24">
+ <el-form-item label="渚涙牱鍗曚綅" prop="sampleSupplier">
<el-select v-model="addInfo.sampleSupplier" size="small">
<el-option :label="item.company" :value="item.company" v-for="(item, index) in customPageList"
- :key="item.id"></el-option>
+ :key="item.id"></el-option>
</el-select>
- </div>
- </div>
- </el-col>
- <el-col :span="24" style="margin-bottom: 16px;">
- <div class="search_thing">
- <div class="search_label">鏁伴噺锛�</div>
- <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
- v-model="addInfo.num"></el-input>
- </div>
- </div>
- </el-col>
- <el-col :span="24" style="margin-bottom: 16px;">
- <div class="search_thing">
- <div class="search_label">澶勭悊鏂瑰紡锛�</div>
- <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
- v-model="addInfo.dealMethod"></el-input></div>
- </div>
- </el-col>
- <el-col :span="24" style="margin-bottom: 16px;">
- <div class="search_thing">
- <div class="search_label">鏃堕棿锛�</div>
- <div class="search_input">
+ </el-form-item>
+ </el-col>
+ <el-col :span="24">
+ <el-form-item label="鏁伴噺" prop="num">
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable
+ v-model="addInfo.num"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="24">
+ <el-form-item label="澶勭悊鏂瑰紡" prop="dealMethod">
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable
+ v-model="addInfo.dealMethod"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="24">
+ <el-form-item label="鏃堕棿" prop="dealTime">
<el-date-picker v-model="addInfo.dealTime" type="date" size="small" placeholder="閫夋嫨鏃ユ湡" format="yyyy-MM-dd"
- value-format="yyyy-MM-dd" style="width: 100%;">
+ value-format="yyyy-MM-dd" style="width: 100%;">
</el-date-picker>
- </div>
- </div>
- </el-col>
- </el-row>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
<span slot="footer" class="dialog-footer">
- <el-button @click="addDialogVisible = false">鍙� 娑�</el-button>
+ <el-button @click="closeAddDialogVisible">鍙� 娑�</el-button>
<el-button type="primary" @click="submitAdd" :loading="addLoading">纭� 瀹�</el-button>
</span>
</el-dialog>
+ <!-- 鏂板鍘嗗彶 -->
+ <el-dialog title="鏂板" :visible.sync="addDialogVisibleDeal" width="400px" @close="closeDiaDeal">
+ <el-form ref="addInfoDeal" :model="addInfoDeal" :rules="rulesDeal" label-width="80px">
+ <el-row>
+ <el-col :span="24">
+ <el-form-item label="鏈堜唤" prop="month">
+ <el-date-picker v-model="addInfoDeal.month" type="month" size="small" placeholder="閫夋嫨鏈堜唤" format="yyyy-MM"
+ value-format="yyyy-MM" style="width: 100%;">
+ </el-date-picker>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="closeDiaDeal">鍙� 娑�</el-button>
+ <el-button type="primary" @click="submitAddDeal" :loading="addLoading">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
<!-- 璇︽儏/涓嬭浇/瀹℃牳/鎵瑰噯 -->
- <el-dialog :title="title0" :visible.sync="lookDialogVisible" width="800px" :class="{ downPdf: title0 == '涓嬭浇' }"
+ <el-dialog :title="title0" :visible.sync="lookDialogVisible" width="400px" :class="{ downPdf: title0 == '涓嬭浇' }"
:modal="title0 != '涓嬭浇'" top="5vh">
- <filePreview v-if="lookDialogVisible" :fileUrl="javaApi + '/word/' + currentInfo.url" :currentFile="{}"
- style="max-height: 70vh;overflow-y: auto;" />
+ <span>鏄惁閫氳繃{{title0}}锛�</span>
<span slot="footer" class="dialog-footer" v-if="title0 == '瀹℃牳' || title0 == '鎵瑰噯'">
<el-button @click="submitCheck('涓嶉�氳繃')" :loading="noCheckLoading">涓嶉�氳繃</el-button>
<el-button type="primary" @click="submitCheck('閫氳繃')" :loading="checkLoading">閫� 杩�</el-button>
@@ -111,7 +119,7 @@
checkProcessTotaldeal,
ratifyProcessTotaldeal,
delProcessDeal,
- pageProcessTotaldeal,
+ pageProcessTotaldeal, getProcessDeal, addProcessTotaldeal,
} from "@/api/cnas/process/sampleDisposal";
export default {
name: 'SampleDisposal',
@@ -121,25 +129,40 @@
},
data() {
return {
- activeName: '濉啓',
title: '鏂板',
addDialogVisible: false,
addLoading: false,
outLoading: false,
editDialogVisible: false,
+ queryParams: {},
+ submitState: '',
lookDialogVisible: false,
title0: '鏌ョ湅',
noCheckLoading: false,
checkLoading: false,
// 鍘嗗彶鍒楄〃
addInfo: {},//鏂板鏍峰搧
+ addInfoDeal: {
+ month: ''
+ },//鏂板鏍峰搧
+ addDialogVisibleDeal: false,
+ rules: {
+ sampleName: [{ required: true, message: '璇峰~鍐欐牱鍝佸悕绉�', trigger: 'blur' }],
+ sampleCode: [{ required: true, message: '璇峰~鍐欐牱鍝佺紪鍙�', trigger: 'blur' }],
+ sampleSupplier: [{ required: true, message: '璇烽�夋嫨渚涙牱鍗曚綅', trigger: 'change' }],
+ num: [{ required: true, message: '璇峰~鍐欐暟閲�', trigger: 'blur' }],
+ dealMethod: [{ required: true, message: '璇峰~鍐欏鐞嗘柟寮�', trigger: 'blur' }],
+ dealTime: [{ required: true, message: '璇烽�夋嫨鏃堕棿', trigger: 'change' }],
+ },
+ rulesDeal: {
+ month: [{ required: true, message: '璇烽�夋嫨鏈堜唤', trigger: 'change' }],
+ },
customPageList: [],
currentInfo: {
arr: []
},//鏌ョ湅鐨勮鎯�
outPower: false,
addPower: false,
- queryParams: {},
tableData: [],
column: [
{ label: "鏍峰搧鍚嶇О", prop: "sampleName" },
@@ -150,15 +173,17 @@
{ label: "鏃堕棿", prop: "dealTime" },
{
dataType: "action",
- fixed: "right",
label: "鎿嶄綔",
operation: [
{
name: "缂栬緫",
type: "text",
clickFun: (row) => {
- this.handleAdd0(row);
+ this.handleAdd('edit',row);
},
+ disabled: (row) => {
+ return this.submitState === '宸叉彁浜�'
+ }
},
{
name: "鍒犻櫎",
@@ -166,27 +191,74 @@
clickFun: (row) => {
this.handleDelete(row);
},
+ disabled: (row) => {
+ return this.submitState === '宸叉彁浜�'
+ }
},
],
},
],
- page: {
- total: 0,
- size: 10,
- current: 0,
- },
tableLoading: false,
queryParams0: {},
tableData0: [],
column0: [
{ label: "鏈堜唤", prop: "month" },
- { label: "鎬绘暟閲�", prop: "totalNum" },
{ label: "鎻愪氦浜�", prop: "submitUserName" },
+ {
+ dataType: 'tag',
+ label: '鎻愪氦鐘舵��',
+ prop: 'submitState',
+ formatData: (params) => {
+ return params
+ },
+ formatType: (params) => {
+ if (params === '寰呮彁浜�') {
+ return 'danger';
+ } else if (params === '宸叉彁浜�') {
+ return 'success';
+ } else {
+ return null;
+ }
+ }
+ },
{ label: "瀹℃牳浜�", prop: "examineUserName" },
+ {
+ dataType: 'tag',
+ label: '瀹℃牳鐘舵��',
+ prop: 'examineState',
+ formatData: (params) => {
+ return params
+ },
+ formatType: (params) => {
+ if (params === '涓嶉�氳繃') {
+ return 'danger';
+ } else if (params === '閫氳繃') {
+ return 'success';
+ } else {
+ return null;
+ }
+ }
+ },
{ label: "鎵瑰噯浜�", prop: "ratifyUserName" },
{
+ dataType: 'tag',
+ label: '鎵瑰噯鐘舵��',
+ prop: 'ratifyState',
+ formatData: (params) => {
+ return params
+ },
+ formatType: (params) => {
+ if (params === '涓嶉�氳繃') {
+ return 'danger';
+ } else if (params === '閫氳繃') {
+ return 'success';
+ } else {
+ return null;
+ }
+ }
+ },
+ {
dataType: "action",
- fixed: "right",
label: "鎿嶄綔",
operation: [
{
@@ -241,14 +313,13 @@
],
page0: {
total: 0,
- size: 10,
- current: 0,
+ size: 20,
+ current: 1,
},
+ operationType: ''
};
},
mounted() {
- this.getCustomPageList()
- this.getList()
this.getList0()
},
methods: {
@@ -262,27 +333,6 @@
}).catch(err => { });
},
handleDown() { },
- getList() {
- this.tableLoading = true;
- let param = { ...this.queryParams, ...this.page };
- delete param.total;
- pageProcessDeal({ ...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.queryParams0 = {};
this.page0.current = 1;
@@ -292,9 +342,10 @@
this.page0.current = 1;
this.getList0();
},
+ // 鏌ヨ鍏ㄩ儴璁板綍
getList0() {
this.tableLoading = true;
- let param = { ...this.queryParams0, ...this.page };
+ let param = { ...this.queryParams0, ...this.page0 };
delete param.total;
pageProcessTotaldeal({ ...param })
.then((res) => {
@@ -313,57 +364,40 @@
this.page0.size = limit;
this.getList0();
},
- // 濉啓
- // handleAdd(row){
- // this.componentData0.entity.totaldealId = row.id
- // this.editDialogVisible = true
- // },
- // 鎵撳紑鏂板鐣岄潰
- handleAdd0(row) {
- if (row) {
- this.addInfo = this.HaveJson(row)
- this.title = '缂栬緫'
- } else {
- this.title = '鏂板'
- this.addInfo = {}
- }
- this.addDialogVisible = true
+ // 鎵撳紑鏂板鍘嗗彶鐣岄潰
+ handleAdd0() {
+ this.addDialogVisibleDeal = true
+ this.addInfoDeal.month = ''
},
- // 鎻愪氦鏂板
- submitAdd() {
- if (this.addInfo.id) {
- // 缂栬緫
- this.addLoading = true
- doProcessDeal({
- totaldealId: this.queryParams.totaldealId,
- ...this.addInfo
- }).then(res => {
- this.addLoading = false
- this.addDialogVisible = false
- this.$message({
- type: 'success',
- message: '缂栬緫鎴愬姛!'
+ closeAddDialogVisible() {
+ this.$refs['addInfo'].resetFields();
+ this.addDialogVisible = false
+ },
+ // 鎻愪氦鏂板-鍘嗗彶
+ submitAddDeal () {
+ this.$refs.addInfoDeal.validate(valid => {
+ if (valid) {
+ // 鏂板
+ this.addLoading = true
+ addProcessTotaldeal({
+ ...this.addInfoDeal
+ }).then(res => {
+ this.addLoading = false
+ this.addDialogVisibleDeal = false
+ this.$message({
+ type: 'success',
+ message: '鏂板鎴愬姛!'
+ });
+ this.getList0()
+ }).catch(err => {
+ this.addLoading = false
});
- this.page.current = 0;
- this.getList();
- }).catch(err => { });
- } else {
- // 鏂板
- this.addLoading = true
- addProcessDeal({
- totaldealId: this.queryParams.totaldealId,
- ...this.addInfo
- }).then(res => {
- this.addLoading = false
- this.addDialogVisible = false
- this.$message({
- type: 'success',
- message: '鏂板鎴愬姛!'
- });
- this.page.current = 0;
- this.getList();
- }).catch(err => { });
- }
+ }
+ })
+ },
+ closeDiaDeal() {
+ this.$refs['addInfoDeal'].resetFields();
+ this.addDialogVisibleDeal = false
},
// 鎻愪氦
handleSubmit(row) {
@@ -385,36 +419,86 @@
},
// 鏌ョ湅
handleLook(row) {
- this.activeName = '濉啓'
- this.queryParams.totaldealId = row.id
+ this.queryParams.id = row.id
+ this.submitState = row.submitState
this.$nextTick(() => {
- this.page.current = 1;
+ this.editDialogVisible = true
this.getList();
})
},
- commonFun(row, callbanck) {
- this.currentInfo = row
- this.queryParams.totaldealId = row.id
- pageProcessDeal({
- current: -1,
- size: -1, ...this.queryParams
- }).then(res => {
- this.lookDialogVisible = true
- this.currentInfo.arr = res.data.records
- if (callbanck) {
- callbanck()
+ getList() {
+ this.tableLoading = true;
+ let param = { ...this.queryParams };
+ getProcessDeal({ ...param })
+ .then((res) => {
+ this.tableLoading = false;
+ if (res.code === 200) {
+ this.tableData = res.data;
+ }
+ })
+ .catch((err) => {
+ this.tableLoading = false;
+ });
+ },
+ // 鎵撳紑鏂板璇︽儏寮规
+ handleAdd(type, row) {
+ this.addDialogVisible = true
+ this.getCustomPageList()
+ this.operationType = type
+ if (row) {
+ this.addInfo = {...row}
+ }
+ },
+ // 鎻愪氦-璇︽儏
+ submitAdd() {
+ this.$refs.addInfo.validate(valid => {
+ if (valid) {
+ this.addLoading = true
+ addProcessDeal({
+ totaldealId: this.queryParams.id,
+ ...this.addInfo
+ }).then(res => {
+ this.addLoading = false
+ this.addDialogVisible = false
+ this.$message({
+ type: 'success',
+ message: '鏂板鎴愬姛!'
+ });
+ this.getList()
+ }).catch(err => {
+ this.addLoading = false
+ });
}
- }).catch(err => { });
+ })
+ },
+ // 鎻愪氦淇敼璇︽儏
+ handleEdit() {
+ if (type === 'submit') {
+ doProcessDeal({
+ id: row.id,
+ ...row
+ }).then(res => {
+ this.$message({
+ type: 'success',
+ message: '缂栬緫鎴愬姛!'
+ });
+ this.getList();
+ }).catch(err => { });
+ }
},
// 瀹℃牳
handleCheck(row) {
this.title0 = '瀹℃牳'
- this.commonFun(row)
+ this.lookDialogVisible = true
+ this.currentInfo = row
+ this.queryParams.id = row.id
},
// 鎵瑰噯
handleApproval(row) {
this.title0 = '鎵瑰噯'
- this.commonFun(row)
+ this.lookDialogVisible = true
+ this.currentInfo = row
+ this.queryParams.id = row.id
},
// 鎻愪氦瀹℃牳/鎵瑰噯
submitCheck(state) {
@@ -467,55 +551,19 @@
confirmButtonText: "纭畾",
cancelButtonText: "鍙栨秷",
type: "warning",
- })
- .then(() => {
- delProcessDeal({ id: row.id }).then((res) => {
- this.$message.success("鍒犻櫎鎴愬姛");
- this.page.current = 0;
- this.getList();
- });
- })
- .catch(() => { });
+ }).then(() => {
+ delProcessDeal({ id: row.id }).then((res) => {
+ this.$message.success("鍒犻櫎鎴愬姛");
+ this.getList();
+ });
+ }).catch(() => { });
},
},
}
</script>
<style scoped>
-.search_thing {
- width: 350px;
- display: flex;
- align-items: center;
-}
-
-.search_label {
- width: 110px;
- font-size: 14px;
- text-align: right;
-}
-
-.search_input {
- width: calc(100% - 110px);
-}
-
-.downPdf {
- opacity: 0 !important;
-}
-
-.tables td {
- height: 40px;
- width: 100px;
- text-align: center;
- font-size: 14px;
- word-wrap: break-word;
- white-space: normal;
-}
-
-.user-info .el-button {
- margin: 0;
-}
-
->>>.el-tabs__content {
- height: 100%;
+>>>.el-dialog__body {
+ padding-top: 10px;
}
</style>
--
Gitblit v1.9.3