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/dailyMaintenanceOrder/DailyMaintenanceOrderExeDrawer.vue | 683 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 683 insertions(+), 0 deletions(-) diff --git a/src/views/eam/modules/dailyMaintenanceOrder/DailyMaintenanceOrderExeDrawer.vue b/src/views/eam/modules/dailyMaintenanceOrder/DailyMaintenanceOrderExeDrawer.vue new file mode 100644 index 0000000..1e3fb34 --- /dev/null +++ b/src/views/eam/modules/dailyMaintenanceOrder/DailyMaintenanceOrderExeDrawer.vue @@ -0,0 +1,683 @@ +<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="'dailyMaintenanceOrder:SW'" + >寮�宸�</a-button> + <a-button + :style="{marginRight: '8px'}" + @click="handleReport" + :disabled="buttonDistable" + type="primary" + v-has="'dailyMaintenanceOrder:report'" + >鎶ュ伐</a-button> + <a-button + :style="{marginRight: '8px'}" + @click="handleReset" + :disabled="revocationDistable" + type="primary" + v-has="'dailyMaintenanceOrder: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.statusName }}</span> + <span + v-else + class="frozenRowClass" + >-</span> + </a-form-item> + </a-col> + <a-col :span="6"> + <a-form-item + :labelCol="{span:8}" + :wrapperCol="{span:16}" + label="淇濆吇宸ュ崟鍙�" + class="hightColor" + > + <span + v-if="this.model != null" + class="hightColor" + >{{ this.model.num }}</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.departName }}</span> + <span + v-else + class="frozenRowClass" + >-</span> + </a-form-item> + </a-col> + <a-col :span="6"> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="璐d换鐝粍" + class="hightColor" + > + <span + v-if="this.model != null" + class="hight" + >{{ this.model.teamName }}</span> + <span + v-else + class="frozenRowClass" + >-</span> + </a-form-item> + </a-col> + </a-row> + <a-row :gutter="24"> + <a-col :span="24"> + <a-form-item + label="闂鍙婂鐞嗘帾鏂芥弿杩�" + :labelCol="{span:3}" + :wrapperCol="{span:18}" + class="hightColor" + > + <a-textarea + allowClear + :disabled="this.model.status!='4'" + :placeholder="'璇疯緭鍏ラ棶棰樺強澶勭悊鎺柦鎻忚堪'" + v-model="model.description" + /> + </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" + :loading="loading" + @change="handleTableChange" + :pagination="ipagination" + > + <!-- :scroll="{ x: 'calc(1200px + 50%)', y: 900 }" --> + <!-- :scroll="{x:true}" --> + <template + v-for="col in columns" + :slot="col.dataIndex" + slot-scope='text, record' + > + <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.maintenanceStandardDetailId" + height="25px" + alt="" + style="max-width:80px;font-size: 12px;font-style: italic;" + /> + <!-- 绀烘剰鍥� 寮�濮� --> + <!-- <Tooltip + placement="top" + title="棰勮鍥剧墖" + > + <img + v-if=" col.dataIndex == 'photo' && record.sketchPhoto.path && (record.sketchPhoto.format.toLowerCase()=='jpg'||record.sketchPhoto.format.toLowerCase()=='bmp'||record.sketchPhoto.format.toLowerCase()=='png'||record.sketchPhoto.format.toLowerCase()=='jpeg'||record.sketchPhoto.format.toLowerCase()=='gif')" + width="30" + height="14" + border="1" + draggable="false" + preview="1" + :preview-text="''" + :src="record.sketchPhoto.src" + /> + </Tooltip> + + <a + v-if=" col.dataIndex == 'photo' && record.sketchPhoto.path && record.sketchPhoto.format.toLowerCase()=='pdf'" + href="javascript:;" + @click="viewP(record.sketchPhoto)" + > + 棰勮 + </a> --> + + </div> + + </template> + + </a-table> + </div> + </a-tab-pane> + + <a-tab-pane + tab='璁″垝鐢ㄦ枡' + key="2" + > + <div + class="table-operator" + style="margin:-16px" + > + <maintenance-standard-planning-material :maintenanceStandardId='maintenanceStandardId' /> + </div> + </a-tab-pane> + <a-tab-pane + tab='鍗遍櫓闃叉帶' + key="3" + > + <div + class="table-operator" + style="margin:-16px" + > + <maintenance-standard-safety-requirement :maintenanceStandardId='maintenanceStandardId' /> + </div> + </a-tab-pane> + <a-tab-pane + tab='浣滀笟鎸囧涔�' + key="4" + > + <div + class="table-operator" + style="margin:-16px" + > + <maintenance-standard-work-instruction :maintenanceStandardId='maintenanceStandardId' /> + </div> + </a-tab-pane> + <a-tab-pane + tab='瀹為檯鐢ㄦ枡' + key="5" + > + <div + class="table-operator" + style="margin:-16px" + > + <actual-material-edit-table + :dailyMaintenanceOrderId="this.model.id" + :dailyMaintenanceOrderStatus="this.model.status" + :equipmentId="this.model.equipmentId" + ></actual-material-edit-table> + </div> + </a-tab-pane> + <a-tab-pane + tab='瀹為檯宸ユ椂' + key="6" + > + <div + class="table-operator" + style="margin:-16px" + > + <actual-work-hours-edit-table + :dailyMaintenanceOrderId="this.model.id" + :dailyMaintenanceOrderStatus="this.model.status" + :equipmentId="this.model.equipmentId" + :teamId="this.model.teamId" + ></actual-work-hours-edit-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-if="false" + >鏆傚瓨</a-button> + <a-button + @click="handleOk" + :disabled="buttonDistable" + type="primary" + v-if="false" + >淇濆瓨</a-button> + </a-row> + </div> + </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 { 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'; + +import MaintenanceStandardPlanningMaterial from './MaintenanceStandardPlanningMaterial' +import MaintenanceStandardSafetyRequirement from './MaintenanceStandardSafetyRequirement' +import MaintenanceStandardWorkInstruction from './MaintenanceStandardWorkInstruction' +import ActualMaterialEditTable from './ActualMaterialEditTable.vue' +import ActualWorkHoursEditTable from './ActualWorkHoursEditTable.vue' + +export default { + name: 'DailyMaintenanceOrderExeDrawer', + mixins: [JeecgListMixin], + components: { + PdfView, + preview, + Tooltip, + MaintenanceStandardPlanningMaterial, + MaintenanceStandardSafetyRequirement, + MaintenanceStandardWorkInstruction, + ActualMaterialEditTable, + ActualWorkHoursEditTable + }, + data() { + return { + title: "鏃ュ父淇濆吇宸ュ崟鎵ц", + visible: false, + maskClosable: true, + confirmLoading: false, + drawerWidth: "100%", + buttonDistable: false, + SWbuttonDistable: false, + revocationDistable: false, + currentNodeSelect: '', + maintenanceStandardId: '-1', + dataSource: [], + model: {}, + labelCol: { + xs: { span: 24 }, + sm: { span: 6 }, + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 18 }, + }, + validatorRules: { + // description: { + // rules: [ + // { required: true, message: '璇疯緭鍏ユ弿杩�!' }, + // ] + // } + }, + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + align: 'center', + width: 60, + customRender: function (t, r, index) { + return parseInt(index) + 1 + } + + }, + { + title: '閮ㄤ綅', + align: 'center', + dataIndex: 'location', + }, + // class: "notshow" + { + title: '绀烘剰鍥�', + align: 'center', + dataIndex: 'photo', + scopedSlots: { customRender: 'photo' }, + }, + // class: "notshow" + { + title: '淇濆吇椤圭洰', + align: 'center', + dataIndex: 'maintenanceProjectNum', + }, + { + title: '淇濆吇鏍囧噯', + align: 'center', + dataIndex: 'standard', + }, + { + title: '鏂规硶', + align: 'center', + dataIndex: 'maintenanceMethodName', + }, + { + title: '宸ュ叿', + align: 'center', + dataIndex: 'maintenanceTool', + }, + { + title: '瀹夊叏瑕佹眰', + align: 'center', + dataIndex: 'maintenanceRequire', + }, + { + title: '宸ユ椂瀹氶锛堝皬鏃讹級', + align: 'center', + dataIndex: 'workingHourQuota', + }, + { + title: '淇濆吇鍛ㄦ湡', + align: 'center', + dataIndex: 'maintenanceCycleName', + }, + { + title: '缁翠繚涓撲笟', + align: 'center', + dataIndex: 'maintenanceSpecialtyName', + }, + ], + url: { + list: "/eam/dailyMaintenanceOrderDetail/getDailyMaintenanceOrderDetailList", + urlDownload: window._CONFIG['staticDomainURL'], + download: '/sys/upload/downloadFile', + editStatus: "/eam/dailyMaintenanceOrder/editStatus", + revocation: "/eam/dailyMaintenanceOrder/revocation", + report: "/eam/dailyMaintenanceOrder/report", + }, + } + }, + mounted() { + this.$bus.$on('closeDrawer', (data) => { + this.visible = false; + }) + }, + + methods: { + + handleShow(record) { + this.model = Object.assign({}, record); + this.maintenanceStandardId = record.maintenanceStandardId + this.dataSource = [] + this.visible = true; + this.queryParam.dailyMaintenanceOrderId = 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].sketchPhoto; + // r.src = 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() + }, + loadData() { + }, + getBackground() { + return "background-color:rgba(127, 127, 127,0.08)"; + }, + handleCancel() { + this.$emit('ok'); + this.alterFlag = new Date(); + this.close() + }, + close() { + this.visible = false; + }, + //鏆傚瓨 + handleTS() { + + }, + //寮�宸� + 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 + } else { + that.$message.warning("宸ュ崟寮�宸ュけ璐ワ紒") + } + }).finally(() => { + that.confirmLoading = false; + // that.close(); + }) + }, + }) + }, + //鎶ュ伐 + handleReport() { + const that = this; + that.confirmLoading = true; + this.$confirm({ + title: '淇濆吇宸ュ崟鎶ュ伐', + content: '鎻愮ず锛氭姤宸ュ悗淇濆吇瀹屽伐锛岃璋ㄦ厧鎿嶄綔锛�', + okText: '纭', + cancelText: '鍙栨秷', + onOk() { + requestPut(that.url.report, { id: that.model.id, status: '5', description: that.model.description }).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; + // + }) + }, + }) + }, + //鎾ら攢 + 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 + } else { + that.$message.warning(res.message) + } + }).finally(() => { + that.confirmLoading = false; + // that.close(); + }) + }, + }) + }, + //淇濆瓨 + handleOk() { + + }, + + 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