From 437b40045ce48b28e2817b0f9f9998d3a881ebe1 Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期二, 05 九月 2023 16:39:02 +0800
Subject: [PATCH] modified: src/components/experiment/template_testReport/index.vue modified: src/utils/GlobalClickMixin.js modified: src/views/experiment/passRateStatistics/index.vue modified: src/views/experiment/planAssignments/plan.vue modified: src/views/laboratory/measure/index.vue modified: src/views/laboratory/personnel/index.vue modified: src/views/standardLibrary/index.vue
---
src/views/inspectionManagement/commissionInspection/index.vue | 368 ++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 326 insertions(+), 42 deletions(-)
diff --git a/src/views/inspectionManagement/commissionInspection/index.vue b/src/views/inspectionManagement/commissionInspection/index.vue
index a10086e..b6dec7b 100644
--- a/src/views/inspectionManagement/commissionInspection/index.vue
+++ b/src/views/inspectionManagement/commissionInspection/index.vue
@@ -24,11 +24,20 @@
</el-form-item>
</el-form>
<el-form>
- <el-popover placement="left" width="130" trigger="click">
+ <el-popover placement="left" width="350" trigger="click">
<div class="vue_qr_div">
- <span style="color: #0078ff;">鎵弿浜岀淮鐮�<br />鑾峰彇濮旀墭鍗�</span>
- <vue-qr :text="viewId" :size="100" :margin="0" style="margin-top: 10px;">
- </vue-qr>
+ <el-row>
+ <el-col>
+ <el-input v-model="view" readonly size="medium" style="width: 250px;margin-right: 10px;"></el-input>
+ <el-button size="small" type="primary" v-if="viewId==null" @click="viewDia=true">鐢熸垚</el-button>
+ <el-button size="small" type="primary" v-else-if="viewId!=null" @click="copy">澶嶅埗</el-button>
+ </el-col>
+ </el-row>
+ <el-row style="margin-top: 10px;">
+ <el-col v-if="viewId==null">褰撳墠閾炬帴宸茶繃鏈燂紝璇风偣鍑荤敓鎴愭寜閽噸鏂扮敓鎴�</el-col>
+ <el-col
+ v-else-if="viewId!=null">褰撳墠閾炬帴灏嗗湪{{(parseInt(viewTime)/60/60)>1?(parseInt(viewTime)/60/60).toFixed(1)+'灏忔椂':Math.round(parseInt(viewTime)/60)+'鍒嗛挓'}}鍚庤繃鏈�</el-col>
+ </el-row>
</div>
<el-button slot="reference" class="rightBtn" type="primary" @click="goToaddCommision">鏂板濮旀墭</el-button>
</el-popover>
@@ -44,32 +53,31 @@
</el-radio-group>
</div>
<div class="generateInsp">
- <el-button type="primary" size="mini" icon="el-icon-document"
+ <el-button @click="addReportBtn" type="primary" size="mini" icon="el-icon-document"
style="background-color: rgb(1, 102, 226);">鐢熸垚鎶ユ鍗�</el-button>
</div>
</div>
<div class="table-box">
- <el-table ref="commisionTable" :max-height="800" :cell-style="{textAlign: 'center'}"
- :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}"
- :data="commisionTable" style="width: 100%">
- <el-table-column type="selection" min-width="10%" />
+ <el-table ref="commisionTable" :max-height="800" :cell-style="{textAlign: 'left'}"
+ :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'left'}"
+ :data="commisionTable" @selection-change="handleSelectionChange" style="width: 100%">
+ <el-table-column type="selection" :selectable="checkSelect" min-width="10%" />
<el-table-column type="index" label="搴忓彿" min-width="10%" />
<el-table-column prop="entrust_coding" label="濮旀墭缂栧彿" min-width="10%" />
<el-table-column prop="entrusted" label="濮旀墭鍗曚綅" min-width="12%" />
- <el-table-column prop="samples_number" label="鏍峰搧缂栧彿" min-width="8%" />
+ <el-table-column prop="samples_number" label="鏍峰搧鏁伴噺" min-width="8%" />
<el-table-column prop="sample_name" label="鏍峰搧鍚嶇О" min-width="8%" />
- <el-table-column prop="specifications_models" label="瑙勬牸鍨嬪彿" min-width="12%" />
- <el-table-column prop="dateSurvey" label="閫佽揪鏃堕棿" min-width="8%" />
+ <el-table-column prop="speName" label="瑙勬牸鍨嬪彿" min-width="12%" />
+ <el-table-column prop="inspectionTime" label="閫佹牱鏃堕棿" min-width="8%" />
<el-table-column prop="completionDeadline" label="瀹屾垚鏈熼檺" min-width="8%" />
<el-table-column prop="contacts" label="濮旀墭缂栧埗浜�" min-width="8%" />
- <el-table-column prop="inspectionTime" label="妫�楠屾棩鏈�" min-width="8%" />
<el-table-column prop="inspection_status" label="鐘舵��" min-width="8%">
<template slot-scope="scope">
- <div v-if="scope.row.inspection_status === 1">
- <span style="color: green;">宸叉娴�</span>
+ <div v-if="scope.row.inspection_status === 0">
+ <span style="color: green;">宸叉姤妫�</span>
</div>
<div v-else>
- <span style="color: red;">寰呮娴�</span>
+ <span style="color: red;">鏈姤妫�</span>
</div>
</template>
</el-table-column>
@@ -93,6 +101,57 @@
<div v-else>
<router-view />
</div>
+ <el-dialog title="閾炬帴鏃堕暱璁剧疆" :visible.sync="viewDia" width="30%">
+ <div>
+ <el-row style="line-height: 46px;">
+ <el-col :span="6" style="font-size: 14px;text-align: right;">鏃堕暱璁剧疆锛�</el-col>
+ <el-col :span="14" :offset="1">
+ <el-select v-model="viewTime" size="medium">
+ <el-option label="1 澶�" :value="1"></el-option>
+ <el-option label="2 澶�" :value="2"></el-option>
+ <el-option label="3 澶�" :value="3"></el-option>
+ <el-option label="4 澶�" :value="4"></el-option>
+ <el-option label="5 澶�" :value="5"></el-option>
+ <el-option label="6 澶�" :value="6"></el-option>
+ <el-option label="1 鍛�" :value="7"></el-option>
+ </el-select>
+ </el-col>
+ </el-row>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button type="primary" @click="getViewId()">鎻� 浜�</el-button>
+ <el-button @click="viewDia = false">鍙� 娑�</el-button>
+ </span>
+ </el-dialog>
+ <!-- 闅愯棌鍩熻緭鍏ユ鐢ㄦ潵澶嶅埗 -->
+ <input id="copyContext" style="position: absolute;top: 0;left: 0;opacity: 0;z-index: -10;" />
+ <el-dialog title="閫夋嫨鏃ユ湡" :visible.sync="addReportDialog" width="60%">
+ <el-form :model="addInspectionForm" :rules="addInspectionFormRules" ref="addInspectionForm">
+ <el-form-item label="妫�楠屾棩鏈�" label-width="100px" prop="inspectionDate">
+ <el-date-picker v-model="addInspectionForm.inspectionDate" type="daterange" value-format="yyyy-MM-dd"
+ range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡">
+ </el-date-picker>
+ </el-form-item>
+ <el-form-item label="褰撳墠鐗堟湰" label-width="100px" prop="version">
+ <el-select @change="changeVersionFun" v-model="addInspectionForm.version" placeholder="璇烽�夋嫨鐗堟湰">
+ <el-option v-for="item in chooseVersion" :key="item.value" :label="item.label" :value="item.value" ></el-option>
+ </el-select>
+ </el-form-item>
+ </el-form>
+ <el-table
+ style="width:90%;margin-left:5%" :data="standardLibraryData" row-key="id" border
+ default-expand-all :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
+ <el-table-column type="index" width="50px" label="搴忓彿"></el-table-column>
+ <el-table-column label="椤圭洰鍚嶇О" prop="name" sortable></el-table-column>
+ <el-table-column prop="unit" label="鍗曚綅" sortable></el-table-column>
+ <el-table-column label="鏍囧噯鍊�" prop="required" sortable></el-table-column>
+ <el-table-column prop="internal" label="鍐呮帶鍊�" sortable></el-table-column>
+ </el-table>
+ <div slot="footer" class="dialog-footer">
+ <el-button @click="resetForm('addInspectionForm')">鍙� 娑�</el-button>
+ <el-button type="primary" @click="confirmBtn('addInspectionForm')">纭� 瀹�</el-button>
+ </div>
+ </el-dialog>
</div>
</template>
@@ -100,15 +159,30 @@
import {
getCommisionList,
getViewUUID,
- selectViewUUID
+ selectViewUUID,
+ delLink,
+ chooseVersion,
+ lookProByVer,
+ addInspect
} from '@/api/inspection/commisioninspection'
- import vueQr from 'vue-qr'
export default {
- components: {
- vueQr
- },
data() {
return {
+ standardLibraryData:[],
+ chooseVersion: [],
+ addInspectionForm: {
+ inspectionDate: [],
+ version: null
+ },
+ addInspectionFormRules: {
+ inspectionDate: [{
+ required: true,
+ message: '璇烽�夋嫨鏃ユ湡鍖洪棿',
+ trigger: 'change'
+ }],
+ },
+ addReportDialog: false,
+ checkData: [],
form: [],
searchData: {
code: '',
@@ -119,7 +193,7 @@
value: '1',
label: '閮ㄩ棬1'
}],
- radioValue: 0,
+ radioValue: null,
commisionTable: [{
specifications_models: "GGXH-AAAAA",
inspectionTime: "2023-08-03",
@@ -135,15 +209,15 @@
}],
conditionsOptions: [{
label: '鍏ㄩ儴',
- value: 0
+ value: null
},
{
label: '宸叉楠�',
- value: 1
+ value: 0
},
{
label: '寰呮楠�',
- value: 2
+ value: 1
}
],
currentPage: 1,
@@ -151,7 +225,10 @@
total: 100,
showDetail: false,
day: 1,
- viewId: ''
+ view: null,
+ viewId: null,
+ viewTime: 1,
+ viewDia: false
}
},
created() {
@@ -159,11 +236,129 @@
},
updated() {
if (this.$router.currentRoute.name === 'AddCommision') {
- // console.log(this.$router.currentRoute.name)
this.showDetail = true
}
},
methods: {
+ resetForm(formName) {
+ this.addInspectionForm.inspectionDate = [],
+ this.$refs[formName].resetFields();
+ this.addReportDialog = false
+ },
+ checkSelect(row) {
+ if (row.type === 1) {
+ return false;
+ } else {
+ return true;
+ }
+ },
+ handleSelectionChange(val) {
+ if (val.length > 1) {
+ let data = val.pop();
+ this.$refs.commisionTable.clearSelection();
+ this.$refs.commisionTable.toggleRowSelection(data);
+ this.checkData = data;
+ }else{
+ this.checkData = val;
+ }
+ },
+ //鐢熸垚鎶ユ鍗曠‘璁ゆ寜閽�
+ confirmBtn(formName) {
+ this.$refs[formName].validate((valid)=>{
+ if(valid){
+ let dateArr = this.addInspectionForm.inspectionDate;
+ //娣诲姞鎶ユ鍗�
+ let val = this.checkData[0];
+ let obj = {
+ "endTime": dateArr[1],
+ "mcode":"mcode",
+ "formTime": val.inspectionTime,
+ "id": val.id,
+ "name": val.sample_name,
+ "num": val.samples_number,
+ "specifications": val.speName,
+ "startTime": dateArr[0],
+ "supplier": val.entrusted,
+ "type": 2,
+ // "unit": "mm",
+ "version": this.addInspectionForm.version
+ }
+ this.createReport(obj);
+ this.addReportDialog = false;
+ }
+ });
+ },
+ //鐢熸垚鎶ユ鍗曡姹�
+ async createReport(param) {
+ await addInspect(param).then(res =>{
+ this.search();
+ this.$message.success('鎶ユ鎴愬姛')
+ this.$router.push(`/experiment/Viewdetails/${res.data}`)
+ }).catch(()=>{
+ this.$message.error('鎶ユ澶辫触')
+ });
+ },
+ //鐢熸垚鎶ユ鍗曟寜閽�
+ addReportBtn() {
+ if (this.checkData.length < 1) {
+ this.$message.error("璇烽�夋嫨涓�鏉℃暟鎹�!");
+ } else {
+ if (this.checkData.length > 1) {
+ this.$message.error("鏈�澶氶�夋嫨涓�鏉℃暟鎹�!");
+ } else {
+ let mcode = this.checkData[0].entrust_coding;
+ let name = this.checkData[0].sample_name;
+ let specifications = this.checkData[0].speName;
+ let id = this.checkData[0].id;
+ this.getChooseVersionFun(mcode,name,specifications,id);
+ this.addReportDialog = true;
+ }
+ }
+ },
+ changeVersionFun(){
+ let mCode = this.checkData[0].entrust_coding;
+ let name = this.checkData[0].sample_name;
+ let specifications = this.checkData[0].speName;
+ let version = this.addInspectionForm.version;
+ let id = this.checkData[0].id;
+ this.getProByVersion(mCode,name,specifications,version,id);
+ },
+ //鑾峰彇鐗堟湰涓嬬殑鏍囧噯搴撴暟鎹�
+ async getProByVersion(mCode,name,specifications,version,id){
+ var vm = this;
+ await lookProByVer({
+ id : id,
+ mcode : mCode,
+ name : name,
+ specifications : specifications,
+ version: version
+ }).then((res)=>{
+ var data = res.data;
+ for(var i=0;i<data.length;i++){
+ data[i].id = "0" + i;
+ }
+ vm.standardLibraryData = res.data;
+ })
+ },
+ //鑾峰彇鐗堟湰鍒楄〃
+ async getChooseVersionFun(mCode,name,specifications,id){
+ var vm = this;
+ this.chooseVersion = [];
+ await chooseVersion({
+ id : id,
+ name : name,
+ specifications : specifications
+ }).then((res)=>{
+ vm.getProByVersion(mCode,name,specifications,res.data[0],id);
+ for(let i=0;i<res.data.length;i++){
+ vm.chooseVersion.push({
+ value: res.data[i],
+ label: "V"+res.data[i]
+ });
+ }
+ vm.addInspectionForm.version = res.data[0];
+ });
+ },
async getCommisionList() {
const res = await getCommisionList({
pageNo: this.currentPage,
@@ -171,7 +366,6 @@
})
this.commisionTable = res.data.row
this.total = res.data.total
- // console.log(res)
// 鑾峰彇鎵�鏈夌殑濮旀墭鍗曚綅鍚嶇О
const allDepartmentNames = [...new Set(this.commisionTable.map(item => item.entrusted))]
// 灏哸llDepartmentNames杞崲涓簅ptions闇�瑕佺殑鏍煎紡
@@ -203,11 +397,9 @@
inspectionStatus: this.radioValue
})
}
- // console.log(res)
this.commisionTable = res.data.row
this.total = res.data.total
},
-
// 閲嶇疆鏂规硶
reset() {
// 閲嶇疆鎼滅储鏉′欢
@@ -220,24 +412,29 @@
},
async radioclick() {
// 澶勭悊鐐瑰嚮radio鐨勬椂闂�
- console.log('radioValue', this.radioValue)
if (this.radioValue === 0) {
- this.getCommisionList()
- } else {
const res = await getCommisionList({
pageNo: this.currentPage,
pageSize: this.pageSize,
inspectionStatus: this.radioValue
})
- // console.log(res)
this.commisionTable = res.data.row
this.total = res.data.total
+ } else if(this.radioValue === 1) {
+ const res = await getCommisionList({
+ pageNo: this.currentPage,
+ pageSize: this.pageSize,
+ inspectionStatus: this.radioValue
+ })
+ this.commisionTable = res.data.row
+ this.total = res.data.total
+ }else{
+ this.getCommisionList();
}
},
// 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣
async handleSizeChange(val) {
- // console.log(`姣忛〉 ${val} 鏉)
this.currentPage = 1
this.pageSize = val
if (this.radioValue === 0) {
@@ -254,7 +451,6 @@
},
// 褰撳墠椤垫敼鍙樻椂瑙﹀彂 璺宠浆鍏朵粬椤�
async handleCurrentChange(val) {
- // console.log(`褰撳墠椤�: ${val}`)
this.currentPage = val
if (this.radioValue === 0) {
this.getCommisionList()
@@ -269,28 +465,115 @@
}
},
goToaddCommision() {
- // this.$router.push('/inspectionManagement/commissionInspection/addCommision')
// this.showDetail = true
selectViewUUID({
day: this.day
}).then(res => {
+ this.view = `${this.vueIp}addCommision/${res.data.id}`
+ this.viewId = res.data.id
+ this.viewTime = res.data.time
+ })
+ },
+ getViewId() {
+ getViewUUID({
+ day: this.viewTime == null ? 1 : this.viewTime
+ }).then(res => {
this.viewId = res.data
+ this.view = `${this.vueIp}addCommision/${res.data.id}`
+ this.viewDia = false
+ this.$message.success('閾炬帴宸茬敓鎴愶紝鐐瑰嚮澶嶅埗鎸夐挳杩涜澶嶅埗')
+ })
+ },
+ copy() {
+ document.getElementById('copyContext').value = this.view
+ const input = document.querySelector('#copyContext');
+ input.select()
+ if (document.execCommand('copy')) {
+ this.$message.success('宸插鍒跺埌鍓创鏉�')
+ }
+ },
+ handleClick(row){
+ delLink({
+ id: row.id
+ }).then(res=>{
+ this.$message.success('鍒犻櫎鎴愬姛')
+ this.getCommisionList()
})
}
}
}
</script>
-<style scoped>
+<style scoped lang="scss">
.top-bar {
margin: -25px -15px;
background: #fff;
display: flex;
justify-content: space-between;
- padding: 5px 24px 0px 24px;
+ padding: 24px 24px 0px 24px;
.sermargin {
margin-right: 60px;
+ }
+
+ .rightForm {
+ display: flex;
+ justify-content: space-between;
+ /* background-color: #bfa; */
+ height: 40px;
+ line-height: 40px;
+
+ >div {
+ padding: 0px 10px;
+ padding-bottom: 10px;
+ border: 1px solid rgb(8, 156, 230);
+ margin-right: 10px;
+ /* height: 40px;
+ line-height: 40px; */
+ }
+
+ .rightBtn {
+ background-color: rgb(1, 102, 226);
+ }
+ }
+ }
+
+ .library-table {
+ background-color: #fff;
+ flex: 1;
+ margin: 0px -15px;
+ margin-top: 40px;
+ display: flex;
+ flex-direction: column;
+
+ .table-header {
+ padding: 20px;
+ display: flex;
+ justify-content: space-between;
+
+ .el-form-item {
+ margin-bottom: 30px !important;
+ }
+ }
+
+ .table-box {
+ padding: 0px 20px;
+ margin-top: 0px;
+ flex: 1;
+ background: #fff;
+ /* padding: 20px 20px 10px 20px; */
+ display: flex;
+ flex-direction: column;
+
+ .el-table {
+ flex: 1;
+ }
+
+ >div:nth-child(2) {
+ display: flex;
+ justify-content: end;
+ margin: 10px 0;
+ }
}
}
@@ -336,8 +619,9 @@
}
}
}
-
- .vue_qr_div{
+
+ .vue_qr_div {
text-align: center;
+ color: #0166e2;
}
-</style>
\ No newline at end of file
+</style>
--
Gitblit v1.9.3