From 92ff846fb659c62037a32b1d8c15eae9df9d9b54 Mon Sep 17 00:00:00 2001 From: zenglf <18502938215@163.com> Date: 星期一, 18 九月 2023 13:24:30 +0800 Subject: [PATCH] Merge branch 'develop' of http://117.34.109.166:18448/r/vue_mdc_430 --- src/views/eam/modules/dailyInspectionOrder/DailyInspectionOrderExeDrawer.vue | 800 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 800 insertions(+), 0 deletions(-) diff --git a/src/views/eam/modules/dailyInspectionOrder/DailyInspectionOrderExeDrawer.vue b/src/views/eam/modules/dailyInspectionOrder/DailyInspectionOrderExeDrawer.vue new file mode 100644 index 0000000..e5a0ffc --- /dev/null +++ b/src/views/eam/modules/dailyInspectionOrder/DailyInspectionOrderExeDrawer.vue @@ -0,0 +1,800 @@ +<template> + <a-drawer + :title="title" + :width="drawerWidth" + :visible="visible" + @close="handleCancel" + :confirmLoading="confirmLoading" + :maskClosable="maskClosable" + > + <a-card :style="getBackground()"> + <template> + <a-card> + <div :style="{width: '100%',border: '1px solid #e9e9e9',padding: '10px 16px',background: '#fff',}"> + <a-row :style="{textAlign:'left'}"> + <a-button + :style="{marginRight: '8px'}" + @click="handleSW" + :disabled=SWbuttonDistable + type="primary" + v-has="'dailyInspectionOrder:SW'" + >寮�宸�</a-button> + <a-button + :style="{marginRight: '8px'}" + @click="handleReport" + :disabled="buttonDistable" + type="primary" + v-has="'dailyInspectionOrder:report'" + >鎶ュ伐</a-button> + <a-button + :style="{marginRight: '8px'}" + @click="handleReset" + :disabled="revocationDistable" + type="primary" + v-has="'dailyInspectionOrder:reset'" + >鎾ら攢</a-button> + </a-row> + </div> + <div :style="{width: '100%',border: '1px solid #e9e9e9',padding: '10px 16px',background: '#fff',}"> + <a-row :gutter="24"> + <a-col :span="6"> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="璁惧缂栫爜" + class="hightColor" + > + <span + v-if="this.model != null" + class="hightColor" + >{{ this.model.equipmentNum }}</span> + <span + v-else + class="frozenRowClass" + >-</span> + </a-form-item> + </a-col> + <a-col :span="6"> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="璁惧鍚嶇О" + class="hightColor" + > + <span + v-if="this.model != null" + class="hightColor" + >{{ this.model.equipmentName }}</span> + <span + v-else + class="frozenRowClass" + >-</span> + </a-form-item> + </a-col> + <a-col :span="6"> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="瑙勬牸" + class="hightColor" + > + <span + v-if="this.model != null" + class="hightColor" + >{{ this.model.specification }}</span> + <span + v-else + class="frozenRowClass" + >-</span> + </a-form-item> + </a-col> + <a-col :span="6"> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="鍨嬪彿" + class="hightColor" + > + <span + v-if="this.model != null" + class="hightColor" + >{{ this.model.equipmentModel }}</span> + <span + v-else + class="frozenRowClass" + >-</span> + </a-form-item> + </a-col> + </a-row> + </div> + + <a-tabs + type="card" + defaultActiveKey="1" + > + <a-tab-pane + tab='鐐规鏄庣粏' + key="1" + class="hightColor" + > + + <div> + <a-table + ref="table" + size="middle" + bordered + rowKey="id" + :columns="columns" + :dataSource="dataSource" + :pagination="ipagination" + :loading="loading" + @change="handleTableChange" + :scroll="{ x: 'calc(1200px + 50%)', y: 900 }" + > + <template + v-for="col in columns" + :slot="col.dataIndex" + slot-scope='text, record, index' + > + <div :key="col.dataIndex"> + <span + v-if=" col.dataIndex == 'photo' && !text" + style="font-size: 12px;font-style: italic;" + >鏃犲浘鐗�</span> + <img + v-if="col.dataIndex == 'photo' && text" + :src="getImgView(text)" + :preview="record.inspectionStandardDetailId" + height="25px" + alt="" + style="max-width:80px;font-size: 12px;font-style: italic;" + /> + <a-select + v-if="col.dataIndex == 'inspectionProjectResult' && record.testValueType == '2'" + :value="text" + @change="(e) => handleChange(e, record.key, col, index)" + style="width: 100%" + :disabled="record.disabled" + > + <!-- :options="record.inspectionCycles" --> + <a-select-option value="1">姝e父</a-select-option> + <a-select-option value="2">寮傚父</a-select-option> + </a-select> + <a-input-number + :value="text" + v-if="col.dataIndex == 'inspectionProjectResult' && record.testValueType == '1'" + :min="0" + :max="20000" + @change="(e)=>handleChange(e, record.key, col, index,record)" + style="width: 100%" + :disabled="record.disabled" + /> + <a-textarea + :value="text" + v-if="col.dataIndex == 'abnormalDesc'" + :maxLength="500" + auto-size + placeholder="璇疯緭鍏ュ紓甯告弿杩�" + @change="(e)=>handleChange(e, record.key, col, index)" + :disabled="record.disabled" + /> + <a-select + v-if="col.dataIndex == 'treatmentMeasure'" + :value="text" + :options="record.treatmentMeasures" + @change="(e) => handleChange(e, record.key, col, index)" + style="width: 100%" + :disabled="record.disabled" + /> + + <j-image-upload + :value="text" + v-if="col.dataIndex == 'abnormalPhoto'" + :isMultiple="false" + auto-size + placeholder="璇蜂笂浼犲浘鐗�" + @change="(e)=>handleChange(e, record.key, col, index)" + :disabled="record.disabled" + > + </j-image-upload> + + <!-- <Tooltip + placement="top" + title="棰勮鍥剧墖" + > + <img + v-if=" col.dataIndex == 'action' && record.upload.path && (record.upload.format.toLowerCase()=='jpg'||record.upload.format.toLowerCase()=='bmp'||record.upload.format.toLowerCase()=='png'||record.upload.format.toLowerCase()=='jpeg'||record.upload.format.toLowerCase()=='gif')" + width="30" + height="14" + border="1" + draggable="false" + preview="1" + :preview-text="''" + :src="record.upload.src" + /> + </Tooltip> + + <a + v-if=" col.dataIndex == 'action' && record.upload.path && record.upload.format.toLowerCase()=='pdf'" + href="javascript:;" + @click="view(record.upload)" + > + 棰勮 + </a> + + <a-divider + v-if=" col.dataIndex == 'action' && record.upload.path && (record.upload.format.toLowerCase()=='jpg'||record.upload.format.toLowerCase()=='bmp'||record.upload.format.toLowerCase()=='png'||record.upload.format.toLowerCase()=='jpeg'||record.upload.format.toLowerCase()=='gif'||record.upload.format.toLowerCase()=='pdf')" + type="vertical" + /> + <a + v-if=" col.dataIndex == 'action'" + href="javascript:;" + @click="handleUpload(record)" + :disabled="record.disabled" + >涓婁紶</a> + + <a-divider + v-if=" col.dataIndex == 'action' && record.upload.path && (record.upload.format.toLowerCase()=='jpg'||record.upload.format.toLowerCase()=='bmp'||record.upload.format.toLowerCase()=='png'||record.upload.format.toLowerCase()=='jpeg'||record.upload.format.toLowerCase()=='gif'||record.upload.format.toLowerCase()=='pdf')" + type="vertical" + /> + <a + v-if=" col.dataIndex == 'action' && record.upload.path" + href="javascript:;" + @click="handleDownload(record)" + :disabled="record.disabled" + >涓嬭浇</a> --> + </div> + + </template> + </a-table> + </div> + </a-tab-pane> + + </a-tabs> + </a-card> + </template> + </a-card> + + <div :style="{width: '100%',border: '1px solid #e9e9e9',padding: '10px 16px',background: '#fff',}"> + <a-row :style="{textAlign:'right'}"> + <a-button + :style="{marginRight: '8px'}" + @click="handleCancel" + > + 鍙栨秷 + </a-button> + <a-button + :style="{marginRight: '8px'}" + @click="handleTS" + :disabled="buttonDistable" + type="primary" + v-has="'dailyInspectionOrder:TS'" + >鏆傚瓨</a-button> + <a-button + @click="handleOk" + :disabled="buttonDistable" + type="primary" + v-has="'dailyInspectionOrder:save'" + >淇濆瓨</a-button> + </a-row> + </div> + + <pdf-view ref="pdfview"></pdf-view> + <upload-model + ref="modalForm" + @ok="modalFormOk" + ></upload-model> + </a-drawer> +</template> + +<script> +import { JeecgListMixin } from '@/mixins/JeecgListMixin' +import { requestPut, getAction, downFile } from '@/api/manage' +import Tooltip from 'ant-design-vue/es/tooltip' +import UploadModel from './UploadModel' +import { preview } from 'vue-photo-preview' +import { ACCESS_TOKEN } from '@/store/mutation-types' +import Vue from 'vue' +import PdfView from '@views/common/PdfView' +import { getFileAccessHttpUrl } from '@/api/manage'; + +export default { + name: 'DailyMaintenanceOrderExeDrawer', + mixins: [JeecgListMixin], + components: { + PdfView, + preview, + Tooltip, + UploadModel + }, + data() { + return { + title: "鏃ュ父鐐规宸ュ崟鎵ц", + visible: false, + maskClosable: true, + confirmLoading: false, + drawerWidth: "100%", + buttonDistable: false, + SWbuttonDistable: false, + revocationDistable: false, + dataSource: [], + model: {}, + labelCol: { + xs: { span: 24 }, + sm: { span: 6 }, + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 18 }, + }, + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + align: 'center', + customRender: function (t, r, index) { + return parseInt(index) + 1 + }, + width: 50, + }, + { + title: '閮ㄤ綅', + align: 'center', + dataIndex: 'location', + }, + // class: "notshow" + { + title: '绀烘剰鍥�', + align: 'center', + dataIndex: 'photo', + scopedSlots: { customRender: 'photo' }, + }, + // class: "notshow" + { + title: '鐐规椤圭洰', + align: 'center', + dataIndex: 'inspectionProjectId_dictText', + }, + { + title: '妫�娴嬫爣鍑�', + align: 'center', + dataIndex: 'detectionStandard', + }, + { + title: '鍚堟牸鑼冨洿', + align: 'center', + dataIndex: 'acceptabilityLimit', + }, + { + title: '鏂规硶', + align: 'center', + dataIndex: 'inspectionMethod_dictText', + }, + { + title: '宸ュ叿', + align: 'center', + dataIndex: 'inspectionTool', + }, + { + title: '*鐐规缁撴灉', + align: 'center', + dataIndex: 'inspectionProjectResult', + scopedSlots: { customRender: 'inspectionProjectResult' }, + className: 'red', + }, + { + title: '鍒ゅ畾', + align: 'center', + dataIndex: 'judgmentResult', + customRender: (text) => { + if (text == 'pass') { + return "姝e父"; + } else if (text == 'fail') { + return "寮傚父"; + } + }, + }, + { + title: '寮傚父鎻忚堪', + align: 'center', + dataIndex: 'abnormalDesc', + scopedSlots: { customRender: 'abnormalDesc' }, + }, + // { + // title: '寮傚父鎷嶇収', + // align: 'center', + // dataIndex: 'abnormalPhoto', + // scopedSlots: { customRender: 'abnormalPhoto' }, + // }, + { + title: '*寮傚父澶勭疆', + align: 'center', + dataIndex: 'treatmentMeasure', + className: 'red', + scopedSlots: { customRender: 'treatmentMeasure' }, + }, + ], + url: { + list: "/eam/inspectionOrderDetail/list", + // save: "/eam/specialtyInspectionOrderDetail/save", + edit: "/eam/inspectionOrderDetail/edit", + urlDownload: window._CONFIG['staticDomainURL'], + download: '/sys/upload/downloadFile', + editStatus: "/eam/inspectionOrder/editStatus", + revocation: "/eam/inspectionOrder/revocation", + report: "/eam/inspectionOrder/report", + }, + } + }, + mounted() { + this.$bus.$on('closeDrawer', (data) => { + this.visible = false; + }) + }, + + methods: { + + + handleShow(record) { + this.model = Object.assign({}, record); + this.dataSource = [] + this.visible = true; + this.queryParam.inspectionOrderId = record.id + this.loadData1(1) + }, + loadData1(arg) { + if (!this.url.list) { + this.$message.error("璇疯缃畊rl.list灞炴��!") + return + } + //鍔犺浇鏁版嵁 鑻ヤ紶鍏ュ弬鏁�1鍒欏姞杞界涓�椤电殑鍐呭 + if (arg === 1) { + this.ipagination.current = 1; + } + var params = this.getQueryParams();//鏌ヨ鏉′欢 + this.loading = true; + getAction(this.url.list, params).then((res) => { + if (res.success) { + // for (let i = 0; i < res.result.records.length; i++) { + // let r = res.result.records[i].upload; + // r.src = this.getSrc(res.result.records[i].upload); + // let p = res.result.records[i].sketchPhoto; + // p.srcP = this.getSrc(res.result.records[i].sketchPhoto); + // } + //update-begin---author:zhangyafei Date:20201118 for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------ + this.dataSource = res.result.records || res.result; + if (res.result.total) { + this.ipagination.total = res.result.total; + } else { + this.ipagination.total = 0; + } + //update-end---author:zhangyafei Date:20201118 for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------ + } else { + this.$message.warning(res.message) + } + }).finally(() => { + this.loading = false + }) + }, + + modalFormOk() { + //娓呯┖鍒楄〃閫変腑 + this.onClearSelected() + this.loadData1(1) + }, + loadData() { + this.loadData1(1) + }, + getBackground() { + return "background-color:rgba(127, 127, 127,0.08)"; + }, + handleCancel() { + this.$emit('ok'); + this.alterFlag = new Date(); + this.close() + }, + close() { + this.visible = false; + }, + + handleUpload: function (record) { + this.$refs.modalForm.edit(record); + this.$refs.modalForm.title = "鏂囦欢涓婁紶"; + this.$refs.modalForm.disableSubmit = false; + }, + //鏆傚瓨 + handleTS() { + const that = this; + that.confirmLoading = true; + let formData = Object.assign(this.model); + formData.inspectionOrderDetails = that.dataSource + requestPut(this.url.edit, formData).then((res) => { + if (res.success) { + that.$message.success("鏆傚瓨鎴愬姛!"); + that.$emit('ok'); + that.alterFlag = new Date(); + that.loadData1(1) + } else { + that.$message.warning(res.message); + } + }).finally(() => { + that.confirmLoading = false; + // that.close(); + }) + }, + //寮�宸� + handleSW() { + const that = this; + that.confirmLoading = true; + this.$confirm({ + title: '鐐规宸ュ崟寮�宸�', + content: '鎻愮ず锛氬紑宸ュ悗鏃犳硶鎾ゅ洖锛岃璋ㄦ厧鎿嶄綔锛�', + okText: '纭', + cancelText: '鍙栨秷', + onOk() { + requestPut(that.url.editStatus, { id: that.model.id, status: '4' }).then((res) => { + if (res.success) { + that.model.status = '4' + that.$message.success("宸ュ崟寮�宸ユ垚鍔燂紒") + that.buttonDistable = false + that.revocationDistable = true + that.SWbuttonDistable = true + that.loadData1(1) + } else { + that.$message.warning("宸ュ崟寮�宸ュけ璐ワ紒") + } + }).finally(() => { + that.confirmLoading = false; + // that.close(); + }) + }, + }) + }, + //鎶ュ伐 + handleReport() { + const that = this; + that.confirmLoading = true; + let formData = Object.assign(this.model); + for (let i = 0; i < that.dataSource.length; i++) { + let o = this.dataSource[i] + if (o.inspectionProjectResult == null || o.inspectionProjectResult == '') { + that.$message.warning('璇疯緭鍏ョ偣妫�缁撴灉锛�') + that.confirmLoading = false; + return + } + if (o.treatmentMeasure == null || o.treatmentMeasure == '') { + that.$message.warning('璇烽�夋嫨寮傚父澶勭疆锛�') + that.confirmLoading = false; + return + } + } + formData.inspectionOrderDetailList = that.dataSource; + formData.id = that.model.id; + formData.status = "5"; + formData.equipmentId = that.model.equipmentId; + this.$confirm({ + title: '鐐规宸ュ崟鎶ュ伐', + content: '鎻愮ず锛氭姤宸ュ悗鐐规宸ュ崟瀹屽伐锛岃璋ㄦ厧鎿嶄綔锛�', + okText: '纭', + cancelText: '鍙栨秷', + onOk() { + requestPut(that.url.report, formData).then((res) => { + if (res.success) { + that.model.status = '5' + that.$message.success(res.message) + that.buttonDistable = false + that.revocationDistable = true + that.SWbuttonDistable = true + that.$emit('ok'); + that.alterFlag = new Date(); + that.close(); + } else { + that.$message.warning(res.message) + } + }).finally(() => { + that.confirmLoading = false; + // + }) + }, + }) + }, + + //淇濆瓨 + handleOk() { + const that = this; + that.confirmLoading = true; + let formData = Object.assign(this.model); + for (let i = 0; i < that.dataSource.length; i++) { + let o = this.dataSource[i] + if (o.inspectionProjectResult == null || o.inspectionProjectResult == '') { + that.$message.warning('璇疯緭鍏ョ偣妫�缁撴灉锛�') + that.confirmLoading = false; + return + } + if (o.treatmentMeasure == null || o.treatmentMeasure == '') { + that.$message.warning('璇烽�夋嫨寮傚父澶勭疆锛�') + that.confirmLoading = false; + return + } + } + formData.inspectionOrderDetails = that.dataSource + requestPut(this.url.edit, formData).then((res) => { + if (res.success) { + that.$message.success("淇濆瓨鎴愬姛!"); + that.$emit('ok'); + that.alterFlag = new Date(); + that.loadData1(1) + } else { + that.$message.warning(res.message); + } + }).finally(() => { + that.confirmLoading = false; + // that.close(); + }) + }, + //鎾ら攢 + handleReset() { + const that = this; + that.confirmLoading = true; + this.$confirm({ + title: '瀹屽伐鎾ら攢', + content: '鎻愮ず锛氬畬宸ユ挙閿�鍚庡彲缁х画鎶ュ伐鎿嶄綔锛�', + okText: '纭', + cancelText: '鍙栨秷', + onOk() { + requestPut(that.url.revocation, { id: that.model.id, status: '4' }).then((res) => { + if (res.success) { + that.model.status = '4' + that.$message.success(res.message) + that.buttonDistable = false + that.revocationDistable = true + that.SWbuttonDistable = true + that.loadData1(1) + } else { + that.$message.warning(res.message) + } + }).finally(() => { + that.confirmLoading = false; + // that.close(); + }) + }, + }) + }, + + handleChange(value, key, column, index) { + let that = this; + const temp = [...that.dataSource]; + const target = temp.filter(item => key === item.key)[index]; + if (target) { + + if (column.dataIndex == 'inspectionProjectResult') { + if (target.testValueType === "1") { + target[column.dataIndex] = value; + let maxValue = target.maxValue + let minValue = target.minValue + if (value > minValue && value < maxValue) { + target['judgmentResult'] = "pass"; + } else { + target['judgmentResult'] = "fail"; + } + if (value == null || value == "") { + target['judgmentResult'] = ""; + } + } else { + target[column.dataIndex] = value; + if (value == "1") { + target['judgmentResult'] = "pass"; + } else { + target['judgmentResult'] = "fail"; + } + if (value == null || value == "") { + target['judgmentResult'] = ""; + } + } + } + if (column.dataIndex == 'abnormalDesc') { + target[column.dataIndex] = value.target.value; + } + if (column.dataIndex == 'treatmentMeasure') { + target[column.dataIndex] = value; + } + if ('abnormalPhoto' == column.dataIndex) { + target['abnormalPhoto'] = value; + } + //鏄剧ず甯﹁繃鏉ョ殑鏁版嵁 + that.dataSource = temp; + } + }, + + view(record) { + this.$refs.pdfview.showPdf(record.src); + }, + + handleDownload(record) { + downFile(this.url.download, { id: record.upload.id }).then((res) => { + if (!res) { + this.$message.warning('鏂囦欢涓嬭浇澶辫触') + return + } else { + let fileName = record.upload.name; + if (typeof window.navigator.msSaveBlob !== 'undefined') { + window.navigator.msSaveBlob(new Blob([res]), fileName); + } else { + let url = window.URL.createObjectURL(new Blob([res])); + let link = document.createElement('a'); + link.style.display = 'none'; + link.href = url; + link.setAttribute('download', fileName); + document.body.appendChild(link); + link.click() + document.body.removeChild(link) //涓嬭浇瀹屾垚绉婚櫎鍏冪礌 + window.URL.revokeObjectURL(url) //閲婃斁鎺塨lob瀵硅薄 + } + } + }) + }, + + getSrc(record) { + if (!record.path) { + return ''; + } + //鏈湴锛歭ocal\Minio锛歮inio\闃块噷浜戯細alioss + if (record.uploadType == 'local') { + + let ssoLoginFlag = Vue.ls.get("ssoLoginFlag"); + let deployMode = Vue.ls.get("deployMode"); + + if (ssoLoginFlag && deployMode == "container") { + var baseProject = Vue.ls.get("baseProject"); + console.log("baseProject==>" + baseProject) + + var hostname = window.location.protocol + "//" + window.location.host; + var url = hostname + '/' + baseProject + '/sys/common/static'; + return getFileAccessHttpUrl(record.path + record.encodeName, url, window._CONFIG['hyperTextTransfer']) + } else { + //鏍规嵁鍙戝竷鐘舵�佷慨鏀筯ttps 鎴� http + return getFileAccessHttpUrl(record.path + record.encodeName, this.url.urlDownload, window._CONFIG['hyperTextTransfer']) + } + + } else if (record.uploadType == 'alioss') { + + const OSS = require('ali-oss') + const client = new OSS({ + // region浠ユ澀宸炰负渚嬶紙oss-cn-hangzhou锛夛紝鍏朵粬region鎸夊疄闄呮儏鍐靛~鍐欍�� + region: window._CONFIG['region'], + // 闃块噷浜戜富璐﹀彿AccessKey鎷ユ湁鎵�鏈堿PI鐨勮闂潈闄愶紝椋庨櫓寰堥珮銆傚己鐑堝缓璁偍鍒涘缓骞朵娇鐢≧AM璐﹀彿杩涜API璁块棶鎴栨棩甯歌繍缁达紝璇风櫥褰昍AM鎺у埗鍙板垱寤篟AM璐﹀彿銆� + accessKeyId: window._CONFIG['accessKeyId'], + accessKeySecret: window._CONFIG['accessKeySecret'], + bucket: window._CONFIG['bucket'], + }) + // object-key琛ㄧず浠嶰SS涓嬭浇鏂囦欢鏃堕渶瑕佹寚瀹氬寘鍚枃浠跺悗缂�鍦ㄥ唴鐨勫畬鏁磋矾寰勶紝渚嬪abc/efg/123.jpg銆� + return client.signatureUrl(record.path) + } + }, + }, + +} +</script> + +<style scoped> +@import '~@assets/less/common.less'; +.hightColor { + height: 10%; + font-weight: bold; + font-size: 20px; + color: #1b1e1e; +} +.frozenRowClass { + color: #c9c9c9; +} +.fontweight { + font-weight: bold; +} +.hight { + color: #f5222d; +} +/deep/ .red { + color: red; +} +</style> \ No newline at end of file -- Gitblit v1.9.3