From d76696358f76bf8e0b0a5aa9ad569c3852152872 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 20 三月 2025 17:34:49 +0800
Subject: [PATCH] 滚动条样式修改
---
src/views/business/inspectionTask/index.vue | 231 +++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 156 insertions(+), 75 deletions(-)
diff --git a/src/views/business/inspectionTask/index.vue b/src/views/business/inspectionTask/index.vue
index c1b6a22..5cdde1c 100644
--- a/src/views/business/inspectionTask/index.vue
+++ b/src/views/business/inspectionTask/index.vue
@@ -50,7 +50,54 @@
</div>
<lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading"
:rowClassName="rowClassName" :height="'calc(100vh - 300px)'" @pagination="pagination"
- key="tableData0"></lims-table>
+ key="tableData0">
+ <div slot="action" slot-scope="scope">
+ <el-button size="small" type="text" @click="handleDataLook(scope.row)">鏁版嵁鏌ョ湅</el-button>
+ <el-button type="text" size="small"
+ :disabled="(scope.row.userName == null || scope.row.insState == 3 || scope.row.insState == 5) && checkPermi(['update:product:onPlan'])"
+ @click="editInspection(scope.row)">淇敼妫�楠屽��</el-button>
+ <el-button type="text" size="small" :disabled="(
+ scope.row.userName == null ||
+ scope.row.insState == 3 ||
+ scope.row.insState == 5 ||
+ (scope.row.userName && !scope.row.userName.includes(nickName))
+ )"
+ @click="handleInspection(scope.row)">妫�楠�</el-button>
+ <el-button type="text" size="small" :disabled="(
+ scope.row.userName == null ||
+ scope.row.insState == 5 ||
+ scope.row.insState == 3 ||
+ (scope.row.userName && !scope.row.userName.includes(nickName))
+ )"
+ @click="handleConnect(scope.row)">浜ゆ帴</el-button>
+ <el-button type="text" size="small" @click="viewInspectInfo(scope.row)">鍘熷璁板綍</el-button>
+ <el-popover placement="bottom" trigger="hover" style="margin-left: 6px">
+ <template #reference>
+ <el-button link type="text" size="small">鏇村</el-button>
+ </template>
+ <div>
+ <el-button :disabled="(scope.row.insState != 3 || scope.row.userName == null ||
+ (scope.row.userName && !scope.row.userName.includes(nickName)))" style="margin-left: 10px" type="text" size="small" @click="download(scope.row)">涓嬭浇鎶ュ憡</el-button>
+ <el-upload ref='upload'
+ :action="javaApi + '/insReport/inReport'"
+ :before-upload="beforeUpload"
+ :data="{id: scope.row.insReportId}"
+ :headers="uploadHeader" :on-error="onError"
+ :on-success="handleSuccessUp"
+ :show-file-list="false"
+ style="display: inline;margin: 0 6px"
+ accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'>
+ <el-button :disabled="(scope.row.insState != 3 || scope.row.userName == null ||
+ (scope.row.userName && !scope.row.userName.includes(nickName)))" size="small" type="text">涓婁紶</el-button>
+ </el-upload>
+ <el-button :disabled="(scope.row.insState != 3 || scope.row.userName == null ||
+ (scope.row.userName && !scope.row.userName.includes(nickName)))" type="text" size="small" @click="handleRestore(scope.row)">杩樺師</el-button>
+ <el-button :disabled="(scope.row.insState != 3 || scope.row.userName == null ||
+ (scope.row.userName && !scope.row.userName.includes(nickName)))" type="text" size="small" @click="handleIssued(scope.row)">鏌ョ湅鎶ュ憡</el-button>
+ </div>
+ </el-popover>
+ </div>
+ </lims-table>
</div>
</div>
<el-dialog :visible.sync="claimVisible" title="鎻愮ず" width="400px">
@@ -91,7 +138,7 @@
</span>
</el-dialog>
<el-dialog :visible.sync="dataDialogVisible" title="鏁版嵁鏌ョ湅" width="80%">
- <div v-if="dataDialogVisible" style="height: 70vh; overflow-y: auto">
+ <div v-if="dataDialogVisible" style="height: 74vh; overflow-y: auto">
<div>
<el-form :model="entity" :inline="true">
<el-form-item label="妫�楠岄」" prop="outputWorkTime">
@@ -161,11 +208,28 @@
<viewManHourDia ref="viewManHourDia"></viewManHourDia>
<!--涓嶅悎鏍煎娴嬫煡鐪嬪脊妗�-->
<un-pass-retest-result v-if="retestVisible" :retestInfo="retestInfo" :retestVisible="retestVisible" @closeRetestLook="closeRetestLook"></un-pass-retest-result>
+ <!--鎶ュ憡鏌ョ湅-->
+ <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="@/assets/images/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>
+ </el-dialog>
+ <el-dialog title="鏌ョ湅闄勪欢" :visible.sync="lookDialogVisible" width="800px" top="5vh" fullscreen>
+ <filePreview v-if="lookDialogVisible" :fileUrl="javaApi + '/word/' + currentInfo.tempUrlPdf" :currentFile="{}"
+ style="max-height: 90vh;overflow-y: auto;" />
+ </el-dialog>
</div>
</template>
<script>
import { getYearAndMonthAndDays } from "@/utils/date";
+
import EditInspectionItem from "./components/EditInspectionItem.vue";
import limsTable from "@/components/Table/lims-table.vue";
import viewManHourDia from "./components/viewManHourDia.vue"
@@ -184,9 +248,13 @@
} from "@/api/business/inspectionTask.js";
import { mapGetters } from "vuex";
import {getRetestResult} from "@/api/business/rawMaterialOrder";
+import {upReportUrl} from "@/api/business/insReport";
+import onlyoffice from "@/components/Onlyoffice/onlyoffice.vue";
+import filePreview from "@/components/Preview/filePreview.vue";
export default {
name: 'InspectionTask',
components: {
+ filePreview, onlyoffice,
EditInspectionItem,
limsTable,
viewManHourDia,
@@ -198,6 +266,10 @@
},
data() {
return {
+ issuedVisible: false,
+ fullscreen: false,
+ lookDialogVisible: false,
+ option: null,
InspectionKey: 1,
bindDialogVisible: false,
bindAddDialogVisible: false,
@@ -363,80 +435,16 @@
{ label: "妫�楠屽紑濮嬫椂闂�", prop: "insTime", width: "140px" },
{ label: "鐞嗙敱", prop: "verifyTell", width: "140px" },
{
- dataType: "action",
fixed: "right",
- label: "鎿嶄綔",
- operation: [
- {
- name: "鏁版嵁鏌ョ湅",
- type: "text",
- clickFun: (row) => {
- this.handleDataLook(row);
- },
- },
- {
- name: "淇敼妫�楠屽��",
- type: "text",
- clickFun: (row) => {
- this.editInspection(row);
- },
- disabled: (row) => {
- return (row.userName == null || row.insState == 3 || row.insState == 5) && this.checkPermi(['update:product:onPlan'])
- },
- },
- {
- name: "鏌ョ湅宸ユ椂",
- type: "text",
- clickFun: (row) => {
- this.viewManHour(row);
- },
- showHide: (row) => {
- return this.checkPermi(['get:working:hours:byOrder'])
- },
- },
- {
- name: "妫�楠�",
- type: "text",
- clickFun: (row) => {
- this.handleInspection(row);
- },
- disabled: (row) => {
- return (
- row.userName == null ||
- row.insState == 3 ||
- row.insState == 5 ||
- (row.userName && !row.userName.includes(this.nickName))
- );
- },
- },
- {
- name: "浜ゆ帴",
- type: "text",
- clickFun: (row) => {
- this.handleConnect(row);
- },
- disabled: (row) => {
- return (
- row.userName == null ||
- row.insState == 5 ||
- row.insState == 3 ||
- (row.userName && !row.userName.includes(this.nickName))
- );
- },
- },
- {
- name: "鍘熷璁板綍",
- type: "text",
- clickFun: (row) => {
- this.viewInspectInfo(row);
- },
- },
- ],
- },
+ dataType: "slot",
+ slot: "action",
+ width: '340px',
+ label: "鎿嶄綔"
+ }
],
page: {
total: 0,
- size: 10,
+ size: 20,
current: 0,
},
tableLoading: false,
@@ -535,7 +543,7 @@
],
lookPage: {
total: 0,
- size: 10,
+ size: 20,
current: 0,
},
lookTableLoading: false,
@@ -638,6 +646,57 @@
this.page.current = 1;
this.queryParams.typeSource = this.tabIndex;
this.getList();
+ },
+ // 涓嬭浇鎶ュ憡
+ download(row) {
+ let url = (row.urlS===null||row.urlS==='')?row.url:row.urlS
+ const link = document.createElement('a');
+ link.href = this.javaApi + url;
+ link.target = '_blank';
+ document.body.appendChild(link);
+ link.click();
+ },
+ // 杩樺師鎿嶄綔
+ handleRestore(row) {
+ this.$confirm('鏄惁杩樺師褰撳墠鎶ュ憡?', "璀﹀憡", {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "warning"
+ }).then(() => {
+ upReportUrl({ id: row.insReportId }).then(res => {
+ if (res.code === 200) {
+ this.$message.success('杩樺師鎴愬姛')
+ this.refreshTable()
+ }
+ })
+ }).catch(() => { })
+
+ },
+ // 鏌ョ湅鎶ュ憡
+ handleIssued(row) {
+ console.log('================')
+ // todo: 鏌ョ湅鎶ュ憡缁勪欢
+ this.currentInfo = row;
+ let fileName = row.url
+ let fileType = "docx"
+ if (row.tempUrlPdf != null || row.tempUrlPdf === '') {
+ fileName = row.tempUrlPdf
+ fileType = "pdf"
+ }
+ fileName = fileName.replace('/word/','')
+ const userName = this.nickName
+ 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
+ }
+ this.issuedVisible = true;
},
// 鏌ョ湅浜т笟閾句俊鎭�
openInfoDialog(row) {
@@ -852,7 +911,6 @@
this.bindCurrentInfo = row;
getBindingProductByProductId({ productId: row.insProductId })
.then((res) => {
- // console.log(res)
this.bindTableData = res.data;
this.bindDialogVisible = true;
})
@@ -865,7 +923,6 @@
productId: this.bindCurrentInfo.insProductId,
})
.then((res) => {
- // console.log(res)
this.bindAddTableData = res.data;
this.bindAddDialogVisible = true;
})
@@ -915,6 +972,30 @@
});
});
},
+ beforeUpload (file) {
+ if (file.size > 1024 * 1024 * 10) {
+ this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M');
+ this.$refs.upload.clearFiles()
+ return false;
+ } else {
+ return true;
+ }
+ },
+ onError(error, file, fileList, index) {
+ this.$message.error('鏂囦欢涓婁紶澶辫触锛岃閲嶈瘯');
+ },
+ onExceed() {
+ this.$message.warning("瓒呭嚭鏂囦欢涓暟");
+ },
+ handleSuccessUp(response) {
+ if (response.code == 200) {
+ this.$refs.upload.clearFiles()
+ this.$message.success("涓婁紶鎴愬姛");
+ this.refreshTable()
+ } else {
+ this.$message.error(response.message);
+ }
+ },
},
};
</script>
--
Gitblit v1.9.3