From ed806c4db92850ebc09954f3294e8323cc09b54a Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期五, 07 三月 2025 14:34:22 +0800
Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/tx-lims-before
---
src/components/view/b1-report-preparation.vue | 1376 +++++++++++++++++++++++++++++++----------------------------
1 files changed, 726 insertions(+), 650 deletions(-)
diff --git a/src/components/view/b1-report-preparation.vue b/src/components/view/b1-report-preparation.vue
index a99b5f8..9d8e443 100644
--- a/src/components/view/b1-report-preparation.vue
+++ b/src/components/view/b1-report-preparation.vue
@@ -1,85 +1,90 @@
<style scoped>
- .title {
- height: 60px;
- line-height: 60px;
- }
+.title {
+ height: 60px;
+ line-height: 60px;
+}
- .search {
- background-color: #fff;
- height: 80px;
- display: flex;
- align-items: center;
- }
+.search {
+ background-color: #fff;
+ height: 80px;
+ display: flex;
+ align-items: center;
+}
- .search_thing {
- display: flex;
- align-items: center;
- height: 50px;
- }
+.search_thing {
+ display: flex;
+ align-items: center;
+ height: 50px;
+}
- .search_label {
- width: 120px;
- font-size: 14px;
- text-align: right;
- }
+.search_label {
+ width: 120px;
+ font-size: 14px;
+ text-align: right;
+}
- .search_input {
- width: calc(100% - 120px);
- }
+.search_input {
+ width: calc(100% - 120px);
+}
- .table {
- margin-top: 10px;
- background-color: #fff;
- width: calc(100% - 40px);
- height: calc(100% - 60px - 80px - 10px - 40px);
- padding: 20px;
- }
+.table {
+ margin-top: 10px;
+ background-color: #fff;
+ width: calc(100% - 40px);
+ height: calc(100% - 60px - 80px - 10px - 40px);
+ padding: 20px;
+}
- .el-form-item {
- margin-bottom: 16px;
- }
+.el-form-item {
+ margin-bottom: 16px;
+}
- .full-screen {
- position: absolute;
- right: 52px;
- top: 22px;
- }
+.full-screen {
+ position: absolute;
+ right: 52px;
+ top: 22px;
+}
- .btns {
- position: absolute;
- right: 40px;
- top: 50%;
- transform: translate(0, -50%);
- display: flex;
- align-items: center;
- }
+.btns {
+ position: absolute;
+ right: 40px;
+ top: 50%;
+ transform: translate(0, -50%);
+ display: flex;
+ align-items: center;
+}
- .fullscreen {
- height: 82vh
- }
- .img-list{
- width: 100%;
- display: flex;
- }
- .list{
- display: flex;
- justify-content: flex-start;
- align-items: center;
- }
- .list-item{
- width: 120px;
- height: 120px;
- margin: 4px;
- cursor: pointer;
- box-sizing: border-box;
- border: 1px solid #fff;
- }
- .list-item:hover{
- border: 1px solid #3A7BFA;
- }
- .list-item.active{
- border: 1px solid #3A7BFA;
- }
+.fullscreen {
+ height: 82vh
+}
+
+.img-list {
+ width: 100%;
+ display: flex;
+}
+
+.list {
+ display: flex;
+ justify-content: flex-start;
+ align-items: center;
+}
+
+.list-item {
+ width: 120px;
+ height: 120px;
+ margin: 4px;
+ cursor: pointer;
+ box-sizing: border-box;
+ border: 1px solid #fff;
+}
+
+.list-item:hover {
+ border: 1px solid #3A7BFA;
+}
+
+.list-item.active {
+ border: 1px solid #3A7BFA;
+}
</style>
<template>
@@ -87,10 +92,16 @@
<div style="width: 100%;height: 100%;">
<div>
<el-row class="title">
- <el-col :span="12" style="padding-left: 20px;text-align: left;">鎶ュ憡缂栧埗</el-col>
+ <el-col :span="12" style="text-align: left;">
+ <span>鎶ュ憡缂栧埗</span>
+ <!-- <el-radio-group v-model="radio"size="medium" fill="#3A7BFA">
+ <el-radio-button label="0">鎶ュ憡缂栧埗</el-radio-button>
+ <el-radio-button label="1">璁㈠崟</el-radio-button>
+ </el-radio-group> -->
+ </el-col>
</el-row>
</div>
- <div class="search" style="position: relative;">
+ <div class="search" style="position: relative;" v-if="radio == 0">
<div class="search_thing">
<div class="search_label">鎶ュ憡缂栧彿锛�</div>
<div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
@@ -108,38 +119,28 @@
<el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
</div>
<div class="btns">
- <el-button size="small" type="primary" @click="handleDowns" :loading="outLoading" style="margin-right: 16px;">鎵归噺涓嬭浇</el-button>
- <el-upload
- class="upload-demo"
- :action="action"
- :headers="headers"
- :show-file-list="false"
- accept=".zip"
- :limit="1"
- :before-upload="beforeUpload"
- :on-success="handleSuccess"
- ref="upload"
- :on-error="onError">
+ <el-button size="small" type="primary" @click="handleDowns" :loading="outLoading"
+ style="margin-right: 16px;">鎵归噺涓嬭浇</el-button>
+ <el-upload class="upload-demo" :action="action" :headers="headers" :show-file-list="false" accept=".zip"
+ :limit="1" :before-upload="beforeUpload" :on-success="handleSuccess" ref="upload" :on-error="onError">
<el-button size="small" type="primary" :loading="inLoading">鎵归噺涓婁紶</el-button>
</el-upload>
</div>
</div>
- <!-- <input id="input" type="file" accept=".doc,.docx"></input> -->
- <div class="table">
- <ValueTable ref="ValueTable" :url="$api.insReport.pageInsReport"
- :isColumnWidth="true"
- :componentData="componentData"
- :key="upIndex" />
+ <div class="table" v-if="radio == 0">
+ <ValueTable ref="ValueTable" :url="$api.insReport.pageInsReport" :isColumnWidth="true"
+ :componentData="componentData" :key="upIndex" />
</div>
+ <Order v-if="radio == 1" />
</div>
<el-dialog title="鍦ㄧ嚎缂栧埗" :visible.sync="claimVisible" width="22cm" :modal-append-to-body="false"
:fullscreen="fullscreen">
<div class="full-screen">
- <i class="el-icon-full-screen" style="cursor: pointer;font-size: 18px" @click="fullscreen=true;"
+ <i class="el-icon-full-screen" style="cursor: pointer;font-size: 18px" @click="fullscreen = true;"
v-if="!fullscreen"></i>
- <img src="../../../static/img/no-full.svg" alt="" v-else style="cursor: pointer;" @click="fullscreen=false;">
+ <img src="../../../static/img/no-full.svg" alt="" v-else style="cursor: pointer;" @click="fullscreen = false;">
</div>
- <Word style="height:70vh" :class="{fullscreen:fullscreen}" v-if="claimVisible" ref="Word" :value="value" />
+ <Word style="height:70vh" :class="{ fullscreen: fullscreen }" v-if="claimVisible" ref="Word" :value="value" />
<span slot="footer" class="dialog-footer">
<el-button @click="claimVisible = false">鍙� 娑�</el-button>
<el-button type="primary" @click="confirmClaim">纭� 瀹�</el-button>
@@ -148,613 +149,688 @@
<el-dialog title="鎶ュ憡瀹℃牳" :visible.sync="issuedVisible" width="80vw" :modal-append-to-body="false"
:fullscreen="fullscreen">
<div class="full-screen">
- <i class="el-icon-full-screen" style="cursor: pointer;font-size: 18px" @click="fullscreen=true;" v-if="!fullscreen"></i>
- <img src="../../../static/img/no-full.svg" alt="" v-else style="cursor: pointer;" @click="fullscreen=false;" >
+ <i class="el-icon-full-screen" style="cursor: pointer;font-size: 18px" @click="fullscreen = true;"
+ v-if="!fullscreen"></i>
+ <img src="../../../static/img/no-full.svg" alt="" v-else style="cursor: pointer;" @click="fullscreen = false;">
</div>
- <div style="height: 80vh;" v-if="issuedVisible">
- <onlyoffice ref="onlyoffice" :options="option" style="width: 100%;height: 100%;" />
+ <div style="height: 78vh;" v-if="issuedVisible">
+ <onlyoffice ref="onlyoffice" :options="option" style="width: 100%;height: 100%;" />
+ <!-- <filePreview v-if="issuedVisible" :fileUrl="currentFile.url"
+ :currentFile="currentFile" style="max-height: 100%;overflow-y: auto;"/> -->
</div>
<span slot="footer" class="dialog-footer">
- <el-button @click="issuedReasonVisible=true" :disabled="loadingIssued">涓嶉�氳繃</el-button>
- <el-button type="primary" @click="subIssued" :loading="loadingIssued">閫� 杩�</el-button>
- </span>
- </el-dialog>
+ <el-button @click="issuedReasonVisible = true" :disabled="loadingIssued">涓嶉�氳繃</el-button>
+ <el-button type="primary" @click="subIssued" :loading="loadingIssued">閫� 杩�</el-button>
+ </span>
+ </el-dialog>
<el-dialog title="涓嶉�氳繃鍘熷洜" :visible.sync="issuedReasonVisible" width="400px" :modal-append-to-body="false">
<div class="search_thing">
<div class="search_label">涓嶉�氳繃鍘熷洜锛�</div>
<div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="reason"></el-input></div>
</div>
<span slot="footer" class="dialog-footer">
- <el-button @click="issuedReasonVisible=false" :disabled="loadingIssuedReason">鍙栨秷</el-button>
- <el-button type="primary" @click="handleIssuedReason" :loading="loadingIssuedReason">纭畾</el-button>
- </span>
- </el-dialog>
- <el-dialog title="鎶ュ憡鎵瑰噯" :visible.sync="approveVisible" width="80vw" :modal-append-to-body="false" :fullscreen="fullscreen">
+ <el-button @click="issuedReasonVisible = false" :disabled="loadingIssuedReason">鍙栨秷</el-button>
+ <el-button type="primary" @click="handleIssuedReason" :loading="loadingIssuedReason">纭畾</el-button>
+ </span>
+ </el-dialog>
+ <el-dialog title="鎶ュ憡鎵瑰噯" :visible.sync="approveVisible" width="80vw" :modal-append-to-body="false"
+ :fullscreen="fullscreen">
<div class="full-screen">
- <i class="el-icon-full-screen" style="cursor: pointer;font-size: 18px" @click="fullscreen=true;" v-if="!fullscreen"></i>
- <img src="../../../static/img/no-full.svg" alt="" v-else style="cursor: pointer;" @click="fullscreen=false;" >
+ <i class="el-icon-full-screen" style="cursor: pointer;font-size: 18px" @click="fullscreen = true;"
+ v-if="!fullscreen"></i>
+ <img src="../../../static/img/no-full.svg" alt="" v-else style="cursor: pointer;" @click="fullscreen = false;">
</div>
- <div style="height: 80vh;">
- <onlyoffice ref="onlyoffice" :options="option" style="width: 100%;height: 100%;" />
+ <div style="height: 78vh;" v-if="approveVisible">
+ <onlyoffice ref="onlyoffice" :options="option" style="width: 100%;height: 100%;" />
+ <!-- <filePreview v-if="approveVisible" :fileUrl="currentFile.url"
+ :currentFile="currentFile" style="max-height: 100%;overflow-y: auto;"/> -->
</div>
<span slot="footer" class="dialog-footer">
- <el-button @click="approveReasonVisible=true" :disabled="loadingApprove">涓嶆壒鍑�</el-button>
- <el-button type="primary" @click="subApprove" :loading="loadingApprove">鎵� 鍑�</el-button>
- </span>
- </el-dialog>
+ <el-button @click="approveReasonVisible = true" :disabled="loadingApprove">涓嶆壒鍑�</el-button>
+ <el-button type="primary" @click="subApprove" :loading="loadingApprove">鎵� 鍑�</el-button>
+ </span>
+ </el-dialog>
<el-dialog title="鍗扮珷閫夋嫨" :visible.sync="imgVisible" width="50vw" :modal-append-to-body="false"
- :close-on-click-modal="false"
- :close-on-press-escape="false">
+ :close-on-click-modal="false" :close-on-press-escape="false">
<div class="img-list">
<label style="width: 120px;">鍗扮珷閫夋嫨锛�</label>
<div class="list" style="flex: 1;">
- <div class="list-item" :class="{active:currentImg==m.id}" v-for="m in imgList" @click="currentImg = m.id">
- <img :src="javaApi+'/img/'+m.address" alt="" style="width: 118px;height: 118px;">
+ <div class="list-item" :class="{ active: currentImg == m.id }" v-for="m in imgList"
+ @click="currentImg = m.id">
+ <img :src="javaApi + '/img/' + m.address" alt="" style="width: 118px;height: 118px;">
</div>
</div>
</div>
<span slot="footer" class="dialog-footer">
- <el-button type="primary" @click="subApprove0" :loading="loadingApprove">纭� 璁�</el-button>
- </span>
- </el-dialog>
+ <el-button type="primary" @click="subApprove0" :loading="loadingApprove">纭� 璁�</el-button>
+ </span>
+ </el-dialog>
<el-dialog title="涓嶆壒鍑嗗師鍥�" :visible.sync="approveReasonVisible" width="400px" :modal-append-to-body="false">
<div class="search_thing">
<div class="search_label">涓嶆壒鍑嗗師鍥狅細</div>
<div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="reason"></el-input></div>
</div>
<span slot="footer" class="dialog-footer">
- <el-button @click="approveReasonVisible=false" :disabled="loadingApproveReason">鍙栨秷</el-button>
- <el-button type="primary" @click="handleApproveReason" :loading="loadingApproveReason">纭畾</el-button>
- </span>
- </el-dialog>
- </div>
+ <el-button @click="approveReasonVisible = false" :disabled="loadingApproveReason">鍙栨秷</el-button>
+ <el-button type="primary" @click="handleApproveReason" :loading="loadingApproveReason">纭畾</el-button>
+ </span>
+ </el-dialog>
+ <el-dialog title="鏂囦欢棰勮" :visible.sync="lookFileVisible" fullscreen :modal="false">
+ <filePreview v-if="lookFileVisible" :fileUrl="currentFile.url" :currentFile="currentFile"
+ style="max-height: 87vh;overflow-y: auto;" />
+ </el-dialog>
+ <!--鎶ュ憡鏌ョ湅-->
+ <el-dialog :fullscreen="fullscreen" top="5vh" :modal-append-to-body="false" :visible.sync="viewIssuedVisible"
+ title="鎶ュ憡鏌ョ湅" width="80vw">
+ <div class="full-screen">
+ <i v-if="!fullscreen" class="el-icon-full-screen" style="cursor: pointer;font-size: 18px"
+ @click="fullscreen = true;"></i>
+ <img v-else alt="" src="../../../static/img/no-full.svg" style="cursor: pointer;" @click="fullscreen = false;">
+ </div>
+ <div v-if="viewIssuedVisible" style="height: 80vh;">
+ <onlyoffice ref="onlyoffice" :options="option" style="width: 100%;height: 100%;" />
+ </div>
+ </el-dialog>
+ </div>
</template>
<script>
- import ValueTable from '../tool/value-table.vue'
- import onlyoffice from '../tool/onlyoffice.vue'
- export default {
- components: {
- ValueTable,
- onlyoffice
- },
- data() {
- return {
- componentData: {
- entity: {
- entrustCode: null,
- code: null,
- orderBy: {
- field: 'id',
- order: 'desc'
- }
- },
- isIndex: true,
- showSelect: true,
- select: true,
- selectMethod: 'handleChange',
- do: [
- {
- id: 'handleWeave',
- font: '缂栧埗',
- type: 'text',
- method: 'handleWeave',
- disabFun: (row, index) => {
- return row.isExamine != null
- }
- },
- {
- id: 'download',
- font: '涓嬭浇',
- type: 'text',
- method: 'download'
- }, {
- id: 'handleUpload',
- font: '涓婁紶',
- type: 'upload',
- uploadConfig: {
- url: this.$api.insReport.inReport,
- accept: '.docx'
- },
- method: 'handleUpload',
- disabFun: (row, index) => {
- return row.isExamine != null
- }
- }, {
- id: 'handleRestore',
- font: '杩樺師',
- type: 'text',
- method: 'handleRestore',
- disabFun: (row, index) => {
- return row.isExamine != null
- }
- }, {
- id: 'handleSubmit',
- font: '鎻愪氦',
- type: 'text',
- method: 'handleSubmit',
- disabFun: (row, index) => {
- return row.state != 0
- }
- }, {
- id: 'handleIssued',
- font: '瀹℃牳',
- type: 'text',
- method: 'handleIssued',
- disabFun: (row, index) => {
- return row.state == null || row.state == 0 || row.isExamine == 1
- }
- }, {
- id: 'handleApprove',
- font: '鎵瑰噯',
- type: 'text',
- method: 'handleApprove',
- disabFun: (row, index) => {
- return row.state == null || row.state == 0 || row.isExamine == 0 || row.isExamine == null || row
- .isRatify == 1
- }
- }
- ],
- linkEvent: {
- code: {
- method: 'selectAllByOne'
- }
- },
- tagField: {
- isRatify: {
- select: [{
- value: 0,
- type: 'danger',
- label: '涓嶆壒鍑�'
- }, {
- value: 1,
- type: 'success',
- label: '鎵瑰噯'
- }]
- },
- isExamine: {
- select: [{
- value: 0,
- type: 'danger',
- label: '涓嶉�氳繃'
- }, {
- value: 1,
- type: 'success',
- label: '閫氳繃'
- }]
- },
- state: {
- select: [{
- value: 0,
- type: 'danger',
- label: '寰呮彁浜�'
- }, {
- value: 1,
- type: 'success',
- label: '宸叉彁浜�'
- }]
- }
- },
- selectField: {},
- requiredAdd: [],
- needSort: ['createTime', 'state', 'writeTime', 'isExamine', 'examineTime', 'ratifyTime'],
- requiredUp: []
+import ValueTable from '../tool/value-table.vue'
+import onlyoffice from '../tool/onlyoffice.vue'
+import Order from '../do/b1-report-preparation/order.vue'
+import filePreview from '../tool/file-preview.vue'
+export default {
+ components: {
+ ValueTable,
+ onlyoffice,
+ Order,
+ filePreview
+ },
+ data() {
+ return {
+ lookFileVisible: false,
+ currentFile: {
+ url: ''
+ },
+ radio: 0,
+ componentData: {
+ entity: {
+ entrustCode: null,
+ code: null,
+ orderBy: {
+ field: 'id',
+ order: 'desc'
+ }
},
- entityCopy: {},
- upIndex: 0,
- statusList: [],
- claimVisible: false,
- issuedVisible: false,
- issuedReasonVisible: false,
- approveVisible: false,
- approveReasonVisible: false,
- fullscreen: false,
- loadingApproveReason: false,
- loadingApprove: false,
- loadingIssuedReason: false,
- loadingIssued: false,
- value: ``,
- reason: '',
- currentInfo: null,
- option:null,
- mutiList:[],
- outLoading:false,
- inLoading:false,
- imgList:[],
- imgVisible:false,
- currentImg:null
+ isIndex: true,
+ showSelect: true,
+ select: true,
+ selectMethod: 'handleChange',
+ do: [
+ // {
+ // id: 'handleWeave',
+ // font: '缂栧埗',
+ // type: 'text',
+ // method: 'handleWeave',
+ // disabFun: (row, index) => {
+ // return row.isExamine != null
+ // }
+ // },
+ {
+ id: 'download',
+ font: '涓嬭浇',
+ type: 'text',
+ method: 'download'
+ }, {
+ id: 'handleUpload',
+ font: '涓婁紶',
+ type: 'upload',
+ uploadConfig: {
+ url: this.$api.insReport.inReport,
+ accept: '.docx'
+ },
+ method: 'handleUpload',
+ disabFun: (row, index) => {
+ return row.isExamine != null
+ }
+ }, {
+ id: 'handleRestore',
+ font: '杩樺師',
+ type: 'text',
+ method: 'handleRestore',
+ disabFun: (row, index) => {
+ return row.isExamine != null
+ }
+ }, {
+ id: 'handleSubmit',
+ font: '鎻愪氦',
+ type: 'text',
+ method: 'handleSubmit',
+ disabFun: (row, index) => {
+ return row.state != 0
+ }
+ }, {
+ id: 'handleIssued',
+ font: '瀹℃牳',
+ type: 'text',
+ method: 'handleIssued',
+ disabFun: (row, index) => {
+ return row.state == null || row.state == 0 || row.isExamine == 1
+ }
+ }, {
+ id: 'handleApprove',
+ font: '鎵瑰噯',
+ type: 'text',
+ method: 'handleApprove',
+ disabFun: (row, index) => {
+ return row.state == null || row.state == 0 || row.isExamine == 0 || row.isExamine == null || row
+ .isRatify == 1
+ }
+ }
+ ],
+ linkEvent: {
+ code: {
+ method: 'selectAllByOne'
+ }
+ },
+ tagField: {
+ isRatify: {
+ select: [{
+ value: 0,
+ type: 'danger',
+ label: '涓嶆壒鍑�'
+ }, {
+ value: 1,
+ type: 'success',
+ label: '鎵瑰噯'
+ }]
+ },
+ isExamine: {
+ select: [{
+ value: 0,
+ type: 'danger',
+ label: '涓嶉�氳繃'
+ }, {
+ value: 1,
+ type: 'success',
+ label: '閫氳繃'
+ }]
+ },
+ state: {
+ select: [{
+ value: 0,
+ type: 'danger',
+ label: '寰呮彁浜�'
+ }, {
+ value: 1,
+ type: 'success',
+ label: '宸叉彁浜�'
+ }]
+ }
+ },
+ selectField: {},
+ requiredAdd: [],
+ needSort: ['createTime', 'state', 'writeTime', 'isExamine', 'examineTime', 'ratifyTime'],
+ requiredUp: []
+ },
+ entityCopy: {},
+ upIndex: 0,
+ statusList: [],
+ claimVisible: false,
+ issuedVisible: false,
+ issuedReasonVisible: false,
+ approveVisible: false,
+ approveReasonVisible: false,
+ fullscreen: false,
+ loadingApproveReason: false,
+ loadingApprove: false,
+ loadingIssuedReason: false,
+ loadingIssued: false,
+ value: ``,
+ reason: '',
+ currentInfo: null,
+ option: null,
+ mutiList: [],
+ outLoading: false,
+ inLoading: false,
+ imgList: [],
+ imgVisible: false,
+ currentImg: null,
+ viewIssuedVisible: false
+ }
+ },
+ computed: {
+ headers() {
+ return {
+ 'token': sessionStorage.getItem('token')
}
},
- computed: {
- headers() {
- return {
- 'token': sessionStorage.getItem('token')
- }
- },
- action() {
- return this.javaApi + this.$api.insReport.upAll
- }
- },
- mounted() {
- this.entityCopy = this.HaveJson(this.componentData.entity)
- this.getPower()
+ action() {
+ return this.javaApi + this.$api.insReport.upAll
+ }
+ },
+ mounted() {
+ this.entityCopy = this.HaveJson(this.componentData.entity)
+ this.getPower()
- // let that = this;
- // let input = document.getElementById('input');
- // input.onchange = function(){
- // let file = this.files[0];
- // let reader = new FileReader();
- // reader.readAsArrayBuffer(file);
- // reader.onload = function(loadEvent){
- // convertToHtml({
- // arrayBuffer: loadEvent.target.result })
- // .then(res=>{
- // that.value = res.value
- // .replace('<h1>', '<h1 style="text-align: center;">')
- // .replace('<h2>', '<h2 style="text-align: center;">')
- // .replace('<img ','<img style="height:3.6cm;width:3.6cm"')
- // .replace(/<table>/g, '<table style="border-collapse: collapse;border: 1px solid #000;">')
- // .replace(/<tr>/g, '<tr style="height: 30px;">')
- // .replace(/<td>/g, '<td style="border: 1px solid #000;">')
- // .replace(/<p>/g, '<p style="text-indent: 2em;">')
- // .replace(/<a [^>]*>/g, "")
- // .replace(/<\/a>/g, "")
- // console.log(11111111111,that.value)
- // that.claimVisible = true;
- // })
- // .done();
- // }
- // }
+ // let that = this;
+ // let input = document.getElementById('input');
+ // input.onchange = function(){
+ // let file = this.files[0];
+ // let reader = new FileReader();
+ // reader.readAsArrayBuffer(file);
+ // reader.onload = function(loadEvent){
+ // convertToHtml({
+ // arrayBuffer: loadEvent.target.result })
+ // .then(res=>{
+ // that.value = res.value
+ // .replace('<h1>', '<h1 style="text-align: center;">')
+ // .replace('<h2>', '<h2 style="text-align: center;">')
+ // .replace('<img ','<img style="height:3.6cm;width:3.6cm"')
+ // .replace(/<table>/g, '<table style="border-collapse: collapse;border: 1px solid #000;">')
+ // .replace(/<tr>/g, '<tr style="height: 30px;">')
+ // .replace(/<td>/g, '<td style="border: 1px solid #000;">')
+ // .replace(/<p>/g, '<p style="text-indent: 2em;">')
+ // .replace(/<a [^>]*>/g, "")
+ // .replace(/<\/a>/g, "")
+ // console.log(11111111111,that.value)
+ // that.claimVisible = true;
+ // })
+ // .done();
+ // }
+ // }
+ },
+ methods: {
+ handleChange(arr) {
+ this.mutiList = arr
},
- methods: {
- handleChange(arr){
- this.mutiList = arr
- },
- handleDowns(){
- if(this.mutiList.length==0){
- this.$message.error('璇烽�夋嫨鎶ュ憡')
- return
- }
- let str = this.mutiList.map(m=>m.id).join(',')
- this.outLoading = true
- this.$axios.get(this.$api.insReport.downAll+'?ids='+str).then(res => {
- this.outLoading = false
- this.$message.success('瀵煎嚭鎴愬姛')
- // const blob = new Blob([res],{ type: 'application/octet-stream' });
- // const url = URL.createObjectURL(blob);
- // const link = document.createElement('a');
- // link.href = url;
- // link.download = '鎶ュ憡.zip';
- // link.click();
- const link = document.createElement('a');
- link.href = this.javaApi + res.message;
- link.target = '_blank';
- document.body.appendChild(link);
- link.click();
- })
- },
- beforeUpload(file){
- const isZip = file.type === 'application/zip' || file.name.endsWith('.zip');
- if (!isZip) {
- this.$message.error('涓婁紶鏂囦欢鍙兘鏄� ZIP 鏍煎紡!');
- }
- if(isZip){
- this.inLoading = true;
- }
- return isZip;
- },
- handleSuccess(response,){
- this.inLoading = false;
- if (response.code == 200) {
- this.$message.success('瀵煎叆鎴愬姛')
- this.refreshTable()
- }else{
- this.$message.error(response.message)
- }
- },
- async selectSeal(row){
- await this.$axios.post(this.$api.sealScope.selectSeal,{
- entity: {
- labId:row.labId,
- orderBy: {
- field: 'id',
- order: 'asc'
- }
- },
- page:{
- current:-1,
- size:-1
- }
- }, {
- headers: {
- 'Content-Type': 'application/json'
- }
- }).then(res=>{
- this.imgList = res.data.body.records.map((m,i)=>{
- m.id = i + 1
- return m
- })
- })
- },
- onError(err, file, fileList,type) {
- this.$message.error('涓婁紶澶辫触')
- this.$refs.upload.clearFiles()
- },
- refreshTable(e) {
- this.$refs['ValueTable'].selectList(e)
- },
- refresh() {
- this.componentData.entity = this.HaveJson(this.entityCopy)
- this.upIndex++
- },
- async handleWeave(row) {
- let fileName = (row.urlS===null||row.urlS==='')?row.url:row.urlS
- fileName = fileName.replace('/word/','')
- const userName = JSON.parse(localStorage.getItem("user")).name;
- //鍙傝�僾abOnlyOffice缁勪欢鍙傛暟閰嶇疆
- const { href } = this.$router.resolve({
- path: `/wordEdit`,
- query: {
- url: this.javaApi + "/word/" + fileName,
- isEdit: true,
- fileType: "docx",
- title: fileName,
- lang: 'zh-CN',
- isPrint: true,
- user_id: 1,
- user_name: userName,
- editUrl: this.javaApi + "/insReport/onlyOffice/save?fileName=" + fileName
- }
- })
- window.open(href, '_blank');
- },
- // 鏉冮檺鍒嗛厤
- getPower(radio) {
- let power = JSON.parse(sessionStorage.getItem('power'))
- let edit = false
- let up = false
- let res = false
- let sub = false
- let issued = true
- let approve = true
- for (var i = 0; i < power.length; i++) {
- if (power[i].menuMethod == 'upReportFile') {
- edit = true
- }
- if (power[i].menuMethod == 'inReport') {
- up = true
- }
- if (power[i].menuMethod == 'upReportUrl') {
- res = true
- }
- if (power[i].menuMethod == 'writeReport') {
- sub = true
- }
- if (power[i].menuMethod == 'ratifyReport') {
- approve = true
- }
- if (power[i].menuMethod == 'examineReport') {
- issued = true
- }
- }
- if (!approve) {
- this.componentData.do.splice(6, 1)
- }
- if (!issued) {
- this.componentData.do.splice(5, 1)
- }
- if (!sub) {
- this.componentData.do.splice(4, 1)
- }
- if (!res) {
- this.componentData.do.splice(3, 1)
- }
- if (!up) {
- this.componentData.do.splice(2, 1)
- }
- if (!edit) {
- this.componentData.do.splice(0, 1)
- }
- },
- confirmClaim() {
- // console.log(this.$refs.Word.getValue())
- },
- async selectAllByOne(row) {
- const userName = JSON.parse(localStorage.getItem("user")).name;
- //鍙傝�僾abOnlyOffice缁勪欢鍙傛暟閰嶇疆
- const { href } = this.$router.resolve({
- path: `/wordEdit`,
- query: {
- url: this.javaApi + "/word/" + row.entrustCode + ".docx",
- isEdit: "false",
- fileType: "docx",
- title: row.entrustCode + ".docx",
- lang: 'zh-CN',
- isPrint: true,
- user_id: 1,
- user_name: userName
- }
- })
- window.open(href, '_blank');
- console.log(`output->row`,row)
- },
- download(row) {
- let url = row.urlS ? row.urlS : row.url;
+ handleDowns() {
+ if (this.mutiList.length == 0) {
+ this.$message.error('璇烽�夋嫨鎶ュ憡')
+ return
+ }
+ let str = this.mutiList.map(m => m.id).join(',')
+ this.outLoading = true
+ this.$axios.get(this.$api.insReport.downAll + '?ids=' + str).then(res => {
+ this.outLoading = false
+ this.$message.success('瀵煎嚭鎴愬姛')
+ // const blob = new Blob([res],{ type: 'application/octet-stream' });
+ // const url = URL.createObjectURL(blob);
+ // const link = document.createElement('a');
+ // link.href = url;
+ // link.download = '鎶ュ憡.zip';
+ // link.click();
const link = document.createElement('a');
- link.href = this.javaApi + url;
+ link.href = this.javaApi + res.message;
link.target = '_blank';
document.body.appendChild(link);
link.click();
- },
- // 杩樺師鎿嶄綔
- handleRestore(row) {
- this.$axios.post(this.$api.insReport.upReportUrl, {
+ })
+ },
+ beforeUpload(file) {
+ const isZip = file.type === 'application/zip' || file.name.endsWith('.zip');
+ if (!isZip) {
+ this.$message.error('涓婁紶鏂囦欢鍙兘鏄� ZIP 鏍煎紡!');
+ }
+ if (isZip) {
+ this.inLoading = true;
+ }
+ return isZip;
+ },
+ handleSuccess(response,) {
+ this.inLoading = false;
+ if (response.code == 200) {
+ this.$message.success('瀵煎叆鎴愬姛')
+ this.refreshTable()
+ } else {
+ this.$message.error(response.message)
+ }
+ },
+ async selectSeal(row) {
+ await this.$axios.post(this.$api.sealScope.selectSeal, {
+ entity: {
+ labId: row.labId,
+ orderBy: {
+ field: 'id',
+ order: 'asc'
+ }
+ },
+ page: {
+ current: -1,
+ size: -1
+ }
+ }, {
+ headers: {
+ 'Content-Type': 'application/json'
+ }
+ }).then(res => {
+ this.imgList = res.data.body.records.map((m, i) => {
+ m.id = i + 1
+ return m
+ })
+ })
+ },
+ onError(err, file, fileList, type) {
+ this.$message.error('涓婁紶澶辫触')
+ this.$refs.upload.clearFiles()
+ },
+ refreshTable(e) {
+ this.$refs['ValueTable'].selectList(e)
+ },
+ refresh() {
+ this.componentData.entity = this.HaveJson(this.entityCopy)
+ this.upIndex++
+ this.$refs['ValueTable'].selectList(e)
+ },
+ async handleWeave(row) {
+ let fileName = (row.urlS === null || row.urlS === '') ? row.url : row.urlS
+ fileName = fileName.replace('/word/', '')
+ const userName = JSON.parse(localStorage.getItem("user")).name;
+ //鍙傝�僾abOnlyOffice缁勪欢鍙傛暟閰嶇疆
+ const { href } = this.$router.resolve({
+ path: `/wordEdit`,
+ query: {
+ url: this.javaApi + "/word/" + fileName,
+ isEdit: true,
+ fileType: "docx",
+ title: fileName,
+ lang: 'zh-CN',
+ isPrint: true,
+ user_id: 1,
+ user_name: userName,
+ editUrl: this.javaApi + "/insReport/onlyOffice/save?fileName=" + fileName
+ }
+ })
+ window.open(href, '_blank');
+ },
+ // 鏉冮檺鍒嗛厤
+ getPower(radio) {
+ let power = JSON.parse(sessionStorage.getItem('power'))
+ let edit = false
+ let up = false
+ let res = false
+ let sub = false
+ let issued = true
+ let approve = true
+ for (var i = 0; i < power.length; i++) {
+ if (power[i].menuMethod == 'upReportFile') {
+ edit = true
+ }
+ if (power[i].menuMethod == 'inReport') {
+ up = true
+ }
+ if (power[i].menuMethod == 'upReportUrl') {
+ res = true
+ }
+ if (power[i].menuMethod == 'writeReport') {
+ sub = true
+ }
+ if (power[i].menuMethod == 'ratifyReport') {
+ approve = true
+ }
+ if (power[i].menuMethod == 'examineReport') {
+ issued = true
+ }
+ }
+ if (!approve) {
+ this.componentData.do.splice(5, 1)
+ }
+ if (!issued) {
+ this.componentData.do.splice(4, 1)
+ }
+ if (!sub) {
+ this.componentData.do.splice(3, 1)
+ }
+ if (!res) {
+ this.componentData.do.splice(2, 1)
+ }
+ if (!up) {
+ this.componentData.do.splice(1, 1)
+ }
+ // if (!edit) {
+ // this.componentData.do.splice(0, 1)
+ // }
+ },
+ confirmClaim() {
+ // console.log(this.$refs.Word.getValue())
+ },
+ async selectAllByOne(row) {
+ // let url = row.urlS ? row.urlS : row.url;
+ // this.currentFile.url = this.javaApi + url;
+ // let fileName = (row.urlS===null||row.urlS==='')?row.url:row.urlS
+ // fileName = fileName.replace('/word/','')
+ // const userName = JSON.parse(localStorage.getItem("user")).name;
+ // //鍙傝�僾abOnlyOffice缁勪欢鍙傛暟閰嶇疆
+ // const { href } = this.$router.resolve({
+ // path: `/wordEdit`,
+ // query: {
+ // url: this.javaApi + "/word/" + fileName,
+ // isEdit: false,
+ // fileType: "docx",
+ // title: fileName,
+ // lang: 'zh-CN',
+ // isPrint: true,
+ // user_id: 1,
+ // user_name: userName,
+ // }
+ // })
+ // window.open(href, '_blank');
+ // this.lookFileVisible = true
+ this.currentInfo = row;
+ console.log(`output->row`, row);
+ let fileName = (row.urlS === null || row.urlS === '') ? row.url : row.urlS
+ let fileType = "docx"
+ if (row.tempUrlPdf != null || row.tempUrlPdf === '') {
+ fileName = row.tempUrlPdf
+ fileType = "pdf"
+ }
+ fileName = fileName.replace('/word/', '')
+ const userName = JSON.parse(localStorage.getItem("user")).name;
+ this.option = {
+ url: this.javaApi + "/word/" + fileName,
+ isEdit: false,
+ fileType: fileType,
+ title: fileName,
+ lang: 'zh-CN',
+ isPrint: false,
+ user_id: 1,
+ user_name: userName,
+ editUrl: this.javaApi + "/insReport/onlyOffice/save?fileName=" + fileName
+ }
+ // console.log(this.javaApi + "/word/" + fileName);
+ this.viewIssuedVisible = true;
+ },
+ download(row) {
+ // 鍒ゆ柇row瀵硅薄涓槸鍚﹀瓨鍦╱rlS灞炴�э紝鑻ュ瓨鍦ㄥ垯浣跨敤urlS锛屽惁鍒欎娇鐢╱rl
+ let url = row.urlS ? row.urlS : row.url;
+
+ // 鍒涘缓涓�涓�<a>鏍囩鍏冪礌
+ const link = document.createElement('a');
+
+ // 璁剧疆<a>鏍囩鐨刪ref灞炴�э紝涓簀avaApi鍜寀rl鐨勭粍鍚�
+ link.href = this.javaApi + url;
+
+ // 璁剧疆<a>鏍囩鐨則arget灞炴�т负'_blank'锛岃〃绀哄湪鏂扮獥鍙d腑鎵撳紑閾炬帴
+ link.target = '_blank';
+
+ // 灏�<a>鏍囩娣诲姞鍒版枃妗g殑涓讳綋涓�
+ document.body.appendChild(link);
+
+ link.click();
+ },
+ // 杩樺師鎿嶄綔
+ handleRestore(row) {
+ this.$axios.post(this.$api.insReport.upReportUrl, {
+ id: row.id
+ }).then(res => {
+ if (res.code === 200) {
+ this.$message.success('鎿嶄綔鎴愬姛')
+ this.refreshTable('page')
+ }
+ })
+ },
+ handleIssued(row) {
+ this.currentInfo = row;
+ // let url = row.urlS ? row.urlS : row.url;
+ // this.currentFile.url = this.javaApi + url;
+ let fileName = (row.urlS === null || row.urlS === '') ? row.url : row.urlS
+ fileName = fileName.replace('/word/', '')
+ const userName = JSON.parse(localStorage.getItem("user")).name;
+ //鍙傝�僾abOnlyOffice缁勪欢鍙傛暟閰嶇疆
+ this.option = {
+ url: this.javaApi + "/word/" + fileName,
+ isEdit: false,
+ fileType: "docx",
+ title: fileName,
+ lang: 'zh-CN',
+ isPrint: true,
+ user_id: 1,
+ user_name: userName,
+ }
+ this.issuedVisible = true;
+ },
+ // 瀹℃牳閫氳繃
+ subIssued() {
+ this.loadingIssued = true;
+ this.$axios.post(this.$api.insReport.examineReport, {
+ id: this.currentInfo.id,
+ isExamine: 1
+ }).then(res => {
+ this.loadingIssued = false;
+ if (res.code === 201) {
+ return
+ }
+ this.$message.success('鎻愪氦鎴愬姛')
+ this.refreshTable('page')
+ this.currentInfo = null;
+ this.issuedVisible = false;
+ }).catch(e => {
+ this.$message.error('鎻愪氦澶辫触')
+ this.loadingIssued = false;
+ })
+ },
+ handleApprove(row) {
+ this.currentInfo = row;
+ // let url = row.urlS ? row.urlS : row.url;
+ // this.currentFile.url = this.javaApi + url;
+ let fileName = (row.urlS === null || row.urlS === '') ? row.url : row.urlS
+ fileName = fileName.replace('/word/', '')
+ const userName = JSON.parse(localStorage.getItem("user")).name;
+ //鍙傝�僾abOnlyOffice缁勪欢鍙傛暟閰嶇疆
+ this.option = {
+ url: this.javaApi + "/word/" + fileName,
+ isEdit: false,
+ fileType: "docx",
+ title: fileName,
+ lang: 'zh-CN',
+ isPrint: true,
+ user_id: 1,
+ user_name: userName,
+ }
+ this.approveVisible = true;
+ },
+ // 鎵瑰噯閫氳繃
+ async subApprove() {
+ // this.currentInfo
+ await this.selectSeal(this.currentInfo)
+ this.approveVisible = false;
+ this.imgVisible = true;
+ },
+ // 鎻愪氦鎿嶄綔
+ handleSubmit(row) {
+ this.$confirm('鏄惁鎻愪氦褰撳墠鎶ュ憡?', "鎻愪氦", {
+ confirmButtonText: "鎻愪氦",
+ cancelButtonText: "鍙栨秷",
+ type: "warning"
+ }).then(() => {
+ this.$axios.post(this.$api.insReport.writeReport, {
id: row.id
}).then(res => {
- if (res.code === 200) {
- this.$message.success('鎿嶄綔鎴愬姛')
- this.refreshTable('page')
- }
- })
- },
- handleIssued(row) {
- this.currentInfo = row;
- let fileName = (row.urlS===null||row.urlS==='')?row.url:row.urlS
- fileName = fileName.replace('/word/','')
- const userName = JSON.parse(localStorage.getItem("user")).name;
- this.option = {
- url: this.javaApi + "/word/" + fileName,
- isEdit: false,
- fileType: "docx",
- title: fileName,
- lang: 'zh-CN',
- isPrint: false,
- user_id: 1,
- user_name: userName,
- editUrl: this.javaApi + "/insReport/onlyOffice/save?fileName=" + fileName
- }
- this.issuedVisible = true;
- },
- // 瀹℃牳閫氳繃
- subIssued() {
- this.loadingIssued = true;
- this.$axios.post(this.$api.insReport.examineReport, {
- id: this.currentInfo.id,
- isExamine: 1
- }).then(res => {
- this.loadingIssued = false;
if (res.code === 201) {
return
}
this.$message.success('鎻愪氦鎴愬姛')
this.refreshTable('page')
- this.currentInfo = null;
- this.issuedVisible = false;
}).catch(e => {
this.$message.error('鎻愪氦澶辫触')
- this.loadingIssued = false;
})
- },
- handleApprove(row) {
- this.currentInfo = row;
- let fileName = (row.urlS===null||row.urlS==='')?row.url:row.urlS
- fileName = fileName.replace('/word/','')
- const userName = JSON.parse(localStorage.getItem("user")).name;
- this.option = {
- url: this.javaApi + "/word/" + fileName,
- isEdit: false,
- fileType: "docx",
- title: fileName,
- lang: 'zh-CN',
- isPrint: false,
- user_id: 1,
- user_name: userName,
- editUrl: this.javaApi + "/insReport/onlyOffice/save?fileName=" + fileName
- }
- this.approveVisible = true;
- },
- // 鎵瑰噯閫氳繃
- async subApprove() {
- // this.currentInfo
- await this.selectSeal(this.currentInfo)
- this.approveVisible = false;
- this.imgVisible = true;
- },
- // 鎻愪氦鎿嶄綔
- handleSubmit(row) {
- this.$confirm('鏄惁鎻愪氦褰撳墠鎶ュ憡?', "鎻愪氦", {
- confirmButtonText: "鎻愪氦",
- cancelButtonText: "鍙栨秷",
- type: "warning"
- }).then(() => {
- this.$axios.post(this.$api.insReport.writeReport, {
- id: row.id
- }).then(res => {
- if (res.code === 201) {
- return
- }
- this.$message.success('鎻愪氦鎴愬姛')
- this.refreshTable('page')
- }).catch(e => {
- this.$message.error('鎻愪氦澶辫触')
- })
- }).catch(() => {})
- },
- // 瀹℃牳涓嶉�氳繃鍘熷洜鎻愪氦
- handleIssuedReason() {
- if (!this.reason) {
- return this.$message.error('璇疯緭鍏ュ師鍥�')
- }
- this.loadingIssuedReason = true;
- this.$axios.post(this.$api.insReport.examineReport, {
- id: this.currentInfo.id,
- isExamine: 0,
- examineTell: this.reason
- }).then(res => {
- this.loadingIssuedReason = false;
- if (res.code === 201) {
- return
- }
- this.$message.success('鎿嶄綔鎴愬姛')
- this.refreshTable('page')
- this.currentInfo = null;
- this.reason = '';
- this.issuedVisible = false;
- this.issuedReasonVisible = false;
- }).catch(e => {
- this.$message.error('鎿嶄綔澶辫触')
- this.loadingIssuedReason = false;
- })
- },
- // 涓嶆壒鍑嗗師鍥犳彁浜�
- handleApproveReason() {
- if (!this.reason) {
- return this.$message.error('璇疯緭鍏ュ師鍥�')
- }
- this.loadingApproveReason = true
- this.$axios.post(this.$api.insReport.examineReport, {
- id: this.currentInfo.id,
- isExamine: 0,
- examineTell: this.reason
- }).then(res => {
- this.loadingApproveReason = false
- if (res.code === 201) {
- return
- }
- this.$message.success('鎿嶄綔鎴愬姛')
- this.refreshTable('page')
- this.currentInfo = null;
- this.reason = '';
- this.issuedVisible = false;
- this.issuedReasonVisible = false;
- }).catch(e => {
- this.$message.error('鎿嶄綔澶辫触')
- this.loadingIssuedReason = false;
- })
- },
- subApprove0(){
- if(!(this.currentImg&&this.imgList.find(m=>m.id==this.currentImg))){
- this.$message.error('璇烽�夋嫨鍗扮珷')
+ }).catch(() => { })
+ },
+ // 瀹℃牳涓嶉�氳繃鍘熷洜鎻愪氦
+ handleIssuedReason() {
+ if (!this.reason) {
+ return this.$message.error('璇疯緭鍏ュ師鍥�')
+ }
+ this.loadingIssuedReason = true;
+ this.$axios.post(this.$api.insReport.examineReport, {
+ id: this.currentInfo.id,
+ isExamine: 0,
+ examineTell: this.reason
+ }).then(res => {
+ this.loadingIssuedReason = false;
+ if (res.code === 201) {
return
}
- this.loadingApprove = true;
- this.$axios.post(this.$api.insReport.ratifyReport, {
- id: this.currentInfo.id,
- isRatify: 1,
- sealUrl:this.imgList.find(m=>m.id==this.currentImg).address
- }).then(res => {
- this.loadingApprove = false;
- if (res.code == 201) {
- this.$message.error('鎵瑰噯澶辫触')
- return
- }
- this.$message.success('宸叉壒鍑�')
- this.refreshTable('page')
- this.currentInfo = null;
- this.currentImg = null;
- this.imgVisible = false;
- })
+ this.$message.success('鎿嶄綔鎴愬姛')
+ this.refreshTable('page')
+ this.currentInfo = null;
+ this.reason = '';
+ this.issuedVisible = false;
+ this.issuedReasonVisible = false;
+ }).catch(e => {
+ this.$message.error('鎿嶄綔澶辫触')
+ this.loadingIssuedReason = false;
+ })
+ },
+ // 涓嶆壒鍑嗗師鍥犳彁浜�
+ handleApproveReason() {
+ if (!this.reason) {
+ return this.$message.error('璇疯緭鍏ュ師鍥�')
}
+ this.loadingApproveReason = true
+ this.$axios.post(this.$api.insReport.examineReport, {
+ id: this.currentInfo.id,
+ isExamine: 0,
+ examineTell: this.reason
+ }).then(res => {
+ this.loadingApproveReason = false
+ if (res.code === 201) {
+ return
+ }
+ this.$message.success('鎿嶄綔鎴愬姛')
+ this.refreshTable('page')
+ this.currentInfo = null;
+ this.reason = '';
+ this.issuedVisible = false;
+ this.issuedReasonVisible = false;
+ }).catch(e => {
+ this.$message.error('鎿嶄綔澶辫触')
+ this.loadingIssuedReason = false;
+ })
+ },
+ subApprove0() {
+ if (!(this.currentImg && this.imgList.find(m => m.id == this.currentImg))) {
+ this.$message.error('璇烽�夋嫨鍗扮珷')
+ return
+ }
+ this.loadingApprove = true;
+ this.$axios.post(this.$api.insReport.ratifyReport, {
+ id: this.currentInfo.id,
+ isRatify: 1,
+ sealUrl: this.imgList.find(m => m.id == this.currentImg).address
+ }).then(res => {
+ this.loadingApprove = false;
+ if (res.code == 201) {
+ this.$message.error('鎵瑰噯澶辫触')
+ return
+ }
+ this.$message.success('宸叉壒鍑�')
+ this.refreshTable('page')
+ this.currentInfo = null;
+ this.currentImg = null;
+ this.imgVisible = false;
+ })
}
}
+}
</script>
--
Gitblit v1.9.3