| | |
| | | selectEquipmentOverview: "/deviceScope/selectEquipmentOverview", //获取设备总览 |
| | | uploadFile: "/deviceScope/uploadFile", //上传图片 |
| | | selectDevicePrincipal: "/user/getDeviceManager", //获取设备负责人 |
| | | selectDeviceByCode: "/deviceScope/selectDeviceByCode", //通过设备编号获取设备列表 |
| | | } |
| | | |
| | | const insOrder = { |
| | |
| | | upReportUrl: "/insReport/upReportUrl", //报告还原 |
| | | writeReport: "/insReport/writeReport", //报告提交 |
| | | examineReport: "/insReport/examineReport", //报告审核 |
| | | ratifyReport: "/insReport/ratifyReport", //报告批准 |
| | | } |
| | | |
| | | const warehouse = { |
| | |
| | | color: #3A7BFA; |
| | | background-color: #fff; |
| | | } |
| | | |
| | | .inspection .center-box .el-input__inner{ |
| | | font-size: 12px; |
| | | padding: 0 6px; |
| | | text-align: center; |
| | | } |
| | | </style> |
| | | <template> |
| | | <div v-loading="loading" class="inspection"> |
| | |
| | | :rowspan="n.v.mc&&n.v.mc.rs?n.v.mc.rs:1" |
| | | :style="`background:${n.v.bg};color:${n.v.fc};font-size:${n.v.fs}px;width:${item.style.columnlen[n.c]}px !important;height:${item.style.rowlen[n.r]}px;font-wight:${n.v.bl?'bold':''};`"> |
| | | <div class="content" :class="`content-h-${n.v.ht} content-v-${n.v.vt}`"> |
| | | <template v-if="n.v.ps!=undefined && n.v.ps.value==='检验值'"> |
| | | <template v-if="n.v.ps!=undefined && n.v.ps.value==='检验值' && state==1"> |
| | | <el-input v-if="getInspectionValueType(n.i) == 1" class="table_input" v-model="n.v.v" |
| | | :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')||state>1" |
| | | :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')" |
| | | @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`)"> |
| | | <el-button slot="append" type="primary" icon="el-icon-edit" size="mini" v-if="getInspectionItemType(n.i) == 1" @click="getSystemValue(n)"></el-button> |
| | | </el-input> |
| | |
| | | <span v-else-if="n.v.v===0" :style="`font-family:${n.v.ff} !important;color: red;`">不合格</span> |
| | | <span v-else :style="`font-family:${n.v.ff} !important;`">待定</span> |
| | | </template> |
| | | <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='设备编码'"> |
| | | <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='设备编码' && state==1"> |
| | | <el-select v-model="n.v.v" placeholder="设备" @visible-change="e=>getEquipOptions(e,n.i)" |
| | | :disabled="state>1"> |
| | | remote @change="(val)=>changeEquip(val, n)"> |
| | | <el-option v-for="item in equipOptions" :key="item.value" :label="item.value" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | |
| | | <ValueTable class="value-table" ref="insOrderPlan" :url="$api.insOrderPlan.selectInsOrderPlanList" |
| | | :componentData="componentData" :key="upIndex" /> |
| | | </el-drawer> |
| | | <el-dialog title="检验复核" :visible.sync="reviewDia" width="400px"> |
| | | <div class="body" style="display: flex;" v-if="reviewDia"> |
| | | <div class="search_label" style="width: 120px;"><span class="required-span">* </span>不通过原因:</div> |
| | | <div class="search_input"> |
| | | <el-dialog title="检验复核" :visible.sync="reviewDia" width="500px"> |
| | | <div class="body" style="display: flex;padding: 10px;" v-if="reviewDia"> |
| | | <div class="search_label" style="width: 150px;"><span class="required-span">* </span>不通过的理由:</div> |
| | | <div class="search_input" style="width: 100%;"> |
| | | <el-input size="small" clearable v-model="noReason" type="textarea" |
| | | :autosize="{ minRows: 3, maxRows: 5}"></el-input> |
| | | :autosize="{ minRows: 4}"></el-input> |
| | | </div> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | |
| | | comValue: [], |
| | | resValue: null, |
| | | equipValue: [], |
| | | equipName: [], |
| | | insResult: null |
| | | } |
| | | }) |
| | |
| | | comValue: [], |
| | | resValue: null, |
| | | equipValue: [], |
| | | equipName: [], |
| | | insResult: null |
| | | } |
| | | }) |
| | |
| | | b.v.v = '' |
| | | this.param[b.i].equipValue.push(b) |
| | | } |
| | | if (b.v.ps != undefined && b.v.ps.value === '设备名称') { |
| | | b.v.v = '' |
| | | this.param[b.i].equipName.push(b) |
| | | } |
| | | if (b.v.ps != undefined && b.v.ps.value === '最终值') { |
| | | b.v.v = '' |
| | | if (b.i === undefined) { |
| | |
| | | let equipValue = JSON.parse(a.insProductResult.equipValue) |
| | | for (var i = 0; i < equipValue.length; i++) { |
| | | this.param[a.id].equipValue[i].v.v = equipValue[i].v |
| | | } |
| | | } catch (e) {} |
| | | try { |
| | | let equipName = JSON.parse(a.insProductResult.equipName) |
| | | for (var i = 0; i < equipName.length; i++) { |
| | | this.param[a.id].equipName[i].v.v = equipName[i].v |
| | | } |
| | | } catch (e) {} |
| | | try { |
| | |
| | | }, |
| | | getEquipOptions(e, id) { |
| | | if (e) { |
| | | let category = this.currentSample.insProduct.find(m => m.id == id).deviceGroup |
| | | this.equipOptions = [] |
| | | let product = this.currentSample.insProduct.find(m => m.id == id) |
| | | this.$axios.post(this.$api.deviceScope.selectDeviceByCategory, { |
| | | category |
| | | inspectionItem: product.inspectionItem, |
| | | inspectionItemSubclass: product.inspectionItemSubclass |
| | | }).then(res => { |
| | | if (res.code === 200 && res.data) { |
| | | this.equipOptions = res.data.map(m => { |
| | |
| | | } |
| | | this.$message.success('已保存') |
| | | }) |
| | | }, |
| | | changeEquip(val,n){ |
| | | for(let i in this.equipOptions){ |
| | | if(this.equipOptions[i].value === val){ |
| | | for(let i1 in this.param[n.i].equipName){ |
| | | if(this.param[n.i].equipName[i1].i === n.i && this.param[n.i].equipName[i1].r === n.r){ |
| | | this.param[n.i].equipName[i1].v.v = this.equipOptions[i].label |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | </el-radio-group> |
| | | </el-col> |
| | | <el-col :span="12" style="text-align: right;" v-if="radio==0"> |
| | | <el-button size="medium" type="primary" @click="openAdd" v-if="addPower">新增</el-button> |
| | | <el-button size="medium" type="primary" @click="openAdd" v-if="addPower">资质更新</el-button> |
| | | <el-button size="medium" icon="el-icon-delete" @click="handleDel" v-if="delPower">删除</el-button> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | </div> |
| | | <el-dialog title="资质更新" :visible.sync="qualificationsConnectVisible" width="400px"> |
| | | <div class="search_thing" style="margin-bottom: 16px;"> |
| | | <div class="search_label" style="width:120px">资质名称:</div> |
| | | <div class="search_label" style="width:120px"><span class="required-span">* </span>资质名称:</div> |
| | | <div class="search_input"> |
| | | <el-select v-model="formData.name" placeholder="请选择" style="width: 100%;" size="small" clearable> |
| | | <el-option |
| | |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="margin-bottom: 16px;"> |
| | | <div class="search_label" style="width:120px">资质编码:</div> |
| | | <div class="search_label" style="width:120px"><span class="required-span">* </span>资质编码:</div> |
| | | <div class="search_input"> |
| | | <el-input |
| | | size="small" |
| | |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="margin-bottom: 16px;"> |
| | | <div class="search_label" style="width:120px">颁发机构:</div> |
| | | <div class="search_label" style="width:120px"><span class="required-span">* </span>颁发机构:</div> |
| | | <div class="search_input"> |
| | | <el-input |
| | | size="small" |
| | |
| | | v-model="formData.explanation"></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="margin-bottom: 16px;"> |
| | | <!-- <div class="search_thing" style="margin-bottom: 16px;"> |
| | | <div class="search_label" style="width:120px">首次颁发时间:</div> |
| | | <div class="search_input"> |
| | | <el-date-picker style="width:100%" v-model="formData.firstTime" |
| | |
| | | placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </div> |
| | | </div> |
| | | </div> --> |
| | | <div class="search_thing" style="margin-bottom: 16px;"> |
| | | <div class="search_label" style="width:120px">到期颁发时间:</div> |
| | | <div class="search_label" style="width:120px"><span class="required-span">* </span>到期时间:</div> |
| | | <div class="search_input"> |
| | | <el-date-picker style="width:100%" v-model="formData.expireTime" |
| | | type="datetime" |
| | |
| | | type: 'text', |
| | | method: 'handleInspection', |
| | | disabFun: (row, index) => { |
| | | return row.userId == null || row.insState == 3 |
| | | return row.userId == null || row.insState == 3 || row.insState == 5 |
| | | } |
| | | }, { |
| | | id: '', |
| | |
| | | type: 'text', |
| | | method: 'handleConnect', |
| | | disabFun: (row, index) => { |
| | | return row.userId == null || row.insState == 3 |
| | | return row.userId == null || row.orderUserId == null || row.insState == 5 || row.insState == 3 |
| | | } |
| | | }, |
| | | { |
| | |
| | | </el-row> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="数据查看" :visible.sync="dataDialogVisible" width="70%"> |
| | | <el-dialog title="数据查看" :visible.sync="dataDialogVisible" width="80%"> |
| | | <div style="height: 70vh;overflow-y: auto;" v-if="dataDialogVisible"> |
| | | <ValueTable ref="ValueTableDataLook" :url="$api.insOrder.selectSampleAndProductByOrderId" |
| | | :componentData="componentDataDataLook"/> |
| | |
| | | type: 'text', |
| | | method: 'handleDataLook', |
| | | disabFun: (row, index) => { |
| | | return row.state != 1 |
| | | return row.state != 1 && row.state != 4 |
| | | } |
| | | }, { |
| | | id: 'download', |
| | |
| | | type: 'text', |
| | | method: 'download', |
| | | disabFun: (row, index) => { |
| | | return row.state != 1 || row.reportId == null |
| | | return row.state != 4 || row.reportId == null |
| | | } |
| | | }, { |
| | | id: 'verify', |
| | |
| | | type: 'text', |
| | | method: 'handlEquash', |
| | | disabFun: (row, index) => { |
| | | return row.state == 2 || row.state == 3 |
| | | return row.state != 1 && row.state != 0 |
| | | } |
| | | }, { |
| | | font: '分配', |
| | |
| | | inspectionValueType: {select: []} |
| | | }, |
| | | selectField: {}, |
| | | spanConfig:{ |
| | | rows:[ |
| | | { |
| | | name:'sampleCode', |
| | | index:0 |
| | | }, |
| | | { |
| | | name:'sample', |
| | | index:1 |
| | | }, |
| | | { |
| | | name:'model', |
| | | index:2 |
| | | } |
| | | ] |
| | | }, |
| | | requiredAdd: [], |
| | | requiredUp: [] |
| | | }, |
| | |
| | | padding: 20px; |
| | | } |
| | | |
| | | .el-form-item { |
| | | margin-bottom: 16px; |
| | | } |
| | | .el-form-item { |
| | | margin-bottom: 16px; |
| | | } |
| | | |
| | | .full-screen{ |
| | | .full-screen { |
| | | position: absolute; |
| | | right: 52px; |
| | | top: 22px; |
| | | } |
| | | |
| | | .btns{ |
| | | .btns { |
| | | position: absolute; |
| | | right: 100px; |
| | | top: 17px; |
| | | } |
| | | |
| | | .fullscreen{ |
| | | height:82vh |
| | | .fullscreen { |
| | | height: 82vh |
| | | } |
| | | </style> |
| | | |
| | |
| | | <el-input size="small" placeholder="请输入" clearable v-model="componentData.entity.entrustCode" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="padding-left: 30px;"> |
| | | <el-button size="small" @click="refresh()">重 置</el-button> |
| | | <el-button size="small" type="primary" @click="refreshTable()">查 询</el-button> |
| | | </div> |
| | | </div> |
| | | <!-- <input id="input" type="file" accept=".doc,.docx"></input> --> |
| | | <div class="table"> |
| | | <ValueTable ref="ValueTable" :url="$api.insReport.pageInsReport" :componentData="componentData" |
| | | :key="upIndex"/> |
| | | </div> |
| | | </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;" v-if="!fullscreen"></i> |
| | | <img src="../../../static/img/no-full.svg" alt="" v-else style="cursor: pointer;" @click="fullscreen=false;" > |
| | | </div> |
| | | <div class="search_thing" style="padding-left: 30px;"> |
| | | <el-button size="small" @click="refresh()">重 置</el-button> |
| | | <el-button size="small" type="primary" @click="refreshTable()">查 询</el-button> |
| | | </div> |
| | | </div> |
| | | <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> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="报告审核" :visible.sync="issuedVisible" width="400px" :modal-append-to-body="false" :fullscreen="fullscreen"> |
| | | <!-- <input id="input" type="file" accept=".doc,.docx"></input> --> |
| | | <div class="table"> |
| | | <ValueTable ref="ValueTable" :url="$api.insReport.pageInsReport" :componentData="componentData" |
| | | :key="upIndex" /> |
| | | </div> |
| | | </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;" |
| | | v-if="!fullscreen"></i> |
| | | <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" /> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="claimVisible = false">取 消</el-button> |
| | | <el-button type="primary" @click="confirmClaim">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="报告审核" :visible.sync="issuedVisible" width="400px" :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;" > |
| | |
| | | <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 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-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 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> |
| | |
| | | import ValueTable from '../tool/value-table.vue' |
| | | import Word from '../tool/word.vue' |
| | | import file from '../../util/file'; |
| | | import { convertToHtml } from 'mammoth'; |
| | | export default { |
| | | components: { |
| | | ValueTable, |
| | | import { |
| | | convertToHtml |
| | | } from 'mammoth'; |
| | | export default { |
| | | components: { |
| | | ValueTable, |
| | | Word, |
| | | }, |
| | | data() { |
| | |
| | | showSelect: false, |
| | | select: false, |
| | | 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: '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 |
| | | } |
| | | } |
| | | }, { |
| | | 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' |
| | |
| | | statusList: [], |
| | | claimVisible: false, |
| | | issuedVisible: false, |
| | | issuedReasonVisible:false, |
| | | issuedReasonVisible: false, |
| | | approveVisible: false, |
| | | approveReasonVisible:false, |
| | | fullscreen:false, |
| | | loadingApproveReason:false, |
| | | loadingApprove:false, |
| | | loadingIssuedReason:false, |
| | | loadingIssued:false, |
| | | value:``, |
| | | reason:'', |
| | | currentInfo:null, |
| | | approveReasonVisible: false, |
| | | fullscreen: false, |
| | | loadingApproveReason: false, |
| | | loadingApprove: false, |
| | | loadingIssuedReason: false, |
| | | loadingIssued: false, |
| | | value: ``, |
| | | reason: '', |
| | | currentInfo: null, |
| | | } |
| | | }, |
| | | mounted() { |
| | |
| | | // this.value = await file.convertFileToHtml(row.url) |
| | | // this.claimVisible = true; |
| | | this.$axios.post(this.$api.insReport.wordToHtml, { |
| | | path:row.urlS?row.urlS:row.url |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | path: row.urlS ? row.urlS : row.url |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | // console.log(11111111,res.data) |
| | | this.value = res.data |
| | | .replace(/<a [^>]*>/g, "") |
| | | .replace(/<\/a>/g, "") |
| | | .replace(/ /g, " "); |
| | | .replace(/<a [^>]*>/g, "") |
| | | .replace(/<\/a>/g, "") |
| | | .replace(/ /g, " "); |
| | | this.claimVisible = true; |
| | | } |
| | | } |
| | | |
| | | }).catch(error => { |
| | | console.error(error) |
| | | }) |
| | | }).catch(error => { |
| | | console.error(error) |
| | | }) |
| | | }, |
| | | // 权限分配 |
| | | getPower(radio) { |
| | |
| | | confirmClaim() { |
| | | // console.log(this.$refs.Word.getValue()) |
| | | }, |
| | | async selectAllByOne(row){ |
| | | console.log(row,await file.convertFileToHtml(row.url)); |
| | | async selectAllByOne(row) { |
| | | console.log(row, await file.convertFileToHtml(row.url)); |
| | | }, |
| | | download(row){ |
| | | let url = row.urlS?row.urlS:row.url; |
| | | download(row) { |
| | | let url = row.urlS ? row.urlS : row.url; |
| | | const link = document.createElement('a'); |
| | | link.href = this.javaApi + url; |
| | | link.target = '_blank'; |
| | | document.body.appendChild(link); |
| | | link.click(); |
| | | }, |
| | | handleRestore(row){ |
| | | handleRestore(row) { |
| | | this.$axios.post(this.$api.insReport.upReportUrl, { |
| | | id:row.id |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | id: row.id |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('操作成功') |
| | | this.refreshTable() |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | handleIssued(row){ |
| | | handleIssued(row) { |
| | | this.currentInfo = row; |
| | | this.issuedVisible = true; |
| | | }, |
| | | subIssued(){ |
| | | subIssued() { |
| | | this.loadingIssued = true; |
| | | this.$axios.post(this.$api.insReport.examineReport, { |
| | | id: this.currentInfo.id, |
| | | isExamine: 1 |
| | | id: this.currentInfo.id, |
| | | isExamine: 1 |
| | | }).then(res => { |
| | | this.loadingIssued = false; |
| | | if (res.code === 201) { |
| | | return |
| | | } |
| | | this.$message.success('提交成功') |
| | | this.refreshTable() |
| | | this.currentInfo = null; |
| | | this.issuedVisible = false; |
| | | }).catch(e => { |
| | | this.$message.error('提交失败') |
| | | this.loadingIssued = false; |
| | | }) |
| | | }, |
| | | handleApprove(row) { |
| | | this.currentInfo = row; |
| | | this.approveVisible = true; |
| | | }, |
| | | subApprove() { |
| | | this.loadingApprove = true; |
| | | this.$axios.post(this.$api.insReport.ratifyReport, { |
| | | id: this.currentInfo.id, |
| | | isRatify: 1 |
| | | }).then(res => { |
| | | this.loadingApprove = false; |
| | | if (res.code == 201) { |
| | | this.$message.error('批准失败') |
| | | return |
| | | } |
| | | this.$message.success('已批准') |
| | | this.refreshTable() |
| | | this.currentInfo = null; |
| | | this.approveVisible = false; |
| | | }) |
| | | }, |
| | | 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() |
| | | this.loadingIssued = false; |
| | | this.currentInfo = null; |
| | | this.issuedVisible = false; |
| | | }).catch(e => { |
| | | this.$message.error('提交失败') |
| | | this.loadingIssued = false; |
| | | }) |
| | | }).catch(() => {}) |
| | | }, |
| | | handleApprove(row){ |
| | | this.currentInfo = row; |
| | | this.approveVisible = true; |
| | | }, |
| | | subApprove(){ |
| | | this.loadingApprove = 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() |
| | | }).catch(e => { |
| | | this.$message.error('提交失败') |
| | | }) |
| | | }).catch(() => {}) |
| | | }, |
| | | handleIssuedReason(){ |
| | | if(!this.reason){ |
| | | 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 => { |
| | | if (res.code === 201) { |
| | | return |
| | | } |
| | | this.$message.success('操作成功') |
| | | this.refreshTable() |
| | | this.loadingIssuedReason = false; |
| | | this.currentInfo = null; |
| | | this.reason = ''; |
| | | this.issuedVisible = false; |
| | | this.issuedReasonVisible = false; |
| | | }).catch(e => { |
| | | this.$message.error('操作失败') |
| | | this.loadingIssuedReason = false; |
| | | }) |
| | | id: this.currentInfo.id, |
| | | isExamine: 0, |
| | | examineTell: this.reason |
| | | }).then(res => { |
| | | this.loadingIssuedReason = false; |
| | | if (res.code === 201) { |
| | | return |
| | | } |
| | | this.$message.success('操作成功') |
| | | this.refreshTable() |
| | | this.currentInfo = null; |
| | | this.reason = ''; |
| | | this.issuedVisible = false; |
| | | this.issuedReasonVisible = false; |
| | | }).catch(e => { |
| | | this.$message.error('操作失败') |
| | | this.loadingIssuedReason = false; |
| | | }) |
| | | }, |
| | | handleApproveReason(){ |
| | | if(!this.reason){ |
| | | 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() |
| | | this.currentInfo = null; |
| | | this.reason = ''; |
| | | this.issuedVisible = false; |
| | | this.issuedReasonVisible = false; |
| | | }).catch(e => { |
| | | this.$message.error('操作失败') |
| | | this.loadingIssuedReason = false; |
| | | }) |
| | | } |
| | | } |
| | | } |