| ¶Ô±ÈÐÂÎļþ |
| | |
| | | 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, |
| | | }) |
| | | } |
| | | |
| | | |
| | | |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | 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 |
| | | }) |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | 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, |
| | | }); |
| | | } |
| | |
| | | .required-span { |
| | | color: red; |
| | | } |
| | | |
| | | .bg-1 { |
| | | width: 100%; |
| | | height: calc(100% - 50px); |
| | | overflow-y: auto; |
| | | padding: 20px 10px 10px; |
| | | background: rgb(245, 247, 251); |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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' }); |
| | | //å°Blob å¯¹è±¡è½¬æ¢æå符串 |
| | | 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> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | </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"> |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | <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> |
| | |
| | | }); |
| | | }, |
| | | //ä¿ååæ ¹åç´çç§ç¹æ®å¼ |
| | | saveSingleVerticalCombustionData() {}, |
| | | saveSingleVerticalCombustionData() { }, |
| | | openSingleVerticalCombustionDialog() { |
| | | this.$prompt("åæ ¹åç´çç§æ¬¡æ°", "ç¹æ®æ£æµé¡¹ç®", { |
| | | confirmButtonText: "ç¡®å®", |
| | |
| | | this.currentMethod.insProduct = this.productList0; |
| | | this.getProNum(); |
| | | }) |
| | | .catch(() => {}); |
| | | .catch(() => { }); |
| | | }, |
| | | singleVerticalData(arr, value) { |
| | | arr.forEach((ins) => { |
| | |
| | | try { |
| | | let num = this.replaceAll(tell, symbolItem, value); |
| | | return num; |
| | | } catch (e) {} |
| | | } catch (e) { } |
| | | }, |
| | | replaceAll(str, find, value) { |
| | | if (str === undefined) { |
| | |
| | | .then(() => { |
| | | this.saveMethod(sampleList); |
| | | }) |
| | | .catch(() => {}); |
| | | .catch(() => { }); |
| | | } else { |
| | | let isRTS = this.totalArr.find( |
| | | (a) => |
| | |
| | | .then(() => { |
| | | this.saveMethod(sampleList); |
| | | }) |
| | | .catch(() => {}); |
| | | .catch(() => { }); |
| | | } else { |
| | | let isRTS = this.totalArr.find( |
| | | (a) => |
| | |
| | | }); |
| | | } |
| | | }, |
| | | errorSet() {}, |
| | | errorSet() { }, |
| | | /** |
| | | * æ ¡éªå§æè¦æ±çæ£éªé¡¹çè¦æ±æè¿°åè¦æ±å¼ |
| | | * |
| | |
| | | console.log("ask or tell is null"); |
| | | this.errorInspectionItemList.push( |
| | | ele.inspectionItem + |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | ); |
| | | }); |
| | | isTrue = false; |
| | |
| | | ); |
| | | this.errorInspectionItemList.push( |
| | | ele.inspectionItem + |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | ); |
| | | isTrue = false; |
| | | } |
| | |
| | | console.log("è¦æ±å¼ä¸æ²¡ææ°å"); |
| | | this.errorInspectionItemList.push( |
| | | ele.inspectionItem + |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | ); |
| | | isTrue = false; |
| | | } |
| | |
| | | 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){ |
| | |
| | | console.log("æå¤§å¼åæå°å¼ç¸ç"); |
| | | this.errorInspectionItemList.push( |
| | | ele.inspectionItem + |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | ); |
| | | isTrue = false; |
| | | } |
| | |
| | | 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) { |
| | |
| | | console.log("é误çåºé´è®¾ç½®"); |
| | | this.errorInspectionItemList.push( |
| | | ele.inspectionItem + |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | ); |
| | | isTrue = false; |
| | | } |
| | |
| | | console.log(777777); |
| | | this.errorInspectionItemList.push( |
| | | ele.inspectionItem + |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | ); |
| | | isTrue = false; |
| | | } else { |
| | |
| | | console.log(888888); |
| | | this.errorInspectionItemList.push( |
| | | ele.inspectionItem + |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | ); |
| | | isTrue = false; |
| | | } |
| | |
| | | console.log(99999); |
| | | this.errorInspectionItemList.push( |
| | | ele.inspectionItem + |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | ); |
| | | isTrue = false; |
| | | } |
| | |
| | | console.log(1010101001); |
| | | this.errorInspectionItemList.push( |
| | | ele.inspectionItem + |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | ); |
| | | isTrue = false; |
| | | } |
| | |
| | | a.model = |
| | | a.model + |
| | | (a.modelNum == null || |
| | | a.modelNum == "" || |
| | | a.modelNum == "null" |
| | | a.modelNum == "" || |
| | | a.modelNum == "null" |
| | | ? "" |
| | | : "-" + a.modelNum); |
| | | } |
| | |
| | | a.model = |
| | | a.model + |
| | | (a.modelNum == null || |
| | | a.modelNum == "" || |
| | | a.modelNum == "null" |
| | | a.modelNum == "" || |
| | | a.modelNum == "null" |
| | | ? "" |
| | | : "-" + a.modelNum); |
| | | } |
| | |
| | | } else { |
| | | this.methods = res.data.standardMethodList; |
| | | } |
| | | } catch (e) {} |
| | | } catch (e) { } |
| | | }); |
| | | }, |
| | | addStandardTree(currentValue, oldValue) { |
| | |
| | | // row.manHour = arr2[index]; |
| | | // row.price = arr3[index]; |
| | | // row.tell = arr4[index]; |
| | | } catch (e) {} |
| | | } catch (e) { } |
| | | } |
| | | if ( |
| | | row.bsm === "1" && |
| | |
| | | this.$axios |
| | | .get( |
| | | this.$api.insOrder.selectInsOrderTemplate + |
| | | "?company=" + |
| | | this.addObj.company |
| | | "?company=" + |
| | | this.addObj.company |
| | | ) |
| | | .then((res) => { |
| | | if (res.code == 201) return; |
| | |
| | | this.$message.error("å é¤å¤±è´¥"); |
| | | }); |
| | | }) |
| | | .catch(() => {}); |
| | | .catch(() => { }); |
| | | }, |
| | | // ä¿åæ¨¡æ¿ |
| | | addTemplateDia() { |
| | |
| | | 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; |
| | |
| | | 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; |
| | | } |
| | | |
| | |
| | | .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%; |
| | | } |
| | |
| | | <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> |
| | |
| | | <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%"> |
| | |
| | | å¤é¨å§æç¼å·ï¼ |
| | | </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> |
| | |
| | | <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%"> |
| | |
| | | <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> |
| | |
| | | <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" |
| | |
| | | :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> |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | { |
| | | 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) => { }, |
| | | }, |
| | | ], |
| | | }, |
| | |
| | | this.$axios |
| | | .get( |
| | | this.$api.insOrder.selectTemperatureByProductId + |
| | | "?productId=" + |
| | | tree.id |
| | | "?productId=" + |
| | | tree.id |
| | | ) |
| | | .then((res) => { |
| | | this.loadRecursion(this.treeTableData, tree.id, res.data); |
| | |
| | | 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); |
| | |
| | | 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) => { |
| | |
| | | this.$axios |
| | | .get( |
| | | this.$api.insOrder.revokeReviewTemperatureByProductId + |
| | | "?productId=" + |
| | | tree.id |
| | | "?productId=" + |
| | | tree.id |
| | | ) |
| | | .then((res) => { |
| | | resolve(res.data); |
| | |
| | | this.$axios |
| | | .get( |
| | | this.$api.insOrder.revokeReviewConsistentByProductId + |
| | | "?parentId=" + |
| | | tree.parentId + |
| | | "&inspectionItem=" + |
| | | tree.inspectionItemTwo |
| | | "?parentId=" + |
| | | tree.parentId + |
| | | "&inspectionItem=" + |
| | | tree.inspectionItemTwo |
| | | ) |
| | | .then((res) => { |
| | | resolve(res.data); |
| | |
| | | this.$axios |
| | | .get( |
| | | this.$api.insOrder.revokeReviewProduct + |
| | | "?sampleId=" + |
| | | tree.id + |
| | | "&orderId=" + |
| | | this.orderId |
| | | "?sampleId=" + |
| | | tree.id + |
| | | "&orderId=" + |
| | | this.orderId |
| | | ) |
| | | .then((res) => { |
| | | resolve(res.data); |
| | |
| | | .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; |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | border: 1px solid #000; |
| | | display: inline-block; |
| | | } |
| | | |
| | | .ellipsis-multiline { |
| | | display: -webkit-box; |
| | | -webkit-line-clamp: 2; |
| | |
| | | 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; |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | <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> |
| | |
| | | <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: { |
| | |
| | | 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çå±ç¤º,é»è®¤ä¸ºtrue |
| | | 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 = []; |
| | |
| | | this.list = []; |
| | | this.getList(); |
| | | this.getScheduleByMe() |
| | | this.timer&&clearInterval(this.timer) |
| | | this.timer && clearInterval(this.timer) |
| | | this.timer = setInterval(() => { |
| | | this.init(); |
| | | this.currentPage = 1; |
| | |
| | | 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 = []; |
| | |
| | | this.getNumberFourTypes = res.data |
| | | }) |
| | | }, |
| | | getList(){ |
| | | getList() { |
| | | const key = `_${this.currentPage}` |
| | | const value = this.keyMap[key] |
| | | // 妿valueåå¨ï¼è¡¨ç¤ºç¼åæå¼ï¼é£ä¹é»æ¢è¯·æ± |
| | | 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++; |
| | |
| | | // å°å¾å°çå¹´ææ¥æ ¼å¼è½¬æ¢ä¸ºæ åæ¶é´ï¼ä¸é¥¿äºä¹æ¶é´æ ¼å¼ç¸åæè½èå¨ |
| | | 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 |
| | | } |
| | |
| | | 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] |
| | | }) |
| | |
| | | weekdays.push(day); |
| | | } |
| | | weekdays.reverse() |
| | | weekdays = weekdays.map(m=>{ |
| | | let day ='' |
| | | weekdays = weekdays.map(m => { |
| | | let day = '' |
| | | switch (m) { |
| | | case 0: |
| | | day = 'ææå¤©' |
| | |
| | | }) |
| | | 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%; |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | text-align: left; |
| | | margin-bottom: 10px; |
| | | } |
| | | >>>.el-calendar-day span{ |
| | | |
| | | >>>.el-calendar-day span { |
| | | display: inline-block; |
| | | width: 30px; |
| | | height: 30px; |
| | |
| | | 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; |
| | |
| | | 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; |