From eb8a6c6d3dcec5f49803669d69b1c22f70583640 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期一, 10 三月 2025 10:41:51 +0800
Subject: [PATCH] 完成设施和环境条件搬迁
---
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/three-wastes-treatment.vue | 206 ++
src/views/index.vue | 337 ++-
src/assets/styles/index.scss | 8
src/api/cnas/resourceDemand/facilitiesEnvironment/facilitiesAndEnvironment.js | 254 +++
src/views/CNAS/resourceDemand/facilitiesEnvironment/index.vue | 51
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/lightning-protection-detection.vue | 231 ++
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/power-supply-stability.vue | 360 ++++
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/illuminance-recording.vue | 359 ++++
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/Personnel-management.vue | 217 ++
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions.vue | 51
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/temperature-humidity-record.vue | 428 +++++
src/api/cnas/resourceDemand/facilitiesEnvironment/internalWastes.js | 56
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/Personnel-management-dia.vue | 212 ++
src/api/cnas/resourceDemand/foreignRegister/foreignRegister.js | 65
src/views/business/inspectionOrder/add.vue | 874 ++--------
src/views/business/inspectionOrder/index.vue | 779 ++-------
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/three-wastes-dialog.vue | 189 ++
17 files changed, 3,292 insertions(+), 1,385 deletions(-)
diff --git a/src/api/cnas/resourceDemand/facilitiesEnvironment/facilitiesAndEnvironment.js b/src/api/cnas/resourceDemand/facilitiesEnvironment/facilitiesAndEnvironment.js
new file mode 100644
index 0000000..6709093
--- /dev/null
+++ b/src/api/cnas/resourceDemand/facilitiesEnvironment/facilitiesAndEnvironment.js
@@ -0,0 +1,254 @@
+import request from '@/utils/request'
+
+// 璁炬柦鍜岀幆澧冩潯浠惰姹�-鐢垫簮绋冲畾鎬ф煡璇�
+export function getLaboratoryFacilityPowerStablePage(query) {
+ return request({
+ url: '/fePowerStable/getLaboratoryFacilityPowerStablePage',
+ method: 'get',
+ params: query
+ })
+}
+
+// 閫氳繃璁惧鍒嗙被鑾峰彇璁惧鍒楄〃
+export function deviceScopeSearch(query) {
+ return request({
+ url: '/deviceScope/search',
+ method: 'get',
+ params: query
+ })
+}
+
+// 璁惧鏍戝舰
+export function treeDevice(query) {
+ return request({
+ url: '/deviceScope/treeDevice',
+ method: 'get',
+ params: query
+ })
+}
+
+//鑾峰彇鐢ㄦ埛鍒楄〃
+export function selectUserCondition(query) {
+ return request({
+ url: "/system/newUser/selectUserCondition",
+ method: "get",
+ params: query,
+ });
+}
+
+// 璁炬柦鍜岀幆澧冩潯浠惰姹�-鐢垫簮绋冲畾鎬ф柊澧�/淇敼
+export function addLaboratoryFacilityPowerStable(query) {
+ return request({
+ url: '/fePowerStable/addLaboratoryFacilityPowerStable',
+ method: 'post',
+ data: query
+ })
+}
+
+// 璁炬柦鍜岀幆澧冩潯浠�-璁炬柦鍜岀幆澧冩潯浠惰姹�-鐢垫簮绋冲畾鎬�-娴嬪畾閲� 鍒犻櫎
+export function deleteFeMeasuredQuantity(query) {
+ return request({
+ url: '/fePowerStable/deleteFeMeasuredQuantity',
+ method: 'delete',
+ params: query
+ })
+}
+
+// 璁炬柦鍜岀幆澧冩潯浠惰姹�-鐢垫簮绋冲畾鎬у垹闄�
+export function deleteLaboratoryFacilityPowerStable(query) {
+ return request({
+ url: '/fePowerStable/deleteLaboratoryFacilityPowerStable',
+ method: 'delete',
+ params: query
+ })
+}
+
+// 鐢垫簮绋冲畾鎬�-娴嬪畾閲� 鏍规嵁鐢垫簮绋冲畾鎬ф煡璇�
+export function getFeMeasuredQuantityService(query) {
+ return request({
+ url: "/fePowerStable/getFeMeasuredQuantityService",
+ method: "get",
+ params: query,
+ });
+}
+
+// 鐢垫簮绋冲畾鎬�-娴嬪畾閲� 瀵煎嚭
+export function exportFePowerStable(query) {
+ return request({
+ url: "/fePowerStable/exportFePowerStable",
+ method: "get",
+ responseType: "blob",
+ params: query,
+ });
+}
+
+// 璁炬柦鍜岀幆澧冩潯浠惰姹�-闃查浄妫�娴嬫煡璇�
+export function getLightningProtectionDetection(query) {
+ return request({
+ url: '/feLightningProtection/getLightningProtectionDetection',
+ method: 'get',
+ params: query
+ })
+}
+
+// 璁炬柦鍜岀幆澧冩潯浠惰姹�-闃查浄妫�娴嬫柊澧�/淇敼
+export function addLightningProtectionDetection(query) {
+ return request({
+ url: '/feLightningProtection/addLightningProtectionDetection',
+ method: 'post',
+ data: query,
+ headers: {
+ 'Content-Type': 'multipart/form-data' // 蹇呴』璁剧疆涓� multipart
+ }
+ })
+}
+
+// 璁炬柦鍜岀幆澧冩潯浠惰姹�-闃查浄妫�娴嬪垹闄�
+export function deleteLightningProtectionDetection(query) {
+ return request({
+ url: '/feLightningProtection/deleteLightningProtectionDetection',
+ method: 'delete',
+ params: query
+ })
+}
+
+// 璁炬柦鍜岀幆澧冩潯浠惰姹�-闃查浄妫�娴嬪鍑�
+export function exportOfLightningProtectionDetection(query) {
+ return request({
+ url: "/feLightningProtection/exportOfLightningProtectionDetection",
+ method: "get",
+ responseType: "blob",
+ params: query,
+ });
+}
+
+// 璁炬柦鍜岀幆澧冩潯浠惰姹�-鐓у害璁板綍琛�-妫�娴嬪尯鍩� 鏌ヨ
+export function getFeLightningProtection(query) {
+ return request({
+ url: '/feIllumination/getFeLightningProtection',
+ method: 'get',
+ params: query
+ })
+}
+
+// 璁炬柦鍜岀幆澧冩潯浠惰姹�-鐓у害璁板綍琛�-妫�娴嬪尯鍩� 鏂板/淇敼
+export function addFeLightningProtection(query) {
+ return request({
+ url: '/feIllumination/addFeLightningProtection',
+ method: 'post',
+ data: query,
+ })
+}
+
+// 璁炬柦鍜岀幆澧冩潯浠惰姹�-鐓у害璁板綍琛�-妫�娴嬪尯鍩� 鍒犻櫎
+export function deleteFeLightningProtection(query) {
+ return request({
+ url: '/feIllumination/deleteFeLightningProtection',
+ method: 'delete',
+ params: query
+ })
+}
+
+// 鐓у害璁板綍琛�-妫�娴嬪尯鍩� 鏍规嵁鐓у害璁板綍鏌ヨ
+export function getFeIlluminationDetectionArea(query) {
+ return request({
+ url: '/feIllumination/getFeIlluminationDetectionArea',
+ method: 'get',
+ params: query
+ })
+}
+
+// 鐓у害璁板綍琛�-妫�娴嬪尯鍩� 鍒犻櫎
+export function deleteFeIlluminationDetectionArea(query) {
+ return request({
+ url: '/feIllumination/deleteFeIlluminationDetectionArea',
+ method: 'delete',
+ params: query
+ })
+}
+
+// 鐓у害璁板綍琛�-妫�娴嬪尯鍩� 瀵煎嚭
+export function exportFeIllumination(query) {
+ return request({
+ url: "/feIllumination/exportFeIllumination",
+ method: "get",
+ responseType: "blob",
+ params: query,
+ });
+}
+
+// 璇曢獙鍖哄煙-鏌ヨ"
+export function getFeTempHumDate(query) {
+ return request({
+ url: '/feTempHumDate/getFeTempHumDate',
+ method: 'get',
+ params: query
+ })
+}
+
+// 璇曢獙鍖哄煙-鏂板/淇敼
+export function addFeTempHumDate(query) {
+ return request({
+ url: '/feTempHumDate/addFeTempHumDate',
+ method: 'post',
+ data: query,
+ })
+}
+
+// 璁炬柦鍜岀幆澧冩潯浠惰姹�-娓╂箍搴﹁褰曟煡璇�
+export function getFeTempHumRecordPage(query) {
+ return request({
+ url: '/feTempHumDate/getFeTempHumRecordPage',
+ method: 'get',
+ params: query
+ })
+}
+
+// 璁炬柦鍜岀幆澧冩潯浠惰姹�-娓╂箍搴﹁褰曟柊澧�/淇敼
+export function addFeTempHumRecord(query) {
+ return request({
+ url: '/feTempHumDate/addFeTempHumRecord',
+ method: 'post',
+ data: query,
+ })
+}
+
+// 璁炬柦鍜岀幆澧冩潯浠惰姹�-娓╂箍搴﹁褰曞垹闄�
+export function deleteFeTempHumRecord(query) {
+ return request({
+ url: '/feTempHumDate/deleteFeTempHumRecord',
+ method: 'delete',
+ params: query
+ })
+}
+
+// 璇曢獙鍖哄煙-鍒犻櫎
+export function deleteFeTempHumDate(query) {
+ return request({
+ url: '/feTempHumDate/deleteFeTempHumDate',
+ method: 'delete',
+ params: query
+ })
+}
+
+// // 璁炬柦鍜岀幆澧冩潯浠惰姹�-娓╂箍搴﹁褰� 瀵煎嚭
+export function exportTemperatureAndHumidityRecords(query) {
+ return request({
+ url: "/feTempHumDate/exportTemperatureAndHumidityRecords",
+ method: "get",
+ responseType: "blob",
+ params: query,
+ });
+}
+
+// 娓╂箍搴︾‘璁�
+export function affirmFeTempHumDate(query) {
+ return request({
+ url: '/feTempHumDate/affirmFeTempHumDate',
+ method: 'post',
+ data: query,
+ })
+}
+
+
+
diff --git a/src/api/cnas/resourceDemand/facilitiesEnvironment/internalWastes.js b/src/api/cnas/resourceDemand/facilitiesEnvironment/internalWastes.js
new file mode 100644
index 0000000..e9a5915
--- /dev/null
+++ b/src/api/cnas/resourceDemand/facilitiesEnvironment/internalWastes.js
@@ -0,0 +1,56 @@
+import request from '@/utils/request'
+
+// 瀹夊叏鍐呭姟涓夊簾澶勭悊鍒嗛〉鏌ヨ
+export function pageInternalWastes(query) {
+ return request({
+ url: '/internalWastes/pageInternalWastes',
+ method: 'get',
+ params: query
+ })
+}
+
+// 瀹夊叏鍐呭姟涓夊簾澶勭悊鏌ョ湅璇︽儏
+export function getInternalWastesOne(query) {
+ return request({
+ url: '/internalWastes/getInternalWastesOne',
+ method: 'get',
+ params: query
+ })
+}
+
+// 瀹夊叏鍐呭姟涓夊簾澶勭悊鏂板
+export function addInternalWastes(query) {
+ return request({
+ url: '/internalWastes/addInternalWastes',
+ method: 'post',
+ data: query
+ })
+}
+
+// 瀹夊叏鍐呭姟涓夊簾澶勭悊鍒嗛〉淇敼
+export function updateInternalWastes(query) {
+ return request({
+ url: '/internalWastes/updateInternalWastes',
+ method: 'post',
+ data: query
+ })
+}
+
+// 瀵煎嚭涓夊簾澶勭悊
+export function exportInternalWastes(query) {
+ return request({
+ url: "/internalWastes/exportInternalWastes",
+ method: "get",
+ responseType: "blob",
+ params: query,
+ });
+}
+
+//瀹夊叏鍐呭姟涓夊簾澶勭悊鍒犻櫎
+export function removeStandardSubstance(query) {
+ return request({
+ url: '/internalWastes/delInternalWastes',
+ method: 'delete',
+ params: query
+ })
+}
diff --git a/src/api/cnas/resourceDemand/foreignRegister/foreignRegister.js b/src/api/cnas/resourceDemand/foreignRegister/foreignRegister.js
new file mode 100644
index 0000000..7811cf5
--- /dev/null
+++ b/src/api/cnas/resourceDemand/foreignRegister/foreignRegister.js
@@ -0,0 +1,65 @@
+import request from '@/utils/request'
+
+// 澶栨潵浜哄憳鍒嗛〉鏌ヨ
+export function pageForeignRegister(query) {
+ return request({
+ url: '/foreignRegister/pageForeignRegister',
+ method: 'get',
+ params: query
+ })
+}
+
+// 澶栨潵浜哄憳鏌ョ湅璇︽儏
+export function getForeignRegisterOne(query) {
+ return request({
+ url: '/foreignRegister/getForeignRegisterOne',
+ method: 'get',
+ params: query
+ })
+}
+
+// 鑾峰彇鐢ㄦ埛鍒楄〃
+export function selectUserCondition(query) {
+ return request({
+ url: "/system/newUser/selectUserCondition",
+ method: "get",
+ params: query,
+ });
+}
+
+// 澶栨潵浜哄憳鏂板
+export function addForeignRegister(query) {
+ return request({
+ url: '/foreignRegister/addForeignRegister',
+ method: 'post',
+ data: query
+ })
+}
+
+// 澶栨潵浜哄憳淇敼
+export function updateForeignRegister(query) {
+ return request({
+ url: '/foreignRegister/updateForeignRegister',
+ method: 'post',
+ data: query
+ })
+}
+
+//澶栨潵浜哄憳鍒犻櫎
+export function delForeignRegister(query) {
+ return request({
+ url: '/foreignRegister/delForeignRegister',
+ method: 'delete',
+ params: query
+ })
+}
+
+// 瀵煎嚭澶栨潵浜哄憳
+export function exportForeignRegister(query) {
+ return request({
+ url: "/foreignRegister/exportForeignRegister",
+ method: "get",
+ responseType: "blob",
+ params: query,
+ });
+}
diff --git a/src/assets/styles/index.scss b/src/assets/styles/index.scss
index 87825e4..a8f0459 100644
--- a/src/assets/styles/index.scss
+++ b/src/assets/styles/index.scss
@@ -196,3 +196,11 @@
.required-span {
color: red;
}
+
+.bg-1 {
+ width: 100%;
+ height: calc(100% - 50px);
+ overflow-y: auto;
+ padding: 20px 10px 10px;
+ background: rgb(245, 247, 251);
+}
diff --git a/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/Personnel-management-dia.vue b/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/Personnel-management-dia.vue
new file mode 100644
index 0000000..ec6912c
--- /dev/null
+++ b/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/Personnel-management-dia.vue
@@ -0,0 +1,212 @@
+<template>
+ <div>
+ <el-dialog v-loading="diaLoading" :close-on-click-modal="false"
+ :close-on-press-escape="false"
+ :visible.sync="formDia"
+ title="澶栨潵浜哄憳绠$悊淇℃伅"
+ width="80%" @close="closeThreeWastesDia">
+ <el-form ref="form" :model="form" :rules="rules" label-width="auto">
+ <el-col :span="12">
+ <el-form-item label="鏃ユ湡" prop="registerDate">
+ <el-date-picker v-model="form.registerDate"
+ clearable
+ format="yyyy-MM-dd"
+ placeholder="閫夋嫨鏃ユ湡"
+ size="small"
+ type="date"
+ value-format="yyyy-MM-dd">
+ </el-date-picker>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="杩涘叆鍖哄煙" prop="area">
+ <el-input v-model="form.area" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="杩涘叆浜哄憳" prop="personnel">
+ <el-input v-model="form.personnel" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="杩涘叆鍘熷洜" prop="reason">
+ <el-input v-model="form.reason" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="闄悓浜哄憳" prop="accompanyingId">
+ <el-select v-model="form.accompanyingId" clearable filterable
+ placeholder="璇烽�夋嫨闄悓浜哄憳" size="small">
+ <el-option v-for="(item,i) in personList" :key="i" :label="item.label" :value="item.value">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鎵瑰噯浜虹鍚�" prop="approveId">
+ <el-select v-model="form.approveId" clearable filterable
+ placeholder="璇烽�夋嫨鎵瑰噯浜�" size="small">
+ <el-option v-for="(item,i) in personList" :key="i" :label="item.label" :value="item.value">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="淇濆瘑鍙婂叾瀹冩儏鍐�" prop="confidentiality">
+ <el-input v-model="form.confidentiality" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="澶囨敞" prop="remark">
+ <el-input v-model="form.remark" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="closeThreeWastesDia">鍙� 娑�</el-button>
+ <el-button :loading="loading" type="primary" @click="handleEdit">鎻� 浜�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import {
+ getForeignRegisterOne,
+ selectUserCondition,
+ addForeignRegister,
+ updateForeignRegister
+} from '@/api/cnas/resourceDemand/foreignRegister/foreignRegister'
+
+export default {
+ name: 'Personnel-management-dia',
+ // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+ components: {},
+ data() {
+ // 杩欓噷瀛樻斁鏁版嵁
+ return {
+ formDia: false,
+ diaLoading: false,
+ loading: false,
+ form: {
+ registerDate: '',
+ area: '',
+ personnel: '',
+ reason: '',
+ accompanyingId: '',
+ accompanyingName: '',
+ approveId: '',
+ approveName: '',
+ confidentiality: '',
+ remark: '',
+ },
+ rules: {
+ registerDate: [{required: true, message: '璇烽�夋嫨鏃ユ湡',trigger: 'change'}],
+ area: [{required: true, message: '璇峰~鍐欒繘鍏ュ尯鍩�',trigger: 'blur'}],
+ personnel: [{required: true, message: '璇峰~鍐欒繘鍏ヤ汉鍛�',trigger: 'blur'}],
+ reason: [{required: true, message: '璇峰~鍐欒繘鍏ュ師鍥�',trigger: 'blur'}],
+ accompanyingId: [{required: true, message: '璇烽�夋嫨闄悓浜哄憳',trigger: 'change'}],
+ approveId: [{required: true, message: '璇烽�夋嫨鎵瑰噯浜�',trigger: 'change'}],
+ confidentiality: [{required: true, message: '璇峰~鍐欎繚瀵嗗強鍏朵粬鎯呭喌',trigger: 'blur'}],
+ remark: [{required: false, message: '璇峰~鍐欏娉�',trigger: 'blur'}],
+ },
+ operationType: '',
+ personList: []
+ };
+ },
+ mounted() {
+
+ },
+ // 鏂规硶闆嗗悎
+ methods: {
+ // 鎵撳紑寮规
+ openDia (type, row) {
+ this.getAuthorizedPerson()
+ this.formDia = true
+ this.operationType = type
+ if (type !== 'add') {
+ this.searchInfo(row)
+ } else {
+ this.form.accompanyingId = JSON.parse(localStorage.getItem("user")).userId
+ }
+ },
+ // 鏌ヨ璇︽儏
+ searchInfo (row) {
+ this.diaLoading = true
+ getForeignRegisterOne({registerId : row.registerId}).then(res =>{
+ this.diaLoading = false
+ if (res.code === 200){
+ this.form = res.data
+ }
+ }).catch(err => {
+ console.log(err)
+ this.diaLoading = false
+ })
+ },
+ // 鎻愪氦寮规鏁版嵁
+ handleEdit () {
+ this.$refs['form'].validate((valid) => {
+ if (valid) {
+ this.loading = true
+ const internalImplementDto = this.HaveJson(this.form)
+ const index = this.personList.findIndex(item => item.value === internalImplementDto.accompanyingId)
+ if (index > -1) {
+ internalImplementDto.accompanyingName = this.personList[index].label
+ }
+ const index1 = this.personList.findIndex(item => item.value === internalImplementDto.approveId)
+ if (index1 > -1) {
+ internalImplementDto.approveName = this.personList[index].label
+ }
+ if (this.operationType === 'add') {
+ addForeignRegister(internalImplementDto).then(res => {
+ this.loading = false
+ if (res.code === 200){
+ this.$message.success('鎿嶄綔鎴愬姛')
+ this.closeThreeWastesDia()
+ }
+ }).catch(err => {
+ console.log('err---', err);
+ this.loading = false
+ })
+ } else if (this.operationType === 'edit') {
+ updateForeignRegister(internalImplementDto).then(res => {
+ this.loading = false
+ if (res.code === 200){
+ this.$message.success('鎿嶄綔鎴愬姛')
+ this.closeThreeWastesDia()
+ }
+
+ }).catch(err => {
+ console.log('err---', err);
+ this.loading = false
+ })
+ }
+ } else {
+ console.log('error submit!!');
+ return false;
+ }
+ });
+ },
+ closeThreeWastesDia () {
+ this.$refs.form.resetFields();
+ this.formDia = false
+ this.$emit('closeThreeWastesDia')
+ },
+ getAuthorizedPerson() {
+ selectUserCondition().then(res => {
+ let data = []
+ res.data.forEach(a => {
+ data.push({
+ label: a.name,
+ value: a.id
+ })
+ })
+ this.personList = data
+ })
+ },
+ }
+};
+</script>
+
+<style scoped>
+</style>
diff --git a/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/Personnel-management.vue b/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/Personnel-management.vue
new file mode 100644
index 0000000..dea9995
--- /dev/null
+++ b/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/Personnel-management.vue
@@ -0,0 +1,217 @@
+<template>
+ <div class="capacity-scope">
+ <div class="search">
+ <div>
+ <el-form :model="searchForm" ref="searchForm" size="small" :inline="true">
+ <el-form-item label="鏃ユ湡" prop="registerDate">
+ <el-date-picker v-model="searchForm.registerDate" clearable format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡"
+ size="small" style="width: 100%" type="date" value-format="yyyy-MM-dd">
+ </el-date-picker>
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" icon="el-icon-search" size="mini" @click="searchList">鏌� 璇�</el-button>
+ <el-button icon="el-icon-refresh" size="mini" @click="resetSearchForm">閲� 缃�</el-button>
+ </el-form-item>
+ </el-form>
+ </div>
+ <div>
+ <el-button size="medium" @click="handleDown">瀵� 鍑�</el-button>
+ <el-button size="medium" type="primary" @click="openFormDia('add')">鏂� 澧�</el-button>
+ </div>
+ </div>
+ <div class="table">
+ <lims-table :tableData="tableData" :column="tableColumn" :height="'calc(100vh - 280px)'" @pagination="pagination"
+ :page="page" :tableLoading="tableLoading"></lims-table>
+ </div>
+ <personnel-management-dia v-if="threeWastesDia" ref="threeWastesDia"
+ @closeThreeWastesDia="closeThreeWastesDia"></personnel-management-dia>
+ </div>
+</template>
+
+<script>
+import PersonnelManagementDia from '../component/Personnel-management-dia.vue';
+import limsTable from '@/components/Table/lims-table.vue'
+
+import {
+ pageForeignRegister,
+ delForeignRegister,
+ exportForeignRegister
+} from '@/api/cnas/resourceDemand/foreignRegister/foreignRegister'
+
+export default {
+ name: 'Personnel-management',
+ // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+ components: { limsTable, PersonnelManagementDia },
+ data() {
+ // 杩欓噷瀛樻斁鏁版嵁
+ return {
+ searchForm: {
+ registerDate: '',
+ },
+ tableColumn: [
+ {
+ label: '鏃ユ湡',
+ prop: 'registerDate',
+ minWidth: '100'
+ },
+ {
+ label: '杩涘叆鍖哄煙',
+ prop: 'area',
+ minWidth: '100'
+ },
+ {
+ label: '杩涘叆浜哄憳',
+ prop: 'personnel',
+ minWidth: '100'
+ },
+ {
+ label: '杩涘叆鍘熷洜',
+ prop: 'reason',
+ minWidth: '100'
+ },
+ {
+ label: '闄悓浜哄憳',
+ prop: 'accompanyingName',
+ minWidth: '100'
+ },
+ {
+ label: '鎵瑰噯浜虹鍚�',
+ prop: 'approveName',
+ minWidth: '100'
+ },
+ {
+ label: '淇濆瘑鍙婂叾浠栨儏鍐�',
+ prop: 'confidentiality',
+ minWidth: '100'
+ },
+ {
+ label: '澶囨敞',
+ prop: 'remark',
+ minWidth: '100'
+ },
+ {
+ dataType: 'action',
+ fixed: 'right',
+ minWidth: '220',
+ label: '鎿嶄綔',
+ operation: [
+ {
+ name: '缂栬緫',
+ type: 'text',
+ clickFun: (row) => {
+ this.openFormDia('edit', row);
+ },
+ },
+ {
+ name: '鍒犻櫎',
+ type: 'text',
+ color: '#f56c6c',
+ clickFun: (row) => {
+ this.delPlan(row)
+ },
+ }
+ ]
+ }
+ ],
+ tableData: [],
+ tableLoading: false,
+ page: {
+ total: 0,
+ size: 10,
+ current: 1
+ },
+ total: 0,
+ threeWastesDia: false
+ };
+ },
+ mounted() {
+ this.searchList()
+ },
+ // 鏂规硶闆嗗悎
+ methods: {
+ // 鏌ヨ鍒楄〃
+ searchList() {
+ this.tableLoading = true
+ pageForeignRegister({
+ ...this.page,
+ ...this.searchForm
+ }).then(res => {
+ this.tableLoading = false
+ if (res.code === 200) {
+ this.tableData = res.data.records
+ this.page.total = res.data.total
+ }
+
+ }).catch(err => {
+ console.log('err---', err);
+ this.tableLoading = false
+ })
+ },
+ // 鍒犻櫎
+ delPlan(row) {
+ this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ this.tableLoading = true
+ delForeignRegister({ registerId: row.registerId }).then(res => {
+ this.tableLoading = false
+ if (res.code === 200) {
+ this.$message.success('鍒犻櫎鎴愬姛')
+ this.searchList()
+ }
+ }).catch(err => {
+ this.tableLoading = false
+ console.log('err---', err);
+ })
+ }).catch(() => {
+ this.$message({
+ type: 'info',
+ message: '宸插彇娑堝垹闄�'
+ });
+ });
+ },
+ // 鏂板锛岀紪杈戯紝鎵瑰噯寮规
+ openFormDia(type, row) {
+ this.threeWastesDia = true
+ this.$nextTick(() => {
+ this.$refs.threeWastesDia.openDia(type, row)
+ })
+ },
+ // 瀵煎嚭
+ handleDown() {
+ exportForeignRegister(this.searchForm).then(res => {
+ const blob = new Blob([res], { type: 'application/msword' });
+ this.$download.saveAs(blob, '澶栨潵浜哄憳鐧昏.docx')
+ })
+ },
+ closeThreeWastesDia() {
+ this.threeWastesDia = false
+ this.searchList()
+ },
+ // 閲嶇疆鏌ヨ鏉′欢
+ resetSearchForm() {
+ this.searchForm.registerDate = '';
+ this.searchList()
+ },
+ // 鍒嗛〉鍒囨崲
+ pagination(page) {
+ this.page.size = page.limit
+ this.searchList();
+ },
+ }
+};
+</script>
+
+<style scoped>
+.search {
+ height: 46px;
+ display: flex;
+ justify-content: space-between;
+}
+
+.capacity-scope {
+ padding: 20px;
+}
+</style>
diff --git a/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions.vue b/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions.vue
new file mode 100644
index 0000000..38db4fc
--- /dev/null
+++ b/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions.vue
@@ -0,0 +1,51 @@
+<template>
+ <el-row>
+ <el-col :span="2">
+ <el-menu style="height: 100vh;" @select="clickSelect" :default-active="activeName">
+ <el-menu-item index="鐢垫簮绋冲畾鎬�">
+ <span slot="title">鐢垫簮绋冲畾鎬�</span>
+ </el-menu-item>
+ <el-menu-item index="闃查浄妫�娴�">
+ <span slot="title">闃查浄妫�娴�</span>
+ </el-menu-item>
+ <el-menu-item index="鐓у害璁板綍">
+ <span slot="title">鐓у害璁板綍</span>
+ </el-menu-item>
+ <el-menu-item index="娓╂箍搴﹁褰�">
+ <span slot="title">娓╂箍搴﹁褰�</span>
+ </el-menu-item>
+ </el-menu>
+ </el-col>
+ <el-col :span="22" style="padding: 10px">
+ <power-supply-stability v-if="activeName === '鐢垫簮绋冲畾鎬�'"/>
+ <lightning-protection-detection v-if="activeName === '闃查浄妫�娴�'" />
+ <illuminance-recording v-if="activeName === '鐓у害璁板綍'"/>
+ <temperature-humidity-record v-if="activeName === '娓╂箍搴﹁褰�'"/>
+ </el-col>
+ </el-row>
+</template>
+
+<script>
+// 鐢垫簮绋冲畾鎬�
+import PowerSupplyStability from "./facilities-environmental-conditions/power-supply-stability.vue";
+// 闃查浄妫�娴�
+import LightningProtectionDetection from "./facilities-environmental-conditions/lightning-protection-detection.vue";
+// 鐓у害璁板綍
+import IlluminanceRecording from "./facilities-environmental-conditions/illuminance-recording.vue";
+// 娓╂箍搴﹁褰�
+import TemperatureHumidityRecord from "./facilities-environmental-conditions/temperature-humidity-record.vue";
+
+export default {
+ components: {TemperatureHumidityRecord, IlluminanceRecording, LightningProtectionDetection, PowerSupplyStability},
+ data() {
+ return {
+ activeName: "鐢垫簮绋冲畾鎬�"
+ }
+ },
+ methods: {
+ clickSelect(index) {
+ this.activeName = index;
+ }
+ }
+}
+</script>
diff --git a/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/illuminance-recording.vue b/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/illuminance-recording.vue
new file mode 100644
index 0000000..b269f84
--- /dev/null
+++ b/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/illuminance-recording.vue
@@ -0,0 +1,359 @@
+<template>
+ <div>
+ <div class="header">
+ <div>鐓у害璁板綍</div>
+ <div>
+ <el-button size="small" type="primary" @click="clickAdd">鏂� 澧�</el-button>
+ </div>
+ </div>
+ <el-table :data="tableData" height="calc(100vh - 19em)" style="width: 100%">
+ <el-table-column label="搴忓彿" type="index" width="120">
+ <template v-slot="scope">
+ <span>{{ (search.current - 1) * search.size + scope.$index + 1 }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="缁撹" min-width="180" prop="conclusion"></el-table-column>
+ <el-table-column label="娴嬭瘯鏃ユ湡" min-width="180" prop="testDate" width="testDate"></el-table-column>
+ <el-table-column label="妫�娴嬭��" min-width="180" prop="testerUser"></el-table-column>
+ <el-table-column label="鏍告煡浜�" min-width="180" prop="checkerUser"></el-table-column>
+ <el-table-column label="璁惧鍚嶇О" min-width="180" prop="deviceName"></el-table-column>
+ <el-table-column label="璁惧缂栧彿" min-width="180" prop="managementNumber"></el-table-column>
+ <el-table-column label="鏍″噯鏃ユ湡" min-width="180" prop="lastCalibrationDate"></el-table-column>
+ <el-table-column label="涓嬫鏍″噯鏃ユ湡" min-width="180" prop="nextCalibrationDate"></el-table-column>
+ <el-table-column label="鍒涘缓鏃堕棿" min-width="180" prop="createTime"></el-table-column>
+ <el-table-column fixed="right" label="鎿嶄綔" min-width="140">
+ <template v-slot="scope">
+ <el-button size="small" type="text" @click="downLoadPost(scope.row)">瀵煎嚭</el-button>
+ <el-button size="small" type="text" @click="edit(scope.row)">缂栬緫</el-button>
+ <el-button size="small" type="text" @click="deleteRowFun(scope.row)">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]" :total="search.total"
+ layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange"
+ @current-change="handleCurrentChange">
+ </el-pagination>
+ <el-dialog :visible.sync="dialogVisible" title="鏂板" width="50%" @open="openDialog">
+ <div style="height: 50vh; overflow-y: auto">
+ <el-form ref="form" :model="form" label-width="120px">
+ <el-row>
+ <el-col :span="12">
+ <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ユ祴璇曞湴鐐�', trigger: 'change' }]" label="娴嬭瘯鏃ユ湡"
+ prop="testDate">
+ <el-date-picker v-model="form.testDate" format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡" size="small"
+ style="width: 100%" type="date" value-format="yyyy-MM-dd">
+ </el-date-picker>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ヨ澶囧悕绉�', trigger: 'change' }]" label="璁惧鍚嶇О"
+ prop="deviceId">
+ <el-select v-model="form.deviceId" class="table_input" clearable filterable placeholder="璁惧鍚嶇О"
+ size="small" @change="getCalibrationDateFun">
+ <el-option v-for="item in equipOptions" :key="item.id" :label="item.deviceName" :value="item.id">
+ {{ item.deviceName + item.managementNumber }}
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="璁惧缂栧彿">
+ <el-input v-model="form.managementNumber" disabled size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鏈�杩戞牎鍑嗘棩鏈�">
+ <el-input v-model="form.lastCalibrationDate" disabled size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="涓嬫鏍″噯鏃ユ湡">
+ <el-input v-model="form.nextCalibrationDate" disabled size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="妫�娴嬭��" prop="recipientUser">
+ <el-select v-model="form.testerId" clearable filterable placeholder="璇烽�夋嫨" size="small"
+ style="width: 100%;">
+ <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鏍告煡浜�" prop="recipientUser">
+ <el-select v-model="form.checkerId" clearable filterable placeholder="璇烽�夋嫨" size="small"
+ style="width: 100%;">
+ <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="24">
+ <el-form-item label="缁撹">
+ <el-input v-model="form.conclusion" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" type="textarea">
+ </el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <div>
+ <div style="display: flex; justify-content: flex-end; margin-bottom: 0.5em">
+ <el-button size="small" type="primary" @click="feMeasuredQuantityListAdd">鏂板</el-button>
+ </div>
+ <div>
+ <el-table :data="form.illuminationDetectionAreaList" height="40vh" style="width: 100%; margin: auto">
+ <el-table-column label="搴忓彿" type="index" width="80"></el-table-column>
+ <el-table-column align="center" label="妫�娴嬪尯鍩熷悕绉�" min-width="180" prop="detectionAreaLabel">
+ <template #default="{ row }">
+ <el-input v-model="row.detectionAreaLabel" :rows="1" type="textarea"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column align="center" label="妫�娴嬪��" min-width="300" prop="name">
+ <template>
+ <el-table-column align="center" label="绗竴娆�" min-width="100" prop="valueOne">
+ <template #default="{ row }">
+ <el-input v-model="row.valueOne" :rows="1" @blur="getAverage(row)"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column align="center" label="绗簩娆�" min-width="100" prop="valueTwo">
+ <template #default="{ row }">
+ <el-input v-model="row.valueTwo" :rows="1" @blur="getAverage(row)"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column align="center" label="绗笁娆�" min-width="100" prop="valueThree">
+ <template #default="{ row }">
+ <el-input v-model="row.valueThree" :rows="1" @blur="getAverage(row)"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column align="center" label="骞冲潎鍊�" min-width="100" prop="average">
+ <template #default="{ row }">
+ <el-input v-model="row.average" :rows="1"></el-input>
+ </template>
+ </el-table-column>
+ </template>
+ </el-table-column>
+ <el-table-column align="center" label="澶囨敞" min-width="180" prop="detectionAreaLabel">
+ <template #default="{ row }">
+ <el-input v-model="row.remark" :rows="1" type="textarea"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column fixed="right" label="鎿嶄綔" width="100">
+ <template slot-scope="scope">
+ <el-button size="small" type="text" @click="feMeasuredQuantityListDelete(scope.row, scope.$index)">
+ 鍒犻櫎
+ </el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ </div>
+ </el-form>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
+ <el-button type="primary" :loading="submitLoading" @click="addPowerSupplyStability">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import {
+ getFeLightningProtection,
+ deviceScopeSearch,
+ selectUserCondition,
+ treeDevice,
+ addFeLightningProtection,
+ deleteFeLightningProtection,
+ getFeIlluminationDetectionArea,
+ deleteFeIlluminationDetectionArea,
+ exportFeIllumination
+} from '@/api/cnas/resourceDemand/facilitiesEnvironment/facilitiesAndEnvironment'
+
+export default {
+ data() {
+ return {
+ search: {
+ size: 10,
+ current: 1,
+ total: 0
+ },
+ tableData: [],
+ dialogVisible: false,
+ submitLoading: false,
+ form: {
+ testDate: '',
+ deviceId: '',
+ managementNumber: '',
+ lastCalibrationDate: '',
+ nextCalibrationDate: '',
+ testerId: '',
+ checkerId: '',
+ conclusion: '',
+ illuminationDetectionAreaList: []
+ },
+ cascaderList: [],
+ responsibleOptions: [],
+ equipOptions: [],
+ }
+ },
+ mounted() {
+ this.initData()
+ },
+ watch: {
+ dialogVisible(newVal) {
+ if (!newVal) {
+ this.form = {
+ deviceId: null,
+ illuminationDetectionAreaList: []
+ }
+ }
+ }
+ },
+ methods: {
+ getAverage(row) {
+ if (row.valueOne && row.valueTwo && row.valueThree) {
+ if (!isNaN(row.valueOne) && !isNaN(row.valueTwo) && !isNaN(row.valueThree)) {
+ const avg = Number(row.valueOne) + Number(row.valueTwo) + Number(row.valueThree)
+ console.log(avg)
+ row.average = Math.round(avg / 3);
+ } else {
+ this.$message.warning("蹇呴』涓烘暟瀛楋紒")
+ }
+ }
+ },
+ edit(row) {
+ getFeIlluminationDetectionArea({ intensityIlluminationId: row.intensityIlluminationId }).then(res => {
+ this.form = { ...row }
+ this.form.illuminationDetectionAreaList = res.data;
+ this.dialogVisible = true
+ });
+ },
+ initData() {
+ getFeLightningProtection({ ...this.search }).then(res => {
+ if (res.code === 200) {
+ this.tableData = res.data.records;
+ this.search.total = res.data.total;
+ }
+ });
+ },
+ handleSizeChange(val) {
+ this.search.size = val;
+ this.initData();
+ },
+ handleCurrentChange(val) {
+ this.search.current = val;
+ this.initData();
+ },
+ deleteRowFun(row) {
+ this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ deleteFeLightningProtection({ intensityIlluminationId: row.intensityIlluminationId }).then(res => {
+ this.$message.success('鍒犻櫎鎴愬姛锛�')
+ this.initData()
+ })
+ })
+ },
+ feMeasuredQuantityListDelete(row, index) {
+ if (row.detectionAreaId) {
+ deleteFeIlluminationDetectionArea({ detectionAreaId: row.detectionAreaId }).then(res => {
+ if (res.code === 200) {
+ this.form.illuminationDetectionAreaList.splice(index, 1)
+ this.$message.success('鍒犻櫎鎴愬姛锛�')
+ }
+ })
+ } else {
+ this.form.illuminationDetectionAreaList.splice(index, 1)
+ this.$message.success('鍒犻櫎鎴愬姛锛�')
+ }
+ },
+ openDialog() {
+ treeDevice().then(res => {
+ this.cascaderList = res.data;
+ });
+ this.$nextTick(() => {
+ this.$refs['form'].clearValidate()
+ })
+ this.getUserList()
+ },
+ clickAdd() {
+ this.dialogVisible = true
+ this.getEquipOptions()
+ },
+ // 鑾峰彇鎵�鏈夎澶�
+ getEquipOptions() {
+ this.equipOptions = []
+ deviceScopeSearch({ status: '0' }).then(res => {
+ if (res.code === 200 && res.data) {
+ this.equipOptions = res.data
+ }
+ }).catch(error => {
+ console.error(error)
+ })
+ },
+ feMeasuredQuantityListAdd() {
+ const obj = {
+ detectionAreaLabel: null,
+ valueOne: null,
+ valueTwo: null,
+ valueThree: null,
+ average: null,
+ remark: null,
+ }
+ this.form.illuminationDetectionAreaList.push(obj)
+ },
+ addPowerSupplyStability() {
+ this.submitLoading = true
+ this.$refs.form.validate((valid) => {
+ if (valid) {
+ addFeLightningProtection(this.form).then(res => {
+ this.submitLoading = false
+ if (res.code === 200) {
+ this.initData()
+ this.dialogVisible = false
+ }
+ }).catch(error => {
+ this.submitLoading = false
+ })
+ }
+ });
+ },
+ // 鑾峰彇璐熻矗浜轰俊鎭帴鍙�
+ getUserList() {
+ selectUserCondition().then(res => {
+ if (res.code == 200) {
+ this.responsibleOptions = res.data
+ }
+ })
+ },
+ getCalibrationDateFun(val) {
+ const index = this.equipOptions.findIndex(item => item.id === val)
+ if (index > -1) {
+ this.form.managementNumber = this.equipOptions[index].managementNumber
+ this.form.lastCalibrationDate = this.equipOptions[index].lastCalibrationDate
+ this.form.nextCalibrationDate = this.equipOptions[index].nextCalibrationDate
+ }
+ },
+ // 瀵煎嚭
+ downLoadPost(row) {
+ exportFeIllumination({ intensityIlluminationId: row.intensityIlluminationId }).then(res => {
+ this.outLoading = false
+ const blob = new Blob([res], { type: 'application/msword' });
+ this.$download.saveAs(blob, '鐓у害璁板綍.docx')
+ })
+ },
+ }
+}
+</script>
+
+<style scoped>
+.header {
+ height: 3em;
+ width: 100%;
+ display: flex;
+ justify-content: space-between;
+}
+</style>
diff --git a/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/lightning-protection-detection.vue b/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/lightning-protection-detection.vue
new file mode 100644
index 0000000..673283f
--- /dev/null
+++ b/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/lightning-protection-detection.vue
@@ -0,0 +1,231 @@
+<template>
+ <div>
+ <div class="header">
+ <div>闃查浄妫�娴�</div>
+ <div>
+ <el-button size="small" type="primary" @click="clickAdd">瀵� 鍏�</el-button>
+ <el-button size="small" type="primary" @click="downLoadPost">瀵� 鍑�</el-button>
+ </div>
+ </div>
+ <el-table :data="tableData" height="calc(100vh - 19em)" style="width: 100%">
+ <el-table-column label="搴忓彿" type="index" width="120">
+ <template v-slot="scope">
+ <span>{{ (search.current - 1) * search.size + scope.$index + 1 }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="鍘熸枃浠跺悕" min-width="180" prop="fileName">
+ </el-table-column>
+ <el-table-column label="妫�娴嬫棩鏈�" min-width="180" prop="detectionDate">
+ </el-table-column>
+ <el-table-column label="鏈夋晥鏈�" min-width="180" prop="termValidity">
+ </el-table-column>
+ <el-table-column label="妫�娴嬪崟浣�" min-width="180" prop="detectionUnit">
+ </el-table-column>
+ <el-table-column fixed="right" label="鎿嶄綔" min-width="100">
+ <template v-slot="scope">
+ <el-button size="small" type="text" @click="edit(scope.row)">缂栬緫</el-button>
+ <el-button size="small" type="text" @click="deleteRowFun(scope.row)">鍒犻櫎</el-button>
+ <el-button size="small" type="text" @click="download(scope.row)">涓嬭浇</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]" :total="search.total"
+ layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange"
+ @current-change="handleCurrentChange">
+ </el-pagination>
+ <el-dialog :visible.sync="dialogVisible" title="鏂� 澧�" width="50%">
+ <div style="height: 50vh;">
+ <el-form ref="form" :model="form" label-width="80px">
+ <el-row>
+ <el-col :span="12">
+ <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ユ祴璇曞湴鐐�', trigger: 'blur' }]" label="妫�娴嬫棩鏈�"
+ prop="detectionDate">
+ <el-date-picker v-model="form.detectionDate" format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡" size="small"
+ style="width: 100%" type="date" value-format="yyyy-MM-dd">
+ </el-date-picker>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ユ祴璇曞湴鐐�', trigger: 'blur' }]" label="鏈夋晥鏈�"
+ prop="termValidity">
+ <el-date-picker v-model="form.termValidity" format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡" size="small"
+ style="width: 100%" type="date" value-format="yyyy-MM-dd">
+ </el-date-picker>
+ </el-form-item>
+ </el-col>
+ <el-col :span="24">
+ <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ユ祴璇曞湴鐐�', trigger: 'blur' }]" label="妫�娴嬪崟浣�"
+ prop="detectionUnit">
+ <el-input v-model="form.detectionUnit" size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="妫�娴嬪崟浣�">
+ <el-upload :file-list="form.fileList" :http-request="httpRequest" :limit="1" :on-exceed="handleExceed"
+ :on-remove="handleRemove" action="#" class="upload-demo" drag multiple>
+ <i class="el-icon-upload"></i>
+ <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div>
+ </el-upload>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="addImport">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+
+import {
+ getLightningProtectionDetection,
+ addLightningProtectionDetection,
+ deleteLightningProtectionDetection,
+ exportOfLightningProtectionDetection
+} from '@/api/cnas/resourceDemand/facilitiesEnvironment/facilitiesAndEnvironment'
+
+import axios from 'axios';
+
+export default {
+ data() {
+ return {
+ search: {
+ size: 10,
+ current: 1,
+ total: 0
+ },
+ tableData: [],
+ dialogVisible: false,
+ form: {
+ fileList: [],
+ fileData: []
+ },
+ }
+ },
+ mounted() {
+ this.initData()
+ },
+ watch: {
+ dialogVisible(newVal) {
+ if (!newVal) {
+ this.form = {
+ fileList: [],
+ fileData: []
+ }
+ }
+ }
+ },
+ methods: {
+ // 瀵煎嚭
+ downLoadPost() {
+ exportOfLightningProtectionDetection().then(res => {
+ this.outLoading = false
+ const blob = new Blob([res], { type: 'application/msword' });
+ //灏咮lob 瀵硅薄杞崲鎴愬瓧绗︿覆
+ this.$download.saveAs(blob, '闃查浄妫�娴嬪鍑�.xlsx')
+ })
+ },
+ initData() {
+ getLightningProtectionDetection({ ...this.search }).then(res => {
+ if (res.code === 200) {
+ this.tableData = res.data.records;
+ this.search.total = res.data.total;
+ }
+
+ });
+ },
+ handleSizeChange(val) {
+ this.search.size = val;
+ this.initData();
+ },
+ handleCurrentChange(val) {
+ this.search.current = val;
+ this.initData();
+ },
+ clickAdd() {
+ this.dialogVisible = true
+ },
+ // 鏂囦欢鏁伴噺杩囧鏃舵彁閱�
+ handleExceed() {
+ this.$message({ type: 'error', message: '鏈�澶氭敮鎸�1涓檮浠朵笂浼�' })
+ },
+ // 瑕嗙洊榛樿鐨勪笂浼犺涓猴紝鍙互鑷畾涔変笂浼犵殑瀹炵幇锛屽皢涓婁紶鐨勬枃浠朵緷娆℃坊鍔犲埌fileList鏁扮粍涓�,鏀寔澶氫釜鏂囦欢
+ httpRequest(option) {
+ this.form.fileData.push(option)
+ },
+ addImport() {
+ console.log(this.form)
+ this.$refs.form.validate((valid) => {
+ if (valid) {
+ let params = new FormData()
+ if (this.form.lightningProtectionId) {
+ params.append("lightningProtectionId", this.form.lightningProtectionId)
+ }
+ params.append("termValidity", this.form.termValidity)
+ params.append("detectionUnit", this.form.detectionUnit)
+ params.append("detectionDate", this.form.detectionDate)
+ if (this.form.fileData.length > 0) {
+ params.append("file", this.form.fileData[0].file)
+ }
+ addLightningProtectionDetection(params).then(res => {
+ if (res.code === 200) {
+ this.dialogVisible = false
+ this.initData()
+ }
+ });
+ }
+ });
+ },
+ edit(row) {
+ this.dialogVisible = true
+ this.form = { ...row }
+ this.form.fileList = []
+ this.form.fileData = []
+ this.form.fileList.push({ name: row.systemFileName, url: "123434" })
+ console.log(this.form)
+ },
+ deleteRowFun(row) {
+ this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ deleteLightningProtectionDetection({ lightningProtectionId: row.lightningProtectionId }).then(res => {
+ this.$message.success('鍒犻櫎鎴愬姛锛�')
+ this.initData()
+ })
+ })
+ },
+ handleRemove(file) {
+ this.$axios.delete(this.$api.personnel.deleteCNASFile + "?fileName=" + file.name).then(res => {
+ if (res.code === 201) return;
+ this.$message.success('鍒犻櫎鎴愬姛锛�')
+ let index = this.form.fileList.indexOf(fileName)
+ if (index != -1) {
+ this.successFileList.splice(index, 1)
+ }
+ })
+ },
+ download(row) {
+ if (!row.systemFileName) {
+ this.$message.warning('鏆傛棤鏂囦欢')
+ return
+ }
+ this.$download.downloadFileFromUrl(row.systemFileName, row.fileName)
+ }
+ }
+}
+</script>
+
+<style scoped>
+.header {
+ height: 3em;
+ width: 100%;
+ display: flex;
+ justify-content: space-between;
+}
+</style>
diff --git a/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/power-supply-stability.vue b/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/power-supply-stability.vue
new file mode 100644
index 0000000..095eaa5
--- /dev/null
+++ b/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/power-supply-stability.vue
@@ -0,0 +1,360 @@
+<template>
+ <div>
+ <div class="header">
+ <div>鐢垫簮绋冲畾鎬�</div>
+ <div>
+ <el-button size="small" type="primary" @click="openAddDia">鏂� 澧�</el-button>
+ </div>
+ </div>
+ <el-table :data="tableData" height="calc(100vh - 19em)" style="width: 100%">
+ <el-table-column label="搴忓彿" type="index" width="120">
+ <template v-slot="scope">
+ <span>{{ (search.current - 1) * search.size + scope.$index + 1 }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="娴嬭瘯鍦扮偣" min-width="180" prop="testLocation"></el-table-column>
+ <el-table-column label="娴嬭瘯鏃ユ湡" min-width="180" prop="testDate" width="testDate"></el-table-column>
+ <el-table-column label="缁撹" min-width="180" prop="conclusion"></el-table-column>
+ <el-table-column label="妫�娴嬭��" min-width="180" prop="testerUser"></el-table-column>
+ <el-table-column label="鏍告煡浜�" min-width="180" prop="checkerUser"></el-table-column>
+ <el-table-column label="璁惧鍚嶇О" min-width="180" prop="deviceName"></el-table-column>
+ <el-table-column label="璁惧缂栧彿" min-width="180" prop="managementNumber"></el-table-column>
+ <el-table-column label="鏍″噯鏃ユ湡" min-width="180" prop="lastCalibrationDate"></el-table-column>
+ <el-table-column label="涓嬫鏍″噯鏃ユ湡" min-width="180" prop="nextCalibrationDate"></el-table-column>
+ <el-table-column label="鍒涘缓鏃堕棿" min-width="180" prop="createTime"></el-table-column>
+ <el-table-column fixed="right" label="鎿嶄綔" min-width="140">
+ <template v-slot="scope">
+ <el-button size="small" type="text" @click="downLoadPost(scope.row)">瀵煎嚭</el-button>
+ <el-button size="small" type="text" @click="edit(scope.row)">缂栬緫</el-button>
+ <el-button size="small" type="text" @click="deleteRowFun(scope.row)">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]" :total="search.total"
+ layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange"
+ @current-change="handleCurrentChange">
+ </el-pagination>
+ <el-dialog :visible.sync="dialogVisible" title="鏂板" width="50%" @open="openDialog">
+ <div style="height: 50vh; overflow-y: auto">
+ <el-form ref="form" :model="form" label-width="120px">
+ <el-row>
+ <el-col :span="12">
+ <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ユ祴璇曞湴鐐�', trigger: 'blur' }]" label="娴嬭瘯鍦扮偣"
+ prop="testLocation">
+ <el-input v-model="form.testLocation" size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ユ祴璇曟棩鏈�', trigger: 'change' }]" label="娴嬭瘯鏃ユ湡"
+ prop="testDate">
+ <el-date-picker v-model="form.testDate" format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡" size="small"
+ style="width: 100%" type="date" value-format="yyyy-MM-dd">
+ </el-date-picker>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ヨ澶囧悕绉�', trigger: 'change' }]" label="璁惧鍚嶇О"
+ prop="deviceId">
+ <el-select v-model="form.deviceId" class="table_input" clearable filterable placeholder="璁惧鍚嶇О"
+ size="small" @change="getCalibrationDateFun">
+ <el-option v-for="item in equipOptions" :key="item.id" :label="item.deviceName" :value="item.id">
+ {{ item.deviceName + item.managementNumber }}
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="璁惧缂栧彿">
+ <el-input v-model="form.managementNumber" disabled size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鏈�杩戞牎鍑嗘棩鏈�">
+ <el-input v-model="form.lastCalibrationDate" disabled size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="涓嬫鏍″噯鏃ユ湡">
+ <el-input v-model="form.nextCalibrationDate" disabled size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="妫�娴嬭��" prop="recipientUser">
+ <el-select v-model="form.testerId" clearable filterable placeholder="璇烽�夋嫨" size="small"
+ style="width: 100%;">
+ <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鏍告煡浜�" prop="recipientUser">
+ <el-select v-model="form.checkerId" clearable filterable placeholder="璇烽�夋嫨" size="small"
+ style="width: 100%;">
+ <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="24">
+ <el-form-item label="缁撹">
+ <el-input v-model="form.conclusion" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" type="textarea">
+ </el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <div>
+ <div style="display: flex; justify-content: flex-end; margin-bottom: 0.5em">
+ <el-button size="small" type="primary" @click="feMeasuredQuantityListAdd">鏂板</el-button>
+ </div>
+ <div>
+ <el-table :data="form.feMeasuredQuantityList" height="40vh" style="width: 100%; margin: auto">
+ <el-table-column label="搴忓彿" type="index" width="80"></el-table-column>
+ <el-table-column align="center" label="娴嬪畾閲忓悕绉�" min-width="180" prop="measuredQuantityLabel">
+ <template #default="{ row }">
+ <el-input v-model="row.measuredQuantityLabel" :rows="1" type="textarea"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column align="center" label="鍊�" min-width="300" prop="name">
+ <template>
+ <el-table-column align="center" label="A" min-width="100" prop="valueA">
+ <template #default="{ row }">
+ <el-input v-model="row.valueA" :rows="1"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column align="center" label="B" min-width="100" prop="valueB">
+ <template #default="{ row }">
+ <el-input v-model="row.valueB" :rows="1"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column align="center" label="C" min-width="100" prop="valueC">
+ <template #default="{ row }">
+ <el-input v-model="row.valueC" :rows="1"></el-input>
+ </template>
+ </el-table-column>
+ </template>
+ </el-table-column>
+ <el-table-column fixed="right" label="鎿嶄綔" width="100">
+ <template slot-scope="scope">
+ <el-button size="small" type="text" @click="feMeasuredQuantityListDelete(scope.row, scope.$index)">
+ 鍒犻櫎
+ </el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ </div>
+ </el-form>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
+ <el-button type="primary" :loading="submitLoading" @click="addPowerSupplyStability">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import {
+ getLaboratoryFacilityPowerStablePage,
+ deviceScopeSearch,
+ treeDevice,
+ selectUserCondition,
+ addLaboratoryFacilityPowerStable,
+ deleteFeMeasuredQuantity,
+ getFeMeasuredQuantityService,
+ deleteLaboratoryFacilityPowerStable,
+ exportFePowerStable
+} from '@/api/cnas/resourceDemand/facilitiesEnvironment/facilitiesAndEnvironment'
+
+export default {
+ data() {
+ return {
+ search: {
+ size: 10,
+ current: 1,
+ total: 0
+ },
+ tableData: [],
+ dialogVisible: false,
+ submitLoading: false,
+ form: {
+ testLocation: '',
+ testDate: '',
+ deviceId: '',
+ managementNumber: '',
+ lastCalibrationDate: '',
+ nextCalibrationDate: '',
+ testerId: '',
+ checkerId: '',
+ conclusion: '',
+ feMeasuredQuantityList: []
+ },
+ equipOptions: [],
+ cascaderList: [],
+ responsibleOptions: []
+ }
+ },
+ mounted() {
+ this.initData()
+ },
+ watch: {
+ dialogVisible(newVal) {
+ if (!newVal) {
+ this.form = {
+ deviceId: null,
+ feMeasuredQuantityList: []
+ }
+ }
+ }
+ },
+ methods: {
+ // 鍒濆鍖栬皟鐢�
+ initData() {
+ getLaboratoryFacilityPowerStablePage({
+ ...this.search
+ }).then(res => {
+ if (res.code === 200) {
+ this.tableData = res.data.records;
+ this.search.total = res.data.total;
+ }
+ })
+ },
+ handleSizeChange(val) {
+ this.search.size = val;
+ this.initData();
+ },
+ handleCurrentChange(val) {
+ this.search.current = val;
+ this.initData();
+ },
+ // 鐢垫簮绋冲畾鎬� 琛ㄦ牸涓殑琛屽垹闄ゆ寜閽�
+ deleteRowFun(row) {
+ this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ deleteLaboratoryFacilityPowerStable({ powerStableId: row.powerStableId }).then(res => {
+ this.$message.success('鍒犻櫎鎴愬姛锛�')
+ this.initData()
+ })
+ })
+ },
+ openAddDia() {
+ this.dialogVisible = true
+ this.getEquipOptions()
+ },
+ // 鑾峰彇鎵�鏈夎澶�
+ getEquipOptions() {
+ this.equipOptions = []
+ deviceScopeSearch({ status: '0' }).then(res => {
+ if (res.code === 200 && res.data) {
+ this.equipOptions = res.data
+ }
+ }).catch(error => {
+ console.error(error)
+ })
+ },
+ // 鐢垫簮绋冲畾鎬�-鎵撳紑寮规璋冪敤璁惧鎺ュ彛锛屾煡璇娇鐢ㄧ殑璁惧
+ openDialog() {
+ treeDevice().then(res => {
+ this.cascaderList = res.data;
+ })
+ this.$nextTick(() => {
+ this.$refs['form'].clearValidate()
+ })
+ this.getUserList()
+ },
+ //
+ getCalibrationDateFun(val) {
+ const index = this.equipOptions.findIndex(item => item.id === val)
+ if (index > -1) {
+ this.form.managementNumber = this.equipOptions[index].managementNumber
+ this.form.lastCalibrationDate = this.equipOptions[index].lastCalibrationDate
+ this.form.nextCalibrationDate = this.equipOptions[index].nextCalibrationDate
+ }
+ },
+ // 鐢垫簮绋冲畾鎬�-娴嬪畾閲忓脊妗嗕腑琛ㄦ牸鐨勫垹闄よ
+ feMeasuredQuantityListDelete(row, index) {
+ if (row.measuredQuantityId) {
+ deleteFeMeasuredQuantity({ measuredQuantityId: row.measuredQuantityId }).then(res => {
+ if (res.code === 201) return
+ this.form.feMeasuredQuantityList.splice(index, 1)
+ this.$message.success('鍒犻櫎鎴愬姛锛�')
+ })
+ } else {
+ this.form.feMeasuredQuantityList.splice(index, 1)
+ this.$message.success('鍒犻櫎鎴愬姛锛�')
+ }
+ },
+ // 鐢垫簮绋冲畾鎬�-娴嬪畾閲忚〃鏍兼柊澧炶
+ feMeasuredQuantityListAdd() {
+ const obj = {
+ measuredQuantityLabel: null,
+ valueA: null,
+ valueB: null,
+ valueC: null,
+ }
+ this.form.feMeasuredQuantityList.push(obj)
+ },
+ // 鐢垫簮绋冲畾鎬� 鏂板
+ addPowerSupplyStability() {
+ this.submitLoading = true
+ this.$refs.form.validate((valid) => {
+ if (valid) {
+ addLaboratoryFacilityPowerStable(this.form).then(res => {
+ this.submitLoading = false
+ if (res.code === 200) {
+ this.initData()
+ this.dialogVisible = false
+ }
+ }).catch(error => {
+ this.submitLoading = false
+ })
+ }
+ });
+ },
+ // 瀵煎嚭
+ downLoadPost(row) {
+ exportFePowerStable({ powerStableId: row.powerStableId }).then(res => {
+ this.outLoading = false
+ const blob = new Blob([res], { type: 'application/msword' });
+ this.$download.saveAs(blob, '鐢垫簮绋冲畾鎬�.docx')
+ })
+ },
+ // 鐢垫簮绋冲畾鎬� 鐐瑰嚮琛岀紪杈戣Е鍙�
+ edit(row) {
+ getFeMeasuredQuantityService({ powerStableId: row.powerStableId }).then((res => {
+ this.form = { ...row }
+ this.form.feMeasuredQuantityList = res.data;
+ this.dialogVisible = true
+ }))
+ },
+ // 鑾峰彇璐熻矗浜轰俊鎭帴鍙�
+ getUserList() {
+ selectUserCondition().then(res => {
+ if (res.code == 200) {
+ let data = []
+ res.data.forEach(a => {
+ data.push({
+ id: a.id,
+ name: a.name
+ })
+ })
+ this.responsibleOptions = data
+ }
+ })
+ },
+ }
+}
+</script>
+
+<style scoped>
+.header {
+ height: 3em;
+ width: 100%;
+ display: flex;
+ justify-content: space-between;
+}
+</style>
diff --git a/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/temperature-humidity-record.vue b/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/temperature-humidity-record.vue
new file mode 100644
index 0000000..7bed13c
--- /dev/null
+++ b/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/temperature-humidity-record.vue
@@ -0,0 +1,428 @@
+<template>
+ <div>
+ <el-row :gutter="20">
+ <el-col :span="12">
+ <div class="header">
+ <div>璇曢獙鍖哄煙</div>
+ <div>
+ 鍚嶇О锛�
+ <el-input v-model="search.testAreaName" clearable size="small" style="width: 120px"></el-input>
+ <el-button size="small" type="primary" @click="initData">鏌ヨ</el-button>
+ <el-button size="small" type="primary" @click="clickAdd">鏂� 澧�</el-button>
+ </div>
+ </div>
+ <el-table :data="tableData" height="calc(100vh - 19em)" highlight-current-row style="width: 100%"
+ @row-click="clickRow">
+ <el-table-column label="搴忓彿" type="index" width="60" align="center"></el-table-column>
+ <el-table-column label="鏈堝害鏃堕棿" min-width="180" prop="monthDate"></el-table-column>
+ <el-table-column label="璇曢獙鍖哄煙鍚嶇О" min-width="180" prop="testAreaName"></el-table-column>
+ <el-table-column label="纭鐘舵��" min-width="180" prop="isAffirm">
+ <template slot-scope="scope">
+ <el-tag type="danger" v-if="scope.row.isAffirm == 0">鏈‘璁�</el-tag>
+ <el-tag type="success" v-if="scope.row.isAffirm == 1">宸茬‘璁�</el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column label="澧炶ˉ淇℃伅" min-width="180" prop="subjoin"></el-table-column>
+ <el-table-column fixed="right" label="鎿嶄綔" min-width="180" align="center">
+ <template v-slot="scope">
+ <el-button size="small" type="text" @click="downLoadPost(scope.row)">瀵煎嚭</el-button>
+ <el-button size="small" type="text" @click="edit(scope.row)">缂栬緫</el-button>
+ <el-button :disabled="scope.row.isAffirm === '1'" size="small" type="text"
+ @click="openApprovalDialog(scope.row)">纭</el-button>
+ <el-button size="small" type="text" @click="deleteRowFun(scope.row)">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]"
+ :total="search.total" layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange"
+ @current-change="handleCurrentChange">
+ </el-pagination>
+ </el-col>
+ <el-col :span="12">
+ <div class="header">
+ <div>娓╂箍搴﹁褰曪細{{ saveRow.monthDate }}</div>
+ <div>
+ <el-button v-if="saveRow.monthDate" size="small" type="primary" @click="dialogVisible1 = true">鏂�
+ 澧�</el-button>
+ </div>
+ </div>
+ <el-table :data="tableData1" height="calc(100vh - 18em)" style="width: 100%">
+ <el-table-column label="搴忓彿" type="index" width="60" align="center"></el-table-column>
+ <el-table-column label="鏃ユ湡" min-width="100" prop="recordDate"></el-table-column>
+ <el-table-column align="center" label="涓婂崍" min-width="200">
+ <template>
+ <el-table-column label="鏃堕棿" min-width="110" prop="morningTestTime"
+ show-overflow-tooltip></el-table-column>
+ <el-table-column label="娓╁害" min-width="80" prop="morningTemp" show-overflow-tooltip></el-table-column>
+ <el-table-column label="婀垮害" min-width="80" prop="morningHum" show-overflow-tooltip></el-table-column>
+ </template>
+ </el-table-column>
+ <el-table-column label="璁板綍鍛�" min-width="100" prop="morningRecorderUser"></el-table-column>
+ <el-table-column align="center" label="涓嬪崍" min-width="200">
+ <template>
+ <el-table-column label="鏃堕棿" min-width="110" prop="afternoonTime" show-overflow-tooltip></el-table-column>
+ <el-table-column label="娓╁害" min-width="80" prop="afternoonTemp" show-overflow-tooltip></el-table-column>
+ <el-table-column label="婀垮害" min-width="80" prop="afternoonHum" show-overflow-tooltip></el-table-column>
+ </template>
+ </el-table-column>
+ <el-table-column label="璁板綍鍛�" min-width="100" prop="afternoonRecorderUser"></el-table-column>
+ <el-table-column label="澶囨敞" min-width="100" prop="note" show-overflow-tooltip></el-table-column>
+ <el-table-column fixed="right" label="鎿嶄綔" min-width="100">
+ <template v-slot="scope">
+ <el-button size="small" type="text" @click="edit1(scope.row)">缂栬緫</el-button>
+ <el-button size="small" type="text" @click="deleteRowFun1(scope.row)">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <el-pagination :current-page="1" :page-size="search1.size" :page-sizes="[10, 20, 30, 50, 100]"
+ :total="search1.total" layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange1"
+ @current-change="handleCurrentChange1">
+ </el-pagination>
+ </el-col>
+ </el-row>
+ <el-dialog :visible.sync="dialogVisible" title="鎻愮ず" width="50%">
+ <div style="height: 20vh;">
+ <el-form ref="form" :model="form" label-width="80px">
+ <el-row>
+ <el-col :span="24">
+ <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ユ湀搴︽椂闂�', trigger: 'blur' }]" label="鏈堝害鏃堕棿"
+ prop="monthDate">
+ <el-date-picker v-model="form.monthDate" format="yyyy-MM" placeholder="閫夋嫨鏈堜唤" size="small"
+ style="width: 100%" type="month" value-format="yyyy-MM">
+ </el-date-picker>
+ </el-form-item>
+ </el-col>
+ <el-col :span="24">
+ <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ヨ瘯楠屽尯鍩�', trigger: 'blur' }]" label="璇曢獙鍖哄煙"
+ prop="testAreaName">
+ <el-input v-model="form.testAreaName"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
+ <el-button type="primary" :loading="submitLoading" @click="addPowerSupplyStability">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
+ <el-dialog :visible.sync="dialogVisible1" title="鎻愮ず" width="50%" @open="openDialog">
+ <div style="height: 40vh;">
+ <el-form ref="form1" :model="form1" label-width="120px">
+ <el-row>
+ <el-col :span="24">
+ <el-form-item label="鏃ユ湡">
+ <el-date-picker v-model="form1.recordDate" format="yyyy-MM-dd" placeholder="璇烽�夋嫨鏃ユ湡" size="small"
+ style="width: 50%" type="date" value-format="yyyy-MM-dd">
+ </el-date-picker>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="涓婂崍鏃堕棿">
+ <el-time-picker v-model="form1.morningTestTime" size="small" value-format="HH:mm:ss" format="HH:mm:ss"
+ style="width: 100%" placeholder="璇烽�夋嫨鏃堕棿">
+ </el-time-picker>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="涓婂崍娓╁害">
+ <el-input v-model="form1.morningTemp" size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="涓婂崍婀垮害">
+ <el-input v-model="form1.morningHum" size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="涓婂崍璁板綍鍛�">
+ <el-select v-model="form1.morningRecorderId" clearable filterable placeholder="璇烽�夋嫨" size="small"
+ style="width: 100%;">
+ <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="涓嬪崍鏃堕棿">
+ <el-time-picker v-model="form1.afternoonTime" size="small" value-format="HH:mm:ss" format="HH:mm:ss"
+ style="width: 100%" placeholder="璇烽�夋嫨鏃堕棿">
+ </el-time-picker>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="涓嬪崍娓╁害">
+ <el-input v-model="form1.afternoonTemp" size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="涓嬪崍婀垮害">
+ <el-input v-model="form1.afternoonHum" size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="涓嬪崍璁板綍鍛�">
+ <el-select v-model="form1.afternoonRecorderId" clearable filterable placeholder="璇烽�夋嫨" size="small"
+ style="width: 100%;">
+ <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="24">
+ <el-form-item label="澶囨敞">
+ <el-input v-model="form1.note" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" type="textarea">
+ </el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="dialogVisible1 = false">鍙� 娑�</el-button>
+ <el-button type="primary" :loading="submitLoading" @click="addPowerSupplyStability1">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
+ <el-dialog :visible.sync="approvalDialog" title="纭" width="30%" @close="subjoin = ''">
+ <span>
+ 澧炶ˉ淇℃伅锛�
+ <el-input v-model="subjoin" type="textarea"></el-input>
+ </span>
+ <span slot="footer" class="dialog-footer">
+ <el-button :loading="approvalLoading" @click="subjoin = '', approvalDialog = false">涓嶇‘璁�</el-button>
+ <el-button :loading="approvalLoading" type="primary" @click="handleApproval">纭� 璁�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import {
+ getFeTempHumDate,
+ addFeTempHumDate,
+ getFeTempHumRecordPage,
+ addFeTempHumRecord,
+ selectUserCondition,
+ deleteFeTempHumRecord,
+ deleteFeTempHumDate,
+ exportTemperatureAndHumidityRecords,
+ affirmFeTempHumDate
+} from '@/api/cnas/resourceDemand/facilitiesEnvironment/facilitiesAndEnvironment'
+
+export default {
+ data() {
+ return {
+ search: {
+ size: 20,
+ current: 1,
+ total: 0,
+ testAreaName: ''
+ },
+ search1: {
+ size: 20,
+ current: 1,
+ total: 0
+ },
+ tableData: [],
+ tableData1: [],
+ dialogVisible: false,
+ submitLoading: false,
+ dialogVisible1: false,
+ form: {},
+ form1: {},
+ saveRow: {},
+ responsibleOptions: [],
+ approvalDialog: false,
+ approvalLoading: false,
+ subjoin: '',
+ approvalRow: {},
+ }
+ },
+ mounted() {
+ this.initData()
+ },
+ watch: {
+ dialogVisible(newVal) {
+ if (!newVal) {
+ this.form = {
+ }
+ }
+ },
+ dialogVisible1(newVal) {
+ if (!newVal) {
+ this.form1 = {
+ }
+ }
+ }
+ },
+ methods: {
+ openApprovalDialog(row) {
+ this.approvalDialog = true
+ this.approvalRow = row
+ },
+ handleApproval() {
+ this.approvalLoading = true
+ const params = {
+ dateId: this.approvalRow.dateId,
+ subjoin: this.subjoin,
+ }
+ affirmFeTempHumDate(params).then(res => {
+ this.approvalLoading = false
+ if (res.code === 200) {
+ this.$message.success('纭鎴愬姛锛�')
+ this.approvalDialog = false
+ this.initData()
+ }
+ }).catch(err => {
+ this.approvalDialog = false
+ })
+ },
+ openDialog() {
+ selectUserCondition().then(res => {
+ if (res.code == 200) {
+ this.responsibleOptions = res.data
+ }
+ })
+ },
+ addPowerSupplyStability() {
+ this.$refs.form.validate((valid) => {
+ if (valid) {
+ this.submitLoading = true
+ addFeTempHumDate(this.form).then(res => {
+ if (res.code === 200) {
+ this.$message.success('鏂板鎴愬姛!')
+ this.submitLoading = false
+ this.initData()
+ this.dialogVisible = false
+ }
+ }).catch(err => {
+ this.submitLoading = false
+ })
+ }
+ });
+ },
+ addPowerSupplyStability1() {
+ if (!this.saveRow) {
+ this.$message.warning("璇烽�夋嫨璇曢獙鍖哄煙锛�")
+ return
+ }
+ this.$refs.form1.validate((valid) => {
+ this.submitLoading = true
+ if (valid) {
+ this.form1.dateId = this.saveRow.dateId
+ addFeTempHumRecord(this.form1).then(res => {
+ if (res.code === 200) {
+ this.$message.success('鏂板鎴愬姛!')
+ this.submitLoading = false
+ this.initData1(this.saveRow.dateId)
+ this.dialogVisible1 = false
+ }
+ }).catch(err => {
+ this.submitLoading = false
+ })
+ }
+ });
+ },
+ clickRow(row) {
+ this.saveRow = row
+ this.initData1(row.dateId)
+ },
+ edit(row) {
+ this.form = { ...row }
+ this.dialogVisible = true
+ },
+ deleteRowFun(row) {
+ this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ deleteFeTempHumDate({ dateId: row.dateId }).then(res => {
+ this.$message.success('鍒犻櫎鎴愬姛锛�')
+ this.initData()
+ })
+ })
+ },
+ edit1(row) {
+ this.form1 = { ...row }
+ this.dialogVisible1 = true
+ },
+ // 瀵煎嚭
+ downLoadPost(row) {
+ exportTemperatureAndHumidityRecords({ dateId: row.dateId }).then(res => {
+ this.outLoading = false
+ const blob = new Blob([res], { type: 'application/msword' });
+ this.$download.saveAs(blob, '娓╂箍搴﹁褰�.docx')
+ })
+ },
+ deleteRowFun1(row) {
+ this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ deleteFeTempHumRecord({ tempHumId: row.tempHumId }).then(res => {
+ this.$message.success('鍒犻櫎鎴愬姛锛�')
+ this.initData1(this.saveRow.dateId)
+ })
+ })
+ },
+ initData() {
+ getFeTempHumDate({
+ ...this.search,
+ ...this.search
+ }).then(res => {
+ if (res.code === 200) {
+ this.tableData = res.data.records;
+ this.search.total = res.data.total;
+ if (res.data.records.length === 0) {
+ this.tableData1 = []
+ this.saveRow.monthDate = ''
+ }
+ }
+
+ })
+ },
+ initData1(dateId) {
+ let form = { dateId: dateId }
+ getFeTempHumRecordPage({
+ ...this.search1,
+ ...form
+ }).then(res => {
+ if (res.code === 200) {
+ this.tableData1 = res.data.records;
+ this.search1.total = res.data.total;
+ }
+ });
+ },
+ handleSizeChange(val) {
+ this.search.size = val;
+ this.initData();
+ },
+ handleCurrentChange(val) {
+ this.search.current = val;
+ this.initData();
+ },
+ handleSizeChange1(val) {
+ this.search1.size = val;
+ this.initData1();
+ },
+ handleCurrentChange1(val) {
+ this.search1.current = val;
+ this.initData1();
+ },
+ clickAdd() {
+ this.dialogVisible = true
+ }
+ }
+}
+</script>
+
+<style scoped>
+.header {
+ height: 3em;
+ width: 100%;
+ display: flex;
+ justify-content: space-between;
+}
+</style>
diff --git a/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/three-wastes-dialog.vue b/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/three-wastes-dialog.vue
new file mode 100644
index 0000000..510bbc2
--- /dev/null
+++ b/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/three-wastes-dialog.vue
@@ -0,0 +1,189 @@
+<template>
+ <div>
+ <el-dialog v-loading="diaLoading" :close-on-click-modal="false"
+ :close-on-press-escape="false"
+ :visible.sync="formDia"
+ title="涓夊簾澶勭悊淇℃伅"
+ width="80%" @close="closeThreeWastesDia">
+ <el-form ref="form" :model="form" :rules="rules" label-width="auto">
+ <el-col :span="24">
+ <el-form-item label="澶囨敞" prop="purposes">
+ <el-input v-model="form.remark" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-form>
+ <div style="text-align: right;margin-bottom: 10px">
+ <el-button size="small" type="primary" @click="addRow">娣诲姞</el-button>
+ <el-button size="small" type="danger" @click="clearTable">娓呯┖</el-button>
+ </div>
+ <el-table :data="wastesDetailList" border height="300" style="width: 100%">
+ <el-table-column align="center" label="搴忓彿" type="index" width="60" />
+ <el-table-column header-align="center" label="鎺ユ敹浜�" prop="acceptor">
+ <template slot-scope="{row}">
+ <el-input v-model="row.acceptor" size="small"/>
+ </template>
+ </el-table-column>
+ <el-table-column header-align="center" label="鎺ユ敹鍗曚綅" prop="receivingUnit">
+ <template slot-scope="{row}">
+ <el-input v-model="row.receivingUnit" size="small"/>
+ </template>
+ </el-table-column>
+ <el-table-column header-align="center" label="鍚嶇О" prop="designation">
+ <template slot-scope="{row}">
+ <el-input v-model="row.designation" size="small"/>
+ </template>
+ </el-table-column>
+ <el-table-column header-align="center" label="绉讳氦浜�" prop="transferPeople" width="180">
+ <template slot-scope="{row}">
+ <el-input v-model="row.transferPeople" size="small"/>
+ </template>
+ </el-table-column>
+ <el-table-column header-align="center" label="浣撶Н" prop="volume" width="180">
+ <template slot-scope="{row}">
+ <el-input v-model="row.volume" size="small"/>
+ </template>
+ </el-table-column>
+ <el-table-column header-align="center" label="閫佸鐞嗘棩鏈�" prop="deliveryDate" width="180">
+ <template slot-scope="{row}">
+ <!-- <el-input v-model="row.deliveryDate" size="small"/> -->
+ <el-date-picker
+ value-format="yyyy-MM-dd"
+ style="width: 100%"
+ format="yyyy-MM-dd"
+ size="small"
+ v-model="row.deliveryDate"
+ type="date"
+ placeholder="閫夋嫨鏃ユ湡">
+ </el-date-picker>
+ </template>
+ </el-table-column>
+ </el-table>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="closeThreeWastesDia">鍙� 娑�</el-button>
+ <el-button :loading="loading" type="primary" @click="handleEdit">鎻� 浜�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import {
+ getInternalWastesOne,
+ addInternalWastes,
+ updateInternalWastes
+} from '@/api/cnas/resourceDemand/facilitiesEnvironment/internalWastes'
+
+export default {
+ name: 'three-wastes-dialog',
+ // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+ components: {},
+ data() {
+ // 杩欓噷瀛樻斁鏁版嵁
+ return {
+ formDia: false,
+ diaLoading: false,
+ loading: false,
+ form: {
+ remark: '',
+ wastesId: '',
+ },
+ rules: {
+ remark: [{required: false, message: '璇峰~鍐欏娉�',trigger: 'blur'}],
+ },
+ wastesDetailList: [],
+ operationType: '',
+ };
+ },
+ mounted() {
+
+ },
+ // 鏂规硶闆嗗悎
+ methods: {
+ // 鎵撳紑寮规
+ openDia (type, row) {
+ this.formDia = true
+ this.operationType = type
+ if (type !== 'add') {
+ this.searchInfo(row)
+ }
+ },
+ // 鏌ヨ璇︽儏
+ searchInfo (row) {
+ this.diaLoading = true
+ getInternalWastesOne({wastesId: row.wastesId}).then(res => {
+ this.diaLoading = false
+ if (res.code === 200){
+ this.form = res.data
+ this.wastesDetailList = this.form.wastesDetailList
+ }
+ }).catch(err => {
+ console.log(err)
+ this.diaLoading = false
+ })
+ },
+ // 鎻愪氦寮规鏁版嵁
+ handleEdit () {
+ this.$refs['form'].validate((valid) => {
+ if (valid) {
+ if (this.wastesDetailList.length === 0) {
+ this.$message.warning('璇锋坊鍔犺〃鏍兼暟鎹�')
+ return
+ }
+ this.loading = true
+ const internalImplementDto = this.HaveJson(this.form)
+ internalImplementDto.wastesDetailList = this.HaveJson(this.wastesDetailList)
+ if (this.operationType === 'add') {
+ addInternalWastes(internalImplementDto).then(res => {
+ this.loading = false
+ if (res.code === 200){
+ this.$message.success('鎿嶄綔鎴愬姛')
+ this.closeThreeWastesDia()
+ }
+ }).catch(err => {
+ console.log('err---', err);
+ this.loading = false
+ })
+ } else if (this.operationType === 'edit') {
+ updateInternalWastes(internalImplementDto).then(res => {
+ this.loading = false
+ if (res.code === 200){
+ this.$message.success('鎿嶄綔鎴愬姛')
+ this.closeThreeWastesDia()
+ }
+ }).catch(err => {
+ console.log('err---', err);
+ this.loading = false
+ })
+ }
+ } else {
+ console.log('error submit!!');
+ return false;
+ }
+ });
+ },
+ // 澧炲姞琛ㄦ牸琛屾暟鎹�
+ addRow () {
+ this.wastesDetailList.push({
+ acceptor: '',
+ receivingUnit: '',
+ designation: '',
+ transferPeople: '',
+ volume: '',
+ deliveryDate: '',
+ })
+ },
+ // 娓呯┖琛ㄦ牸鏁版嵁
+ clearTable () {
+ this.wastesDetailList = []
+ },
+ closeThreeWastesDia () {
+ this.$refs.form.resetFields();
+ this.formDia = false
+ this.$emit('closeThreeWastesDia')
+ },
+ }
+};
+</script>
+
+<style scoped>
+</style>
diff --git a/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/three-wastes-treatment.vue b/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/three-wastes-treatment.vue
new file mode 100644
index 0000000..3f70121
--- /dev/null
+++ b/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/three-wastes-treatment.vue
@@ -0,0 +1,206 @@
+<template>
+ <div class="capacity-scope">
+ <div class="search">
+ <div>
+ <el-form :model="searchForm" ref="searchForm" size="small" :inline="true">
+ <el-form-item label="澶囨敞" prop="remark">
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="searchForm.remark">
+ </el-input>
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" icon="el-icon-search" size="mini" @click="searchList">鏌� 璇�</el-button>
+ <el-button icon="el-icon-refresh" size="mini" @click="resetSearchForm">閲� 缃�</el-button>
+ </el-form-item>
+ </el-form>
+ </div>
+ <div>
+ <el-button size="medium" type="primary" @click="openFormDia('add')">鏂� 澧�</el-button>
+ </div>
+
+ </div>
+ <div class="table">
+ <lims-table :tableData="tableData" :column="tableColumn" :height="'calc(100vh - 280px)'" @pagination="pagination"
+ :page="page" :tableLoading="tableLoading"></lims-table>
+ </div>
+ <three-wastes-dialog v-if="threeWastesDia" ref="threeWastesDia"
+ @closeThreeWastesDia="closeThreeWastesDia"></three-wastes-dialog>
+ </div>
+</template>
+
+<script>
+import ThreeWastesDialog from './three-wastes-dialog.vue';
+import limsTable from '@/components/Table/lims-table.vue'
+import {
+ pageInternalWastes,
+ removeStandardSubstance,
+ exportInternalWastes
+} from '@/api/cnas/resourceDemand/facilitiesEnvironment/internalWastes'
+export default {
+ name: 'a6-three-wastes-treatment',
+ // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+ components: {
+ ThreeWastesDialog,
+ limsTable
+ },
+ data() {
+ // 杩欓噷瀛樻斁鏁版嵁
+ return {
+ searchForm: {
+ remark: '',
+ },
+ tableColumn: [
+ {
+ label: '鍒涘缓鏃堕棿',
+ prop: 'createTime',
+ minWidth: '100'
+ },
+ {
+ label: '鍒涘缓浜�',
+ prop: 'createUserName',
+ minWidth: '100'
+ },
+ {
+ label: '澶囨敞',
+ prop: 'remark',
+ minWidth: '100'
+ },
+ {
+ label: '淇敼鏃堕棿',
+ prop: 'updateTime',
+ minWidth: '100'
+ },
+ {
+ label: '淇敼浜�',
+ prop: 'updateUserName',
+ minWidth: '100'
+ },
+ {
+ dataType: 'action',
+ fixed: 'right',
+ minWidth: '220',
+ label: '鎿嶄綔',
+ operation: [
+ {
+ name: '瀵煎嚭',
+ type: 'text',
+ clickFun: (row) => {
+ this.handleDown(row)
+ }
+ },
+ {
+ name: '缂栬緫',
+ type: 'text',
+ clickFun: (row) => {
+ this.openFormDia('edit', row);
+ },
+ },
+ {
+ name: '鍒犻櫎',
+ type: 'text',
+ color: '#f56c6c',
+ clickFun: (row) => {
+ this.delPlan(row)
+ },
+ }
+ ]
+ }
+ ],
+ tableData: [],
+ tableLoading: false,
+ page: {
+ total: 0,
+ size: 10,
+ current: 1
+ },
+ total: 0,
+ threeWastesDia: false
+ };
+ },
+ mounted() {
+ this.searchList()
+ },
+ // 鏂规硶闆嗗悎
+ methods: {
+ // 鏌ヨ鍒楄〃
+ searchList() {
+ this.tableLoading = true
+ pageInternalWastes({ ...this.page, ...this.searchForm }).then(res => {
+ this.tableLoading = false
+ if (res.code === 200) {
+ this.tableData = res.data.records
+ this.page.total = res.data.total
+ }
+ }).catch(err => {
+ console.log('err---', err);
+ this.tableLoading = false
+ })
+ },
+ // 鍒犻櫎
+ delPlan(row) {
+ this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ this.tableLoading = true
+ removeStandardSubstance({ wastesId: row.wastesId }).then(res => {
+ this.tableLoading = false
+ if (res.code === 200) {
+ this.$message.success('鍒犻櫎鎴愬姛')
+ this.searchList()
+ }
+ }).catch(err => {
+ this.tableLoading = false
+ console.log('err---', err);
+ })
+ }).catch(() => {
+ this.$message({
+ type: 'info',
+ message: '宸插彇娑堝垹闄�'
+ });
+ });
+ },
+ // 鏂板锛岀紪杈戯紝鎵瑰噯寮规
+ openFormDia(type, row) {
+ this.threeWastesDia = true
+ this.$nextTick(() => {
+ this.$refs.threeWastesDia.openDia(type, row)
+ })
+ },
+ // 瀵煎嚭
+ handleDown(row) {
+ exportInternalWastes({ wastesId: row.wastesId }).then(res => {
+ this.outLoading = false
+ const blob = new Blob([res], { type: 'application/msword' });
+ this.$download.saveAs(blob, '涓夊簾澶勭悊瀵煎嚭.docx')
+ })
+ },
+ closeThreeWastesDia() {
+ this.threeWastesDia = false
+ this.searchList()
+ },
+ // 閲嶇疆鏌ヨ鏉′欢
+ resetSearchForm() {
+ this.searchForm.remark = '';
+ this.searchList()
+ },
+ // 鍒嗛〉鍒囨崲
+ pagination(page) {
+ this.page.size = page.limit
+ this.searchList();
+ },
+ }
+};
+</script>
+
+<style scoped>
+.search {
+ height: 46px;
+ display: flex;
+ justify-content: space-between;
+}
+
+.capacity-scope {
+ padding: 20px;
+}
+</style>
diff --git a/src/views/CNAS/resourceDemand/facilitiesEnvironment/index.vue b/src/views/CNAS/resourceDemand/facilitiesEnvironment/index.vue
new file mode 100644
index 0000000..45fec52
--- /dev/null
+++ b/src/views/CNAS/resourceDemand/facilitiesEnvironment/index.vue
@@ -0,0 +1,51 @@
+<template>
+ <div class="main">
+ <el-tabs v-model="activeName" :lazy="true" type="border-card">
+ <el-tab-pane label="璁炬柦鍜岀幆澧冩潯浠惰姹�" name="璁炬柦鍜岀幆澧冩潯浠惰姹�">
+ <FacilitiesEnvironmentalConditions v-if="activeName === '璁炬柦鍜岀幆澧冩潯浠惰姹�'" />
+ </el-tab-pane>
+
+ <el-tab-pane label="涓夊簾澶勭悊" name="涓夊簾澶勭悊">
+ <a6-three-wastes-treatment v-if="activeName === '涓夊簾澶勭悊'"></a6-three-wastes-treatment>
+ </el-tab-pane>
+ <el-tab-pane label="杩涘嚭浜哄憳绠$悊" name="杩涘嚭浜哄憳绠$悊">
+ <personnel-management v-if="activeName === '杩涘嚭浜哄憳绠$悊'"></personnel-management>
+ </el-tab-pane>
+ </el-tabs>
+ </div>
+</template>
+
+<script>
+import FacilitiesEnvironmentalConditions from "../facilitiesEnvironment/component/facilities-environmental-conditions.vue";
+// // 澶栨潵浜哄憳绠$悊
+// import ExternalPersonnelManagement from "../facilitiesEnvironment/component/Personnel-management.vue";
+import A6ThreeWastesTreatment from '../facilitiesEnvironment/component/three-wastes-treatment.vue';
+import PersonnelManagement from '../facilitiesEnvironment/component/Personnel-management.vue';
+
+export default {
+ components: {
+ // PersonnelManagement,
+ A6ThreeWastesTreatment,
+ PersonnelManagement,
+ FacilitiesEnvironmentalConditions
+ },
+ data() {
+ return {
+ activeName: '璁炬柦鍜岀幆澧冩潯浠惰姹�',
+ }
+ }
+}
+</script>
+
+<style scoped>
+.main {
+ padding: 15px 0;
+ width: 100%;
+ border-radius: 15px;
+}
+
+>>>.el-tabs--border-card>.el-tabs__content {
+ height: calc(100vh - 10em) !important;
+ padding: 0;
+}
+</style>
diff --git a/src/views/business/inspectionOrder/add.vue b/src/views/business/inspectionOrder/add.vue
index 1bb080d..68a2506 100644
--- a/src/views/business/inspectionOrder/add.vue
+++ b/src/views/business/inspectionOrder/add.vue
@@ -1,94 +1,35 @@
<template>
- <div>
+ <div class="bg-1">
<div v-show="!configShow && !equipConfigShow && !cableConfigShow">
<el-row class="title">
- <el-col :span="6" style="padding-left: 20px; text-align: left"
- >濮旀墭鍗曚俊鎭� 鎬讳环锛�<span style="color: #3a7bfa"
- >锟{ total }}</span
- ></el-col
- >
+ <el-col :span="6" style="padding-left: 20px; text-align: left">濮旀墭鍗曚俊鎭� 鎬讳环锛�<span
+ style="color: #3a7bfa">锟{ total }}</span></el-col>
<el-col :span="18" style="text-align: right">
- <el-select
- v-model="template"
- size="medium"
- filterable
- placeholder="涓嬪崟妯℃澘"
- style="margin-right: 10px"
- v-show="active == 1"
- @change="selectInsOrderTemplateById"
- >
- <el-option
- v-for="(a, ai) in templates"
- :key="ai"
- :value="a.id"
- :label="a.name"
- >
+ <el-select v-model="template" size="medium" filterable placeholder="涓嬪崟妯℃澘" style="margin-right: 10px"
+ v-show="active == 1" @change="selectInsOrderTemplateById">
+ <el-option v-for="(a, ai) in templates" :key="ai" :value="a.id" :label="a.name">
<span style="float: left">{{ a.name }}</span>
- <i
- class="el-icon-delete"
- style="float: right; color: #66b1ff; font-size: 16px"
- @click.stop="handleDelete(a)"
- ></i>
+ <i class="el-icon-delete" style="float: right; color: #66b1ff; font-size: 16px"
+ @click.stop="handleDelete(a)"></i>
</el-option>
</el-select>
- <el-button
- size="medium"
- @click="templateDia = true"
- v-show="active == 1"
- >
+ <el-button size="medium" @click="templateDia = true" v-show="active == 1">
<span style="color: #3a7bfa">淇濆瓨妯℃澘</span>
</el-button>
- <el-button
- size="medium"
- type="primary"
- @click="openCableConfig"
- v-if="
- active == 1 &&
- PROJECT == '瑁呭鐢电紗' &&
- addObj.sampleType != undefined &&
- addObj.sampleType.indexOf('鐢电紗') > -1
- "
- >鐢电紗閰嶇疆</el-button
- >
- <el-button
- size="medium"
- type="primary"
- @click="openEquipConfig"
- v-if="active == 1"
- >瀛愭牱鍝侀厤缃�</el-button
- >
- <el-button
- size="medium"
- type="primary"
- @click="openConfig"
- v-if="addObj.sampleType === '鍏夌紗'"
- >鍏夌氦閰嶇疆</el-button
- >
- <el-button
- size="medium"
- type="primary"
- @click="save"
- :loading="saveLoad"
- v-show="active == 1"
- >鎻愪氦</el-button
- >
+ <el-button size="medium" type="primary" @click="openCableConfig" v-if="
+ active == 1 &&
+ PROJECT == '瑁呭鐢电紗' &&
+ addObj.sampleType != undefined &&
+ addObj.sampleType.indexOf('鐢电紗') > -1
+ ">鐢电紗閰嶇疆</el-button>
+ <el-button size="medium" type="primary" @click="openEquipConfig" v-if="active == 1">瀛愭牱鍝侀厤缃�</el-button>
+ <el-button size="medium" type="primary" @click="openConfig" v-if="addObj.sampleType === '鍏夌紗'">鍏夌氦閰嶇疆</el-button>
+ <el-button size="medium" type="primary" @click="save" :loading="saveLoad" v-show="active == 1">鎻愪氦</el-button>
<!-- 瀹℃牳 -->
- <el-button
- size="medium"
- @click="upInsOrderOfState(2)"
- :loading="saveLoad"
- v-show="active == 3 && addObj.companyId"
- :disabled="saveLoad"
- >涓嶉�氳繃</el-button
- >
- <el-button
- size="medium"
- type="primary"
- @click="upInsOrderOfState(1)"
- :loading="saveLoad"
- v-show="active == 3 && addObj.companyId"
- >閫氳繃</el-button
- >
+ <el-button size="medium" @click="upInsOrderOfState(2)" :loading="saveLoad"
+ v-show="active == 3 && addObj.companyId" :disabled="saveLoad">涓嶉�氳繃</el-button>
+ <el-button size="medium" type="primary" @click="upInsOrderOfState(1)" :loading="saveLoad"
+ v-show="active == 3 && addObj.companyId">閫氳繃</el-button>
<el-button size="medium" @click="$parent.playOrder(0)">
<span style="color: #3a7bfa">杩斿洖</span>
</el-button>
@@ -96,79 +37,35 @@
</el-row>
</div>
<basic-container>
- <div
- class="search"
- v-show="!configShow && !equipConfigShow && !cableConfigShow"
- >
- <el-form
- :model="addObj"
- :rules="formRule"
- label-position="right"
- inline
- >
+ <div class="search" v-show="!configShow && !equipConfigShow && !cableConfigShow">
+ <el-form :model="addObj" :rules="formRule" label-position="right" inline>
<el-row>
<el-col :span="6">
<el-form-item label="濮旀墭缂栧彿锛�" prop="entrustCode">
- <el-input
- v-model="addObj.entrustCode"
- size="small"
- class="search_input"
- placeholder="绯荤粺鐢熸垚"
- disabled
- ></el-input>
+ <el-input v-model="addObj.entrustCode" size="small" class="search_input" placeholder="绯荤粺鐢熸垚"
+ disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="妫�楠岀被鍒細" prop="orderType">
- <el-select
- size="small"
- class="search_input"
- clearable
- v-model="addObj.orderType"
- :disabled="active > 1"
- >
- <el-option
- v-for="(a, ai) in orderType"
- :key="ai"
- :value="a.dictValue"
- :label="a.dictLabel"
- ></el-option>
+ <el-select size="small" class="search_input" clearable v-model="addObj.orderType"
+ :disabled="active > 1">
+ <el-option v-for="(a, ai) in orderType" :key="ai" :value="a.dictValue"
+ :label="a.dictLabel"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="鍒跺崟浜猴細" prop="custom">
- <el-input
- size="small"
- class="search_input"
- clearable
- disabled
- v-model="addObj.custom"
- ></el-input>
+ <el-input size="small" class="search_input" clearable disabled v-model="addObj.custom"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
- <el-form-item
- label="濮旀墭鍗曚綅锛�"
- prop="company"
- class="company_input"
- >
- <el-input
- readonly
- size="small"
- v-model="addObj.company"
- placeholder="閫夋嫨濮旀墭鍗曚綅"
- >
- <template slot="append"
- ><el-button
- slot="append"
- icon="el-icon-search"
- @click="selectUserDia = true"
- :disabled="
- active > 1 || addObj.company != '涓ぉ绉戞妧妫�娴嬩腑蹇�'
- "
- ></el-button
- ></template>
+ <el-form-item label="濮旀墭鍗曚綅锛�" prop="company" class="company_input">
+ <el-input readonly size="small" v-model="addObj.company" placeholder="閫夋嫨濮旀墭鍗曚綅">
+ <template slot="append"><el-button slot="append" icon="el-icon-search" @click="selectUserDia = true"
+ :disabled="active > 1 || addObj.company != '涓ぉ绉戞妧妫�娴嬩腑蹇�'
+ "></el-button></template>
</el-input>
</el-form-item>
</el-col>
@@ -176,82 +73,39 @@
<el-row>
<el-col :span="6">
<el-form-item label="鑱旂郴鏂瑰紡锛�" prop="phone">
- <el-input
- size="small"
- placeholder="璇疯緭鍏�"
- class="search_input"
- clearable
- :readonly="active > 1"
- v-model="addObj.phone"
- ></el-input>
+ <el-input size="small" placeholder="璇疯緭鍏�" class="search_input" clearable :readonly="active > 1"
+ v-model="addObj.phone"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="绱ф�ョ▼搴︼細" prop="type">
- <el-select
- @change="changeType"
- size="small"
- class="search_input"
- clearable
- v-model="addObj.type"
- :disabled="active > 1"
- >
- <el-option
- v-for="(a, ai) in type"
- :key="ai"
- :value="a.dictValue"
- :label="a.dictLabel"
- ></el-option>
+ <el-select @change="changeType" size="small" class="search_input" clearable v-model="addObj.type"
+ :disabled="active > 1">
+ <el-option v-for="(a, ai) in type" :key="ai" :value="a.dictValue" :label="a.dictLabel"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
- <el-form-item
- label="鏍峰搧鍚嶇О锛�"
- prop="sample"
- class="sample_input"
- >
+ <el-form-item label="鏍峰搧鍚嶇О锛�" prop="sample" class="sample_input">
<el-input readonly size="small" v-model="addObj.sample">
- <template slot="append"
- ><el-button
- slot="append"
- icon="el-icon-search"
- @click="selectStandardTree = true"
- :disabled="active > 1"
- ></el-button
- ></template>
+ <template slot="append"><el-button slot="append" icon="el-icon-search"
+ @click="selectStandardTree = true" :disabled="active > 1"></el-button></template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="鏍峰搧鏁伴噺锛�" prop="sampleNum">
- <el-input-number
- size="small"
- v-model="addObj.sampleNum"
- :min="1"
- :max="100"
- :precision="0"
- @change="addStandardTree"
- :disabled="active > 1"
- ></el-input-number>
+ <el-input-number size="small" v-model="addObj.sampleNum" :min="1" :max="100" :precision="0"
+ @change="addStandardTree" :disabled="active > 1"></el-input-number>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="鏉ユ牱鏂瑰紡锛�" prop="formType">
- <el-select
- v-model="addObj.formType"
- size="small"
- class="search_input"
- :disabled="active > 1"
- >
- <el-option
- v-for="(a, ai) in formType"
- :key="ai"
- :label="a.dictLabel"
- :value="a.dictValue"
- ></el-option>
+ <el-select v-model="addObj.formType" size="small" class="search_input" :disabled="active > 1">
+ <el-option v-for="(a, ai) in formType" :key="ai" :label="a.dictLabel"
+ :value="a.dictValue"></el-option>
</el-select>
</el-form-item>
</el-col>
@@ -264,11 +118,7 @@
</el-form-item>
</el-col>
<el-col :span="6">
- <el-form-item
- label="鏍峰搧澶勭悊鏂瑰紡锛�"
- prop="processing"
- class="processing_input"
- >
+ <el-form-item label="鏍峰搧澶勭悊鏂瑰紡锛�" prop="processing" class="processing_input">
<el-radio-group v-model="addObj.processing" size="mini">
<el-radio :label="0">濮旀墭鍗曚綅鍙栧洖</el-radio>
<el-radio :label="1">瀹為獙瀹ゅ鐞�</el-radio>
@@ -277,59 +127,28 @@
</el-col>
<el-col :span="6">
<el-form-item label="宸ョ▼鍚嶇О锛�" prop="engineering">
- <el-input
- size="small"
- class="search_input"
- :placeholder="active > 1 ? '' : '璇疯緭鍏�'"
- clearable
- v-model="addObj.engineering"
- :readonly="active > 1"
- ></el-input>
+ <el-input size="small" class="search_input" :placeholder="active > 1 ? '' : '璇疯緭鍏�'" clearable
+ v-model="addObj.engineering" :readonly="active > 1"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
- <el-form-item
- label="宸ョ▼鍚嶇ОEN锛�"
- prop="engineeringEn"
- class="engineeringEn_input"
- >
- <el-input
- size="small"
- :placeholder="active > 1 ? '' : '璇疯緭鍏�'"
- clearable
- v-model="addObj.engineeringEn"
- :readonly="active > 1"
- ></el-input>
+ <el-form-item label="宸ョ▼鍚嶇ОEN锛�" prop="engineeringEn" class="engineeringEn_input">
+ <el-input size="small" :placeholder="active > 1 ? '' : '璇疯緭鍏�'" clearable v-model="addObj.engineeringEn"
+ :readonly="active > 1"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="鐢熶骇鍗曚綅锛�" prop="production">
- <el-input
- size="small"
- class="search_input"
- placeholder="璇疯緭鍏�"
- clearable
- v-model="addObj.production"
- :readonly="active > 1"
- ></el-input>
+ <el-input size="small" class="search_input" placeholder="璇疯緭鍏�" clearable v-model="addObj.production"
+ :readonly="active > 1"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
- <el-form-item
- label="鐢熶骇鍗曚綅EN锛�"
- prop="productionEn"
- class="productionEn_input"
- >
- <el-input
- size="small"
- class="search_input"
- placeholder="璇疯緭鍏�"
- clearable
- v-model="addObj.productionEn"
- :readonly="active > 1"
- ></el-input>
+ <el-form-item label="鐢熶骇鍗曚綅EN锛�" prop="productionEn" class="productionEn_input">
+ <el-input size="small" class="search_input" placeholder="璇疯緭鍏�" clearable v-model="addObj.productionEn"
+ :readonly="active > 1"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
@@ -344,53 +163,28 @@
<el-row>
<el-col :span="6">
<el-form-item label="鏄惁娑夊強閰嶅鏍峰搧锛�" prop="mating">
- <el-radio-group
- v-model="addObj.mating"
- @change="$refs.sampleTable.doLayout()"
- >
+ <el-radio-group v-model="addObj.mating" @change="$refs.sampleTable.doLayout()">
<el-radio :label="1">鏄�</el-radio>
<el-radio :label="0">鍚�</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="6">
- <el-form-item
- label="OTC璁㈠崟鍙凤細"
- prop="otcCode"
- class="otcCode_input"
- >
- <el-input
- size="small"
- :placeholder="active > 1 ? '' : '璇疯緭鍏�'"
- clearable
- v-model="addObj.otcCode"
- :readonly="active > 1"
- ></el-input>
+ <el-form-item label="OTC璁㈠崟鍙凤細" prop="otcCode" class="otcCode_input">
+ <el-input size="small" :placeholder="active > 1 ? '' : '璇疯緭鍏�'" clearable v-model="addObj.otcCode"
+ :readonly="active > 1"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="濮旀墭浜猴細" prop="prepareUser">
- <el-input
- size="small"
- class="search_input"
- :placeholder="active > 1 ? '' : '璇疯緭鍏�'"
- clearable
- v-model="addObj.prepareUser"
- :readonly="active > 1"
- ></el-input>
+ <el-input size="small" class="search_input" :placeholder="active > 1 ? '' : '璇疯緭鍏�'" clearable
+ v-model="addObj.prepareUser" :readonly="active > 1"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="澶囨敞锛�" prop="remark">
- <el-input
- type="textarea"
- :autosize="{ minRows: 2, maxRows: 2 }"
- size="small"
- clearable
- :placeholder="active > 1 ? '' : '璇疯緭鍏�'"
- v-model="addObj.remark"
- :readonly="active > 1"
- ></el-input>
+ <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 2 }" size="small" clearable
+ :placeholder="active > 1 ? '' : '璇疯緭鍏�'" v-model="addObj.remark" :readonly="active > 1"></el-input>
</el-form-item>
</el-col>
</el-row>
@@ -399,29 +193,13 @@
</basic-container>
<basic-container>
<div style="height: auto">
- <div
- class="search"
- v-if="active == 1"
- style="display: flex; background: transparent"
- >
+ <div class="search" v-if="active == 1" style="display: flex; background: transparent">
<div>
<div class="search_label">鏍峰搧鍨嬪彿锛�</div>
<div class="search_input">
- <el-select
- v-model="model"
- :placeholder="active > 1 ? '' : '璇疯緭鍏�'"
- filterable
- allow-create
- default-first-option
- size="small"
- @change="changeModel"
- >
- <el-option
- v-for="item in models"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- >
+ <el-select v-model="model" :placeholder="active > 1 ? '' : '璇疯緭鍏�'" filterable allow-create
+ default-first-option size="small" @change="changeModel">
+ <el-option v-for="item in models" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</div>
@@ -429,385 +207,151 @@
<div>
<div class="search_label">妫�楠屾爣鍑嗭細</div>
<div class="search_input">
- <el-select
- filterable
- v-model="standardMethodListId"
- :placeholder="active > 1 ? '' : '璇疯緭鍏�'"
- size="small"
- @focus="methodFocus"
- :loading="methodLoad"
- @change="changeStandardMethodListId"
- >
- <el-option
- v-for="item in methods"
- :key="item.id"
- :label="item.code"
- :value="item.id"
- >
+ <el-select filterable v-model="standardMethodListId" :placeholder="active > 1 ? '' : '璇疯緭鍏�'" size="small"
+ @focus="methodFocus" :loading="methodLoad" @change="changeStandardMethodListId">
+ <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id">
</el-option>
</el-select>
</div>
</div>
</div>
- <el-table
- class="el-table sampleTable"
- ref="sampleTable"
- :data="sampleList"
- max-height="400px"
- tooltip-effect="dark"
- border
- @selection-change="selectSample"
- highlight-current-row
- @row-click="rowClick"
- style="margin-top: 10px"
- >
- <el-table-column
- type="selection"
- width="60"
- :selectable="selectable"
- v-if="active == 1"
- ></el-table-column>
- <el-table-column
- type="index"
- label="搴忓彿"
- width="65"
- align="center"
- ></el-table-column>
- <el-table-column
- prop="sample"
- label="鏍峰搧鍚嶇О"
- align="center"
- min-width="100"
- >
+ <el-table class="el-table sampleTable" ref="sampleTable" :data="sampleList" max-height="400px"
+ tooltip-effect="dark" border @selection-change="selectSample" highlight-current-row @row-click="rowClick"
+ style="margin-top: 10px">
+ <el-table-column type="selection" width="60" :selectable="selectable" v-if="active == 1"></el-table-column>
+ <el-table-column type="index" label="搴忓彿" width="65" align="center"></el-table-column>
+ <el-table-column prop="sample" label="鏍峰搧鍚嶇О" align="center" min-width="100">
<template slot-scope="scope">
- <el-input
- size="small"
- v-model="scope.row.sample"
- clearable
- :readonly="active > 1"
- ></el-input>
+ <el-input size="small" v-model="scope.row.sample" clearable :readonly="active > 1"></el-input>
</template>
</el-table-column>
- <el-table-column
- prop="sampleCode"
- label="鏍峰搧缂栧彿"
- min-width="140"
- align="center"
- >
+ <el-table-column prop="sampleCode" label="鏍峰搧缂栧彿" min-width="140" align="center">
<template slot-scope="scope">
- <el-input
- size="small"
- v-model="scope.row.sampleCode"
- clearable
- placeholder="涓嶅~鍐欏垯绯荤粺鑷姩鐢熸垚"
- :readonly="active > 1"
- ></el-input>
+ <el-input size="small" v-model="scope.row.sampleCode" clearable placeholder="涓嶅~鍐欏垯绯荤粺鑷姩鐢熸垚"
+ :readonly="active > 1"></el-input>
</template>
</el-table-column>
- <el-table-column
- prop="model"
- label="鏍峰搧鍨嬪彿"
- align="center"
- min-width="100"
- >
+ <el-table-column prop="model" label="鏍峰搧鍨嬪彿" align="center" min-width="100">
<template slot-scope="scope">
- <el-select
- v-model="scope.row.model"
- filterable
- allow-create
- default-first-option
- placeholder="鏍峰搧鍨嬪彿"
- size="small"
- @change="handleChangeModel"
- :disabled="active > 1"
- style="width: 100%"
- >
- <el-option
- v-for="item in models"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- >
+ <el-select v-model="scope.row.model" filterable allow-create default-first-option placeholder="鏍峰搧鍨嬪彿"
+ size="small" @change="handleChangeModel" :disabled="active > 1" style="width: 100%">
+ <el-option v-for="item in models" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</template>
</el-table-column>
- <el-table-column
- prop="modelNum"
- label="鍨嬪彿鍙傛暟"
- width="130"
- align="center"
- v-if="!(active > 1)"
- >
+ <el-table-column prop="modelNum" label="鍨嬪彿鍙傛暟" width="130" align="center" v-if="!(active > 1)">
<template slot-scope="scope">
- <el-input
- size="small"
- v-model="scope.row.modelNum"
- clearable
- placeholder="闈炲繀濉�"
- @keyup.enter.native="
- methodChange(scope.row.standardMethodListId, scope.row)
- "
- @clear="methodChange(scope.row.standardMethodListId, scope.row)"
- ></el-input>
+ <el-input size="small" v-model="scope.row.modelNum" clearable placeholder="闈炲繀濉�" @keyup.enter.native="
+ methodChange(scope.row.standardMethodListId, scope.row)
+ " @clear="methodChange(scope.row.standardMethodListId, scope.row)"></el-input>
</template>
</el-table-column>
- <el-table-column
- prop="standardMethodListId"
- label="妫�楠屾爣鍑�"
- align="center"
- min-width="100"
- >
+ <el-table-column prop="standardMethodListId" label="妫�楠屾爣鍑�" align="center" min-width="100">
<template slot-scope="scope">
- <el-select
- v-model="scope.row.standardMethodListId"
- :disabled="scope.row.model == null || active > 1"
- placeholder="妫�楠屾爣鍑�"
- filterable
- size="small"
- :loading="methodLoad"
- @change="(value) => methodChange(value, scope.row)"
- @focus="methodFocus"
- :readonly="active > 1"
- style="width: 100%"
- clearable
- @clear="productList = []"
- >
- <el-option
- v-for="item in methods"
- :key="item.id"
- :label="item.code"
- :value="item.id"
- >
+ <el-select v-model="scope.row.standardMethodListId" :disabled="scope.row.model == null || active > 1"
+ placeholder="妫�楠屾爣鍑�" filterable size="small" :loading="methodLoad"
+ @change="(value) => methodChange(value, scope.row)" @focus="methodFocus" :readonly="active > 1"
+ style="width: 100%" clearable @clear="productList = []">
+ <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id">
</el-option>
</el-select>
</template>
</el-table-column>
- <el-table-column
- prop="joinName"
- label="閰嶅鏍峰搧鍚嶇О"
- width="140"
- align="center"
- v-if="addObj.mating == 1"
- >
+ <el-table-column prop="joinName" label="閰嶅鏍峰搧鍚嶇О" width="140" align="center" v-if="addObj.mating == 1">
<template slot-scope="scope">
- <el-input
- size="small"
- type="textarea"
- :autosize="{ minRows: 1, maxRows: 1 }"
- v-model="scope.row.joinName"
- ></el-input>
+ <el-input size="small" type="textarea" :autosize="{ minRows: 1, maxRows: 1 }"
+ v-model="scope.row.joinName"></el-input>
</template>
</el-table-column>
- <el-table-column
- prop="joinModel"
- label="閰嶅鏍峰搧鍨嬪彿"
- width="140"
- align="center"
- v-if="addObj.mating == 1"
- >
+ <el-table-column prop="joinModel" label="閰嶅鏍峰搧鍨嬪彿" width="140" align="center" v-if="addObj.mating == 1">
<template slot-scope="scope">
- <el-input
- size="small"
- type="textarea"
- :autosize="{ minRows: 1, maxRows: 1 }"
- v-model="scope.row.joinModel"
- ></el-input>
+ <el-input size="small" type="textarea" :autosize="{ minRows: 1, maxRows: 1 }"
+ v-model="scope.row.joinModel"></el-input>
</template>
</el-table-column>
- <el-table-column
- prop="joinNum"
- label="閰嶅鏍峰搧鏁伴噺"
- width="140"
- align="center"
- v-if="addObj.mating == 1"
- >
+ <el-table-column prop="joinNum" label="閰嶅鏍峰搧鏁伴噺" width="140" align="center" v-if="addObj.mating == 1">
<template slot-scope="scope">
- <el-input-number
- size="small"
- v-model="scope.row.joinNum"
- :min="1"
- :max="100"
- :precision="0"
- :controls="false"
- style="width: 80%"
- ></el-input-number>
+ <el-input-number size="small" v-model="scope.row.joinNum" :min="1" :max="100" :precision="0"
+ :controls="false" style="width: 80%"></el-input-number>
</template>
</el-table-column>
- <el-table-column
- prop="proNum"
- label="寰呮椤规暟閲�"
- width="105"
- align="center"
- ></el-table-column>
+ <el-table-column prop="proNum" label="寰呮椤规暟閲�" width="105" align="center"></el-table-column>
</el-table>
- <el-table
- class="el-table"
- ref="productTable"
- :data="productList"
- max-height="400px"
- tooltip-effect="dark"
- border
- @selection-change="selectProduct"
- style="margin-bottom: 10px"
- @select="upProductSelect"
- :row-class-name="tableRowClassName"
- v-loading="standardLoading || getProductLoad"
- @select-all="handleAll"
- >
- <el-table-column
- type="selection"
- width="65"
- :selectable="selectable"
- v-if="active == 1"
- ></el-table-column>
- <el-table-column
- prop="inspectionItem"
- label="妫�楠岄」"
- min-width="140"
- show-overflow-tooltip
- >
+ <el-table class="el-table" ref="productTable" :data="productList" max-height="400px" tooltip-effect="dark"
+ border @selection-change="selectProduct" style="margin-bottom: 10px" @select="upProductSelect"
+ :row-class-name="tableRowClassName" v-loading="standardLoading || getProductLoad" @select-all="handleAll">
+ <el-table-column type="selection" width="65" :selectable="selectable" v-if="active == 1"></el-table-column>
+ <el-table-column prop="inspectionItem" label="妫�楠岄」" min-width="140" show-overflow-tooltip>
<template slot="header" slot-scope="scope">
- <div
- style="
+ <div style="
display: flex;
align-items: center;
flex-direction: column;
font-size: 14px;
- "
- >
+ ">
<span>妫�楠岄」</span>
- <el-input
- v-if="active == 1"
- v-model="inspectionItem"
- @input="searchFilterList"
- size="mini"
- placeholder="璇疯緭鍏�"
- />
+ <el-input v-if="active == 1" v-model="inspectionItem" @input="searchFilterList" size="mini"
+ placeholder="璇疯緭鍏�" />
</div>
</template>
</el-table-column>
- <el-table-column
- prop="inspectionItemSubclass"
- label="妫�楠岄」瀛愰」"
- min-width="140"
- show-overflow-tooltip
- >
+ <el-table-column prop="inspectionItemSubclass" label="妫�楠岄」瀛愰」" min-width="140" show-overflow-tooltip>
<template slot="header" slot-scope="scope">
- <div
- style="
+ <div style="
display: flex;
align-items: center;
flex-direction: column;
font-size: 14px;
- "
- >
+ ">
<span>妫�楠岄」瀛愰」</span>
- <el-input
- v-if="active == 1"
- v-model="inspectionItemSubclass"
- @input="searchFilterList"
- size="mini"
- placeholder="璇疯緭鍏�"
- />
+ <el-input v-if="active == 1" v-model="inspectionItemSubclass" @input="searchFilterList" size="mini"
+ placeholder="璇疯緭鍏�" />
</div>
</template>
</el-table-column>
<el-table-column prop="tell" label="瑕佹眰鎻忚堪" min-width="220px">
<template slot-scope="scope">
- <el-input
- size="small"
- placeholder="瑕佹眰鎻忚堪"
- v-model="scope.row.tell"
- clearable
- type="textarea"
- :autosize="{ minRows: 1, maxRows: 3 }"
- @change="(e) => requestChange(e, scope.row, 'tell')"
- v-if="active == 1 && isAskOnlyRead"
- ></el-input>
+ <el-input size="small" placeholder="瑕佹眰鎻忚堪" v-model="scope.row.tell" clearable type="textarea"
+ :autosize="{ minRows: 1, maxRows: 3 }" @change="(e) => requestChange(e, scope.row, 'tell')"
+ v-if="active == 1 && isAskOnlyRead"></el-input>
<span v-else>
<template>{{ scope.row.tell }}</template>
</span>
</template>
</el-table-column>
- <el-table-column
- prop="ask"
- label="瑕佹眰鍊�"
- min-width="220px"
- v-if="isAskOnlyRead"
- >
+ <el-table-column prop="ask" label="瑕佹眰鍊�" min-width="220px" v-if="isAskOnlyRead">
<template slot-scope="scope">
- <el-input
- size="small"
- placeholder="瑕佹眰鍊�"
- v-model="scope.row.ask"
- clearable
- type="textarea"
- :autosize="{ minRows: 1, maxRows: 3 }"
- @change="(e) => requestChange(e, scope.row, 'ask')"
- v-if="
+ <el-input size="small" placeholder="瑕佹眰鍊�" v-model="scope.row.ask" clearable type="textarea"
+ :autosize="{ minRows: 1, maxRows: 3 }" @change="(e) => requestChange(e, scope.row, 'ask')" v-if="
active == 1 &&
isAskOnlyRead &&
scope.row.inspectionValueType != '5'
- "
- ></el-input>
+ "></el-input>
<span v-else>
<template>{{ scope.row.ask }}</template>
</span>
</template>
</el-table-column>
- <el-table-column
- prop="methodS"
- label="璇曢獙鏂规硶"
- min-width="120"
- show-overflow-tooltip
- >
+ <el-table-column prop="methodS" label="璇曢獙鏂规硶" min-width="120" show-overflow-tooltip>
<template slot="header" slot-scope="scope">
- <div
- style="
+ <div style="
display: flex;
align-items: center;
flex-direction: column;
font-size: 14px;
- "
- >
+ ">
<span>璇曢獙鏂规硶</span>
- <el-input
- v-if="active == 1"
- v-model="methodS"
- @input="searchFilterList"
- size="mini"
- placeholder="璇疯緭鍏�"
- />
+ <el-input v-if="active == 1" v-model="methodS" @input="searchFilterList" size="mini"
+ placeholder="璇疯緭鍏�" />
</div>
</template>
</el-table-column>
- <el-table-column
- prop="unit"
- label="璁¢噺鍗曚綅"
- width="100"
- show-overflow-tooltip
- ></el-table-column>
- <el-table-column
- prop="price"
- label="鍗曚环"
- width="100"
- show-overflow-tooltip
- ></el-table-column>
- <el-table-column
- prop="section"
- label="鍖洪棿"
- min-width="120"
- show-overflow-tooltip
- ></el-table-column>
- <el-table-column
- prop="sonLaboratory"
- label="瀛愬疄楠屽"
- min-width="130"
- show-overflow-tooltip
- :filters="filters"
- :filter-method="filterHandler"
- ></el-table-column>
+ <el-table-column prop="unit" label="璁¢噺鍗曚綅" width="100" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="price" label="鍗曚环" width="100" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="section" label="鍖洪棿" min-width="120" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="sonLaboratory" label="瀛愬疄楠屽" min-width="130" show-overflow-tooltip :filters="filters"
+ :filter-method="filterHandler"></el-table-column>
</el-table>
</div>
</basic-container>
@@ -1226,7 +770,7 @@
});
},
//淇濆瓨鍗曟牴鍨傜洿鐕冪儳鐗规畩鍊�
- saveSingleVerticalCombustionData() {},
+ saveSingleVerticalCombustionData() { },
openSingleVerticalCombustionDialog() {
this.$prompt("鍗曟牴鍨傜洿鐕冪儳娆℃暟", "鐗规畩妫�娴嬮」鐩�", {
confirmButtonText: "纭畾",
@@ -1244,7 +788,7 @@
this.currentMethod.insProduct = this.productList0;
this.getProNum();
})
- .catch(() => {});
+ .catch(() => { });
},
singleVerticalData(arr, value) {
arr.forEach((ins) => {
@@ -1745,7 +1289,7 @@
try {
let num = this.replaceAll(tell, symbolItem, value);
return num;
- } catch (e) {}
+ } catch (e) { }
},
replaceAll(str, find, value) {
if (str === undefined) {
@@ -1927,7 +1471,7 @@
.then(() => {
this.saveMethod(sampleList);
})
- .catch(() => {});
+ .catch(() => { });
} else {
let isRTS = this.totalArr.find(
(a) =>
@@ -2009,7 +1553,7 @@
.then(() => {
this.saveMethod(sampleList);
})
- .catch(() => {});
+ .catch(() => { });
} else {
let isRTS = this.totalArr.find(
(a) =>
@@ -2040,7 +1584,7 @@
});
}
},
- errorSet() {},
+ errorSet() { },
/**
* 鏍¢獙濮旀墭瑕佹眰鐨勬楠岄」鐨勮姹傛弿杩板拰瑕佹眰鍊�
*
@@ -2062,10 +1606,10 @@
console.log("ask or tell is null");
this.errorInspectionItemList.push(
ele.inspectionItem +
- " " +
- (ele.inspectionItemSubclass == null
- ? ""
- : ele.inspectionItemSubclass)
+ " " +
+ (ele.inspectionItemSubclass == null
+ ? ""
+ : ele.inspectionItemSubclass)
);
});
isTrue = false;
@@ -2102,10 +1646,10 @@
);
this.errorInspectionItemList.push(
ele.inspectionItem +
- " " +
- (ele.inspectionItemSubclass == null
- ? ""
- : ele.inspectionItemSubclass)
+ " " +
+ (ele.inspectionItemSubclass == null
+ ? ""
+ : ele.inspectionItemSubclass)
);
isTrue = false;
}
@@ -2114,10 +1658,10 @@
console.log("瑕佹眰鍊间腑娌℃湁鏁板瓧");
this.errorInspectionItemList.push(
ele.inspectionItem +
- " " +
- (ele.inspectionItemSubclass == null
- ? ""
- : ele.inspectionItemSubclass)
+ " " +
+ (ele.inspectionItemSubclass == null
+ ? ""
+ : ele.inspectionItemSubclass)
);
isTrue = false;
}
@@ -2128,10 +1672,10 @@
console.log("鐩村緞鍏樊涔嬪崐涓�0.5涓嶅尮閰�");
this.errorInspectionItemList.push(
ele.inspectionItem +
- " " +
- (ele.inspectionItemSubclass == null
- ? ""
- : ele.inspectionItemSubclass)
+ " " +
+ (ele.inspectionItemSubclass == null
+ ? ""
+ : ele.inspectionItemSubclass)
);
isTrue = false;
// if(ele.tell.indexOf(askVal[0])<0 && ele.tell.indexOf('鍗�')<0){
@@ -2182,10 +1726,10 @@
console.log("鏈�澶у�煎拰鏈�灏忓�肩浉绛�");
this.errorInspectionItemList.push(
ele.inspectionItem +
- " " +
- (ele.inspectionItemSubclass == null
- ? ""
- : ele.inspectionItemSubclass)
+ " " +
+ (ele.inspectionItemSubclass == null
+ ? ""
+ : ele.inspectionItemSubclass)
);
isTrue = false;
}
@@ -2194,20 +1738,20 @@
console.log("瑕佹眰鎻忚堪涓笉鍖呭惈卤浠ュ強鍖洪棿鐨勬暟瀛�");
this.errorInspectionItemList.push(
ele.inspectionItem +
- " " +
- (ele.inspectionItemSubclass == null
- ? ""
- : ele.inspectionItemSubclass)
+ " " +
+ (ele.inspectionItemSubclass == null
+ ? ""
+ : ele.inspectionItemSubclass)
);
isTrue = false;
} else if (ele.tell.indexOf("-") == 0) {
console.log("瑕佹眰鍊肩殑鍖洪棿鏍煎紡閿欒");
this.errorInspectionItemList.push(
ele.inspectionItem +
- " " +
- (ele.inspectionItemSubclass == null
- ? ""
- : ele.inspectionItemSubclass)
+ " " +
+ (ele.inspectionItemSubclass == null
+ ? ""
+ : ele.inspectionItemSubclass)
);
isTrue = false;
} else if (tell.indexOf("-") > 0 || tell.indexOf("卤") > 0) {
@@ -2226,10 +1770,10 @@
console.log("閿欒鐨勫尯闂磋缃�");
this.errorInspectionItemList.push(
ele.inspectionItem +
- " " +
- (ele.inspectionItemSubclass == null
- ? ""
- : ele.inspectionItemSubclass)
+ " " +
+ (ele.inspectionItemSubclass == null
+ ? ""
+ : ele.inspectionItemSubclass)
);
isTrue = false;
}
@@ -2242,10 +1786,10 @@
console.log(777777);
this.errorInspectionItemList.push(
ele.inspectionItem +
- " " +
- (ele.inspectionItemSubclass == null
- ? ""
- : ele.inspectionItemSubclass)
+ " " +
+ (ele.inspectionItemSubclass == null
+ ? ""
+ : ele.inspectionItemSubclass)
);
isTrue = false;
} else {
@@ -2262,10 +1806,10 @@
console.log(888888);
this.errorInspectionItemList.push(
ele.inspectionItem +
- " " +
- (ele.inspectionItemSubclass == null
- ? ""
- : ele.inspectionItemSubclass)
+ " " +
+ (ele.inspectionItemSubclass == null
+ ? ""
+ : ele.inspectionItemSubclass)
);
isTrue = false;
}
@@ -2279,10 +1823,10 @@
console.log(99999);
this.errorInspectionItemList.push(
ele.inspectionItem +
- " " +
- (ele.inspectionItemSubclass == null
- ? ""
- : ele.inspectionItemSubclass)
+ " " +
+ (ele.inspectionItemSubclass == null
+ ? ""
+ : ele.inspectionItemSubclass)
);
isTrue = false;
}
@@ -2292,10 +1836,10 @@
console.log(1010101001);
this.errorInspectionItemList.push(
ele.inspectionItem +
- " " +
- (ele.inspectionItemSubclass == null
- ? ""
- : ele.inspectionItemSubclass)
+ " " +
+ (ele.inspectionItemSubclass == null
+ ? ""
+ : ele.inspectionItemSubclass)
);
isTrue = false;
}
@@ -2606,8 +2150,8 @@
a.model =
a.model +
(a.modelNum == null ||
- a.modelNum == "" ||
- a.modelNum == "null"
+ a.modelNum == "" ||
+ a.modelNum == "null"
? ""
: "-" + a.modelNum);
}
@@ -2615,8 +2159,8 @@
a.model =
a.model +
(a.modelNum == null ||
- a.modelNum == "" ||
- a.modelNum == "null"
+ a.modelNum == "" ||
+ a.modelNum == "null"
? ""
: "-" + a.modelNum);
}
@@ -3036,7 +2580,7 @@
} else {
this.methods = res.data.standardMethodList;
}
- } catch (e) {}
+ } catch (e) { }
});
},
addStandardTree(currentValue, oldValue) {
@@ -3234,7 +2778,7 @@
// row.manHour = arr2[index];
// row.price = arr3[index];
// row.tell = arr4[index];
- } catch (e) {}
+ } catch (e) { }
}
if (
row.bsm === "1" &&
@@ -3393,8 +2937,8 @@
this.$axios
.get(
this.$api.insOrder.selectInsOrderTemplate +
- "?company=" +
- this.addObj.company
+ "?company=" +
+ this.addObj.company
)
.then((res) => {
if (res.code == 201) return;
@@ -3424,7 +2968,7 @@
this.$message.error("鍒犻櫎澶辫触");
});
})
- .catch(() => {});
+ .catch(() => { });
},
// 淇濆瓨妯℃澘
addTemplateDia() {
@@ -4454,17 +3998,21 @@
line-height: 24px;
margin-top: 5px;
}
+
.circulateTable {
display: flex;
flex-direction: row;
justify-content: space-between;
}
+
.opticalProject {
width: 38%;
}
+
.temperatureList {
width: 60%;
}
+
.temperatureListTitle {
display: flex;
flex-direction: row;
@@ -4484,10 +4032,7 @@
border-radius: 2px;
}
-.ins_order_add
- .el-tree--highlight-current
- .el-tree-node.is-current
- > .el-tree-node__content {
+.ins_order_add .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
color: #3a7bfa;
}
@@ -4515,15 +4060,18 @@
.ins_order_add .el-select .is-disabled .el-input__inner {
background: transparent !important;
}
+
.company_input .el-form-item__content,
.sample_input .el-form-item__content {
width: 72%;
}
+
.engineeringEn_input .el-form-item__content,
.otcCode_input .el-form-item__content,
.productionEn_input .el-form-item__content {
width: 65%;
}
+
.processing_input .el-form-item__content {
width: 60%;
}
diff --git a/src/views/business/inspectionOrder/index.vue b/src/views/business/inspectionOrder/index.vue
index 7c68b70..56b36ab 100644
--- a/src/views/business/inspectionOrder/index.vue
+++ b/src/views/business/inspectionOrder/index.vue
@@ -1,26 +1,14 @@
<template>
- <div>
+ <div class="bg-1">
<div style="margin: 5px 15px">
<el-row class="title">
<el-col :span="12" style="text-align: left">妫�楠屼笅鍗�</el-col>
<el-col :span="12" style="text-align: right">
- <el-button
- size="medium"
- type="primary"
- @click="dialogVisible1 = true"
- :loading="exportCheckedLoading"
- >瀵煎嚭妫�楠岀粨鏋�</el-button
- >
- <el-button size="medium" type="primary" @click="print"
- >鏍囩鎵撳嵃</el-button
- >
- <el-button
- size="medium"
- type="primary"
- @click="playOrder(1)"
- v-hasPermi="['business:order:add']"
- >涓嬪崟</el-button
- >
+ <el-button size="medium" type="primary" @click="dialogVisible1 = true"
+ :loading="exportCheckedLoading">瀵煎嚭妫�楠岀粨鏋�</el-button>
+ <el-button size="medium" type="primary" @click="print">鏍囩鎵撳嵃</el-button>
+ <el-button size="medium" type="primary" @click="playOrder(1)"
+ v-hasPermi="['business:order:add']">涓嬪崟</el-button>
</el-col>
</el-row>
</div>
@@ -31,13 +19,8 @@
<div class="search_thing" style="width: 20%">
<div class="search_label">濮旀墭缂栧彿锛�</div>
<div class="search_input">
- <el-input
- size="small"
- placeholder="璇疯緭鍏�"
- clearable
- v-model="queryParams.entrustCode"
- @keyup.enter.native="refreshTable()"
- ></el-input>
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.entrustCode"
+ @keyup.enter.native="refreshTable()"></el-input>
</div>
</div>
<div class="search_thing" style="width: 20%">
@@ -45,119 +28,68 @@
澶栭儴濮旀墭缂栧彿锛�
</div>
<div class="search_input">
- <el-input
- size="small"
- placeholder="璇疯緭鍏�"
- clearable
- v-model="queryParams.outEntrustCode"
- @keyup.enter.native="refreshTable()"
- ></el-input>
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.outEntrustCode"
+ @keyup.enter.native="refreshTable()"></el-input>
</div>
</div>
<div class="search_thing" style="width: 20%">
<div class="search_label">鏍峰搧鍚嶇О锛�</div>
<div class="search_input">
- <el-input
- size="small"
- placeholder="璇疯緭鍏�"
- clearable
- v-model="queryParams.sampleName"
- @keyup.enter.native="refreshTable()"
- ></el-input>
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.sampleName"
+ @keyup.enter.native="refreshTable()"></el-input>
</div>
</div>
<div class="search_thing" style="width: 20%">
<div class="search_label">鏍峰搧鍨嬪彿锛�</div>
<div class="search_input">
- <el-input
- size="small"
- placeholder="璇疯緭鍏�"
- clearable
- v-model="queryParams.sampleModel"
- @keyup.enter.native="refreshTable()"
- ></el-input>
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.sampleModel"
+ @keyup.enter.native="refreshTable()"></el-input>
</div>
</div>
<div class="search_thing" style="width: 20%">
<div class="search_label">鏍峰搧缂栧彿锛�</div>
<div class="search_input">
- <el-input
- size="small"
- placeholder="璇疯緭鍏�"
- clearable
- v-model="queryParams.sampleCode"
- @keyup.enter.native="refreshTable()"
- ></el-input>
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.sampleCode"
+ @keyup.enter.native="refreshTable()"></el-input>
</div>
</div>
<div class="search_thing" style="width: 40%" v-if="more">
<div class="search_label">涓嬪崟鏃堕棿锛�</div>
<div class="search_input">
- <el-date-picker
- style="width: 100%"
- v-model="queryParams.startAndEndTime"
- type="daterange"
- size="small"
- range-separator="鑷�"
- start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡"
- value-format="yyyy-MM-dd"
- clearable
- placeholder="閫夋嫨鏃ユ湡"
- >
+ <el-date-picker style="width: 100%" v-model="queryParams.startAndEndTime" type="daterange" size="small"
+ range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡" value-format="yyyy-MM-dd"
+ clearable placeholder="閫夋嫨鏃ユ湡">
</el-date-picker>
</div>
</div>
<div class="search_thing" style="width: 20%" v-if="more">
<div class="search_label">涓嬪崟浜猴細</div>
<div class="search_input">
- <el-input
- size="small"
- placeholder="璇疯緭鍏�"
- clearable
- v-model="queryParams.name"
- @keyup.enter.native="refreshTable()"
- ></el-input>
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.name"
+ @keyup.enter.native="refreshTable()"></el-input>
</div>
</div>
<div class="search_thing" style="width: 20%" v-if="more">
<div class="search_label">宸ョ▼鍚嶇О锛�</div>
<div class="search_input">
- <el-input
- size="small"
- placeholder="璇疯緭鍏�"
- clearable
- v-model="queryParams.engineering"
- @keyup.enter.native="refreshTable()"
- ></el-input>
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.engineering"
+ @keyup.enter.native="refreshTable()"></el-input>
</div>
</div>
<div class="search_thing" style="width: 20%" v-if="more">
<div class="search_label">鐢熶骇鍗曚綅锛�</div>
<div class="search_input">
- <el-input
- size="small"
- placeholder="璇疯緭鍏�"
- clearable
- v-model="queryParams.production"
- @keyup.enter.native="refreshTable()"
- ></el-input>
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.production"
+ @keyup.enter.native="refreshTable()"></el-input>
</div>
</div>
</el-col>
<el-col :span="4">
<div class="search_thing">
- <el-button
- type="text"
- :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'"
- style="color: #3a7bfa"
- @click="more = !more"
- >{{ !more ? "鏇村" : "鏀惰捣" }}</el-button
- >
+ <el-button type="text" :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" style="color: #3a7bfa"
+ @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="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
</div>
</el-col>
</el-row>
@@ -167,115 +99,59 @@
<div v-show="active == 0">
<div class="table">
<ul class="tab">
- <li
- v-for="(m, i) in tabList"
- :key="i + 'afgh'"
- :class="{ active: i == tabIndex }"
- @click="handleTab(m, i)"
- >
+ <li v-for="(m, i) in tabList" :key="i + 'afgh'" :class="{ active: i == tabIndex }" @click="handleTab(m, i)">
{{ m.label }}
</li>
</ul>
- <lims-table
- :tableData="tableData"
- :height="tableHeight + ''"
- @pagination="pagination"
- :column="column"
- :page="page"
- :tableLoading="tableLoading"
- ></lims-table>
+ <lims-table :tableData="tableData" :height="tableHeight + ''" @pagination="pagination" :column="column"
+ :page="page" :tableLoading="tableLoading"></lims-table>
</div>
<!-- 瀹℃牳 -->
- <el-dialog
- title="涓嬪崟瀹℃牳"
- :visible.sync="verifyDialogVisible"
- width="30%"
- :before-close="handleClose"
- >
+ <el-dialog title="涓嬪崟瀹℃牳" :visible.sync="verifyDialogVisible" width="30%" :before-close="handleClose">
<p style="font-size: 16px; color: #333333" v-if="!isPass">
- 濮旀墭缂栧彿<span style="color: #34bd66">ZTMS2023071001</span
- >鐨勪俊鎭槸鍚﹂�氳繃
+ 濮旀墭缂栧彿<span style="color: #34bd66">ZTMS2023071001</span>鐨勪俊鎭槸鍚﹂�氳繃
</p>
- <el-form
- :label-position="labelPosition"
- :model="formData"
- label-width="150px"
- ref="ruleForm"
- v-else
- >
+ <el-form :label-position="labelPosition" :model="formData" label-width="150px" ref="ruleForm" v-else>
<el-form-item label="璇疯緭鍏ユ牱鍝佸簱浣嶅彿锛�">
- <el-input
- v-model="formData.specificationModel"
- size="small"
- style="width: 60%"
- ></el-input>
+ <el-input v-model="formData.specificationModel" size="small" style="width: 60%"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-row v-if="!isPass">
<el-button @click="handleClose">閫� 鍥�</el-button>
- <el-button type="primary" @click="submitForm" :loading="upLoad"
- >閫� 杩�</el-button
- >
+ <el-button type="primary" @click="submitForm" :loading="upLoad">閫� 杩�</el-button>
</el-row>
<el-row v-else>
<el-button @click="handleClose">杩� 鍥�</el-button>
- <el-button type="primary" @click="submitForm" :loading="upLoad"
- >纭� 瀹�</el-button
- >
+ <el-button type="primary" @click="submitForm" :loading="upLoad">纭� 瀹�</el-button>
</el-row>
</span>
</el-dialog>
<!-- 鎾ら攢 -->
- <el-dialog
- title="涓嬪崟鎾ら攢"
- :visible.sync="quashDialogVisible"
- width="30%"
- :before-close="handleClose"
- >
+ <el-dialog title="涓嬪崟鎾ら攢" :visible.sync="quashDialogVisible" width="30%" :before-close="handleClose">
<p style="font-size: 16px; color: #333333" v-if="!isQuash">
濮旀墭缂栧彿<span style="color: #34bd66">{{
this.insOrderRow.entrustCode
- }}</span
- >鐨勪俊鎭槸鍚︽挙閿�
+ }}</span>鐨勪俊鎭槸鍚︽挙閿�
</p>
- <el-form
- :label-position="labelPosition"
- :model="formData"
- label-width="150px"
- ref="ruleForm"
- v-else
- >
+ <el-form :label-position="labelPosition" :model="formData" label-width="150px" ref="ruleForm" v-else>
<el-form-item label="璇疯緭鍏ユ挙閿�鍘熷洜锛�">
- <el-input
- v-model="formData.specificationModel"
- size="small"
- style="width: 60%"
- ></el-input>
+ <el-input v-model="formData.specificationModel" size="small" style="width: 60%"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-row v-if="!isQuash">
<el-button @click="handleClose">鍙� 娑�</el-button>
- <el-button type="primary" @click="submitForm" :loading="upLoad"
- >纭� 瀹�</el-button
- >
+ <el-button type="primary" @click="submitForm" :loading="upLoad">纭� 瀹�</el-button>
</el-row>
<el-row v-else>
<el-button @click="handleClose">杩� 鍥�</el-button>
- <el-button type="primary" @click="submitForm" :loading="upLoad"
- >纭� 瀹�</el-button
- >
+ <el-button type="primary" @click="submitForm" :loading="upLoad">纭� 瀹�</el-button>
</el-row>
</span>
</el-dialog>
<!-- 涓嬪彂 -->
- <el-dialog
- title="妫�楠屽垎閰�"
- :visible.sync="issuedDialogVisible"
- width="400px"
- :before-close="handleClose"
- >
+ <el-dialog title="妫�楠屽垎閰�" :visible.sync="issuedDialogVisible" width="400px" :before-close="handleClose">
<div class="body" style="max-height: 60vh">
<el-row>
<el-col class="search_thing" style="width: 95%">
@@ -283,73 +159,34 @@
<span class="required-span">* </span>绾﹀畾鏃堕棿锛�
</div>
<div class="search_input">
- <el-date-picker
- size="small"
- v-model="distributeData.appointed"
- type="date"
- placeholder="閫夋嫨鏃ユ湡"
- value-format="yyyy-MM-dd"
- style="width: 100%"
- format="yyyy-MM-dd"
- >
+ <el-date-picker size="small" v-model="distributeData.appointed" type="date" placeholder="閫夋嫨鏃ユ湡"
+ value-format="yyyy-MM-dd" style="width: 100%" format="yyyy-MM-dd">
</el-date-picker>
</div>
</el-col>
<el-col class="search_thing" style="width: 95%">
<div class="search_label">
- <span class="required-span" v-show="distributeData.type == 2"
- >* </span
- >鎸囨淳浜哄憳锛�
+ <span class="required-span" v-show="distributeData.type == 2">* </span>鎸囨淳浜哄憳锛�
</div>
<div class="search_input">
- <el-select
- v-model="distributeData.userId"
- placeholder="璇烽�夋嫨"
- size="small"
- style="width: 100%"
- clearable
- filterable
- @change="changeUser"
- >
- <el-option-group
- v-for="(item, index) in Object.keys(personList)"
- :key="index"
- :label="item"
- >
- <el-option
- v-for="op in personList[item]"
- :key="op.id"
- :label="op.name"
- :value="op.id"
- >
+ <el-select v-model="distributeData.userId" placeholder="璇烽�夋嫨" size="small" style="width: 100%"
+ clearable filterable @change="changeUser">
+ <el-option-group v-for="(item, index) in Object.keys(personList)" :key="index" :label="item">
+ <el-option v-for="op in personList[item]" :key="op.id" :label="op.name" :value="op.id">
</el-option>
</el-option-group>
</el-select>
</div>
</el-col>
- <el-col
- class="search_thing"
- style="width: 95%"
- v-if="distributeData.userId"
- >
+ <el-col class="search_thing" style="width: 95%" v-if="distributeData.userId">
<div class="search_label">
<span class="required-span">* </span>璇曢獙瀹わ細
</div>
<div class="search_input">
- <el-select
- v-model="distributeData.sonLaboratory"
- placeholder="璇烽�夋嫨11"
- size="small"
- style="width: 100%"
- clearable
- filterable
- >
- <el-option
- v-for="(item, i) in sonLaboratoryList"
- :key="i + 'oooo'"
- :label="item.label"
- :value="item.value"
- >
+ <el-select v-model="distributeData.sonLaboratory" placeholder="璇烽�夋嫨11" size="small" style="width: 100%"
+ clearable filterable>
+ <el-option v-for="(item, i) in sonLaboratoryList" :key="i + 'oooo'" :label="item.label"
+ :value="item.value">
</el-option>
</el-select>
</div>
@@ -359,34 +196,18 @@
<span slot="footer" class="dialog-footer">
<el-row>
<el-button @click="handleClose2">鍙� 娑�</el-button>
- <el-button type="primary" @click="submitForm2" :loading="upLoad"
- >纭� 瀹�</el-button
- >
+ <el-button type="primary" @click="submitForm2" :loading="upLoad">纭� 瀹�</el-button>
</el-row>
</span>
</el-dialog>
- <el-dialog
- title="鏁版嵁鏌ョ湅"
- :visible.sync="dataDialogVisible"
- width="100%"
- fullscreen
- >
+ <el-dialog title="鏁版嵁鏌ョ湅" :visible.sync="dataDialogVisible" width="100%" fullscreen>
<div style="height: 80vh; overflow-y: auto" v-if="dataDialogVisible">
- <ValueTable
- ref="ValueTableDataLook"
- :rowKey="'insProductId'"
- :url="$api.insOrder.selectSampleAndProductByOrderId"
- :componentData="componentDataDataLook"
- />
+ <ValueTable ref="ValueTableDataLook" :rowKey="'insProductId'"
+ :url="$api.insOrder.selectSampleAndProductByOrderId" :componentData="componentDataDataLook" />
</div>
</el-dialog>
- <el-dialog
- top="5vh"
- :title="deleteTilte"
- :visible.sync="deleteDialogVisible"
- :before-close="handleCloseDelete"
- width="80%"
- >
+ <el-dialog top="5vh" :title="deleteTilte" :visible.sync="deleteDialogVisible" :before-close="handleCloseDelete"
+ width="80%">
<div class="table-container" v-if="deleteDialogVisible">
<!-- <ValueTable
ref="ValueTableDataDelete"
@@ -400,57 +221,23 @@
:componentData="componentDataDelete"
:isColumnWidth="true"
/> -->
- <el-table
- height="500px"
- ref="revokeTable"
- @select="handleSelectionChange"
- @select-all="handleSelectionAll"
- :data="treeTableData"
- style="width: 100%"
- row-key="id"
- border
- lazy
- :load="load"
- :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
- >
- <el-table-column
- v-if="deleteTilte == '鎾ら攢'"
- type="selection"
- width="55"
- ></el-table-column>
- <el-table-column
- prop="sampleCode"
- label="鏍峰搧缂栧彿"
- show-overflow-tooltip
- >
+ <el-table height="500px" ref="revokeTable" @select="handleSelectionChange" @select-all="handleSelectionAll"
+ :data="treeTableData" style="width: 100%" row-key="id" border lazy :load="load"
+ :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
+ <el-table-column v-if="deleteTilte == '鎾ら攢'" type="selection" width="55"></el-table-column>
+ <el-table-column prop="sampleCode" label="鏍峰搧缂栧彿" show-overflow-tooltip>
</el-table-column>
- <el-table-column
- prop="inspectionItem"
- label="妫�楠岄」"
- show-overflow-tooltip
- >
+ <el-table-column prop="inspectionItem" label="妫�楠岄」" show-overflow-tooltip>
</el-table-column>
- <el-table-column
- prop="inspectionItemSubclass"
- label="妫�楠屽瓙椤�"
- show-overflow-tooltip
- >
+ <el-table-column prop="inspectionItemSubclass" label="妫�楠屽瓙椤�" show-overflow-tooltip>
</el-table-column>
- <el-table-column
- prop="sampleType"
- label="鏍峰搧鍒嗙被"
- show-overflow-tooltip
- >
+ <el-table-column prop="sampleType" label="鏍峰搧鍒嗙被" show-overflow-tooltip>
</el-table-column>
<el-table-column prop="sample" label="鏍峰搧" show-overflow-tooltip>
</el-table-column>
<el-table-column prop="model" label="鍨嬪彿" show-overflow-tooltip>
</el-table-column>
- <el-table-column
- prop="sonLaboratory"
- label="璇曢獙瀹�"
- show-overflow-tooltip
- >
+ <el-table-column prop="sonLaboratory" label="璇曢獙瀹�" show-overflow-tooltip>
</el-table-column>
<el-table-column prop="tell" label="瑕佹眰鍊�" show-overflow-tooltip>
</el-table-column>
@@ -461,118 +248,46 @@
<el-button @click="handleNo">{{
deleteTilte == "鎾ら攢" ? "鍙� 娑�" : "涓嶉�氳繃"
}}</el-button>
- <el-button
- type="primary"
- @click="submitDelete"
- :loading="printLoading"
- >{{ deleteTilte == "鎾ら攢" ? "纭� 瀹�" : "閫� 杩�" }}</el-button
- >
+ <el-button type="primary" @click="submitDelete" :loading="printLoading">{{ deleteTilte == "鎾ら攢" ? "纭� 瀹�" :
+ "閫� 杩�" }}</el-button>
</el-row>
</span>
</el-dialog>
<!-- 鏁版嵁鏌ョ湅璇︽儏 -->
- <el-dialog
- title="鏌ョ湅璇︽儏"
- :visible.sync="dialogVisible"
- width="70%"
- :before-close="handleClose3"
- >
- <el-table
- v-if="type == '鍗曟牴鍨傜洿鐕冪儳' || type == '鏉惧绠�'"
- :data="viewDetailsList"
- height="400px"
- border
- style="width: 100%"
- >
- <el-table-column
- type="index"
- label="搴忓彿"
- width="80px"
- ></el-table-column>
- <el-table-column
- prop="entrustCode"
- label="濮旀墭鍗曞彿"
- ></el-table-column>
- <el-table-column
- prop="sampleCode"
- label="鏍峰搧缂栧彿"
- ></el-table-column>
+ <el-dialog title="鏌ョ湅璇︽儏" :visible.sync="dialogVisible" width="70%" :before-close="handleClose3">
+ <el-table v-if="type == '鍗曟牴鍨傜洿鐕冪儳' || type == '鏉惧绠�'" :data="viewDetailsList" height="400px" border
+ style="width: 100%">
+ <el-table-column type="index" label="搴忓彿" width="80px"></el-table-column>
+ <el-table-column prop="entrustCode" label="濮旀墭鍗曞彿"></el-table-column>
+ <el-table-column prop="sampleCode" label="鏍峰搧缂栧彿"></el-table-column>
<el-table-column prop="color" label="濂楃"></el-table-column>
<!-- <el-table-column prop="inspectionItem" label="妫�楠岄」"></el-table-column> -->
<el-table-column prop="insValue" label="妫�楠岀粨鏋�"></el-table-column>
</el-table>
- <el-table
- v-if="type == '鎶楁媺寮哄害'"
- :data="viewDetailsList"
- height="400px"
- border
- style="width: 100%"
- >
- <el-table-column
- type="index"
- label="搴忓彿"
- width="80px"
- ></el-table-column>
- <el-table-column
- prop="inspectionItem"
- label="妫�楠岄」"
- ></el-table-column>
- <el-table-column
- prop="inspectionItemSubclass"
- label="妫�楠屽瓙椤�"
- ></el-table-column>
+ <el-table v-if="type == '鎶楁媺寮哄害'" :data="viewDetailsList" height="400px" border style="width: 100%">
+ <el-table-column type="index" label="搴忓彿" width="80px"></el-table-column>
+ <el-table-column prop="inspectionItem" label="妫�楠岄」"></el-table-column>
+ <el-table-column prop="inspectionItemSubclass" label="妫�楠屽瓙椤�"></el-table-column>
<el-table-column prop="width" label="瀹藉害"></el-table-column>
<el-table-column prop="thickness" label="鍘氬害"></el-table-column>
<el-table-column prop="testValue" label="妫�楠屽��"></el-table-column>
</el-table>
- <el-table
- v-if="type == '鏂浼搁暱鐜�'"
- :data="viewDetailsList"
- height="400px"
- border
- style="width: 100%"
- >
- <el-table-column
- type="index"
- label="搴忓彿"
- width="80px"
- ></el-table-column>
- <el-table-column
- prop="inspectionItem"
- label="妫�楠岄」"
- ></el-table-column>
- <el-table-column
- prop="inspectionItemSubclass"
- label="妫�楠屽瓙椤�"
- ></el-table-column>
- <el-table-column
- v-for="(v, i) in tableHeader"
- :key="i"
- :prop="`testValue${i}`"
- :label="`妫�楠屽��${i + 1}`"
- ></el-table-column>
+ <el-table v-if="type == '鏂浼搁暱鐜�'" :data="viewDetailsList" height="400px" border style="width: 100%">
+ <el-table-column type="index" label="搴忓彿" width="80px"></el-table-column>
+ <el-table-column prop="inspectionItem" label="妫�楠岄」"></el-table-column>
+ <el-table-column prop="inspectionItemSubclass" label="妫�楠屽瓙椤�"></el-table-column>
+ <el-table-column v-for="(v, i) in tableHeader" :key="i" :prop="`testValue${i}`"
+ :label="`妫�楠屽��${i + 1}`"></el-table-column>
</el-table>
</el-dialog>
<!-- 瀵煎嚭宸叉鏁版嵁 -->
- <el-dialog
- title="閫夋嫨鏃ユ湡"
- :visible.sync="dialogVisible1"
- width="30%"
- :before-close="handleClose4"
- >
+ <el-dialog title="閫夋嫨鏃ユ湡" :visible.sync="dialogVisible1" width="30%" :before-close="handleClose4">
<span>涓嬪崟鏃ユ湡: </span>
- <el-date-picker
- v-model="exportCheckedDate"
- type="daterange"
- size="small"
- value-format="yyyy-MM-dd"
- range-separator="鑷�"
- start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡"
- >
+ <el-date-picker v-model="exportCheckedDate" type="daterange" size="small" value-format="yyyy-MM-dd"
+ range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡">
</el-date-picker>
<span slot="footer" class="dialog-footer">
<el-button @click="handleClose4">鍙� 娑�</el-button>
@@ -581,47 +296,17 @@
</el-dialog>
</div>
<div style="width: 100%; height: 100%" v-if="active > 0">
- <Add
- :active="active"
- :currentId="currentId"
- v-if="active < 4"
- :examine="examine"
- />
+ <Add :active="active" :currentId="currentId" v-if="active < 4" :examine="examine" />
</div>
- <el-dialog
- title="鏍囩鎵撳嵃"
- :visible.sync="printDialogVisible"
- width="40%"
- top="5vh"
- >
- <div
- style="width: 100%; height: 400px; overflow-y: auto"
- v-loading="loadPint"
- >
+ <el-dialog title="鏍囩鎵撳嵃" :visible.sync="printDialogVisible" width="40%" top="5vh">
+ <div style="width: 100%; height: 400px; overflow-y: auto" v-loading="loadPint">
<div class="dia_body">
- <el-checkbox
- style="margin: 10px 5px"
- :indeterminate="isIndeterminate"
- v-model="checkAll"
- @change="handleCheckAllChange"
- >鍏ㄩ��</el-checkbox
- >
- <el-checkbox-group
- @change="changePrintCode()"
- v-model="checkIndexList"
- >
- <el-card
- class="box-card"
- v-for="(item, i) in qrData"
- :key="i + 'wwwww'"
- style="margin-bottom: 15px; font-size: 16px !important"
- >
- <el-checkbox
- :label="i"
- :key="i"
- style="position: relative; top: -20px; left: 5px"
- ><br
- /></el-checkbox>
+ <el-checkbox style="margin: 10px 5px" :indeterminate="isIndeterminate" v-model="checkAll"
+ @change="handleCheckAllChange">鍏ㄩ��</el-checkbox>
+ <el-checkbox-group @change="changePrintCode()" v-model="checkIndexList">
+ <el-card class="box-card" v-for="(item, i) in qrData" :key="i + 'wwwww'"
+ style="margin-bottom: 15px; font-size: 16px !important">
+ <el-checkbox :label="i" :key="i" style="position: relative; top: -20px; left: 5px"><br /></el-checkbox>
<div>
<el-row style="font-size: 14px; padding-left: 20px">
<el-col style="font-weight: bold">{{ item.pName }}</el-col>
@@ -629,89 +314,48 @@
<div style="display: flex">
<div>
<el-col :span="8" :offset="4">
- <vueQr
- :text="
- 'https://zttx-lims.ztt.cn:8021/lims/qr/qrScan?code=' +
- item.id +
- '&type=sample'
- "
- :size="140"
- :margin="2"
- ></vueQr>
+ <vueQr :text="'https://zttx-lims.ztt.cn:8021/lims/qr/qrScan?code=' +
+ item.id +
+ '&type=sample'
+ " :size="140" :margin="2"></vueQr>
</el-col>
</div>
<div style="margin-left: 50px; width: 100%">
<el-row>
- <el-col
- style="
+ <el-col style="
font-weight: bold;
text-align: left;
font-size: 14px;
- "
- ><span>鏍峰搧缂栧彿: </span
- >{{ item.sampleCode }}</el-col
- >
+ "><span>鏍峰搧缂栧彿: </span>{{ item.sampleCode }}</el-col>
</el-row>
<el-row style="margin-top: 1px; font-size: 14px">
- <el-col style="font-weight: bold; text-align: left"
- ><span>濮旀墭鍗曞彿: </span>{{ item.code }}</el-col
- >
+ <el-col style="font-weight: bold; text-align: left"><span>濮旀墭鍗曞彿: </span>{{ item.code
+ }}</el-col>
</el-row>
<el-row style="margin-top: 1px; font-size: 14px">
- <el-col style="font-weight: bold; text-align: left"
- ><span>瑙勬牸鍨嬪彿: </span>{{ item.model }}</el-col
- >
+ <el-col style="font-weight: bold; text-align: left"><span>瑙勬牸鍨嬪彿: </span>{{ item.model
+ }}</el-col>
</el-row>
<el-row style="margin-top: 1px; font-size: 14px">
- <el-col style="font-weight: bold; text-align: left"
- ><span>鏍峰搧鍚嶇О: </span
- >{{ item.sample }}</el-col
- >
+ <el-col style="font-weight: bold; text-align: left"><span>鏍峰搧鍚嶇О: </span>{{ item.sample
+ }}</el-col>
</el-row>
- <el-row
- style="margin-top: 1px; font-size: 14px"
- class="ellipsis-multiline"
- >
- <el-col style="font-weight: bold; text-align: left"
- ><span>妫�娴嬮」鐩�: </span>{{ item.item }}</el-col
- >
+ <el-row style="margin-top: 1px; font-size: 14px" class="ellipsis-multiline">
+ <el-col style="font-weight: bold; text-align: left"><span>妫�娴嬮」鐩�: </span>{{ item.item
+ }}</el-col>
</el-row>
<el-row style="margin-top: 2px; font-size: 14px">
- <el-col
- style="
+ <el-col style="
font-weight: bold;
display: flex;
align-items: center;
- "
- ><span>鏍峰搧鐘舵��: </span
- ><el-radio-group
- :value="item.insState"
- style="margin-top: 7px; margin-left: 4px"
- disabled
- >
- <el-radio
- :label="0"
- style="font-weight: bold; margin-right: 7px"
- >寰呮</el-radio
- >
- <el-radio
- :label="1"
- style="font-weight: bold; margin-right: 7px"
- >鍦ㄦ</el-radio
- >
- <el-radio
- :label="2"
- style="font-weight: bold; margin-right: 7px"
- >宸叉</el-radio
- > </el-radio-group
- ><el-radio
- :label="1"
- style="font-weight: bold; margin-top: 7px"
- v-model="item.isLeave"
- disabled
- >鐣欐牱</el-radio
- ></el-col
- >
+ "><span>鏍峰搧鐘舵��: </span><el-radio-group :value="item.insState"
+ style="margin-top: 7px; margin-left: 4px" disabled>
+ <el-radio :label="0" style="font-weight: bold; margin-right: 7px">寰呮</el-radio>
+ <el-radio :label="1" style="font-weight: bold; margin-right: 7px">鍦ㄦ</el-radio>
+ <el-radio :label="2" style="font-weight: bold; margin-right: 7px">宸叉</el-radio>
+ </el-radio-group><el-radio :label="1" style="font-weight: bold; margin-top: 7px"
+ v-model="item.isLeave" disabled>鐣欐牱</el-radio></el-col>
</el-row>
</div>
</div>
@@ -723,61 +367,40 @@
<span slot="footer" class="dialog-footer">
<el-row>
<el-button @click="printDialogVisible = false">鍙� 娑�</el-button>
- <el-button
- type="primary"
- @click="submitPrint"
- :loading="printLoading"
- >鎵� 鍗�</el-button
- >
+ <el-button type="primary" @click="submitPrint" :loading="printLoading">鎵� 鍗�</el-button>
</el-row>
</span>
</el-dialog>
- <div
- class="el-dialog__body"
- style="
+ <div class="el-dialog__body" style="
overflow-y: auto;
margin-top: 0;
position: fixed;
top: 999px;
z-index: 99999;
display: none;
- "
- >
+ ">
<div id="printMOrder" class="printMOrder" ref="printMOrder">
- <el-card
- class="box-card"
- v-for="(item, i) in checkDataList"
- :key="i + 'uuuuu'"
- style="
+ <el-card class="box-card" v-for="(item, i) in checkDataList" :key="i + 'uuuuu'" style="
font-size: 0.2cm !important;
page-break-after: always;
color: #000;
box-shadow: none;
margin: 0 !important;
padding: 0 !important;
- "
- >
+ ">
<div style="display: flex">
<div>
<el-col :span="10" :offset="2">
- <vueQr
- :text="
- 'https://zttx-lims.ztt.cn:8021/lims/qr/qrScan?code=' +
- item.id +
- '&type=sample'
- "
- :size="60"
- :margin="2"
- ></vueQr>
+ <vueQr :text="'https://zttx-lims.ztt.cn:8021/lims/qr/qrScan?code=' +
+ item.id +
+ '&type=sample'
+ " :size="60" :margin="2"></vueQr>
</el-col>
</div>
<div style="margin-left: 0.32cm; line-height: 0.22cm">
<el-row>
- <el-col
- style="font-size: 0.2cm; width: 4cm"
- class="single-line-ellipsis"
- ><span>鏍峰搧缂栧彿: </span>{{ item.sampleCode }}</el-col
- >
+ <el-col style="font-size: 0.2cm; width: 4cm" class="single-line-ellipsis"><span>鏍峰搧缂栧彿: </span>{{
+ item.sampleCode }}</el-col>
</el-row>
<el-row style="font-size: 0.2cm">
<el-col><span>濮旀墭鍗曞彿: </span>{{ item.code }}</el-col>
@@ -786,29 +409,19 @@
<el-col><span>瑙勬牸鍨嬪彿: </span>{{ item.model }}</el-col>
</el-row>
<el-row style="font-size: 0.2cm">
- <el-col
- ><span>鏍峰搧鍚嶇О: </span>{{ item.sample }}</el-col
- >
+ <el-col><span>鏍峰搧鍚嶇О: </span>{{ item.sample }}</el-col>
</el-row>
<el-row style="font-size: 0.2cm; width: 4cm">
- <el-col class="ellipsis-multiline"
- ><span>妫�娴嬮」鐩�: </span>{{ item.item }}</el-col
- >
+ <el-col class="ellipsis-multiline"><span>妫�娴嬮」鐩�: </span>{{ item.item }}</el-col>
</el-row>
<el-row style="margin-top: 0.01cm; font-size: 0.2cm">
- <el-col style="display: flex; align-items: center"
- ><span>鏍峰搧鐘舵��: </span>
- <span style="white-space: nowrap"
- ><span v-if="item.insState == 0">鈭�</span
- ><span class="scor" v-if="item.insState != 0"></span>寰呮
- <span v-if="item.insState == 1">鈭�</span
- ><span class="scor" v-if="item.insState != 1"></span>鍦ㄦ
- <span v-if="item.insState == 2">鈭�</span
- ><span class="scor" v-if="item.insState != 2"></span>宸叉
- <span v-if="item.isLeave == 1">鈭�</span
- ><span class="scor" v-if="item.isLeave != 1"></span
- >鐣欐牱</span
- >
+ <el-col style="display: flex; align-items: center"><span>鏍峰搧鐘舵��: </span>
+ <span style="white-space: nowrap"><span v-if="item.insState == 0">鈭�</span><span class="scor"
+ v-if="item.insState != 0"></span>寰呮
+ <span v-if="item.insState == 1">鈭�</span><span class="scor" v-if="item.insState != 1"></span>鍦ㄦ
+ <span v-if="item.insState == 2">鈭�</span><span class="scor" v-if="item.insState != 2"></span>宸叉
+ <span v-if="item.isLeave == 1">鈭�</span><span class="scor"
+ v-if="item.isLeave != 1"></span>鐣欐牱</span>
</el-col>
</el-row>
</div>
@@ -994,32 +607,32 @@
{
name: "鏁版嵁鏌ョ湅",
type: "text",
- clickFun: (row) => {},
+ clickFun: (row) => { },
},
{
name: "鎶ュ憡涓嬭浇",
type: "text",
- clickFun: (row) => {},
+ clickFun: (row) => { },
},
{
name: "瀹℃牳",
type: "text",
- clickFun: (row) => {},
+ clickFun: (row) => { },
},
{
name: "鎾ら攢",
type: "text",
- clickFun: (row) => {},
+ clickFun: (row) => { },
},
{
name: "鎾ら攢瀹℃牳",
type: "text",
- clickFun: (row) => {},
+ clickFun: (row) => { },
},
{
name: "鍒嗛厤",
type: "text",
- clickFun: (row) => {},
+ clickFun: (row) => { },
},
],
},
@@ -2022,8 +1635,8 @@
this.$axios
.get(
this.$api.insOrder.selectTemperatureByProductId +
- "?productId=" +
- tree.id
+ "?productId=" +
+ tree.id
)
.then((res) => {
this.loadRecursion(this.treeTableData, tree.id, res.data);
@@ -2037,10 +1650,10 @@
this.$axios
.get(
this.$api.insOrder.selectTemperatureNumberByProductId +
- "?parentId=" +
- tree.parentId +
- "&inspectionItem=" +
- tree.inspectionItemTwo
+ "?parentId=" +
+ tree.parentId +
+ "&inspectionItem=" +
+ tree.inspectionItemTwo
)
.then((res) => {
this.loadRecursion(this.treeTableData, tree.id, res.data);
@@ -2052,10 +1665,10 @@
this.$axios
.get(
this.$api.insOrder.selectProductsBySampleId +
- "?sampleId=" +
- tree.id +
- "&orderId=" +
- this.orderId
+ "?sampleId=" +
+ tree.id +
+ "&orderId=" +
+ this.orderId
)
.then((res) => {
this.treeTableData.forEach((m, index) => {
@@ -2087,8 +1700,8 @@
this.$axios
.get(
this.$api.insOrder.revokeReviewTemperatureByProductId +
- "?productId=" +
- tree.id
+ "?productId=" +
+ tree.id
)
.then((res) => {
resolve(res.data);
@@ -2100,10 +1713,10 @@
this.$axios
.get(
this.$api.insOrder.revokeReviewConsistentByProductId +
- "?parentId=" +
- tree.parentId +
- "&inspectionItem=" +
- tree.inspectionItemTwo
+ "?parentId=" +
+ tree.parentId +
+ "&inspectionItem=" +
+ tree.inspectionItemTwo
)
.then((res) => {
resolve(res.data);
@@ -2113,10 +1726,10 @@
this.$axios
.get(
this.$api.insOrder.revokeReviewProduct +
- "?sampleId=" +
- tree.id +
- "&orderId=" +
- this.orderId
+ "?sampleId=" +
+ tree.id +
+ "&orderId=" +
+ this.orderId
)
.then((res) => {
resolve(res.data);
@@ -2585,10 +2198,12 @@
.el-form-item {
margin-bottom: 16px;
}
-.box-card >>> .el-radio__inner {
+
+.box-card>>>.el-radio__inner {
border-radius: 2px !important;
}
-.box-card >>> .el-radio__input.is-checked .el-radio__inner::after {
+
+.box-card>>>.el-radio__input.is-checked .el-radio__inner::after {
content: "";
width: 8px;
height: 3px;
@@ -2604,13 +2219,16 @@
border-radius: 0px;
background: none;
}
->>> .el-radio__label {
+
+>>>.el-radio__label {
color: #000 !important;
}
-.el-dialog__body >>> .el-radio__label {
+
+.el-dialog__body>>>.el-radio__label {
font-size: 8px;
}
-.el-dialog__body >>> .el-radio__input.is-checked .el-radio__inner::after {
+
+.el-dialog__body>>>.el-radio__input.is-checked .el-radio__inner::after {
content: "";
width: 4px;
height: 3px;
@@ -2626,31 +2244,40 @@
border-radius: 0px;
background: none;
}
->>> .el-radio__input.is-disabled.is-checked .el-radio__inner {
+
+>>>.el-radio__input.is-disabled.is-checked .el-radio__inner {
background: #3a7bfa;
}
-.el-dialog__body >>> .el-radio__input.is-disabled.is-checked .el-radio__inner {
+
+.el-dialog__body>>>.el-radio__input.is-disabled.is-checked .el-radio__inner {
background: transparent;
}
-.el-dialog__body >>> .el-radio__inner {
+
+.el-dialog__body>>>.el-radio__inner {
width: 8px !important;
height: 8px !important;
}
-.el-dialog__body >>> .el-radio__label {
+
+.el-dialog__body>>>.el-radio__label {
padding-left: 2px !important;
}
-.el-dialog__body >>> .el-card__body {
+
+.el-dialog__body>>>.el-card__body {
padding: 0 !important;
}
-.el-dialog__body >>> .el-card {
+
+.el-dialog__body>>>.el-card {
border: none;
}
-.el-dialog__body >>> .el-radio__input.is-disabled .el-radio__inner {
+
+.el-dialog__body>>>.el-radio__input.is-disabled .el-radio__inner {
border-color: #000 !important;
}
-.el-dialog__body >>> .el-radio__input.is-disabled.is-checked .el-radio__inner {
+
+.el-dialog__body>>>.el-radio__input.is-disabled.is-checked .el-radio__inner {
border: none !important;
}
+
.scor {
width: 0.01cm;
height: 0.01cm;
@@ -2658,6 +2285,7 @@
border: 1px solid #000;
display: inline-block;
}
+
.ellipsis-multiline {
display: -webkit-box;
-webkit-line-clamp: 2;
@@ -2665,14 +2293,19 @@
overflow: hidden;
text-overflow: ellipsis;
word-wrap: break-word;
- max-height: 3em; /* 楂樺害涓哄瓧浣撳ぇ灏忕殑涓ゅ�� */
- line-height: 1.5em; /* 琛岄珮 */
- height: 3em; /* 楂樺害涓鸿楂樼殑涓ゅ�� */
+ max-height: 3em;
+ /* 楂樺害涓哄瓧浣撳ぇ灏忕殑涓ゅ�� */
+ line-height: 1.5em;
+ /* 琛岄珮 */
+ height: 3em;
+ /* 楂樺害涓鸿楂樼殑涓ゅ�� */
}
+
.table-container {
height: 70vh;
overflow-y: auto;
}
+
.table-container.el-table {
overflow: hidden;
text-overflow: ellipsis;
diff --git a/src/views/index.vue b/src/views/index.vue
index db59dcc..2fcc034 100644
--- a/src/views/index.vue
+++ b/src/views/index.vue
@@ -1,33 +1,40 @@
<template>
- <div class="index">
+ <div class="bg-1">
<el-row :gutter="25">
<el-col :lg="14" :md="14" :sm="24" :xl="14" :xs="24">
<div class="left-1">
<div class="say">
<div style="display: flex;align-items: center;flex-wrap: wrap;">
- <div class="say-1">{{user.name}} 鎮ㄥソ锛佺鎮ㄥ紑蹇冩瘡涓�澶�</div>
- <div class="say-2">褰撳墠鏃堕棿锛� {{now}}</div>
+ <div class="say-1">{{ user.name }} 鎮ㄥソ锛佺鎮ㄥ紑蹇冩瘡涓�澶�</div>
+ <div class="say-2">褰撳墠鏃堕棿锛� {{ now }}</div>
</div>
</div>
</div>
<div v-loading="workLoading" class="left-2 card" style="overflow: hidden;">
- <div v-for="(item,index) in workDay" :key="index" class="left-2-item">
+ <div v-for="(item, index) in workDay" :key="index" class="left-2-item">
<div class="left-item-title">
<span style="font-size: 18px;">{{ item }}</span>
<span style="font-size: 14px;color: #999999;">{{ weekdays[index] }}</span>
</div>
<div class="left-item-body">
- <div v-for="(m,i) in workList[index]" :key="i" :class="{color0:m.type==0,color1:m.type==1,color2:m.type==2}" class="body-item">
+ <div v-for="(m, i) in workList[index]" :key="i"
+ :class="{ color0: m.type == 0, color1: m.type == 1, color2: m.type == 2 }" class="body-item">
<div>
<span style="font-size: 12px;margin-bottom: 17px;">{{ m.text }}</span>
<div style="display: flex">
<span class="body-item-name">{{ m.name }}</span>
- <span v-if="m.insState == 0" class="body-item-insState" style="background-color: #909399;font-size: 12px;">寰呮楠�</span>
- <span v-if="m.insState == 1" class="body-item-insState" style="background-color: #E6A23C;font-size: 12px;">妫�楠屼腑</span>
- <span v-if="m.insState == 2" class="body-item-insState" style="background-color: #67C23A;font-size: 12px;">宸叉楠�</span>
- <span v-if="m.insState == 3" class="body-item-insState" style="background-color: #E6A23C;font-size: 12px;">寰呭鏍�</span>
- <span v-if="m.insState == 4" class="body-item-insState" style="background-color: #F56C6C;font-size: 9px;">澶嶆牳鏈�氳繃</span>
- <span v-if="m.insState == 5" class="body-item-insState" style="background-color: #67C23A;font-size: 10px;">澶嶆牳閫氳繃</span>
+ <span v-if="m.insState == 0" class="body-item-insState"
+ style="background-color: #909399;font-size: 12px;">寰呮楠�</span>
+ <span v-if="m.insState == 1" class="body-item-insState"
+ style="background-color: #E6A23C;font-size: 12px;">妫�楠屼腑</span>
+ <span v-if="m.insState == 2" class="body-item-insState"
+ style="background-color: #67C23A;font-size: 12px;">宸叉楠�</span>
+ <span v-if="m.insState == 3" class="body-item-insState"
+ style="background-color: #E6A23C;font-size: 12px;">寰呭鏍�</span>
+ <span v-if="m.insState == 4" class="body-item-insState"
+ style="background-color: #F56C6C;font-size: 9px;">澶嶆牳鏈�氳繃</span>
+ <span v-if="m.insState == 5" class="body-item-insState"
+ style="background-color: #67C23A;font-size: 10px;">澶嶆牳閫氳繃</span>
</div>
</div>
</div>
@@ -42,7 +49,7 @@
<img alt="" src="@/assets/index_image/index-0.svg">
</div>
<div class="mun">
- <p style="font-size: 20px;">{{getNumberFourTypes.totalNumberOfMessages}}</p>
+ <p style="font-size: 20px;">{{ getNumberFourTypes.totalNumberOfMessages }}</p>
<p style="font-size: 14px;margin-bottom: 10px;">鎴戠殑寰呭姙</p>
</div>
</div>
@@ -78,52 +85,55 @@
<div class="right-2-title">
<span style="color: #333333;font-size: 16px;">鎴戠殑鏃ョ▼</span>
<span style="cursor: pointer;font-size: 12px;
-color: #3A7BFA;" @click="dialogVisible=true">娣诲姞鎴戠殑鏃ョ▼</span>
+color: #3A7BFA;" @click="dialogVisible = true">娣诲姞鎴戠殑鏃ョ▼</span>
</div>
<div class="right-2-body">
<div class="calendar" style="width: 49%;">
<div class="control">
<el-button class="prevm" icon="el-icon-arrow-left" @click="prevMonth(calendarValue)"></el-button>
- <span>{{ calendarValue.getFullYear()+'骞�'+(calendarValue.getMonth() + 1)+'鏈�' }}</span>
+ <span>{{ calendarValue.getFullYear() + '骞�' + (calendarValue.getMonth() + 1) + '鏈�' }}</span>
<el-button class="nextm" icon="el-icon-arrow-right" @click="nextMonth(calendarValue)"></el-button>
</div>
<el-calendar v-model="calendarValue">
- <template
- slot="dateCell"
- slot-scope="{date, data}">
- <span>
- {{ data.day.split('-').slice(2)+'' }}
- </span>
+ <template slot="dateCell" slot-scope="{date, data}">
+ <span>
+ {{ data.day.split('-').slice(2) + '' }}
+ </span>
<!-- <el-badge v-if="data.isSelected" is-dot class="item">
</el-badge> -->
</template>
</el-calendar>
</div>
<div v-loading="scheduleLoading" class="right-2-list" style="width: 49%;height: 286px;">
- <div v-for="(m,i) in listScheduleByMe" :key="i" class="list2-item">
+ <div v-for="(m, i) in listScheduleByMe" :key="i" class="list2-item">
<span>{{ m.scheduleTimes }}</span>
<el-tooltip :content="m.text" effect="dark" placement="top" style="margin-left: 10px;">
- <p class="ellipsis-multiline" >{{ m.text }}</p>
+ <p class="ellipsis-multiline">{{ m.text }}</p>
</el-tooltip>
</div>
- <span v-if="listScheduleByMe.length==0" style="color:rgb(144, 147, 153);font-size: 14px;text-align: center;margin: 120px 0;display: inline-block;width: 100%;">鏆傛棤鏁版嵁</span>
+ <span v-if="listScheduleByMe.length == 0"
+ style="color:rgb(144, 147, 153);font-size: 14px;text-align: center;margin: 120px 0;display: inline-block;width: 100%;">鏆傛棤鏁版嵁</span>
</div>
</div>
</div>
<div class="right-3 card" style="overflow: hidden;">
<div class="right-3-tab">
<!-- <div :class="{active:currentIndex==4}" class="tab-item" style="cursor: pointer;" @click="currentIndex=4">棰勮鎻愰啋</div>-->
- <div :class="{active:currentIndex==5}" class="tab-item" style="cursor: pointer;" @click="currentIndexChange">CNAS閫氱煡閫氬憡</div>
+ <div :class="{ active: currentIndex == 5 }" class="tab-item" style="cursor: pointer;"
+ @click="currentIndexChange">
+ CNAS閫氱煡閫氬憡</div>
</div>
<div v-loading="listLoading" class="right-3-list">
- <scroll-pagination v-if="list.length>0||listLoading" :finishLoding="finishLoding" :list="list" @load="getList">
- <div v-for="(m,i) in list" :key="i" class="list3-item">
+ <scroll-pagination v-if="list.length > 0 || listLoading" :finishLoding="finishLoding" :list="list"
+ @load="getList">
+ <div v-for="(m, i) in list" :key="i" class="list3-item">
<div class="list3-item-title">
<!-- <img alt="" src="../../../static/img/index-tip.svg">-->
<p style="color: #FF7756">{{ m.theme }}</p>
</div>
<div class="list3-item-info">
- <p class="ellipsis-multiline" style="width: 73%;-webkit-line-clamp: 1;cursor: pointer;" @click="goNoticeDetail(m)">
+ <p class="ellipsis-multiline" style="width: 73%;-webkit-line-clamp: 1;cursor: pointer;"
+ @click="goNoticeDetail(m)">
<!-- 缂栧彿<span style="color:#3A7BFA;"> SB20240101-001 </span>鐨勮澶囧皢浜�2023-09-09 11:11:11杩囨湡 -->
{{ m.content }}
</p>
@@ -131,7 +141,9 @@
</div>
</div>
</scroll-pagination>
- <div v-if="list.length<1&&!listLoading" style="color:#909399;font-size:14px;text-align: center;margin-top:80px" >鏆傛棤鏁版嵁</div>
+ <div v-if="list.length < 1 && !listLoading"
+ style="color:#909399;font-size:14px;text-align: center;margin-top:80px">鏆傛棤鏁版嵁
+ </div>
</div>
</div>
</el-col>
@@ -142,11 +154,7 @@
<el-col :span="22" class="search_thing">
<div class="search_label"><span style="color: red;margin-right: 4px;">*</span>鏃堕棿锛�</div>
<div class="search_input">
- <el-date-picker
- v-model="query.time"
- format="yyyy-MM-dd HH:mm:ss"
- placeholder="閫夋嫨鏃ユ湡鏃堕棿"
- size="small"
+ <el-date-picker v-model="query.time" format="yyyy-MM-dd HH:mm:ss" placeholder="閫夋嫨鏃ユ湡鏃堕棿" size="small"
style="width: 100%;" type="datetime" value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker>
</div>
@@ -154,24 +162,23 @@
<el-col :span="22" class="search_thing">
<div class="search_label"><span style="color: red;margin-right: 4px;">*</span>鍐呭锛�</div>
<div class="search_input">
- <el-input v-model="query.text" :rows="2"
- placeholder="璇疯緭鍏ュ唴瀹�" size="small" type="textarea"></el-input>
+ <el-input v-model="query.text" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" size="small" type="textarea"></el-input>
</div>
</el-col>
</el-row>
</div>
<span slot="footer" class="dialog-footer">
- <el-row>
- <el-button @click="handleCancel">鍙� 娑�</el-button>
- <el-button :loading="loading" type="primary" @click="submit">纭� 瀹�</el-button>
- </el-row>
- </span>
+ <el-row>
+ <el-button @click="handleCancel">鍙� 娑�</el-button>
+ <el-button :loading="loading" type="primary" @click="submit">纭� 瀹�</el-button>
+ </el-row>
+ </span>
</el-dialog>
</div>
</template>
<script>
-import {getYearAndMonthAndDays} from '@/utils/date.js'
+import { getYearAndMonthAndDays } from '@/utils/date.js'
import ScrollPagination from '@/components/index/scroll-paging.vue'
export default {
components: {
@@ -182,35 +189,35 @@
user: {},
now: null,
calendarValue: new Date(),
- currentIndex:5,
- dialogVisible:false,
- query:{
- time:'',
- text:''
+ currentIndex: 5,
+ dialogVisible: false,
+ query: {
+ time: '',
+ text: ''
},
- loading:false,
- workLoading:false,
- workList:[],
- workDay:[],
- weekdays:[],
- listScheduleByMe:[],
- scheduleLoading:false,
- list:[],
- currentPage:1,
+ loading: false,
+ workLoading: false,
+ workList: [],
+ workDay: [],
+ weekdays: [],
+ listScheduleByMe: [],
+ scheduleLoading: false,
+ list: [],
+ currentPage: 1,
pageSize: 8, // 涓�椤�7鏉�
total: null,
listLoading: true, // 缁勪欢loading鐨勫睍绀�,榛樿涓簍rue
finishLoding: false, // 鍔犺浇瀹屾垚锛屾樉绀哄凡缁忔病鏈夋洿澶氫簡
- timer:null,
- keyMap:{},
+ timer: null,
+ keyMap: {},
getNumberFourTypes: {},
}
},
- watch:{
- calendarValue(val){
+ watch: {
+ calendarValue(val) {
this.getScheduleByMe()
},
- currentIndex(){
+ currentIndex() {
this.keyMap = {}
this.currentPage = 1;
this.list = [];
@@ -230,7 +237,7 @@
this.list = [];
this.getList();
this.getScheduleByMe()
- this.timer&&clearInterval(this.timer)
+ this.timer && clearInterval(this.timer)
this.timer = setInterval(() => {
this.init();
this.currentPage = 1;
@@ -238,16 +245,16 @@
this.list = [];
this.getList();
this.getScheduleByMe()
- },1000*60*10)
+ }, 1000 * 60 * 10)
this.getNumberFourTypesFun()
},
methods: {
- changeState (val) {
+ changeState(val) {
if (val == 0) {
return '寰呮楠�'
}
},
- currentIndexChange () {
+ currentIndexChange() {
this.keyMap = {}
this.currentPage = 1;
this.list = [];
@@ -258,35 +265,35 @@
this.getNumberFourTypes = res.data
})
},
- getList(){
+ getList() {
const key = `_${this.currentPage}`
const value = this.keyMap[key]
// 濡傛灉value瀛樺湪锛岃〃绀虹紦瀛樻湁鍊硷紝閭d箞闃绘璇锋眰
- if(value) {
+ if (value) {
return
}
// value涓嶅瓨鍦紝琛ㄧず绗竴娆¤姹�,璁剧疆鍗犱綅
this.keyMap[key] = 'temp'
- if(this.currentPage==1){
+ if (this.currentPage == 1) {
this.listLoading = true
}
- if(this.list.length==0){
+ if (this.list.length == 0) {
this.finishLoding = false;
}
- this.$axios.get(this.$api.informationNotification.page+'?size='+this.pageSize+'¤t='+this.currentPage+'&messageType='+this.currentIndex).then(res => {
- if(res.code === 201){
+ this.$axios.get(this.$api.informationNotification.page + '?size=' + this.pageSize + '¤t=' + this.currentPage + '&messageType=' + this.currentIndex).then(res => {
+ if (res.code === 201) {
return
}
let list = res.data.records;
this.total = res.data.total;
- if(list.length==0){
+ if (list.length == 0) {
this.finishLoding = true;
- }else{
- if(list.length<this.pageSize){
+ } else {
+ if (list.length < this.pageSize) {
this.finishLoding = true;
}
this.list = this.list.concat(list)
- if(this.total==this.list.length){
+ if (this.total == this.list.length) {
this.finishLoding = true;
}
this.currentPage++;
@@ -376,19 +383,19 @@
// 灏嗗緱鍒扮殑骞存湀鏃ユ牸寮忚浆鎹负鏍囧噯鏃堕棿锛屼笌楗夸簡涔堟椂闂存牸寮忕浉鍚屾墠鑳借仈鍔�
this.calendarValue = new Date(prevtime);
},
- handleCancel(){
+ handleCancel() {
this.dialogVisible = false;
this.query = {
- time:'',
- text:''
+ time: '',
+ text: ''
}
},
- submit(){
- if(!this.query.time){
+ submit() {
+ if (!this.query.time) {
this.$message.error('鏃堕棿鏈~鍐�')
return
}
- if(!this.query.text){
+ if (!this.query.text) {
this.$message.error('鍐呭鏈~鍐�')
return
}
@@ -404,16 +411,16 @@
this.getScheduleByMe()
})
},
- init(){
+ init() {
this.workLoading = true;
this.$axios.get(this.$api.report.calendarWorkByWeek).then(res => {
if (res.code == 201) return
this.workLoading = false;
this.workList = [];
- for(let i=0;i<7;i++){
+ for (let i = 0; i < 7; i++) {
this.workList.push(res.data[`work${i}`])
}
- this.workDay = res.data.weekDays.map(m=>{
+ this.workDay = res.data.weekDays.map(m => {
let arr = m.split('-')
return arr[2]
})
@@ -428,8 +435,8 @@
weekdays.push(day);
}
weekdays.reverse()
- weekdays = weekdays.map(m=>{
- let day =''
+ weekdays = weekdays.map(m => {
+ let day = ''
switch (m) {
case 0:
day = '鏄熸湡澶�'
@@ -457,56 +464,48 @@
})
return weekdays;
},
- getScheduleByMe(){
+ getScheduleByMe() {
this.scheduleLoading = true;
this.$axios.post(this.$api.report.ScheduleByMe, {
- date:getYearAndMonthAndDays(this.calendarValue)
+ date: getYearAndMonthAndDays(this.calendarValue)
}).then(res => {
this.loading = false;
this.scheduleLoading = false;
if (res.code == 201) {
return
}
- this.listScheduleByMe = res.data.map(m=>{
- if(m.scheduleTime){
+ this.listScheduleByMe = res.data.map(m => {
+ if (m.scheduleTime) {
let time = m.scheduleTime.split(' ')[1].split(':')
m.scheduleTimes = time[0] + ':' + time[1]
- }else{
+ } else {
m.scheduleTimes = ''
}
return m
})
})
},
- goNoticeDetail(row){
- this.$axios.put(this.$api.informationNotification.triggerModificationStatusToRead+'/'+row.id).then(res => {
+ goNoticeDetail(row) {
+ this.$axios.put(this.$api.informationNotification.triggerModificationStatusToRead + '/' + row.id).then(res => {
row.num = Math.random(100);
this.$bus.$emit("change", JSON.stringify(row));
this.$parent.addTab({
v: "娑堟伅璇︽儏",
i: "el-icon-s-tools",
u: "notice-detail",
- k:35,
+ k: 35,
p: "abcd"
- },29);
+ }, 29);
})
},
},
- deactivated(){
- this.timer&&clearInterval(this.timer)
+ deactivated() {
+ this.timer && clearInterval(this.timer)
}
}
</script>
<style scoped lang="scss">
-.index {
- width: 100%;
- height: calc(100% - 50px);
- overflow-y: auto;
- padding: 20px 10px 10px;
- background: rgb(245, 247, 251);
-}
-
.left-1 {
background-image: url("~@/assets/index_image/index-img1.png");
background-size: 100% 100%;
@@ -545,14 +544,14 @@
border-radius: 3px;
}
-.card{
+.card {
background: #FFFFFF;
border-radius: 16px;
width: 100%;
box-sizing: border-box;
}
-.right-1{
+.right-1 {
padding: 10px 10px 4px;
display: flex;
align-items: center;
@@ -560,64 +559,72 @@
margin-bottom: 16px;
}
-.right-1-item{
+.right-1-item {
width: 25%;
display: flex;
align-items: center;
justify-content: center;
}
-.right-1-item .mun{
+.right-1-item .mun {
margin-left: 6px;
color: #0166E2;
}
-.right-2{
+.right-2 {
padding: 13px 14px 8px;
margin-bottom: 16px;
}
-.right-2-title{
+.right-2-title {
display: flex;
align-items: center;
justify-content: space-between;
}
-.right-2-body{
+.right-2-body {
width: 100%;
margin-top: 20px;
display: flex;
align-items: flex-start;
justify-content: space-between;
}
+
>>>.el-calendar__header {
display: none;
}
->>>.el-calendar__body{
+
+>>>.el-calendar__body {
padding: 0;
}
+
>>>.el-calendar-table:not(.is-range) td.next {
/*闅愯棌涓嬩釜鏈堢殑鏃ユ湡*/
display: none;
}
->>>.el-calendar-day{
+
+>>>.el-calendar-day {
height: 40px;
}
->>>.el-calendar-table td{
+
+>>>.el-calendar-table td {
border: 0;
font-size: 14px;
}
->>>.el-calendar-table tr td:first-child{
+
+>>>.el-calendar-table tr td:first-child {
border-left: 0;
}
-.control{
+
+.control {
display: flex;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
padding: 0px 0 10px;
}
-.control .el-button{
+
+.control .el-button {
width: 32px;
height: 32px;
border-radius: 8px;
@@ -627,17 +634,20 @@
color: #0166E2;
font-size: 20px;
}
-.list2-item{
+
+.list2-item {
line-height: 22px;
display: flex;
margin-bottom: 12px;
font-size: 14px;
}
-.right-3-tab{
+
+.right-3-tab {
display: flex;
align-items: center;
}
-.tab-item{
+
+.tab-item {
width: 50%;
box-sizing: border-box;
text-align: center;
@@ -646,56 +656,68 @@
background: #F5F7FB;
color: #333333;
}
-.tab-item.active{
+
+.tab-item.active {
background: #fff;
color: #FF3838;
padding-left: 16px;
text-align: left;
}
-.right-3-list{
+
+.right-3-list {
padding: 0 12px 8px;
box-sizing: border-box;
height: 390px;
overflow-y: auto;
}
-.list3-item{
+
+.list3-item {
padding: 6px 4px;
margin: 8px 0;
}
-.list3-item:hover{
- background: rgba(58, 123, 250,0.05);
+
+.list3-item:hover {
+ background: rgba(58, 123, 250, 0.05);
}
-.list3-item-title{
+
+.list3-item-title {
display: flex;
align-items: flex-start;
margin-bottom: 10px;
}
-.list3-item-info{
+
+.list3-item-info {
display: flex;
align-items: center;
justify-content: space-between;
color: #666666;
font-size: 14px;
}
-.left-2{
+
+.left-2 {
display: grid;
grid-template-columns: repeat(7, 1fr);
height: 777px;
}
-.left-2-item{
+
+.left-2-item {
border-right: 1px solid #F1F1F1;
overflow: hidden !important;
}
-.left-2-item:nth-last-child(1){
+
+.left-2-item:nth-last-child(1) {
border-right: 0;
}
-.left-2-item:hover{
- background: rgba(58,123,250,0.05);
+
+.left-2-item:hover {
+ background: rgba(58, 123, 250, 0.05);
}
-.left-2-item:hover .left-item-title span{
+
+.left-2-item:hover .left-item-title span {
color: #3A7BFA !important;
}
-.left-item-title{
+
+.left-item-title {
border-bottom: 1px solid #F1F1F1;
display: flex;
flex-direction: column;
@@ -703,35 +725,42 @@
justify-content: center;
padding: 20px 0;
}
-.left-item-body{
+
+.left-item-body {
box-sizing: border-box;
padding: 5px;
height: 693px;
overflow-y: auto;
}
-.body-item{
+
+.body-item {
background: #70A090;
border-radius: 16px;
overflow: hidden;
margin-bottom: 8px;
}
-.body-item.color0{
+
+.body-item.color0 {
background: #70A090;
}
-.body-item.color1{
+
+.body-item.color1 {
background: #EBD476;
}
-.body-item.color2{
+
+.body-item.color2 {
background: #FF3838;
}
-.body-item>div{
+
+.body-item>div {
height: calc(100% - 16px);
margin-top: 16px;
- background: rgba(255, 255, 255,0.9);
+ background: rgba(255, 255, 255, 0.9);
padding: 8px 8px 16px;
display: flex;
flex-direction: column;
}
+
.search_thing {
height: 50px;
margin-bottom: 26px;
@@ -743,7 +772,8 @@
text-align: left;
margin-bottom: 10px;
}
->>>.el-calendar-day span{
+
+>>>.el-calendar-day span {
display: inline-block;
width: 30px;
height: 30px;
@@ -751,26 +781,33 @@
text-align: center;
border-radius: 4px;
}
->>>.is-selected{
+
+>>>.is-selected {
background: transparent !important;
}
->>>.is-selected .el-calendar-day{
+
+>>>.is-selected .el-calendar-day {
background: transparent !important;
}
->>>.is-selected .el-calendar-day span{
+
+>>>.is-selected .el-calendar-day span {
background: #3A7BFA !important;
color: #fff !important;
}
->>>.el-calendar-day:hover{
+
+>>>.el-calendar-day:hover {
background: transparent;
}
->>>.el-calendar-day span:hover{
+
+>>>.el-calendar-day span:hover {
background: #3A7BFA !important;
color: #fff !important;
}
+
.body-item-name {
display: inline-block;
- height: 22px;width: 60px;
+ height: 22px;
+ width: 60px;
border-radius: 10px;
line-height: 22px;
text-align: center;
@@ -778,10 +815,12 @@
color: #fff;
font-size: 14px
}
+
.body-item-insState {
margin-left: 2px;
display: inline-block;
- height: 22px;width: 60px;
+ height: 22px;
+ width: 60px;
border-radius: 10px;
line-height: 22px;
text-align: center;
--
Gitblit v1.9.3