From dc6e972dd90bac99060d1bf48306c634ac55623a Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期三, 05 三月 2025 14:29:19 +0800
Subject: [PATCH] 搬迁标准查新、标准方法的变更、方法验证
---
src/views/CNAS/process/sampleDisposal/sampleDisposal.vue | 3
src/views/CNAS/process/method/methodVerification/components/ViewTestRecord.vue | 164 +++
src/views/CNAS/process/method/standardNoveltyRetrieval/components/EditFormDia.vue | 146 ++
src/views/CNAS/process/method/methodVerification/index.vue | 224 ++++
src/views/CNAS/process/method/standardNoveltyRetrieval/index.vue | 640 ++++++++++++
src/api/cnas/process/method/methodVerification.js | 93 +
src/api/cnas/process/method/standardNoveltyRetrieval.js | 48
src/views/CNAS/process/method/methodVerification/components/calibrationsFileDia.vue | 109 ++
src/views/CNAS/process/method/methodVerification/components/formDIa.vue | 470 +++++++++
src/views/CNAS/process/method/standardMethodsChange/components/formDIaChange.vue | 472 +++++++++
src/views/CNAS/process/method/standardNoveltyRetrieval/components/FormDialog.vue | 138 ++
src/views/CNAS/process/method/standardMethodsChange/index.vue | 224 ++++
src/api/cnas/process/method/standardMethodsChange.js | 66 +
src/views/CNAS/process/method/methodVerification/components/viewWorkPermitDia.vue | 105 ++
src/views/CNAS/process/method/methodVerification/components/ViewDeviceDialog.vue | 141 ++
15 files changed, 3,042 insertions(+), 1 deletions(-)
diff --git a/src/api/cnas/process/method/methodVerification.js b/src/api/cnas/process/method/methodVerification.js
new file mode 100644
index 0000000..ec91dfb
--- /dev/null
+++ b/src/api/cnas/process/method/methodVerification.js
@@ -0,0 +1,93 @@
+// 鏂规硶楠岃瘉鐩稿叧鎺ュ彛
+import request from "@/utils/request";
+
+//鏍囧噯鏂规硶鏇存柊楠岃瘉鍒楄〃
+export function pagesMethodVerify(query) {
+ return request({
+ url: "/processMethodVerify/pagesMethodVerify",
+ method: "get",
+ params: query,
+ });
+}
+
+//鍒犻櫎鏍囧噯鏂规硶鏇存柊楠岃瘉
+export function delMethodVerify(query) {
+ return request({
+ url: "/processMethodVerify/delMethodVerify",
+ method: "delete",
+ params: query,
+ });
+}
+
+//瀵煎嚭鏍囧噯鏂规硶鏇存柊楠岃瘉
+export function exportMethodVerify(query) {
+ return request({
+ url: "/processMethodVerify/exportMethodVerify",
+ method: "get",
+ responseType: "blob",
+ params: query,
+ });
+}
+
+//鏌ヨ鏍囧噯鏂规硶楠岃瘉璇︽儏
+export function getMethodVerifyOne(query) {
+ return request({
+ url: "/processMethodVerify/getMethodVerifyOne",
+ method: "get",
+ params: query,
+ });
+}
+
+// 淇敼鏍囧噯鏂规硶楠岃瘉
+export function updateMethodVerify(data) {
+ return request({
+ url: "/processMethodVerify/updateMethodVerify",
+ method: "post",
+ data: data,
+ });
+}
+
+// 楠岃瘉纭
+export function methodVerifyAffirm(data) {
+ return request({
+ url: "/processMethodVerify/methodVerifyAffirm",
+ method: "post",
+ data: data,
+ });
+}
+
+// 鏂板鏍囧噯鏂规硶楠岃瘉
+export function addMethodVerify(data) {
+ return request({
+ url: "/processMethodVerify/addMethodVerify",
+ method: "post",
+ data: data,
+ });
+}
+
+//閫氳繃璁惧鍒嗙被鑾峰彇璁惧鍒楄〃
+export function search(query) {
+ return request({
+ url: "/deviceScope/search",
+ method: "get",
+ params: query,
+ });
+}
+
+//鍘熷璁板綍鍒楄〃
+export function getVerifyMethodFileList(query) {
+ return request({
+ url: "/processMethodVerify/getVerifyMethodFileList",
+ method: "get",
+ params: query,
+ });
+}
+
+//鍒犻櫎楠岃瘉鍘熷璁板綍鍒楄〃
+export function delVerifyMethodFileList(query) {
+ return request({
+ url: "/processMethodVerify/delVerifyMethodFileList",
+ method: "delete",
+ params: query,
+ });
+}
diff --git a/src/api/cnas/process/method/standardMethodsChange.js b/src/api/cnas/process/method/standardMethodsChange.js
new file mode 100644
index 0000000..e0a0326
--- /dev/null
+++ b/src/api/cnas/process/method/standardMethodsChange.js
@@ -0,0 +1,66 @@
+// 鏍囧噯鏂规硶鐨勫彉鏇寸浉鍏虫帴鍙�
+import request from "@/utils/request";
+
+//鏍囧噯鏂规硶鏇存柊楠岃瘉鍒楄〃
+export function pagesMethodVerify(query) {
+ return request({
+ url: "/processMethodVerify/pagesMethodVerify",
+ method: "get",
+ params: query,
+ });
+}
+
+//鍒犻櫎鏍囧噯鏂规硶鏇存柊楠岃瘉
+export function delMethodVerify(query) {
+ return request({
+ url: "/processMethodVerify/delMethodVerify",
+ method: "delete",
+ params: query,
+ });
+}
+
+//瀵煎嚭鏍囧噯鏂规硶鏇存柊楠岃瘉
+export function exportMethodVerify(query) {
+ return request({
+ url: "/processMethodVerify/exportMethodVerify",
+ method: "get",
+ responseType: "blob",
+ params: query,
+ });
+}
+
+//鏌ヨ鏍囧噯鏂规硶楠岃瘉璇︽儏
+export function getMethodVerifyOne(query) {
+ return request({
+ url: "/processMethodVerify/getMethodVerifyOne",
+ method: "get",
+ params: query,
+ });
+}
+
+// 淇敼鏍囧噯鏂规硶楠岃瘉
+export function updateMethodVerify(data) {
+ return request({
+ url: "/processMethodVerify/updateMethodVerify",
+ method: "post",
+ data: data,
+ });
+}
+
+// 鏂板鏍囧噯鏂规硶楠岃瘉
+export function addMethodVerify(data) {
+ return request({
+ url: "/processMethodVerify/addMethodVerify",
+ method: "post",
+ data: data,
+ });
+}
+
+// 楠岃瘉纭
+export function methodVerifyAffirm(data) {
+ return request({
+ url: "/processMethodVerify/methodVerifyAffirm",
+ method: "post",
+ data: data,
+ });
+}
diff --git a/src/api/cnas/process/method/standardNoveltyRetrieval.js b/src/api/cnas/process/method/standardNoveltyRetrieval.js
new file mode 100644
index 0000000..18a7281
--- /dev/null
+++ b/src/api/cnas/process/method/standardNoveltyRetrieval.js
@@ -0,0 +1,48 @@
+// 鏍囧噯鏌ユ柊椤甸潰鐩稿叧鎺ュ彛
+import request from "@/utils/request";
+
+//鏍囧噯鏌ユ柊鍒楄〃
+export function pageMethodSearchNew(query) {
+ return request({
+ url: "/processMethodSearchNew/pageMethodSearchNew",
+ method: "get",
+ params: query,
+ });
+}
+
+//鍒犻櫎
+export function deleteById(query) {
+ return request({
+ url: "/processMethodSearchNew/deleteById",
+ method: "delete",
+ params: query,
+ });
+}
+
+//瀵煎嚭鏍囧噯鏌ユ柊
+export function exportMethodSearchNew(query) {
+ return request({
+ url: "/processMethodSearchNew/exportMethodSearchNew",
+ method: "get",
+ responseType: "blob",
+ params: query,
+ });
+}
+
+// 淇敼鏍囧噯鏌ユ柊
+export function updateMethodSearchNew(data) {
+ return request({
+ url: "/processMethodSearchNew/updateMethodSearchNew",
+ method: "post",
+ data: data,
+ });
+}
+
+// 鏂板鏍囧噯鏌ユ柊
+export function addMethodSearchNew(data) {
+ return request({
+ url: "/processMethodSearchNew/addMethodSearchNew",
+ method: "post",
+ data: data,
+ });
+}
diff --git a/src/views/CNAS/process/method/methodVerification/components/ViewDeviceDialog.vue b/src/views/CNAS/process/method/methodVerification/components/ViewDeviceDialog.vue
new file mode 100644
index 0000000..e978b99
--- /dev/null
+++ b/src/views/CNAS/process/method/methodVerification/components/ViewDeviceDialog.vue
@@ -0,0 +1,141 @@
+<template>
+ <div>
+ <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :visible.sync="viewDeviceDialog"
+ title="鏌ョ湅璁惧" width="80%" @close="closeDia">
+ <div v-if="!notAllowEdit" style="text-align: right;margin-bottom: 10px">
+ <el-button size="small" type="primary" @click="addRow">娣诲姞</el-button>
+ <el-button size="small" type="danger" @click="clearTable">娓呯┖</el-button>
+ </div>
+ <div>
+ <el-table :data="machineAttachmentList" border height="500" style="width: 100%">
+ <el-table-column header-align="center" label="鍚嶇О" prop="machineName" width="200">
+ <template slot="header" slot-scope="scope">
+ <p>鍚嶇О</p>
+ </template>
+ <template slot-scope="scope">
+ <el-select v-model="scope.row.machineName" :disabled="notAllowEdit" class="table_input" clearable
+ filterable placeholder="璁惧鍚嶇О" size="small" @change="(val) => changeMachineName(val, scope.$index)">
+ <el-option v-for="item in equipOptions" :key="item.value" :label="item.label" :value="item.value">
+ {{ item.label + item.value }}
+ </el-option>
+ </el-select>
+ </template>
+ </el-table-column>
+ <el-table-column header-align="center" label="鍨嬪彿瑙勬牸" prop="machineSpecification" width="180">
+ <template slot="header" slot-scope="scope">
+ <p>鍨嬪彿瑙勬牸</p>
+ </template>
+ <template slot-scope="{row}">
+ <el-input v-model="row.machineSpecification" :disabled="notAllowEdit" size="small" />
+ </template>
+ </el-table-column>
+ <el-table-column :disabled="notAllowEdit" header-align="center" label="娴嬮噺鑼冨洿" prop="machineMeasuringRange">
+ <template slot="header" slot-scope="scope">
+ <p>娴嬮噺鑼冨洿</p>
+ </template>
+ <template slot-scope="{row}">
+ <el-input v-model="row.machineMeasuringRange" :disabled="notAllowEdit" size="small" type="textarea" />
+ </template>
+ </el-table-column>
+ <el-table-column header-align="center" label="鈶犳墿灞曚笉纭畾搴︹憽鏈�澶у厑宸憿鍑嗙‘搴︾瓑绾�" prop="other">
+ <template slot="header" slot-scope="scope">
+ <p>鈶犳墿灞曚笉纭畾搴︹憽鏈�澶у厑宸憿鍑嗙‘搴︾瓑绾�</p>
+ </template>
+ <template slot-scope="{row}">
+ <el-input v-model="row.other" :disabled="notAllowEdit" size="small" type="textarea" />
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="closeDia">鍙� 娑�</el-button>
+ <el-button type="primary" @click="handleDeviceInfo">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import {
+ search,
+} from '@/api/cnas/process/method/methodVerification.js'
+export default {
+ props: {
+ notAllowEdit: {
+ type: Boolean,
+ default: false
+ }
+ },
+ name: 'ViewDeviceDialog',
+ // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+ components: {},
+ data() {
+ // 杩欓噷瀛樻斁鏁版嵁
+ return {
+ viewDeviceDialog: false,
+ machineAttachmentList: [],
+ equipOptions: [],
+ };
+ },
+ // 鏂规硶闆嗗悎
+ methods: {
+ openDia(info) {
+ this.viewDeviceDialog = true
+ this.machineAttachmentList = info.machineAttachmentList
+ this.getEquipOptions()
+ },
+ // 澧炲姞琛ㄦ牸琛屾暟鎹�
+ addRow() {
+ this.machineAttachmentList.push({
+ machineName: '',
+ machineSpecification: '',
+ machineMeasuringRange: '',
+ other: '',
+ })
+ },
+ // 娓呯┖琛ㄦ牸鏁版嵁
+ clearTable() {
+ this.machineAttachmentList = []
+ },
+ // 閫夋嫨璁惧鐨勫洖璋�
+ changeMachineName(val, index) {
+ const index1 = this.equipOptions.findIndex(item => item.value === val);
+ if (index1 !== -1) {
+ this.machineAttachmentList[index].deviceId = this.equipOptions[index1].id;
+ this.machineAttachmentList[index].machineName = this.equipOptions[index1].deviceName;
+ }
+ this.machineAttachmentList[index].machineSpecification = val
+ },
+ // 鎻愪氦璁惧淇℃伅
+ handleDeviceInfo() {
+ if (this.machineAttachmentList.length === 0) {
+ this.$message.warning('璇锋坊鍔犱俊鎭�')
+ return
+ }
+ this.viewDeviceDialog = false
+ this.$emit('handleDeviceInfo', this.machineAttachmentList)
+ },
+ closeDia() {
+ this.viewDeviceDialog = false
+ this.$emit('closDeviceDia')
+ },
+ // 鑾峰彇鎵�鏈夎澶�
+ getEquipOptions() {
+ this.equipOptions = []
+ search({ status: 0 }).then(res => {
+ if (res.code === 200 && res.data) {
+ this.equipOptions = res.data.map(m => {
+ m.value = m.managementNumber
+ m.label = m.deviceName
+ return m
+ })
+ }
+ }).catch(error => {
+ console.error(error)
+ })
+ },
+ }
+};
+</script>
+
+<style scoped></style>
diff --git a/src/views/CNAS/process/method/methodVerification/components/ViewTestRecord.vue b/src/views/CNAS/process/method/methodVerification/components/ViewTestRecord.vue
new file mode 100644
index 0000000..7503777
--- /dev/null
+++ b/src/views/CNAS/process/method/methodVerification/components/ViewTestRecord.vue
@@ -0,0 +1,164 @@
+<template>
+ <div>
+ <el-dialog :visible.sync="filesDialogVisible" title="闄勪欢涓婁紶" width="80%" @closed="closeFilesLook">
+ <div v-if="!notAllowEdit" style="display: flex;justify-content: space-between;">
+ <el-upload ref='upload' :action="fileAction" :auto-upload="true" :before-upload="fileBeforeUpload"
+ :data="{ methodVerifyId: info.methodVerifyId }" :headers="uploadHeader" :on-error="onError"
+ :on-success="handleSuccessUp" :show-file-list="false"
+ accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar' style="width: 80px !important;">
+ <el-button size="small" style="height: 38px" type="primary">闄勪欢涓婁紶</el-button>
+ </el-upload>
+ </div>
+ <div>
+ <limsTable ref="yearTable" :column="columnData" :height="'calc(100vh - 47em)'" :highlightCurrentRow="true"
+ :table-data="tableData" :table-loading="tableLoading" style="margin-top: 0.5em;">
+ </limsTable>
+ </div>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import limsTable from "@/components/Table/lims-table.vue";
+import {
+ getVerifyMethodFileList,
+ delVerifyMethodFileList,
+} from '@/api/cnas/process/method/methodVerification.js'
+export default {
+ props: {
+ notAllowEdit: {
+ type: Boolean,
+ default: false
+ }
+ },
+ name: 'ViewTestRecord',
+ // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+ components: { limsTable },
+ data() {
+ // 杩欓噷瀛樻斁鏁版嵁
+ return {
+ filesDialogVisible: false,
+ tableLoading: false,
+ filesLookInfo: {},
+ columnData: [
+ {
+ label: '鏂囦欢鍚嶇О',
+ prop: 'fileName',
+ minWidth: '150px'
+ },
+ {
+ dataType: 'action',
+ minWidth: '100',
+ label: '鎿嶄綔',
+ fixed: 'right',
+ operation: [
+ {
+ name: '涓嬭浇',
+ type: 'text',
+ clickFun: (row) => {
+ this.upload(row)
+ }
+ },
+ {
+ name: '鍒犻櫎',
+ type: 'text',
+ color: '#f56c6c',
+ clickFun: (row) => {
+ this.delete(row)
+ },
+ showHide: () => {
+ return !this.notAllowEdit;
+ }
+ }
+ ]
+ }
+ ],
+ tableData: [],
+ info: {}
+ };
+ },
+ // 鏂规硶闆嗗悎
+ methods: {
+ openDia(row) {
+ this.filesDialogVisible = true
+ this.info = row
+ if (this.info === undefined) {
+ this.info = {
+ methodVerifyId: ''
+ }
+ }
+ this.searchTableList()
+ },
+ // 鏌ヨ闄勪欢鍒楄〃
+ searchTableList() {
+ this.tableLoading = true
+ getVerifyMethodFileList({ methodVerifyId: this.info.methodVerifyId }).then(res => {
+ this.tableLoading = false
+ if (res.code === 201) return
+ this.tableData = res.data
+ }).catch(err => {
+ this.tableLoading = false
+ console.log('err---', err);
+ })
+ },
+ closeFilesLook() {
+ this.filesDialogVisible = false
+ },
+ // 涓嬭浇
+ upload(row) {
+ let url = '';
+ if (row.type == 1) {
+ url = this.javaApi + '/img/' + row.fileUrl
+ this.$download.saveAs(url, row.fileName)
+ } else {
+ url = this.javaApi + '/word/' + row.fileUrl
+ this.$download.saveAs(url, row.fileName)
+ }
+ },
+ // 鍒犻櫎
+ delete(row) {
+ this.tableLoading = true
+ delVerifyMethodFileList({ methodFileId: row.methodFileId }).then(res => {
+ this.tableLoading = false
+ if (res.code === 201) return
+ this.$message.success('鍒犻櫎鎴愬姛')
+ this.searchTableList()
+ }).catch(err => {
+ this.tableLoading = false
+ console.log('err---', err);
+ })
+ },
+ // 涓婁紶楠岃瘉
+ fileBeforeUpload(file) {
+ let flag = true
+ if (file.size > 1024 * 1024 * 10) {
+ this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M');
+ this.$refs.upload.clearFiles()
+ flag = false
+ }
+ if (!flag) {
+ return Promise.reject(flag); //姝g‘鐨勭粓姝�
+ }
+ },
+ onError(err, file, fileList, type) {
+ this.$message.error('涓婁紶澶辫触')
+ this.$refs.upload.clearFiles()
+ },
+ handleSuccessUp(response,) {
+ this.upLoading = false;
+ if (response.code == 200) {
+ this.$message.success('涓婁紶鎴愬姛');
+ this.searchTableList()
+ }
+ },
+ },
+ computed: {
+ fileAction() {
+ return this.javaApi + '/processMethodVerify/uploadVerifyMethodFile'
+
+ }
+ },
+};
+</script>
+
+<style scoped></style>
diff --git a/src/views/CNAS/process/method/methodVerification/components/calibrationsFileDia.vue b/src/views/CNAS/process/method/methodVerification/components/calibrationsFileDia.vue
new file mode 100644
index 0000000..c650ba2
--- /dev/null
+++ b/src/views/CNAS/process/method/methodVerification/components/calibrationsFileDia.vue
@@ -0,0 +1,109 @@
+<template>
+ <div>
+ <el-dialog :visible.sync="filesDialogVisible" title="鏌ョ湅鏍″噯璇佷功" width="80%" @closed="closeFilesLook">
+ <div>
+ <limsTable ref="yearTable" :column="columnData" :height="'calc(100vh - 47em)'" :highlightCurrentRow="true"
+ :table-data="tableData" :table-loading="tableLoading" style="margin-top: 0.5em;">
+ </limsTable>
+ </div>
+ </el-dialog>
+ <el-dialog :visible.sync="lookDialogVisible" fullscreen title="鏌ョ湅闄勪欢" top="5vh" width="800px">
+ <filePreview v-if="lookDialogVisible" :currentFile="{}" :fileUrl="javaApi + '/img/' + currentInfo.fileUrl"
+ style="max-height: 90vh;overflow-y: auto;" />
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import limsTable from "@/components/Table/lims-table.vue";
+import filePreview from "@/components/Preview/filePreview.vue";
+
+export default {
+ name: 'calibrationsFileDia',
+ // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+ components: { limsTable, filePreview },
+ data() {
+ // 杩欓噷瀛樻斁鏁版嵁
+ return {
+ filesDialogVisible: false,
+ tableLoading: false,
+ filesLookInfo: {},
+ columnData: [
+ {
+ label: '鏂囦欢鍚嶇О',
+ prop: 'fileName',
+ minWidth: '150px'
+ },
+ {
+ label: '璁惧鍚嶇О',
+ prop: 'deviceName',
+ minWidth: '150px'
+ },
+ {
+ label: '璁惧缂栧彿',
+ prop: 'managementNumber',
+ minWidth: '150px'
+ },
+ {
+ dataType: 'action',
+ minWidth: '100',
+ label: '鎿嶄綔',
+ fixed: 'right',
+ operation: [
+ {
+ name: '棰勮',
+ type: 'text',
+ clickFun: (row) => {
+ this.handleLook(row)
+ }
+ },
+ {
+ name: '涓嬭浇',
+ type: 'text',
+ clickFun: (row) => {
+ this.upload(row)
+ }
+ },
+ ]
+ }
+ ],
+ tableData: [],
+ info: {},
+ currentInfo: {},
+ lookDialogVisible: false,
+ };
+ },
+ mounted() {
+
+ },
+ // 鏂规硶闆嗗悎
+ methods: {
+ openDia(row) {
+ this.filesDialogVisible = true
+ this.info = row
+ this.tableData = this.info.calibrationsFileList
+ },
+ closeFilesLook() {
+ this.filesDialogVisible = false
+ },
+ // 鏌ョ湅鏂囦欢
+ handleLook(row) {
+ this.currentInfo = row
+ this.lookDialogVisible = true
+ },
+ // 涓嬭浇
+ upload(row) {
+ let url = '';
+ if (row.type == 1) {
+ url = this.javaApi + '/img/' + row.fileUrl
+ this.$download.saveAs(url, row.fileName)
+ } else {
+ url = this.javaApi + '/word/' + row.fileUrl
+ this.$download.saveAs(url, row.fileName)
+ }
+ },
+ }
+};
+</script>
+
+<style scoped></style>
diff --git a/src/views/CNAS/process/method/methodVerification/components/formDIa.vue b/src/views/CNAS/process/method/methodVerification/components/formDIa.vue
new file mode 100644
index 0000000..1b4d62d
--- /dev/null
+++ b/src/views/CNAS/process/method/methodVerification/components/formDIa.vue
@@ -0,0 +1,470 @@
+<template>
+ <div>
+ <el-dialog :close-on-click-modal="false" :close-on-press-escape="false"
+ :title="operationType === 'edit' ? '缂栬緫' : '鏂板'" :visible.sync="formDia" width="90%" @close="closeDia">
+ <div v-if="operationType === 'edit'" style="text-align: right">
+ <el-button :disabled="form.confirmDate" size="medium" type="primary" @click="validation">楠岃瘉纭</el-button>
+ </div>
+ <table border="1" cellspacing="10" class="tables">
+ <tr>
+ <td>
+ <p>鏍囧噯鏂规硶</p>
+ </td>
+ <td>
+ <p>楠岃瘉鍘熷洜</p>
+ </td>
+ <td>
+ <p>涓昏鎶�鏈彉鍖�</p>
+ </td>
+ <td>
+ <p>娑夊強鏂归潰</p>
+ </td>
+ <td>
+ <p>鏍囧噯瑕佹眰</p>
+ </td>
+ <td>
+ <p>鍑嗗鎯呭喌</p>
+ </td>
+ <td>
+ <p>鏄惁婊¤冻</p>
+ </td>
+ <td>
+ <p>澶囨敞</p>
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="9">
+ <el-input v-model="form.methodName" :disabled="form.confirmDate" :rows="6" placeholder="璇疯緭鍏ュ唴瀹�" size="small"
+ type="textarea">
+ </el-input>
+ </td>
+ <td rowspan="9">
+ <el-input v-model="form.verifyReason" :disabled="form.confirmDate" :rows="6" placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small" type="textarea">
+ </el-input>
+ </td>
+ <td rowspan="9">
+ <el-input v-model="form.technologyChange" :disabled="form.confirmDate" :rows="6" placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small" type="textarea">
+ </el-input>
+ </td>
+ </tr>
+ <tr>
+ <td>浜猴細</td>
+ <td>
+ <el-input v-model="form.personRequirements" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-input v-model="form.personReadiness" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-radio-group v-model="form.personIsSatisfied" v-removeAriaHidden :disabled="form.confirmDate">
+ <el-radio :label="0">鍚�</el-radio>
+ <el-radio :label="1">鏄�</el-radio>
+ </el-radio-group>
+ </td>
+ <td>
+ <el-link type="primary" @click="viewWorkPermit">鏌ョ湅涓婂矖璇�</el-link>
+ </td>
+ </tr>
+ <tr>
+ <td>鏈猴細</td>
+ <td>
+ <el-input v-model="form.machineRequirements" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-input v-model="form.machineReadiness" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-radio-group v-model="form.machineIsSatisfied" v-removeAriaHidden :disabled="form.confirmDate">
+ <el-radio :label="0">鍚�</el-radio>
+ <el-radio :label="1">鏄�</el-radio>
+ </el-radio-group>
+ </td>
+ <td>
+ <el-link type="primary" @click="viewDevice">鏌ョ湅璁惧</el-link>
+ </td>
+ </tr>
+ <tr>
+ <td>鏂欙細</td>
+ <td>
+ <el-input v-model="form.materialRequirements" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-input v-model="form.materialReadiness" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-radio-group v-model="form.materialIsSatisfied" v-removeAriaHidden :disabled="form.confirmDate">
+ <el-radio :label="0">鍚�</el-radio>
+ <el-radio :label="1">鏄�</el-radio>
+ </el-radio-group>
+ </td>
+ <td>
+ <el-input v-model="form.materialRemark" :disabled="form.confirmDate" size="small"></el-input>
+ </td>
+ </tr>
+ <tr>
+ <td>娉曪細</td>
+ <td>
+ <el-input v-model="form.methodRequirements" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-input v-model="form.methodReadiness" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-radio-group v-model="form.methodIsSatisfied" v-removeAriaHidden :disabled="form.confirmDate">
+ <el-radio :label="0">鍚�</el-radio>
+ <el-radio :label="1">鏄�</el-radio>
+ </el-radio-group>
+ </td>
+ <td>
+ <el-link type="primary" @click="viewTestRecord">鏌ョ湅妫�娴嬭褰�</el-link>
+ </td>
+ </tr>
+ <tr>
+ <td>鐜細</td>
+ <td>
+ <el-input v-model="form.environmentRequirements" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-input v-model="form.environmentReadiness" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-radio-group v-model="form.environmentIsSatisfied" v-removeAriaHidden :disabled="form.confirmDate">
+ <el-radio :label="0">鍚�</el-radio>
+ <el-radio :label="1">鏄�</el-radio>
+ </el-radio-group>
+ </td>
+ <td>
+ <el-input v-model="form.traceabilityRemark" :disabled="form.confirmDate" size="small"></el-input>
+ </td>
+ </tr>
+ <tr>
+ <td>娴嬮噺婧簮鎬э細</td>
+ <td>
+ <el-input v-model="form.traceabilityRequirements" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-input v-model="form.traceabilityReadiness" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-radio-group v-model="form.traceabilityIsSatisfied" v-removeAriaHidden :disabled="form.confirmDate">
+ <el-radio :label="0">鍚�</el-radio>
+ <el-radio :label="1">鏄�</el-radio>
+ </el-radio-group>
+ </td>
+ <td>
+ <el-link type="primary" @click="viewCalibrationsFileDia">鏌ョ湅鏍″噯璇佷功</el-link>
+ </td>
+ </tr>
+ <tr>
+ <td>鏍峰搧绠$悊闇�姹傦細</td>
+ <td>
+ <el-input v-model="form.managementRequirements" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-input v-model="form.managementReadiness" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-radio-group v-model="form.managementIsSatisfied" v-removeAriaHidden :disabled="form.confirmDate">
+ <el-radio :label="0">鍚�</el-radio>
+ <el-radio :label="1">鏄�</el-radio>
+ </el-radio-group>
+ </td>
+ <td>
+ <el-input v-model="form.managementRemark" :disabled="form.confirmDate" size="small"></el-input>
+ </td>
+ </tr>
+ <tr>
+ <td>鍏朵粬锛�</td>
+ <td>
+ <el-input v-model="form.otherRequirements" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-input v-model="form.otherReadiness" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-radio-group v-model="form.otherIsSatisfied" v-removeAriaHidden :disabled="form.confirmDate">
+ <el-radio :label="0">鍚�</el-radio>
+ <el-radio :label="1">鏄�</el-radio>
+ </el-radio-group>
+ </td>
+ <td>
+ <el-input v-model="form.otherRemark" :disabled="form.confirmDate" size="small"></el-input>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="3">
+ <p>鏄惁寮曠敤姝ゆ爣鍑嗗紑灞曟娴�:</p>
+ </td>
+ <td colspan="3">鍙互寮曠敤姝ゆ爣鍑嗗紑灞曟娴�</td>
+ <td>
+ <p>纭鏃堕棿:</p>
+ </td>
+ <td>{{ form.confirmDate }}</td>
+ </tr>
+ <tr>
+ <td colspan="3">
+ <p>鍙傚姞纭浜虹鍚�:</p>
+ </td>
+ <td colspan="5">
+ <el-select v-model="form.confirmUser" :disabled="form.confirmDate" multiple placeholder="璇烽�夋嫨" size="small"
+ style="width: 100%">
+ <el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id"></el-option>
+ </el-select>
+ </td>
+ </tr>
+ </table>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="closeDia">鍙� 娑�</el-button>
+ <el-button :loading="editLoad" type="primary" @click="handleEdit">鎻� 浜�</el-button>
+ </span>
+ </el-dialog>
+ <ViewDeviceDialog v-if="viewDeviceDialog" ref="viewDeviceDialog" :notAllowEdit="notAllowEdit"
+ @closDeviceDia="closDeviceDia" @handleDeviceInfo="handleDeviceInfo"></ViewDeviceDialog>
+ <ViewTestRecord v-if="viewTestRecordDialog" ref="viewTestRecordDialog" :notAllowEdit="notAllowEdit">
+ </ViewTestRecord>
+ <ViewWorkPermitDia v-if="viewWorkPermitDia" ref="viewWorkPermitDia"></ViewWorkPermitDia>
+ <calibrations-file-dia v-if="calibrationsFileDia" ref="calibrationsFileDia"></calibrations-file-dia>
+ </div>
+</template>
+
+<script>
+import { dateFormat } from '@/utils/date'
+import ViewDeviceDialog from './ViewDeviceDialog.vue';
+import ViewTestRecord from './ViewTestRecord.vue';
+import ViewWorkPermitDia from './viewWorkPermitDia.vue';
+import CalibrationsFileDia from './calibrationsFileDia.vue';
+import {
+ getMethodVerifyOne,
+ updateMethodVerify,
+ methodVerifyAffirm,
+ addMethodVerify,
+} from '@/api/cnas/process/method/methodVerification.js'
+import { selectUserCondition } from "@/api/system/user";
+export default {
+ name: 'formDIa',
+ // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+ components: { CalibrationsFileDia, ViewWorkPermitDia, ViewTestRecord, ViewDeviceDialog },
+ props: {
+ operationType: {
+ type: String,
+ default: () => ''
+ }
+ },
+ data() {
+ // 杩欓噷瀛樻斁鏁版嵁
+ return {
+ formDia: false,
+ form: {
+ methodName: '',
+ verifyReason: '',
+ technologyChange: '',
+ personRequirements: '',
+ personReadiness: '',
+ personIsSatisfied: '',
+ personRemark: '',
+ machineRequirements: '',
+ machineReadiness: '',
+ machineIsSatisfied: '',
+ materialRequirements: '',
+ materialReadiness: '',
+ materialIsSatisfied: '',
+ materialRemark: '',
+ methodRequirements: '',
+ methodReadiness: '',
+ methodIsSatisfied: '',
+ environmentRequirements: '',
+ environmentReadiness: '',
+ environmentIsSatisfied: '',
+ traceabilityRequirements: '',
+ traceabilityReadiness: '',
+ traceabilityIsSatisfied: '',
+ traceabilityRemark: '',
+ managementRequirements: '',
+ managementReadiness: '',
+ managementIsSatisfied: '',
+ managementRemark: '',
+ otherRequirements: '',
+ otherReadiness: '',
+ otherIsSatisfied: '',
+ otherRemark: '',
+ machineAttachmentList: []
+ },
+ editLoad: false,
+ info: {
+ methodVerifyId: ''
+ },
+ userList: [],
+ viewDeviceDialog: false,
+ notAllowEdit: false,
+ viewTestRecordDialog: false,
+ viewWorkPermitDia: false,
+ calibrationsFileDia: false,
+ };
+ },
+ // 鏂规硶闆嗗悎
+ methods: {
+ openDia(row) {
+ this.formDia = true
+ this.info = row
+ this.getUserList()
+ if (this.operationType === 'edit') {
+ this.searchInfo(row)
+ }
+ },
+ // 鏌ヨ璇︽儏淇℃伅
+ searchInfo(row) {
+ getMethodVerifyOne({ methodVerifyId: row.methodVerifyId }).then(res => {
+ if (res.code === 201) return
+ this.form = { ...res.data }
+ if (this.form.confirmUser) {
+ this.form.confirmUser = this.form.confirmUser.split(',').map(Number)
+ }
+ }).catch(err => {
+ console.log('err---', err);
+ })
+ },
+ // 鎻愪氦
+ handleEdit() {
+ this.editLoad = true
+ const processMethodSearchNews = this.HaveJson(this.form)
+ processMethodSearchNews.confirmUser = processMethodSearchNews.confirmUser && processMethodSearchNews.confirmUser.join(',')
+ processMethodSearchNews.operationType = 1
+ if (this.operationType === 'edit') {
+ this.editInfo(processMethodSearchNews)
+ } else {
+ this.addInfo(processMethodSearchNews)
+ }
+ },
+ // 鏌ョ湅涓婂矖璇�
+ viewWorkPermit() {
+ this.viewWorkPermitDia = true
+ this.$nextTick(() => {
+ this.$refs.viewWorkPermitDia.openDia(this.form)
+ })
+ },
+ // 鏌ョ湅鏍″噯璇佷功
+ viewCalibrationsFileDia() {
+ this.calibrationsFileDia = true
+ this.$nextTick(() => {
+ this.$refs.calibrationsFileDia.openDia(this.form)
+ })
+ },
+ // 鏌ョ湅璁惧
+ viewDevice() {
+ this.viewDeviceDialog = true
+ this.$nextTick(() => {
+ this.notAllowEdit = !!this.form.confirmDate;
+ this.$refs.viewDeviceDialog.openDia(this.form)
+ })
+ },
+ // 鍏抽棴璁惧寮规
+ closDeviceDia() {
+ this.viewDeviceDialog = false
+ },
+ // 鎻愪氦璁惧淇℃伅
+ handleDeviceInfo(machineAttachmentList) {
+ this.viewDeviceDialog = false
+ this.form.machineAttachmentList = machineAttachmentList
+ },
+ // 鏌ョ湅妫�娴嬭褰�
+ viewTestRecord() {
+ this.viewTestRecordDialog = true
+ this.$nextTick(() => {
+ this.notAllowEdit = !!this.form.confirmDate;
+ this.$refs.viewTestRecordDialog.openDia(this.info)
+ })
+ },
+ // 鎻愪氦缂栬緫
+ editInfo(processMethodSearchNews) {
+ updateMethodVerify(processMethodSearchNews).then(res => {
+ this.editLoad = false
+ if (res.code === 201) return
+ this.$message.success('鎿嶄綔鎴愬姛')
+ this.closeDia()
+ }).catch(err => {
+ console.log('err---', err);
+ this.editLoad = false
+ })
+ },
+ // 鎻愪氦鏂板
+ addInfo(processMethodSearchNews) {
+ addMethodVerify(processMethodSearchNews).then(res => {
+ this.editLoad = false
+ if (res.code === 201) return
+ this.$message.success('鎿嶄綔鎴愬姛')
+ this.closeDia()
+ }).catch(err => {
+ console.log('err---', err);
+ this.editLoad = false
+ })
+ },
+ // 楠岃瘉纭
+ validation() {
+ methodVerifyAffirm({ methodVerifyId: this.info.methodVerifyId }).then(res => {
+ if (res.code === 201) return
+ this.form.confirmDate = dateFormat(new Date())
+ }).catch(err => {
+ console.log('err---', err);
+ })
+ },
+ // 鍏抽棴寮规
+ closeDia() {
+ this.formDia = false
+ this.$emit('closeDia');
+ },
+ getUserList() {
+ selectUserCondition().then(res => {
+ if (res.code === 201) {
+ return
+ }
+ this.userList = res.data
+ })
+ },
+ }
+};
+</script>
+
+<style scoped>
+>>>.el-dialog {
+ margin-top: 2vh !important;
+}
+
+>>>.el-dialog__body {
+ max-height: 720px;
+ overflow-y: auto;
+}
+
+.tables {
+ table-layout: fixed;
+ width: 100%;
+ margin-top: 10px;
+}
+
+.tables td {
+ height: 34px;
+ width: 100px;
+ text-align: center;
+ font-size: 14px;
+ word-wrap: break-word;
+ white-space: normal;
+ padding: 4px;
+}
+</style>
diff --git a/src/views/CNAS/process/method/methodVerification/components/viewWorkPermitDia.vue b/src/views/CNAS/process/method/methodVerification/components/viewWorkPermitDia.vue
new file mode 100644
index 0000000..a40469f
--- /dev/null
+++ b/src/views/CNAS/process/method/methodVerification/components/viewWorkPermitDia.vue
@@ -0,0 +1,105 @@
+<template>
+ <div>
+ <el-dialog :visible.sync="filesDialogVisible" title="鏌ョ湅涓婂矖璇�" width="80%" @closed="closeFilesLook">
+ <div>
+ <limsTable ref="yearTable" :column="columnData" :height="'calc(100vh - 400px)'" :highlightCurrentRow="true"
+ :table-data="tableData" :table-loading="tableLoading" style="margin-top: 0.5em;">
+ </limsTable>
+ </div>
+ </el-dialog>
+ <el-dialog :visible.sync="lookDialogVisible" fullscreen title="鏌ョ湅闄勪欢" top="5vh" width="800px">
+ <filePreview v-if="lookDialogVisible" :currentFile="{}" :fileUrl="javaApi + '/img/' + currentInfo.fileUrl"
+ style="max-height: 90vh;overflow-y: auto;" />
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import limsTable from "@/components/Table/lims-table.vue";
+import filePreview from "@/components/Preview/filePreview.vue";
+
+export default {
+ name: 'viewWorkPermitDia',
+ // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+ components: { filePreview, limsTable },
+ data() {
+ // 杩欓噷瀛樻斁鏁版嵁
+ return {
+ filesDialogVisible: false,
+ tableLoading: false,
+ filesLookInfo: {},
+ columnData: [
+ {
+ label: '鏂囦欢鍚嶇О',
+ prop: 'fileName',
+ minWidth: '150px'
+ },
+ {
+ label: '鎸佹湁浜�',
+ prop: 'userName',
+ minWidth: '150px'
+ },
+ {
+ dataType: 'action',
+ minWidth: '100',
+ label: '鎿嶄綔',
+ fixed: 'right',
+ operation: [
+ {
+ name: '棰勮',
+ type: 'text',
+ clickFun: (row) => {
+ this.handleLook(row)
+ }
+ },
+ {
+ name: '涓嬭浇',
+ type: 'text',
+ clickFun: (row) => {
+ this.upload(row)
+ }
+ },
+ ]
+ }
+ ],
+ tableData: [],
+ info: {},
+ currentInfo: {},
+ lookDialogVisible: false,
+ };
+ },
+ mounted() {
+
+ },
+ // 鏂规硶闆嗗悎
+ methods: {
+ openDia(row) {
+ this.filesDialogVisible = true
+ this.info = row
+ this.tableData = this.info.workFileList
+ console.log('涓婂矖璇佽〃鏍兼暟鎹�', this.tableData);
+ },
+ closeFilesLook() {
+ this.filesDialogVisible = false
+ },
+ // 鏌ョ湅鏂囦欢
+ handleLook(row) {
+ this.currentInfo = row
+ this.lookDialogVisible = true
+ },
+ // 涓嬭浇
+ upload(row) {
+ let url = '';
+ if (row.type == 1) {
+ url = this.javaApi + '/img/' + row.fileUrl
+ this.$download.saveAs(url, row.fileName)
+ } else {
+ url = this.javaApi + '/word/' + row.fileUrl
+ this.$download.saveAs(url, row.fileName)
+ }
+ },
+ },
+};
+</script>
+
+<style scoped></style>
diff --git a/src/views/CNAS/process/method/methodVerification/index.vue b/src/views/CNAS/process/method/methodVerification/index.vue
new file mode 100644
index 0000000..d77392b
--- /dev/null
+++ b/src/views/CNAS/process/method/methodVerification/index.vue
@@ -0,0 +1,224 @@
+<template>
+ <div>
+ <div>
+ <div class="view-title">
+ <span>鏂规硶楠岃瘉</span>
+ <span>
+ <el-button size="medium" type="primary" @click="openFormDia('add')">鏂� 澧�</el-button>
+ </span>
+ </div>
+ <div class="search-background">
+ <span class="search-group">
+ <span style="width: 120px">鏍囧噯鏂规硶锛�</span>
+ <el-input v-model="searchForm.methodName" clearable size="small"></el-input>
+ </span>
+ <span class="search-group">
+ <el-button size="medium" @click="resetSearchForm">閲� 缃�</el-button>
+ <el-button size="medium" type="primary" @click="searchList">鏌� 璇�</el-button>
+ </span>
+ </div>
+ <div class="table">
+ <div>
+ <TableCard :showForm="false" :showTitle="false">
+ <template v-slot:table>
+ <limsTable :column="tableColumn" :height="'calc(100vh - 23em)'" :table-data="tableData"
+ :table-loading="tableLoading" style="padding: 0 15px;margin-bottom: 16px" :page="page"
+ @pagination="pagination1">
+ </limsTable>
+ </template>
+ </TableCard>
+ </div>
+ </div>
+ </div>
+ <formDIa v-if="formDIa" ref="formDIa" :operationType="operationType" @closeDia="closeDia"></formDIa>
+ </div>
+</template>
+
+<script>
+import limsTable from "@/components/Table/lims-table.vue";
+import TableCard from '@/components/TableCard/index.vue';
+import formDIa from './components/formDIa.vue';
+import {
+ pagesMethodVerify,
+ delMethodVerify,
+ exportMethodVerify,
+} from '@/api/cnas/process/method/methodVerification.js'
+export default {
+ name: 'a7-method-verification',
+ // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+ components: { TableCard, limsTable, formDIa },
+ data() {
+ // 杩欓噷瀛樻斁鏁版嵁
+ return {
+ searchForm: {
+ methodName: '',
+ operationType: 1,
+ },
+ options: [
+ { label: '涓婂崐骞�', value: '1' },
+ { label: '涓嬪崐骞�', value: '2' },
+ ],
+ tableColumn: [
+ {
+ label: '鏍囧噯鏂规硶',
+ prop: 'methodName',
+ minWidth: '100'
+ },
+ {
+ label: '楠岃瘉鍘熷洜',
+ prop: 'verifyReason',
+ minWidth: '100'
+ },
+ {
+ label: '涓昏鎶�鏈彉鍖�',
+ prop: 'technologyChange',
+ minWidth: '100'
+ },
+ {
+ dataType: 'action',
+ minWidth: '60',
+ label: '鎿嶄綔',
+ operation: [
+ {
+ name: '缂栬緫',
+ type: 'text',
+ clickFun: (row) => {
+ this.openFormDia('edit', row);
+ },
+ },
+ {
+ name: '瀵煎嚭',
+ type: 'text',
+ clickFun: (row) => {
+ this.downLoadPost(row);
+ },
+ },
+ {
+ name: '鍒犻櫎',
+ type: 'text',
+ color: '#f56c6c',
+ clickFun: (row) => {
+ this.deleteRow(row);
+ },
+ }
+
+ ]
+ }
+ ],
+ tableData: [],
+ tableLoading: false,
+ page: {
+ size: 20,
+ current: 1,
+ total: 0,
+ },
+ formDIa: false,
+ operationType: '',
+ };
+ },
+ mounted() {
+ this.searchList()
+ },
+ // 鏂规硶闆嗗悎
+ methods: {
+ // 鏌ヨ鍒楄〃
+ searchList() {
+ const entity = {
+ methodName: this.searchForm.methodName,
+ operationType: this.searchForm.operationType,
+ }
+ const page = this.page
+ this.tableLoading = true
+ pagesMethodVerify({ ...entity, ...page }).then(res => {
+ this.tableLoading = false
+ if (res.code === 201) return
+ this.tableData = res.data.records
+ this.page.total = res.data.total
+ }).catch(err => {
+ console.log('err---', err);
+ this.tableLoading = false
+ })
+ },
+ // 鍒犻櫎
+ deleteRow(row) {
+ this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ this.tableLoading = true
+ delMethodVerify({ methodVerifyId: row.methodVerifyId }).then(res => {
+ this.tableLoading = false
+ if (res.code === 201) return
+ this.$message.success('鍒犻櫎鎴愬姛')
+ this.searchList()
+ }).catch(err => {
+ this.tableLoading = false
+ console.log('err---', err);
+ })
+ })
+ },
+ // 閲嶇疆鏌ヨ鏉′欢
+ resetSearchForm() {
+ this.searchForm.methodName = '';
+ this.searchList()
+ },
+ openFormDia(type, row) {
+ this.formDIa = true
+ this.operationType = type
+ this.$nextTick(() => {
+ this.$refs.formDIa.openDia(row)
+ })
+ },
+ // 瀵煎嚭
+ downLoadPost(row) {
+ exportMethodVerify({ methodVerifyId: row.methodVerifyId }).then(res => {
+ this.outLoading = false
+ const blob = new Blob([res], { type: 'application/msword' });
+ this.$download.saveAs(blob, '鏍囧噯锛堟柟娉曪級纭璁板綍.docx')
+ })
+ },
+ // 鍏抽棴寮规
+ closeDia() {
+ this.formDIa = false
+ this.searchList()
+ },
+ // 鍒嗛〉
+ pagination({ page, limit }) {
+ this.page.current = page;
+ this.page.size = limit;
+ this.searchList();
+ },
+ }
+};
+</script>
+
+<style scoped>
+.view-title {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ height: 60px;
+ padding-left: 20px;
+}
+
+.search-background {
+ width: 100%;
+ height: 80px;
+ line-height: 80px;
+ background-color: #ffffff;
+ display: flex;
+}
+
+.search-group {
+ display: flex;
+ align-items: center;
+ margin: 0 20px;
+}
+
+.table {
+ margin-top: 20px;
+ background-color: #ffffff;
+ padding-top: 20px;
+}
+</style>
diff --git a/src/views/CNAS/process/method/standardMethodsChange/components/formDIaChange.vue b/src/views/CNAS/process/method/standardMethodsChange/components/formDIaChange.vue
new file mode 100644
index 0000000..9c7c380
--- /dev/null
+++ b/src/views/CNAS/process/method/standardMethodsChange/components/formDIaChange.vue
@@ -0,0 +1,472 @@
+<template>
+ <div>
+ <el-dialog :close-on-click-modal="false" :close-on-press-escape="false"
+ :title="operationType === 'edit' ? '缂栬緫' : '鏂板'" :visible.sync="formDia" width="90%" @close="closeDia">
+ <div v-if="operationType === 'edit'" style="text-align: right">
+ <el-button :disabled="form.confirmDate !== '' && form.confirmDate !== null && form.confirmDate !== undefined"
+ size="medium" type="primary" @click="validation">楠岃瘉纭</el-button>
+ </div>
+ <table border="1" cellspacing="10" class="tables">
+ <tr>
+ <td>
+ <p>鏍囧噯鏂规硶</p>
+ </td>
+ <td>
+ <p>楠岃瘉鍘熷洜</p>
+ </td>
+ <td>
+ <p>涓昏鎶�鏈彉鍖�</p>
+ </td>
+ <td>
+ <p>娑夊強鏂归潰</p>
+ </td>
+ <td>
+ <p>鏍囧噯瑕佹眰</p>
+ </td>
+ <td>
+ <p>鍑嗗鎯呭喌</p>
+ </td>
+ <td>
+ <p>鏄惁婊¤冻</p>
+ </td>
+ <td>
+ <p>澶囨敞</p>
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="9">
+ <el-input v-model="form.methodName" :disabled="form.confirmDate" :rows="6" placeholder="璇疯緭鍏ュ唴瀹�" size="small"
+ type="textarea">
+ </el-input>
+ </td>
+ <td rowspan="9">
+ <el-input v-model="form.verifyReason" :disabled="form.confirmDate" :rows="6" placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small" type="textarea">
+ </el-input>
+ </td>
+ <td rowspan="9">
+ <el-input v-model="form.technologyChange" :disabled="form.confirmDate" :rows="6" placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small" type="textarea">
+ </el-input>
+ </td>
+ </tr>
+ <tr>
+ <td>浜猴細</td>
+ <td>
+ <el-input v-model="form.personRequirements" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-input v-model="form.personReadiness" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-radio-group v-model="form.personIsSatisfied" v-removeAriaHidden :disabled="form.confirmDate">
+ <el-radio :label="0">鍚�</el-radio>
+ <el-radio :label="1">鏄�</el-radio>
+ </el-radio-group>
+ </td>
+ <td>
+ <el-link type="primary" @click="viewWorkPermit">鏌ョ湅涓婂矖璇�</el-link>
+ </td>
+ </tr>
+ <tr>
+ <td>鏈猴細</td>
+ <td>
+ <el-input v-model="form.machineRequirements" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-input v-model="form.machineReadiness" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-radio-group v-model="form.machineIsSatisfied" v-removeAriaHidden :disabled="form.confirmDate">
+ <el-radio :label="0">鍚�</el-radio>
+ <el-radio :label="1">鏄�</el-radio>
+ </el-radio-group>
+ </td>
+ <td>
+ <el-link type="primary" @click="viewDevice">鏌ョ湅璁惧</el-link>
+ </td>
+ </tr>
+ <tr>
+ <td>鏂欙細</td>
+ <td>
+ <el-input v-model="form.materialRequirements" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-input v-model="form.materialReadiness" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-radio-group v-model="form.materialIsSatisfied" v-removeAriaHidden :disabled="form.confirmDate">
+ <el-radio :label="0">鍚�</el-radio>
+ <el-radio :label="1">鏄�</el-radio>
+ </el-radio-group>
+ </td>
+ <td>
+ <el-input v-model="form.materialRemark" :disabled="form.confirmDate" size="small"></el-input>
+ </td>
+ </tr>
+ <tr>
+ <td>娉曪細</td>
+ <td>
+ <el-input v-model="form.methodRequirements" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-input v-model="form.methodReadiness" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-radio-group v-model="form.methodIsSatisfied" v-removeAriaHidden :disabled="form.confirmDate">
+ <el-radio :label="0">鍚�</el-radio>
+ <el-radio :label="1">鏄�</el-radio>
+ </el-radio-group>
+ </td>
+ <td>
+ <el-link type="primary" @click="viewTestRecord">鏌ョ湅妫�娴嬭褰�</el-link>
+ </td>
+ </tr>
+ <tr>
+ <td>鐜細</td>
+ <td>
+ <el-input v-model="form.environmentRequirements" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-input v-model="form.environmentReadiness" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-radio-group v-model="form.environmentIsSatisfied" v-removeAriaHidden :disabled="form.confirmDate">
+ <el-radio :label="0">鍚�</el-radio>
+ <el-radio :label="1">鏄�</el-radio>
+ </el-radio-group>
+ </td>
+ <td>
+ <el-input v-model="form.traceabilityRemark" :disabled="form.confirmDate" size="small"></el-input>
+ </td>
+ </tr>
+ <tr>
+ <td>娴嬮噺婧簮鎬э細</td>
+ <td>
+ <el-input v-model="form.traceabilityRequirements" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-input v-model="form.traceabilityReadiness" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-radio-group v-model="form.traceabilityIsSatisfied" v-removeAriaHidden :disabled="form.confirmDate">
+ <el-radio :label="0">鍚�</el-radio>
+ <el-radio :label="1">鏄�</el-radio>
+ </el-radio-group>
+ </td>
+ <td>
+ <el-link type="primary" @click="viewCalibrationsFileDia">鏌ョ湅鏍″噯璇佷功</el-link>
+ </td>
+ </tr>
+ <tr>
+ <td>鏍峰搧绠$悊闇�姹傦細</td>
+ <td>
+ <el-input v-model="form.managementRequirements" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-input v-model="form.managementReadiness" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-radio-group v-model="form.managementIsSatisfied" v-removeAriaHidden :disabled="form.confirmDate">
+ <el-radio :label="0">鍚�</el-radio>
+ <el-radio :label="1">鏄�</el-radio>
+ </el-radio-group>
+ </td>
+ <td>
+ <el-input v-model="form.managementRemark" :disabled="form.confirmDate" size="small"></el-input>
+ </td>
+ </tr>
+ <tr>
+ <td>鍏朵粬锛�</td>
+ <td>
+ <el-input v-model="form.otherRequirements" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-input v-model="form.otherReadiness" :disabled="form.confirmDate" size="small"
+ type="textarea"></el-input>
+ </td>
+ <td>
+ <el-radio-group v-model="form.otherIsSatisfied" v-removeAriaHidden :disabled="form.confirmDate">
+ <el-radio :label="0">鍚�</el-radio>
+ <el-radio :label="1">鏄�</el-radio>
+ </el-radio-group>
+ </td>
+ <td>
+ <el-input v-model="form.otherRemark" :disabled="form.confirmDate" size="small"></el-input>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="3">
+ <p>鏄惁寮曠敤姝ゆ爣鍑嗗紑灞曟娴�:</p>
+ </td>
+ <td colspan="3">鍙互寮曠敤姝ゆ爣鍑嗗紑灞曟娴�</td>
+ <td>
+ <p>纭鏃堕棿:</p>
+ </td>
+ <td>{{ form.confirmDate }}</td>
+ </tr>
+ <tr>
+ <td colspan="3">
+ <p>鍙傚姞纭浜虹鍚�:</p>
+ </td>
+ <td colspan="5">
+ <el-select v-model="form.confirmUser" :disabled="form.confirmDate" multiple placeholder="璇烽�夋嫨" size="small"
+ style="width: 100%">
+ <el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id"></el-option>
+ </el-select>
+ </td>
+ </tr>
+ </table>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="closeDia">鍙� 娑�</el-button>
+ <el-button :loading="editLoad" type="primary" @click="handleEdit">鎻� 浜�</el-button>
+ </span>
+ </el-dialog>
+ <ViewDeviceDialog v-if="viewDeviceDialog" ref="viewDeviceDialog" :notAllowEdit="notAllowEdit"
+ @closDeviceDia="closDeviceDia" @handleDeviceInfo="handleDeviceInfo"></ViewDeviceDialog>
+ <ViewTestRecord v-if="viewTestRecordDialog" ref="viewTestRecordDialog" :notAllowEdit="notAllowEdit">
+ </ViewTestRecord>
+ <ViewWorkPermitDia v-if="viewWorkPermitDia" ref="viewWorkPermitDia"></ViewWorkPermitDia>
+ <calibrations-file-dia v-if="calibrationsFileDia" ref="calibrationsFileDia"></calibrations-file-dia>
+ </div>
+</template>
+
+<script>
+import { dateFormat } from '@/utils/date'
+import ViewTestRecord from '../../methodVerification/components/ViewTestRecord.vue';
+import ViewDeviceDialog from '../../methodVerification/components/ViewDeviceDialog.vue';
+import ViewWorkPermitDia from '../../methodVerification/components/viewWorkPermitDia.vue';
+import CalibrationsFileDia from '../../methodVerification/components/calibrationsFileDia.vue';
+import {
+ getMethodVerifyOne,
+ updateMethodVerify,
+ addMethodVerify,
+ methodVerifyAffirm,
+} from '@/api/cnas/process/method/standardMethodsChange.js'
+import { selectUserCondition } from "@/api/system/user";
+export default {
+ name: 'formDIaChange',
+ // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+ components: { CalibrationsFileDia, ViewWorkPermitDia, ViewDeviceDialog, ViewTestRecord },
+ props: {
+ operationType: {
+ type: String,
+ default: () => ''
+ }
+ },
+ data() {
+ // 杩欓噷瀛樻斁鏁版嵁
+ return {
+ formDia: false,
+ form: {
+ methodName: '',
+ verifyReason: '',
+ technologyChange: '',
+ personRequirements: '',
+ personReadiness: '',
+ personIsSatisfied: '',
+ personRemark: '',
+ machineRequirements: '',
+ machineReadiness: '',
+ machineIsSatisfied: '',
+ materialRequirements: '',
+ materialReadiness: '',
+ materialIsSatisfied: '',
+ materialRemark: '',
+ methodRequirements: '',
+ methodReadiness: '',
+ methodIsSatisfied: '',
+ environmentRequirements: '',
+ environmentReadiness: '',
+ environmentIsSatisfied: '',
+ traceabilityRequirements: '',
+ traceabilityReadiness: '',
+ traceabilityIsSatisfied: '',
+ traceabilityRemark: '',
+ managementRequirements: '',
+ managementReadiness: '',
+ managementIsSatisfied: '',
+ managementRemark: '',
+ otherRequirements: '',
+ otherReadiness: '',
+ otherIsSatisfied: '',
+ otherRemark: '',
+ machineAttachmentList: []
+ },
+ editLoad: false,
+ info: {
+ methodVerifyId: ''
+ },
+ userList: [],
+ viewDeviceDialog: false,
+ viewTestRecordDialog: false,
+ viewWorkPermitDia: false,
+ calibrationsFileDia: false,
+ notAllowEdit: false,
+ };
+ },
+ // 鏂规硶闆嗗悎
+ methods: {
+ openDia(row) {
+ this.formDia = true
+ this.info = row
+ this.getUserList()
+ if (this.operationType === 'edit') {
+ this.searchInfo(row)
+ }
+ },
+ // 鏌ヨ璇︽儏淇℃伅
+ searchInfo(row) {
+ getMethodVerifyOne({ methodVerifyId: row.methodVerifyId }).then(res => {
+ if (res.code === 201) return
+ this.form = { ...res.data }
+ if (this.form.confirmUser) {
+ this.form.confirmUser = this.form.confirmUser.split(',').map(Number)
+ }
+ }).catch(err => {
+ console.log('err---', err);
+ })
+ },
+ // 鎻愪氦
+ handleEdit() {
+ this.editLoad = true
+ const processMethodSearchNews = this.HaveJson(this.form)
+ processMethodSearchNews.confirmUser = processMethodSearchNews.confirmUser && processMethodSearchNews.confirmUser.join(',')
+ processMethodSearchNews.operationType = 0
+ if (this.operationType === 'edit') {
+ this.editInfo(processMethodSearchNews)
+ } else {
+ this.addInfo(processMethodSearchNews)
+ }
+ },
+ // 鏌ョ湅涓婂矖璇�
+ viewWorkPermit() {
+ this.viewWorkPermitDia = true
+ this.$nextTick(() => {
+ console.log('涓婂矖璇�', this.form);
+ this.$refs.viewWorkPermitDia.openDia(this.form)
+ })
+ },
+ // 鏌ョ湅鏍″噯璇佷功
+ viewCalibrationsFileDia() {
+ this.calibrationsFileDia = true
+ this.$nextTick(() => {
+ this.$refs.calibrationsFileDia.openDia(this.form)
+ })
+ },
+ // 鏌ョ湅璁惧
+ viewDevice() {
+ this.viewDeviceDialog = true
+ this.$nextTick(() => {
+ this.notAllowEdit = !!this.form.confirmDate;
+ this.$refs.viewDeviceDialog.openDia(this.form)
+ })
+ },
+ // 鍏抽棴璁惧寮规
+ closDeviceDia() {
+ this.viewDeviceDialog = false
+ },
+ // 鎻愪氦璁惧淇℃伅
+ handleDeviceInfo(machineAttachmentList) {
+ this.viewDeviceDialog = false
+ this.form.machineAttachmentList = machineAttachmentList
+ },
+ // 鏌ョ湅妫�娴嬭褰�
+ viewTestRecord() {
+ this.viewTestRecordDialog = true
+ this.$nextTick(() => {
+ this.notAllowEdit = !!this.form.confirmDate;
+ this.$refs.viewTestRecordDialog.openDia(this.info)
+ })
+ },
+ // 鎻愪氦缂栬緫
+ editInfo(processMethodSearchNews) {
+ updateMethodVerify(processMethodSearchNews).then(res => {
+ this.editLoad = false
+ if (res.code === 201) return
+ this.$message.success('鎿嶄綔鎴愬姛')
+ this.closeDia()
+ }).catch(err => {
+ console.log('err---', err);
+ this.editLoad = false
+ })
+ },
+ // 鎻愪氦鏂板
+ addInfo(processMethodSearchNews) {
+ addMethodVerify(processMethodSearchNews).then(res => {
+ this.editLoad = false
+ if (res.code === 201) return
+ this.$message.success('鎿嶄綔鎴愬姛')
+ this.closeDia()
+ }).catch(err => {
+ console.log('err---', err);
+ this.editLoad = false
+ })
+ },
+ // 楠岃瘉纭
+ validation() {
+ methodVerifyAffirm({ methodVerifyId: this.info.methodVerifyId }).then(res => {
+ if (res.code === 201) return
+ this.form.confirmDate = dateFormat(new Date())
+ }).catch(err => {
+ console.log('err---', err);
+ })
+ },
+ // 鍏抽棴寮规
+ closeDia() {
+ this.formDia = false
+ this.$emit('closeDia');
+ },
+ getUserList() {
+ selectUserCondition().then(res => {
+ if (res.code === 201) {
+ return
+ }
+ this.userList = res.data
+ })
+ },
+ }
+};
+</script>
+
+<style scoped>
+>>>.el-dialog {
+ margin-top: 2vh !important;
+}
+
+>>>.el-dialog__body {
+ max-height: 720px;
+ overflow-y: auto;
+}
+
+.tables {
+ table-layout: fixed;
+ width: 100%;
+ margin-top: 10px;
+}
+
+.tables td {
+ height: 34px;
+ width: 100px;
+ text-align: center;
+ font-size: 14px;
+ word-wrap: break-word;
+ white-space: normal;
+ padding: 4px;
+}
+</style>
diff --git a/src/views/CNAS/process/method/standardMethodsChange/index.vue b/src/views/CNAS/process/method/standardMethodsChange/index.vue
new file mode 100644
index 0000000..c0e981c
--- /dev/null
+++ b/src/views/CNAS/process/method/standardMethodsChange/index.vue
@@ -0,0 +1,224 @@
+<template>
+ <div>
+ <div>
+ <div class="view-title">
+ <span>鏍囧噯鏂规硶鐨勫彉鏇�</span>
+ <span>
+ <el-button size="medium" type="primary" @click="openFormDia('add')">鏂� 澧�</el-button>
+ </span>
+ </div>
+ <div class="search-background">
+ <span class="search-group">
+ <span style="width: 120px">鏍囧噯鏂规硶锛�</span>
+ <el-input v-model="searchForm.methodName" clearable size="small"></el-input>
+ </span>
+ <span class="search-group">
+ <el-button size="medium" @click="resetSearchForm">閲� 缃�</el-button>
+ <el-button size="medium" type="primary" @click="searchList">鏌� 璇�</el-button>
+ </span>
+ </div>
+ <div class="table">
+ <div>
+ <TableCard :showForm="false" :showTitle="false">
+ <template v-slot:table>
+ <limsTable :column="tableColumn" :height="'calc(100vh - 23em)'" :table-data="tableData"
+ :table-loading="tableLoading" style="padding: 0 15px;margin-bottom: 16px" :page="page"
+ @pagination="pagination">
+ </limsTable>
+ </template>
+ </TableCard>
+ </div>
+ </div>
+ </div>
+ <formDIaChange v-if="formDIa" ref="formDIa" :operationType="operationType" @closeDia="closeDia"></formDIaChange>
+ </div>
+</template>
+
+<script>
+import limsTable from "@/components/Table/lims-table.vue";
+import TableCard from '@/components/TableCard/index.vue';
+import formDIaChange from './components/formDIaChange.vue';
+import {
+ pagesMethodVerify,
+ delMethodVerify,
+ exportMethodVerify,
+} from '@/api/cnas/process/method/standardMethodsChange.js'
+export default {
+ name: 'a7-changes-standard-methods',
+ // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+ components: { formDIaChange, TableCard, limsTable },
+ data() {
+ // 杩欓噷瀛樻斁鏁版嵁
+ return {
+ searchForm: {
+ methodName: '',
+ operationType: 0,
+ },
+ options: [
+ { label: '涓婂崐骞�', value: '1' },
+ { label: '涓嬪崐骞�', value: '2' },
+ ],
+ tableColumn: [
+ {
+ label: '鏍囧噯鏂规硶',
+ prop: 'methodName',
+ minWidth: '100'
+ },
+ {
+ label: '楠岃瘉鍘熷洜',
+ prop: 'verifyReason',
+ minWidth: '100'
+ },
+ {
+ label: '涓昏鎶�鏈彉鍖�',
+ prop: 'technologyChange',
+ minWidth: '100'
+ },
+ {
+ dataType: 'action',
+ minWidth: '60',
+ label: '鎿嶄綔',
+ operation: [
+ {
+ name: '缂栬緫',
+ type: 'text',
+ clickFun: (row) => {
+ this.openFormDia('edit', row);
+ },
+ },
+ {
+ name: '瀵煎嚭',
+ type: 'text',
+ clickFun: (row) => {
+ this.downLoadPost(row);
+ },
+ },
+ {
+ name: '鍒犻櫎',
+ type: 'text',
+ color: '#f56c6c',
+ clickFun: (row) => {
+ this.deleteRow(row);
+ },
+ }
+
+ ]
+ }
+ ],
+ tableData: [],
+ tableLoading: false,
+ page: {
+ size: 20,
+ current: 1,
+ total: 0,
+ },
+ formDIa: false,
+ operationType: '',
+ };
+ },
+ mounted() {
+ this.searchList()
+ },
+ // 鏂规硶闆嗗悎
+ methods: {
+ // 鏌ヨ鍒楄〃
+ searchList() {
+ const entity = {
+ methodName: this.searchForm.methodName,
+ operationType: this.searchForm.operationType,
+ }
+ const page = this.page
+ this.tableLoading = true
+ pagesMethodVerify({ ...entity, ...page }).then(res => {
+ this.tableLoading = false
+ if (res.code === 201) return
+ this.tableData = res.data.records
+ this.page.total = res.data.total
+ }).catch(err => {
+ console.log('err---', err);
+ this.tableLoading = false
+ })
+ },
+ // 鍒犻櫎
+ deleteRow(row) {
+ this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ this.tableLoading = true
+ delMethodVerify({ methodVerifyId: row.methodVerifyId }).then(res => {
+ this.tableLoading = false
+ if (res.code === 201) return
+ this.$message.success('鍒犻櫎鎴愬姛')
+ this.searchList()
+ }).catch(err => {
+ this.tableLoading = false
+ console.log('err---', err);
+ })
+ })
+ },
+ // 閲嶇疆鏌ヨ鏉′欢
+ resetSearchForm() {
+ this.searchForm.methodName = '';
+ this.searchList()
+ },
+ openFormDia(type, row) {
+ this.formDIa = true
+ this.operationType = type
+ this.$nextTick(() => {
+ this.$refs.formDIa.openDia(row)
+ })
+ },
+ // 鍏抽棴寮规
+ closeDia() {
+ this.formDIa = false
+ this.searchList()
+ },
+ // 瀵煎嚭
+ downLoadPost(row) {
+ exportMethodVerify({ methodVerifyId: row.methodVerifyId }).then(res => {
+ this.outLoading = false
+ const blob = new Blob([res], { type: 'application/msword' });
+ this.$download.saveAs(blob, '鏍囧噯锛堟柟娉曪級纭璁板綍.docx')
+ })
+ },
+ // 鍒嗛〉
+ pagination({ page, limit }) {
+ this.page.current = page;
+ this.page.size = limit;
+ this.searchList();
+ },
+ }
+};
+</script>
+
+<style scoped>
+.view-title {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ height: 60px;
+ padding-left: 20px;
+}
+
+.search-background {
+ width: 100%;
+ height: 80px;
+ line-height: 80px;
+ background-color: #ffffff;
+ display: flex;
+}
+
+.search-group {
+ display: flex;
+ align-items: center;
+ margin: 0 20px;
+}
+
+.table {
+ margin-top: 20px;
+ background-color: #ffffff;
+ padding-top: 20px;
+}
+</style>
diff --git a/src/views/CNAS/process/method/standardNoveltyRetrieval/components/EditFormDia.vue b/src/views/CNAS/process/method/standardNoveltyRetrieval/components/EditFormDia.vue
new file mode 100644
index 0000000..937654d
--- /dev/null
+++ b/src/views/CNAS/process/method/standardNoveltyRetrieval/components/EditFormDia.vue
@@ -0,0 +1,146 @@
+<template>
+ <div>
+ <el-dialog :visible.sync="formDia" title="缂栬緫" width="80%" @close="closeDia">
+ <el-form ref="form" :model="form" :rules="formRules" label-width="auto">
+ <el-col :span="8">
+ <el-form-item label="鏍囧噯鍚嶇О锛�" prop="methodName">
+ <el-input v-model="form.methodName" size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="鏍囧噯鍙凤細" prop="standardNo">
+ <el-input v-model="form.standardNo" size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="鏂囦欢缂栧彿锛�" prop="fileNo">
+ <el-input v-model="form.fileNo" size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="鏄惁鏄柊鏍囧噯锛�" prop="isNewStandard">
+ <el-radio-group v-model="form.isNewStandard">
+ <el-radio :label="0">鍚�</el-radio>
+ <el-radio :label="1">鏄�</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="鏌ユ柊璁板綍鏉ユ簮锛�" prop="searchNewSource">
+ <el-radio-group v-model="form.searchNewSource">
+ <el-radio :label="0">鏍囧噯缃�</el-radio>
+ <el-radio :label="1">濮旀墭鎯呮姤</el-radio>
+ <el-radio :label="2">鏍囧噯鏁�</el-radio>
+ <el-radio :label="3">鍏朵粬</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="澶囨敞锛�" prop="remark">
+ <el-select v-model="form.remark" clearable size="small">
+ <el-option :value="0" label="浣滃簾"></el-option>
+ <el-option :value="1" label="鏇挎崲"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col v-if="form.isNewStandard == 1" :span="8">
+ <el-form-item label="鏂版爣鍑嗗悕绉帮細" prop="newMethodName">
+ <el-input v-model="form.newMethodName" size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col v-if="form.isNewStandard == 1" :span="8">
+ <el-form-item label="鏂版爣鍑嗗彿锛�" prop="newStandardNo">
+ <el-input v-model="form.newStandardNo" size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="closeDia">鍙� 娑�</el-button>
+ <el-button :loading="editLoad" type="primary" @click="handleEdit">鎻� 浜�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import {
+ updateMethodSearchNew,
+} from '@/api/cnas/process/method/standardNoveltyRetrieval.js'
+export default {
+ name: 'FormDialog',
+ // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+ components: {},
+ data() {
+ // 杩欓噷瀛樻斁鏁版嵁
+ return {
+ formDia: false,
+ form: {
+ methodName: '',
+ standardNo: '',
+ isNewStandard: '',
+ newMethodName: '',
+ newStandardNo: '',
+ searchNewSource: '',
+ remark: '',
+ fileNo: '',
+ },
+ formRules: {
+ methodName: [{ required: true, message: '璇峰~鍐欐爣鍑嗗悕绉�', trigger: 'blur' }],
+ standardNo: [{ required: true, message: '璇峰~鍐欐爣鍑嗗彿', trigger: 'blur' }],
+ isNewStandard: [{ required: true, message: '璇烽�夋嫨鏄惁鏄柊鏍囧噯', trigger: 'change' }],
+ newMethodName: [{ required: true, message: '璇峰~鍐欐柊鏍囧噯鍚嶇О', trigger: 'blur' }],
+ newStandardNo: [{ required: true, message: '璇峰~鍐欐柊鏍囧噯鍙�', trigger: 'blur' }],
+ searchNewSource: [{ required: true, message: '璇烽�夋嫨鏌ユ柊璁板綍鏉ユ簮', trigger: 'change' }],
+ fileNo: [{ required: true, message: '璇峰~鍐欐枃浠跺彿', trigger: 'blur' }],
+ },
+ editLoad: false,
+ info: {},
+ };
+ },
+ // 鏂规硶闆嗗悎
+ methods: {
+ openDia(row) {
+ this.formDia = true
+ this.form = { ...row }
+ },
+ handleEdit() {
+ this.$refs['form'].validate((valid) => {
+ if (valid) {
+ this.editLoad = true
+ const processMethodSearchNews = this.HaveJson(this.form)
+ delete processMethodSearchNews.createTime
+ updateMethodSearchNew(processMethodSearchNews).then(res => {
+ this.editLoad = false
+ if (res.code === 201) return
+ this.$message.success('鎿嶄綔鎴愬姛')
+ this.closeDia()
+ }).catch(err => {
+ console.log('err---', err);
+ this.editLoad = false
+ })
+ } else {
+ console.log('error submit!!');
+ return false;
+ }
+ });
+ },
+ closeDia() {
+ this.$refs.form.resetFields();
+ this.formDia = false
+ this.$emit('closeEditDia');
+ },
+ }
+};
+</script>
+
+<style scoped>
+.form-info {
+ display: inline-block;
+ max-height: 600px;
+ overflow-y: auto;
+}
+
+>>>.el-dialog {
+ margin: 6vh auto 50px !important;
+}
+</style>
diff --git a/src/views/CNAS/process/method/standardNoveltyRetrieval/components/FormDialog.vue b/src/views/CNAS/process/method/standardNoveltyRetrieval/components/FormDialog.vue
new file mode 100644
index 0000000..31b951c
--- /dev/null
+++ b/src/views/CNAS/process/method/standardNoveltyRetrieval/components/FormDialog.vue
@@ -0,0 +1,138 @@
+<template>
+ <div>
+ <el-dialog :visible.sync="formDia" title="鏂板" width="80%" @close="closeDia">
+ <el-form ref="form" :model="form" :rules="formRules" label-width="auto">
+ <el-button size="small" type="primary" @click="addBtn">娣诲姞涓�鏉�</el-button>
+ <div class="form-info">
+ <div v-for="(items, index) in form.taskRel" :key="index">
+ <el-col :span="12">
+ <el-form-item :prop="`taskRel.${index}.newMethodName`"
+ :rules="{ required: true, message: '璇峰~鍐欐爣鍑嗗悕绉�', trigger: 'blur', }" label="鏂版爣鍑嗗悕绉帮細">
+ <el-input v-model="items.newMethodName" size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item :prop="`taskRel.${index}.newStandardNo`"
+ :rules="{ required: true, message: '璇峰~鍐欐爣鍑嗗彿', trigger: 'blur', }" label="鏂版爣鍑嗗彿锛�">
+ <el-input v-model="items.newStandardNo" size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item :prop="`taskRel.${index}.searchNewSource`"
+ :rules="{ required: true, message: '璇烽�夋嫨鏌ユ柊璁板綍鏉ユ簮', trigger: 'change', }" label="鏌ユ柊璁板綍鏉ユ簮锛�">
+ <el-radio-group v-model="items.searchNewSource">
+ <el-radio :label="0">鏍囧噯缃�</el-radio>
+ <el-radio :label="1">濮旀墭鎯呮姤</el-radio>
+ <el-radio :label="2">鏍囧噯鏁�</el-radio>
+ <el-radio :label="3">鍏朵粬</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item :prop="`taskRel.${index}.remark`"
+ :rules="{ required: false, message: '璇烽�夋嫨澶囨敞', trigger: 'change', }" label="澶囨敞锛�">
+ <el-select v-model="items.remark" :prop="`taskRel.${index}.remark`"
+ :rules="{ required: false, message: '璇烽�夋嫨澶囨敞', trigger: 'change', }" clearable size="small">
+ <el-option :value="0" label="浣滃簾"></el-option>
+ <el-option :value="1" label="鏇挎崲"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="4">
+ <el-button v-if="index !== 0" circle icon="el-icon-delete" size="small" type="danger"
+ @click="deleteHeaderRow(index)"></el-button>
+ </el-col>
+ <el-col :span="24">
+ <el-divider></el-divider>
+ </el-col>
+ </div>
+ </div>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="closeDia">鍙� 娑�</el-button>
+ <el-button :loading="editLoad" type="primary" @click="handleEdit">鎻� 浜�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import {
+ addMethodSearchNew,
+} from '@/api/cnas/process/method/standardNoveltyRetrieval.js'
+export default {
+ name: 'FormDialog',
+ // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+ components: {},
+ data() {
+ // 杩欓噷瀛樻斁鏁版嵁
+ return {
+ formDia: false,
+ form: {
+ taskRel: [
+ {
+ newMethodName: '',
+ newStandardNo: '',
+ searchNewSource: '',
+ remark: '',
+ }
+ ]
+ },
+ formRules: {},
+ editLoad: false,
+ info: {},
+ };
+ },
+ // 鏂规硶闆嗗悎
+ methods: {
+ openDia(row) {
+ this.formDia = true
+ },
+ // 娣诲姞涓�鏉�
+ addBtn() {
+ this.form.taskRel.push({ newMethodName: '', newStandardNo: '', searchNewSource: '', remark: '' });
+ },
+ // 鍒犻櫎涓�鏉�
+ deleteHeaderRow(index) {
+ this.form.taskRel.splice(index, 1);
+ },
+ handleEdit() {
+ this.$refs['form'].validate((valid) => {
+ if (valid) {
+ this.editLoad = true
+ const processMethodSearchNews = this.HaveJson(this.form.taskRel)
+ addMethodSearchNew(processMethodSearchNews).then(res => {
+ this.editLoad = false
+ if (res.code === 201) return
+ this.$message.success('鎿嶄綔鎴愬姛')
+ this.closeDia()
+ }).catch(err => {
+ console.log('err---', err);
+ this.editLoad = false
+ })
+ } else {
+ console.log('error submit!!');
+ return false;
+ }
+ });
+ },
+ closeDia() {
+ this.$refs.form.resetFields();
+ this.formDia = false
+ this.$emit('closeDia');
+ },
+ }
+};
+</script>
+
+<style scoped>
+.form-info {
+ display: inline-block;
+ max-height: 42em;
+ overflow-y: auto;
+}
+
+>>>.el-dialog {
+ margin: 6vh auto 50px !important;
+}
+</style>
diff --git a/src/views/CNAS/process/method/standardNoveltyRetrieval/index.vue b/src/views/CNAS/process/method/standardNoveltyRetrieval/index.vue
new file mode 100644
index 0000000..8aac11d
--- /dev/null
+++ b/src/views/CNAS/process/method/standardNoveltyRetrieval/index.vue
@@ -0,0 +1,640 @@
+<template>
+ <div>
+ <div>
+ <div class="view-title">
+ <span>鏍囧噯鏌ユ柊</span>
+ <span style="display: flex; align-items: center;">
+ <el-button size="medium" type="primary" @click="openHandleOut">瀵� 鍑�</el-button>
+ <el-upload ref='upload' :action="action" :before-upload="beforeUpload" :headers="uploadHeader"
+ :on-error="onError" :on-success="handleSuccessUp" :show-file-list="false"
+ accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'
+ style="display: inline-block; margin-left: 10px;">
+ <el-button :loading="upLoading" size="medium" type="primary">瀵煎叆</el-button>
+ </el-upload>
+ <el-button size="medium" style="margin-left: 10px;" type="primary" @click="openFormDia">鏂� 澧�</el-button>
+ </span>
+ </div>
+ <div class="search-background">
+ <span v-if="tabIndex == 1" class="search-group">
+ <span>骞翠唤锛�</span>
+ <el-date-picker v-model="searchForm.year" format="yyyy" placeholder="閫夋嫨骞�" type="year" value-format="yyyy">
+ </el-date-picker>
+ </span>
+ <span class="search-group">
+ <span>鏃堕棿锛�</span>
+ <el-select v-model="searchForm.date" clearable placeholder="璇烽�夋嫨">
+ <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
+ </el-option>
+ </el-select>
+ </span>
+ <span class="search-group">
+ <el-button size="medium" @click="resetSearchForm">閲� 缃�</el-button>
+ <el-button size="medium" type="primary" @click="searchList">鏌� 璇�</el-button>
+ </span>
+ </div>
+ <div class="table">
+ <div class="table-tab">
+ <el-radio-group v-model="tabIndex" @change="searchList">
+ <el-radio-button label="0">浠婂勾鏍囧噯璁板綍</el-radio-button>
+ <el-radio-button label="1">鍘嗗彶鏍囧噯璁板綍</el-radio-button>
+ </el-radio-group>
+ </div>
+ <div v-if="tabIndex === '0'">
+ <TableCard :showForm="false" :showTitle="false">
+ <template v-slot:table>
+ <limsTable :column="tableColumn" :height="'calc(100vh - 26em)'" :table-data="tableData"
+ :table-loading="tableLoading" style="padding: 0 15px;margin-bottom: 16px" :page="page"
+ @pagination="pagination">
+ </limsTable>
+ </template>
+ </TableCard>
+ <el-pagination :current-page="1" :page-size="page.size" :page-sizes="[10, 20, 30, 50, 100]" :total="total"
+ layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange"
+ @current-change="handleCurrentChange">
+ </el-pagination>
+ </div>
+ <div v-if="tabIndex === '1'">
+ <TableCard :showForm="false" :showTitle="false">
+ <template v-slot:table>
+ <limsTable :column="oldTableColumn" :height="'calc(100vh - 27em)'" :table-data="oldTableData"
+ :table-loading="oldTableLoading" style="padding: 0 15px;margin-bottom: 16px" :page="oldPage"
+ @pagination="oldPagination">
+ </limsTable>
+ </template>
+ </TableCard>
+ </div>
+ </div>
+ <el-dialog :visible.sync="ratifyDialog" title="瀵煎嚭" width="30%" @close="ratifyDialog = false">
+ <span>缂栧埗浜猴細
+ <el-select v-model="ratifyInfo.writeUserId" placeholder="璇烽�夋嫨" size="small" style="width: 100%">
+ <el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id"></el-option>
+ </el-select>
+ </span>
+ <span>缂栧埗鏃ユ湡锛�
+ <el-date-picker v-model="ratifyInfo.writeDate" format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡" size="small"
+ style="width:100%" type="date" value-format="yyyy-MM-dd">
+ </el-date-picker>
+ </span>
+ <span>鎵瑰噯浜猴細
+ <el-select v-model="ratifyInfo.ratifyUserId" placeholder="璇烽�夋嫨" size="small" style="width: 100%">
+ <el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id"></el-option>
+ </el-select>
+ </span>
+ <span>鎵瑰噯鏃ユ湡锛�
+ <el-date-picker v-model="ratifyInfo.ratifyDate" format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡" size="small"
+ style="width:100%" type="date" value-format="yyyy-MM-dd">
+ </el-date-picker>
+ </span>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="ratifyDialog = false">鍙� 娑�</el-button>
+ <el-button :loading="outLoading" type="primary" @click="handleOut">纭� 璁�</el-button>
+ </span>
+ </el-dialog>
+ <FormDialog v-if="formDialog" ref="formDialog" @closeDia="closeDia"></FormDialog>
+ <EditFormDia v-if="editFormDialog" ref="editFormDialog" @closeEditDia="closeEditDia"></EditFormDia>
+ </div>
+ </div>
+</template>
+
+<script>
+import limsTable from "@/components/Table/lims-table.vue";
+import TableCard from '@/components/TableCard/index.vue';
+import FormDialog from './components/FormDialog.vue';
+import EditFormDia from './components/EditFormDia.vue';
+import { selectUserCondition } from "@/api/system/user";
+import {
+ pageMethodSearchNew,
+ deleteById,
+ exportMethodSearchNew,
+} from '@/api/cnas/process/method/standardNoveltyRetrieval.js'
+export default {
+ name: 'a7-standard-novelty-retrieval',
+ // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+ components: { FormDialog, TableCard, limsTable, EditFormDia },
+ data() {
+ // 杩欓噷瀛樻斁鏁版嵁
+ return {
+ searchForm: {
+ year: '',
+ date: '',
+ },
+ options: [
+ { label: '涓婂崐骞�', value: '1' },
+ { label: '涓嬪崐骞�', value: '2' },
+ ],
+ tableColumn: [
+ {
+ label: '鏍囧噯鍚嶇О',
+ prop: 'methodName',
+ minWidth: '100'
+ },
+ {
+ label: '鏍囧噯鍙�',
+ prop: 'standardNo',
+ minWidth: '100'
+ },
+ {
+ label: '鏂囦欢缂栧彿',
+ prop: 'fileNo',
+ minWidth: '100'
+ },
+ {
+ dataType: 'tag',
+ label: '鏄惁鏄柊鏍囧噯',
+ prop: 'isNewStandard',
+ minWidth: '100',
+ formatData: (params) => {
+ if (params == 0) {
+ return '鍚�';
+ } else if (params == 1) {
+ return '鏄�';
+ } else {
+ return null
+ }
+ },
+ formatType: (params) => {
+ if (params == 0) {
+ return 'danger';
+ } else if (params == 1) {
+ return 'success';
+ } else {
+ return null
+ }
+ }
+ },
+ {
+ label: '鏂版爣鍑嗗悕绉�',
+ prop: 'newMethodName',
+ minWidth: '100'
+ },
+ {
+ label: '鏂版爣鍑嗗彿',
+ prop: 'newStandardNo',
+ minWidth: '100'
+ },
+ {
+ dataType: 'tag',
+ label: '鏌ヨ璁板綍鏉ユ簮',
+ prop: 'searchNewSource',
+ minWidth: '100',
+ formatData: (params) => {
+ if (params == 0) {
+ return '鏍囧噯缃�';
+ } else if (params == 1) {
+ return '濮旀墭鎯呮姤';
+ } else if (params == 2) {
+ return '鏍囧噯鏁�';
+ } else if (params == 3) {
+ return '鍏朵粬';
+ } else {
+ return null
+ }
+ },
+ formatType: (params) => {
+ if (params == 0) {
+ return 'success';
+ } else if (params == 1) {
+ return 'danger';
+ } else if (params == 2) {
+ return 'warning';
+ } else if (params == 3) {
+ return 'info';
+ } else {
+ return null
+ }
+ }
+ },
+ {
+ dataType: 'tag',
+ label: '澶囨敞',
+ prop: 'remark',
+ minWidth: '100',
+ formatData: (params) => {
+ if (params == 0) {
+ return '浣滃簾';
+ } else if (params == 1) {
+ return '鏇挎崲';
+ } else {
+ return null
+ }
+ },
+ formatType: (params) => {
+ if (params == 0) {
+ return 'danger';
+ } else if (params == 1) {
+ return 'success';
+ } else {
+ return null
+ }
+ }
+ },
+ {
+ label: '鍒涘缓鏃堕棿',
+ prop: 'createTime',
+ minWidth: '100'
+ },
+ {
+ dataType: 'action',
+ minWidth: '80',
+ label: '鎿嶄綔',
+ operation: [
+ {
+ name: '缂栬緫',
+ type: 'text',
+ clickFun: (row) => {
+ this.openEditFormDia(row);
+ },
+ },
+ {
+ name: '鍒犻櫎',
+ type: 'text',
+ color: '#f56c6c',
+ clickFun: (row) => {
+ this.delete(row)
+ },
+ }
+ ]
+ }
+ ],
+ tableData: [],
+ tableLoading: false,
+ page: {
+ size: 20,
+ current: 1,
+ total: 0,
+ },
+ total: 0,
+ oldTotal: 0,
+ oldPage: {
+ size: 20,
+ current: 1,
+ total: 0,
+ },
+ oldTableColumn: [
+ {
+ label: '鏍囧噯鍚嶇О',
+ prop: 'methodName',
+ minWidth: '100'
+ },
+ {
+ label: '鏍囧噯鍙�',
+ prop: 'standardNo',
+ minWidth: '100'
+ },
+ {
+ label: '鏂囦欢缂栧彿',
+ prop: 'fileNo',
+ minWidth: '100'
+ },
+ {
+ dataType: 'tag',
+ label: '鏄惁鏄柊鏍囧噯',
+ prop: 'isNewStandard',
+ minWidth: '100',
+ formatData: (params) => {
+ if (params == 0) {
+ return '鍚�';
+ } else if (params == 1) {
+ return '鏄�';
+ } else {
+ return null
+ }
+ },
+ formatType: (params) => {
+ if (params == 0) {
+ return 'danger';
+ } else if (params == 1) {
+ return 'success';
+ } else {
+ return null
+ }
+ }
+ },
+ {
+ label: '鏂版爣鍑嗗悕绉�',
+ prop: 'newMethodName',
+ minWidth: '100'
+ },
+ {
+ label: '鏂版爣鍑嗗彿',
+ prop: 'newStandardNo',
+ minWidth: '100'
+ },
+ {
+ dataType: 'tag',
+ label: '鏌ヨ璁板綍鏉ユ簮',
+ prop: 'searchNewSource',
+ minWidth: '100',
+ formatData: (params) => {
+ if (params == 0) {
+ return '鏍囧噯缃�';
+ } else if (params == 1) {
+ return '濮旀墭鎯呮姤';
+ } else if (params == 2) {
+ return '鏍囧噯鏁�';
+ } else if (params == 3) {
+ return '鍏朵粬';
+ } else {
+ return null
+ }
+ },
+ formatType: (params) => {
+ if (params == 0) {
+ return 'success';
+ } else if (params == 1) {
+ return 'danger';
+ } else if (params == 2) {
+ return 'warning';
+ } else if (params == 3) {
+ return 'info';
+ } else {
+ return null
+ }
+ }
+ },
+ {
+ dataType: 'tag',
+ label: '澶囨敞',
+ prop: 'remark',
+ minWidth: '100',
+ formatData: (params) => {
+ if (params == 0) {
+ return '浣滃簾';
+ } else if (params == 1) {
+ return '鏇挎崲';
+ } else {
+ return null
+ }
+ },
+ formatType: (params) => {
+ if (params == 0) {
+ return 'danger';
+ } else if (params == 1) {
+ return 'success';
+ } else {
+ return null
+ }
+ }
+ },
+ {
+ label: '鍒涘缓鏃堕棿',
+ prop: 'createTime',
+ minWidth: '100'
+ },
+ ],
+ oldTableData: [],
+ oldTableLoading: false,
+ tabIndex: '0',
+ formDialog: false,
+ editFormDialog: false,
+ upLoading: false,
+ outLoading: false,
+ ratifyDialog: false,
+ ratifyInfo: {
+ writeUserId: '',
+ ratifyUserId: '',
+ writeDate: '',
+ ratifyDate: '',
+ },
+ userList: []
+ };
+ },
+ mounted() {
+ this.searchList()
+ },
+ // 鏂规硶闆嗗悎
+ methods: {
+ // 鏌ヨ鍒楄〃
+ searchList() {
+ let beginDate = ''
+ let endDate = ''
+ const currentYear = new Date().getFullYear()
+ if (this.searchForm.year && this.searchForm.date) {
+ if (this.searchForm.date === '1') {
+ beginDate = this.searchForm.year + '-' + '01-01' + ' ' + '00:00:00'
+ endDate = this.searchForm.year + '-' + '06-30' + ' ' + '23:59:59'
+ } else {
+ beginDate = this.searchForm.year + '-' + '07-01' + ' ' + '00:00:00'
+ endDate = this.searchForm.year + '-' + '12-31' + ' ' + '23:59:59'
+ }
+ } else if (!this.searchForm.year && this.searchForm.date) {
+ if (this.searchForm.date === '1') {
+ beginDate = currentYear + '-' + '01-01' + ' ' + '00:00:00'
+ endDate = currentYear + '-' + '06-30' + ' ' + '23:59:59'
+ } else {
+ beginDate = currentYear + '-' + '07-01' + ' ' + '00:00:00'
+ endDate = currentYear + '-' + '12-31' + ' ' + '23:59:59'
+ }
+ } else if (this.searchForm.year && !this.searchForm.date) {
+ beginDate = this.searchForm.year + '-' + '01-01' + ' ' + '00:00:00'
+ endDate = this.searchForm.year + '-' + '12-31' + ' ' + '23:59:59'
+ }
+ if (this.tabIndex === '0' && !this.searchForm.date) {
+ beginDate = currentYear + '-' + '01-01' + ' ' + '00:00:00'
+ endDate = currentYear + '-' + '12-31' + ' ' + '23:59:59'
+ }
+ const entity = {
+ beginDate: beginDate,
+ endDate: endDate,
+ }
+ this.tableLoading = true
+ this.oldTableLoading = true
+ const page = this.tabIndex === '0' ? this.page : this.oldPage
+ pageMethodSearchNew({ ...entity, ...page }).then(res => {
+ this.tableLoading = false
+ this.oldTableLoading = false
+ if (res.code === 201) return
+ if (this.tabIndex === '0') {
+ this.tableData = res.data.records
+ this.page.total = res.data.total
+ } else {
+ this.oldTableData = res.data.records
+ this.oldPage.total = res.data.total
+ }
+ }).catch(err => {
+ console.log('err---', err);
+ this.tableLoading = false
+ this.oldTableLoading = false
+ })
+ },
+ // 閲嶇疆鏌ヨ鏉′欢
+ resetSearchForm() {
+ this.searchForm.year = '';
+ this.searchForm.date = '';
+ this.searchList()
+ },
+ // 鎿嶄綔鏂板妗�
+ openFormDia(row) {
+ this.formDialog = true
+ this.$nextTick(() => {
+ this.$refs.formDialog.openDia(row)
+ })
+ },
+ // 鍏抽棴鏂板寮规
+ closeDia() {
+ this.formDialog = false
+ this.searchList()
+ },
+ // 鎵撳紑淇敼寮规
+ openEditFormDia(row) {
+ this.editFormDialog = true
+ this.$nextTick(() => {
+ this.$refs.editFormDialog.openDia(row)
+ })
+ },
+ //
+ closeEditDia() {
+ this.editFormDialog = false
+ this.searchList()
+ },
+ delete(row) {
+ this.$confirm('姝ゆ搷浣滃皢鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ deleteById({ methodSearchNewId: row.methodSearchNewId }).then(res => {
+ if (res.code == 200) {
+ this.$message.success('鍒犻櫎鎴愬姛')
+ this.searchList()
+ }
+ })
+ }).catch(() => {
+ });
+ },
+ // 鎵撳紑瀵煎嚭寮规閫夋嫨缂栧埗浜恒�佹壒鍑嗕汉
+ openHandleOut() {
+ this.ratifyDialog = true
+ this.getUserList()
+ },
+ // 瀵煎嚭
+ handleOut() {
+ let beginDate = ''
+ let endDate = ''
+ const currentYear = new Date().getFullYear()
+ if (this.searchForm.year && this.searchForm.date) {
+ if (this.searchForm.date === '1') {
+ beginDate = this.searchForm.year + '-' + '01-01' + ' ' + '00:00:00'
+ endDate = this.searchForm.year + '-' + '06-30' + ' ' + '23:59:59'
+ } else {
+ beginDate = this.searchForm.year + '-' + '07-01' + ' ' + '00:00:00'
+ endDate = this.searchForm.year + '-' + '12-31' + ' ' + '23:59:59'
+ }
+ } else if (!this.searchForm.year && this.searchForm.date) {
+ if (this.searchForm.date === '1') {
+ beginDate = currentYear + '-' + '01-01' + ' ' + '00:00:00'
+ endDate = currentYear + '-' + '06-30' + ' ' + '23:59:59'
+ } else {
+ beginDate = currentYear + '-' + '07-01' + ' ' + '00:00:00'
+ endDate = currentYear + '-' + '12-31' + ' ' + '23:59:59'
+ }
+ } else if (this.searchForm.year && !this.searchForm.date) {
+ beginDate = this.searchForm.year + '-' + '01-01' + ' ' + '00:00:00'
+ endDate = this.searchForm.year + '-' + '12-31' + ' ' + '23:59:59'
+ }
+ const entity = {
+ beginDate: beginDate,
+ endDate: endDate,
+ writeUserId: this.ratifyInfo.writeUserId,
+ ratifyUserId: this.ratifyInfo.ratifyUserId,
+ writeDate: this.ratifyInfo.writeDate,
+ ratifyDate: this.ratifyInfo.ratifyDate,
+ }
+ this.outLoading = true
+ exportMethodSearchNew(entity).then(res => {
+ this.outLoading = false
+ const blob = new Blob([res], { type: 'application/octet-stream' });
+ this.$download.saveAs(blob, '鏍囧噯鏌ユ柊瀵煎嚭.xlsx')
+ })
+ },
+ // 瀵煎叆
+ beforeUpload(file) {
+ if (file.size > 1024 * 1024 * 10) {
+ this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M');
+ this.$refs.upload.clearFiles()
+ return false;
+ } else {
+ this.upLoading = true;
+ return true;
+ }
+ },
+ onError(err, file, fileList) {
+ this.$message.error('涓婁紶澶辫触')
+ this.$refs.upload.clearFiles()
+ },
+ handleSuccessUp(response) {
+ this.upLoading = false;
+ if (response.code == 200) {
+ this.$message.success('涓婁紶鎴愬姛');
+ this.searchList()
+ }
+ },
+ // 鍒嗛〉
+ pagination({ page, limit }) {
+ this.page.current = page;
+ this.page.size = limit;
+ this.searchList();
+ },
+ // 鍒嗛〉
+ oldPagination({ page, limit }) {
+ this.oldPage.current = page;
+ this.oldPage.size = limit;
+ this.searchList();
+ },
+ //
+ getUserList() {
+ selectUserCondition().then(res => {
+ if (res.code === 201) {
+ return
+ }
+ this.userList = res.data
+ })
+ },
+ },
+ // 鐢ㄤ簬涓婁紶鏂囦欢鐨勪俊鎭�
+ computed: {
+ action() {
+ return this.javaApi + '/processMethodSearchNew/importMethodSearchNew'
+ }
+ },
+};
+</script>
+
+<style scoped>
+.view-title {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ height: 60px;
+ padding-left: 20px;
+}
+
+.search-background {
+ width: 100%;
+ height: 80px;
+ line-height: 80px;
+ background-color: #ffffff;
+ display: flex;
+}
+
+.search-group {
+ display: flex;
+ align-items: center;
+ margin: 0 20px;
+}
+
+.table {
+ margin-top: 20px;
+ background-color: #ffffff;
+ padding-top: 10px;
+}
+
+.table-tab {
+ margin: 0 10px 10px 14px;
+}
+
+.inline-upload {
+ display: inline-block;
+ vertical-align: middle;
+}
+</style>
diff --git a/src/views/CNAS/process/sampleDisposal/sampleDisposal.vue b/src/views/CNAS/process/sampleDisposal/sampleDisposal.vue
index f56ae44..8759567 100644
--- a/src/views/CNAS/process/sampleDisposal/sampleDisposal.vue
+++ b/src/views/CNAS/process/sampleDisposal/sampleDisposal.vue
@@ -519,7 +519,8 @@
delProcessDeal({ id: row.id }).then((res) => {
if (res.code == 201) return;
this.$message.success("鍒犻櫎鎴愬姛");
- this.refresh();
+ this.page.current = 0;
+ this.getList();
});
})
.catch(() => { });
--
Gitblit v1.9.3