| ¶Ô±ÈÐÂÎļþ |
| | |
| | | // æ¹æ³éªè¯ç¸å
³æ¥å£ |
| | | 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, |
| | | }); |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | // æ åæ¹æ³çåæ´ç¸å
³æ¥å£ |
| | | 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, |
| | | }); |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | // æ 忥æ°é¡µé¢ç¸å
³æ¥å£ |
| | | 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, |
| | | }); |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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); //æ£ç¡®çç»æ¢ |
| | | } |
| | | }, |
| | | 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> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
| | |
| | | delProcessDeal({ id: row.id }).then((res) => { |
| | | if (res.code == 201) return; |
| | | this.$message.success("å 餿å"); |
| | | this.refresh(); |
| | | this.page.current = 0; |
| | | this.getList(); |
| | | }); |
| | | }) |
| | | .catch(() => { }); |