From a2bce22a3a4df5f4662c373e57c07fa4268aeee1 Mon Sep 17 00:00:00 2001 From: 小小儁爺 <1694218219@qq.com> Date: 星期五, 13 六月 2025 09:02:52 +0800 Subject: [PATCH] 1.修改工单打印模板 --- src/views/sopManager/sopWorkOrder.vue | 1043 +++++++++++++++++++++++++++++---------------------------- 1 files changed, 525 insertions(+), 518 deletions(-) diff --git a/src/views/sopManager/sopWorkOrder.vue b/src/views/sopManager/sopWorkOrder.vue index d12ef59..60677b4 100644 --- a/src/views/sopManager/sopWorkOrder.vue +++ b/src/views/sopManager/sopWorkOrder.vue @@ -1,518 +1,525 @@ -<template> - <div> - <div class="body" :style="{height:mainHeight+'px'}"> - <div class="bodyTopButtonGroup" style="justify-content: space-between;align-items: center"> - <el-button v-waves icon="el-icon-circle-plus-outline" type="primary" @click="add">鏂囦欢涓婁紶</el-button> - <div style="display: flex;align-items: center"> - <el-form - ref="form" - :model="form" - label-width="100px" - inline - > - <div class="elForm" style="justify-content: flex-start"> - <el-form-item style="margin-right: 30px"> - <el-checkbox v-model="checked" @change="checkedChange">鏈�鏂扮増鏈�</el-checkbox> - </el-form-item> - <el-form-item> - <el-input v-model="form.search" placeholder="璇疯緭鍏ュ叧閿瓧" style="width: 260px" /> - </el-form-item> - </div> - </el-form> - <el-button v-waves type="primary" style="margin-left: 30px" icon="el-icon-search" @click="search">鏌ヨ - </el-button> - <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button> - </div> - </div> - - <div class="elTableDiv"> - <el-table - ref="tableDataRef" - class="tableFixed" - :data="tableData" - :height="isExpandForm?tableHeight:(tableHeight+40)+'px'" - border - :row-class-name="tableRowClassName" - :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}" - highlight-current-row - :header-cell-style="this.$headerCellStyle" - :cell-style="this.$cellStyle" - @sort-change="sortChange" - > - <el-table-column - prop="rowNum" - width="50" - fixed - label="搴忓彿" - /> - <el-table-column - prop="filename" - label="鏂囦欢鍚嶇О" - min-width="160" - show-tooltip-when-overflow - sortable="custom" - > - <template slot-scope="{row}"> - <div v-if="row.filename">{{ row.filename }}</div> - <div v-else>/</div> - </template> - </el-table-column> - <el-table-column - prop="filetypename" - label="鏂囦欢绫诲瀷" - min-width="110" - sortable="custom" - > - <template slot-scope="{row}"> - <div v-if="row.filetypename">{{ row.filetypename }}</div> - <div v-else>/</div> - </template> - </el-table-column> - <el-table-column - prop="version" - label="鐗堟湰鍙�" - min-width="110" - sortable="custom" - > - <template slot-scope="{row}"> - <div v-if="row.version">{{ row.version }}</div> - <div v-else>/</div> - </template> - </el-table-column> - <el-table-column - prop="wo" - label="宸ュ崟鍙�" - min-width="110" - show-tooltip-when-overflow - sortable="custom" - /> - <el-table-column - prop="materielcode" - label="鐗╂枡缂栫爜" - min-width="110" - show-tooltip-when-overflow - sortable="custom" - /> - <el-table-column - prop="materielname" - label="鐗╂枡鍚嶇О" - min-width="110" - show-tooltip-when-overflow - sortable="custom" - /> - <el-table-column - prop="username" - min-width="110" - label="涓婁紶浜哄憳" - sortable="custom" - > - <template slot-scope="{row}"> - <div v-if="row.username">{{ row.username }}</div> - <div v-else>/</div> - </template> - </el-table-column> - <el-table-column - prop="lm_date" - label="涓婁紶鏃堕棿" - min-width="160" - sortable="custom" - > - <template slot-scope="{row}"> - <div v-if="row.lm_date">{{ row.lm_date }}</div> - <div v-else>/</div> - </template> - </el-table-column> - <el-table-column - label="鎿嶄綔" - width="120" - fixed="right" - > - <template slot-scope="{row}"> - <div class="operationClass"> - <el-tooltip v-del-tab-index class="item" effect="dark" content="棰勮" placement="top"> - <i - class="el-icon-files" - style="cursor: pointer;color:#42b983;margin-right: 15px" - @click="check(row)" - /> - </el-tooltip> - <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top"> - <i class="el-icon-delete" style="cursor: pointer;color:#42b983;" @click="del(row)" /> - </el-tooltip> - </div> - </template> - </el-table-column> - </el-table> - </div> - <!--鍒嗛〉--> - <pagination - :total="total" - :page.sync="form.page" - :limit.sync="form.rows" - align="right" - layout="total,prev, pager, next,sizes" - popper-class="select_bottom" - @pagination="getWrkOrderSearch" - /> - </div> - - <el-dialog - v-el-drag-dialog - title="鏂囦欢涓婁紶" - :visible.sync="dialogVisible" - width="800px" - :close-on-click-modal="false" - top="15vh" - @closed="handleClose" - @close="handleClose" - > - <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px"> - <el-form-item label="宸ュ崟淇℃伅" prop="wocode"> - <el-select - v-model="dialogForm.wocode" - style="width: 200px" - placeholder="璇烽�夋嫨" - filterable - :popper-append-to-body="false" - @change="devicetypecodeChange" - > - <el-option - v-for="item in workOrderArr" - :key="item.wo_code" - :label="item.wo_code" - :value="item.wo_code" - /> - </el-select> - </el-form-item> - <el-form-item label="浜у搧淇℃伅" prop="partcode"> - <el-select - v-model="dialogForm.partcode" - style="width: 200px" - placeholder="璇烽�夋嫨" - filterable - disabled - :popper-append-to-body="false" - > - <el-option - v-for="item in partcodeArr" - :key="item.partcode" - :label="item.partname" - :value="item.partcode" - /> - </el-select> - </el-form-item> - <!-- <el-form-item label="鏂囦欢鍚嶇О" prop="defilename">--> - <!-- <el-form-item label="鏂囦欢鍚嶇О">--> - <!-- <el-input v-model="dialogForm.defilename" disabled style="width: 200px" />--> - <!-- </el-form-item>--> - <el-form-item label="鏂囦欢绫诲瀷" prop="filetypecode"> - <el-select - v-model="dialogForm.filetypecode" - style="width: 200px" - placeholder="璇烽�夋嫨" - filterable - :popper-append-to-body="false" - @change="filetypecodeChange" - > - <el-option - v-for="item in filetypeArr" - :key="item.code" - :label="item.name" - :value="item.code" - /> - </el-select> - </el-form-item> - <el-form-item label="鐗堟湰鍙�"> - <el-input v-model="dialogForm.fileversion" disabled style="width: 200px" /> - </el-form-item> - <el-form-item label="鏂囦欢涓婁紶" prop="Files"> - <div style="width: 200px;"> - <el-upload - ref="uploadFileRef" - style="display: inline-block;" - action="#" - :limit="1" - :show-file-list="true" - :on-exceed="handleExceed" - :auto-upload="false" - :multiple="false" - accept=".mp4,.pdf,.png,.jpeg,.jpg,.svg,.txt,.xlsx,.xls" - > - <!-- accept=".mp4,.pdf"--> - <el-button - v-waves - type="primary" - style="width: 200px;display: flex;justify-content: center" - icon="el-icon-upload2" - >閫夋嫨鏂囦欢 - </el-button> - </el-upload> - </div> - </el-form-item> - </el-form> - <span slot="footer" class="dialog-footer"> - <div class="footerButton"> - <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button> - <el-button - v-waves - type="primary" - :loading="$store.state.app.buttonIsDisabled" - :disabled="$store.state.app.buttonIsDisabled" - @click="dialogVisibleConfirm" - >纭� 瀹�</el-button> - </div> - </span> - </el-dialog> - - </div> -</template> - -<script> -import Pagination from '@/components/Pagination' -import { WrkOrderSopAddSeave, WrkOrderSopDeleteSeave, WrkOrderSearch, WrkOrderSopMaxVersion } from '@/api/SopManager' -import { DeviceTypeSearch } from '@/api/DeviceManager' -import { EqpTypecodeSeachEqpPermissions, WrkOrderDataSelect } from '@/api/GeneralBasicData' -import waves from '@/directive/waves' -import elDragDialog from '@/directive/el-drag-dialog' -import { PartSelect } from '@/api/ProductModel' - -export default { - name: 'SopWorkOrder', - components: { - Pagination - }, - directives: { waves, elDragDialog }, - data() { - return { - mouseHoverType: 'mouseout', - isExpandForm: false, - mainHeight: 0, - tableHeight: 0, - form: { - check: 'N', // 鏄惁閫変腑鏈�楂樼増鏈� - search: '', // 鎼滅储鍏抽敭瀛� - prop: 'lm_date', // 鎺掑簭瀛楁 - order: 'desc', // 鎺掑簭瀛楁 - page: 1, // 绗嚑椤� - rows: 20 // 姣忛〉澶氬皯鏉� - }, - checked: false, - - total: 10, - tableData: [], - dialogVisible: false, - dialogForm: { - wocode: '', // 璁惧绫诲瀷缂栫爜 - partcode: '', // 鐗╂枡缂栫爜 - defilename: '', - filetypecode: '', // 鏂囦欢绫诲瀷缂栫爜 - Files: '', // 鏂囦欢 - fileversion: ''// 鏂囦欢鐗堟湰鍙� - }, - dialogFormRules: { - wocode: [ - { required: true, message: '璇烽�夋嫨璁惧绫诲瀷', trigger: ['blur', 'change'] } - ], - partcode: [ - { required: true, message: '璇烽�夋嫨浜у搧淇℃伅', trigger: ['blur', 'change'] } - ], - defilename: [ - { required: true, message: '璇疯緭鍏ュ悕鏂囦欢绉�', trigger: ['blur', 'change'] } - ], - filetypecode: [ - { required: true, message: '璇烽�夋嫨鏂囦欢绫诲瀷', trigger: ['blur', 'change'] } - ] - }, - partcodeArr: [], - workOrderArr: [], - filetypeArr: [// 鏂囦欢绫诲瀷涓嬫媺鏁扮粍 - { code: 'P001', name: '浣滀笟鎸囧涔�' }, - { code: 'P002', name: '妫�楠屾寚瀵间功' }, - { code: 'P003', name: '鍥剧焊' } - ] - - } - }, - - activated() { window.addEventListener('resize', this.getHeight) this.getHeight() }, created() { - this.getWrkOrderSearch() - - this.getPartSelect() - this.getWrkOrderDataSelect() - }, - mounted() { - window.addEventListener('resize', this.getHeight) - this.getHeight() - }, - methods: { - async getWrkOrderSearch() { - const res = await WrkOrderSearch(this.form) - this.tableData = res.data - this.total = res.count - }, - async getWrkOrderDataSelect() { - const { data: res } = await WrkOrderDataSelect() - this.workOrderArr = res - }, - // 鑾峰彇浜у搧淇℃伅 - async getPartSelect() { - const { data: res } = await PartSelect() - this.partcodeArr = res - }, - - // 鎺掑簭鏀瑰彉鏃� - sortChange({ column, prop, order }) { - if (order === 'descending') { - order = 'desc' - } else if (order === 'ascending') { - order = 'asc' - } else { - order = 'desc' - } - this.form.order = order - this.form.prop = prop - this.getWrkOrderSearch() - }, - // 鏌ヨ - search() { - this.getWrkOrderSearch() - }, - // 鏈�鏂扮増鏈敼鍙樻椂瑙﹀彂 - checkedChange(val) { - this.form.check = val ? 'Y' : 'N' - this.getWrkOrderSearch() - }, - // 鏂囦欢鏁伴噺瓒呰繃闄愬畾瑙﹀彂 - handleExceed() { - this.$message.info('鏆備笉鏀寔澶氭枃浠朵笂浼狅紒') - }, - async devicetypecodeChange(val) { - const t = this.workOrderArr.find(i => i.wo_code === val) - this.dialogForm.partcode = t.materiel_code - await this.filetypecodeChange() - }, - - async filetypecodeChange() { - const data = { - wocode: this.dialogForm.wocode, - partcode: this.dialogForm.partcode, - filetypecode: this.dialogForm.filetypecode - } - const { data: res } = await WrkOrderSopMaxVersion(data) - this.dialogForm.fileversion = res - }, - // 閲嶇疆 - reset() { - this.form.search = '' - this.getWrkOrderSearch() - }, - // 鏂板鎸夐挳 - add() { - this.dialogVisible = true - }, - - // 棰勮 - async check(row) { - window.open(process.env.VUE_APP_BASE_API_FILE + row.filepath) - }, - - // 鍒犻櫎鎸夐挳 - async del(row) { - this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', { - confirmButtonText: '纭畾', - cancelButtonText: '鍙栨秷', - type: 'warning' - }).then(() => { - const data = { - id: row.id, - wocode: row.wo, - partcode: row.materielcode, - filepath: row.filepath - } - WrkOrderSopDeleteSeave(data).then(res => { - if (res.code === '200') { - this.$message.success('鍒犻櫎鎴愬姛!') - if (this.form.page > 1 && this.tableData.length === 1) { - this.form.page-- - } - this.getWrkOrderSearch() - } - }) - }).catch(() => { - this.$message.info('宸插彇娑堝垹闄�') - }) - }, - // 瀵硅瘽妗嗗叧闂簨浠� - handleClose() { - this.dialogForm.wocode = '' - this.dialogForm.partcode = '' - this.dialogForm.defilename = '' - this.dialogForm.filetypecode = '' - this.dialogForm.fileversion = '' - this.dialogForm.Files = '' - this.$refs.uploadFileRef.clearFiles() - this.$refs.dialogForm.clearValidate() - }, - // 瀵硅瘽妗嗗彇娑� - dialogVisibleCancel() { - this.dialogVisible = false - this.$store.state.app.buttonIsDisabled = false - }, - // 瀵硅瘽妗嗙‘璁� - dialogVisibleConfirm() { - if (!this.$refs.uploadFileRef.uploadFiles[0]) { - this.$message.info('璇烽�夋嫨鏂囦欢涓婁紶锛�') - } - - const isLt100M = this.$refs.uploadFileRef.uploadFiles[0].size / 1024 / 1024 <= 1024 - if (!isLt100M) { - return this.$message.info('璇锋鏌ワ紝涓婁紶鏂囦欢澶у皬涓嶈兘瓒呰繃1024MB!') - } - - this.$refs.dialogForm.validate(valid => { - if (valid) { - const formData = new FormData() - formData.append('wocode', this.dialogForm.wocode) - formData.append('partcode', this.dialogForm.partcode) - formData.append('filename', this.$refs.uploadFileRef.uploadFiles[0].name) - formData.append('filetypecode', this.dialogForm.filetypecode) - formData.append('version', this.dialogForm.fileversion) - formData.append('file', this.$refs.uploadFileRef.uploadFiles[0].raw) - // for (var [key, value] of formData) { - // console.log(key, value) - // } - this.$store.state.app.buttonIsDisabled = true - WrkOrderSopAddSeave(formData).then(res => { - if (res.code === '200') { - this.$message.success('鏂囦欢涓婁紶鎴愬姛锛�') - this.dialogVisible = false - this.$store.state.app.buttonIsDisabled = false - this.getWrkOrderSearch() - } else { - this.$message.error('鏂囦欢涓婁紶澶辫触锛�') - this.$store.state.app.buttonIsDisabled = false - } - }) - } - }) - }, - // 鑾峰彇椤甸潰楂樺害 - getHeight() { - this.$nextTick(() => { - this.mainHeight = window.innerHeight - 85 - this.tableHeight = this.mainHeight - 185 - this.$refs.tableDataRef.doLayout() - }) - }, - tableRowClassName({ row, rowIndex }) { - return 'custom-row' - } - } -} -</script> - -<style> -.el-table .custom-row { - background: #f8f8fa; -} -</style> +<template> + <div> + <div class="body" :style="{height:mainHeight+'px'}"> + <div class="bodyTopButtonGroup" style="justify-content: space-between;align-items: center"> + <el-button v-waves icon="el-icon-circle-plus-outline" type="primary" @click="add">鏂囦欢涓婁紶</el-button> + <div style="display: flex;align-items: center"> + <el-form + ref="form" + :model="form" + label-width="100px" + inline + > + <div class="elForm" style="justify-content: flex-start"> + <el-form-item style="margin-right: 30px"> + <el-checkbox v-model="checked" @change="checkedChange">鏈�鏂扮増鏈�</el-checkbox> + </el-form-item> + <el-form-item> + <el-input v-model="form.search" placeholder="璇疯緭鍏ュ叧閿瓧" style="width: 260px" /> + </el-form-item> + </div> + </el-form> + <el-button v-waves type="primary" style="margin-left: 30px" icon="el-icon-search" @click="search">鏌ヨ + </el-button> + <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button> + </div> + </div> + + <div class="elTableDiv"> + <el-table + ref="tableDataRef" + class="tableFixed" + :data="tableData" + :height="isExpandForm?tableHeight:(tableHeight+40)+'px'" + border + :row-class-name="tableRowClassName" + :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}" + highlight-current-row + :header-cell-style="this.$headerCellStyle" + :cell-style="this.$cellStyle" + @sort-change="sortChange" + > + <el-table-column + prop="rowNum" + width="50" + fixed + label="搴忓彿" + /> + <el-table-column + prop="filename" + label="鏂囦欢鍚嶇О" + min-width="160" + show-tooltip-when-overflow + sortable="custom" + > + <template slot-scope="{row}"> + <div v-if="row.filename">{{ row.filename }}</div> + <div v-else>/</div> + </template> + </el-table-column> + <el-table-column + prop="filetypename" + label="鏂囦欢绫诲瀷" + min-width="110" + sortable="custom" + > + <template slot-scope="{row}"> + <div v-if="row.filetypename">{{ row.filetypename }}</div> + <div v-else>/</div> + </template> + </el-table-column> + <el-table-column + prop="version" + label="鐗堟湰鍙�" + min-width="110" + sortable="custom" + > + <template slot-scope="{row}"> + <div v-if="row.version">{{ row.version }}</div> + <div v-else>/</div> + </template> + </el-table-column> + <el-table-column + prop="wo" + label="宸ュ崟鍙�" + min-width="110" + show-tooltip-when-overflow + sortable="custom" + /> + <el-table-column + prop="materielcode" + label="鐗╂枡缂栫爜" + min-width="110" + show-tooltip-when-overflow + sortable="custom" + /> + <el-table-column + prop="materielname" + label="鐗╂枡鍚嶇О" + min-width="110" + show-tooltip-when-overflow + sortable="custom" + /> + <el-table-column + prop="username" + min-width="110" + label="涓婁紶浜哄憳" + sortable="custom" + > + <template slot-scope="{row}"> + <div v-if="row.username">{{ row.username }}</div> + <div v-else>/</div> + </template> + </el-table-column> + <el-table-column + prop="lm_date" + label="涓婁紶鏃堕棿" + min-width="160" + sortable="custom" + > + <template slot-scope="{row}"> + <div v-if="row.lm_date">{{ row.lm_date }}</div> + <div v-else>/</div> + </template> + </el-table-column> + <el-table-column + label="鎿嶄綔" + width="120" + fixed="right" + > + <template slot-scope="{row}"> + <div class="operationClass"> + <el-tooltip v-del-tab-index class="item" effect="dark" content="棰勮" placement="top"> + <i + class="el-icon-files" + style="cursor: pointer;color:#42b983;margin-right: 15px" + @click="check(row)" + /> + </el-tooltip> + <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top"> + <i class="el-icon-delete" style="cursor: pointer;color:#42b983;" @click="del(row)" /> + </el-tooltip> + </div> + </template> + </el-table-column> + </el-table> + </div> + <!--鍒嗛〉--> + <pagination + :total="total" + :page.sync="form.page" + :limit.sync="form.rows" + align="right" + layout="total,prev, pager, next,sizes" + popper-class="select_bottom" + @pagination="getWrkOrderSearch" + /> + </div> + + <el-dialog + v-el-drag-dialog + title="鏂囦欢涓婁紶" + :visible.sync="dialogVisible" + width="800px" + :close-on-click-modal="false" + top="15vh" + @closed="handleClose" + @close="handleClose" + > + <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px"> + <el-form-item label="宸ュ崟淇℃伅" prop="wocode"> + <el-select + v-model="dialogForm.wocode" + style="width: 200px" + placeholder="璇烽�夋嫨" + filterable + :popper-append-to-body="false" + @change="devicetypecodeChange" + > + <el-option + v-for="item in workOrderArr" + :key="item.wo_code" + :label="item.wo_code" + :value="item.wo_code" + /> + </el-select> + </el-form-item> + <el-form-item label="浜у搧淇℃伅" prop="partcode"> + <el-select + v-model="dialogForm.partcode" + style="width: 200px" + placeholder="璇烽�夋嫨" + filterable + disabled + :popper-append-to-body="false" + > + <el-option + v-for="item in partcodeArr" + :key="item.partcode" + :label="item.partname" + :value="item.partcode" + /> + </el-select> + </el-form-item> + <!-- <el-form-item label="鏂囦欢鍚嶇О" prop="defilename">--> + <!-- <el-form-item label="鏂囦欢鍚嶇О">--> + <!-- <el-input v-model="dialogForm.defilename" disabled style="width: 200px" />--> + <!-- </el-form-item>--> + <el-form-item label="鏂囦欢绫诲瀷" prop="filetypecode"> + <el-select + v-model="dialogForm.filetypecode" + style="width: 200px" + placeholder="璇烽�夋嫨" + filterable + :popper-append-to-body="false" + @change="filetypecodeChange" + > + <el-option + v-for="item in filetypeArr" + :key="item.code" + :label="item.name" + :value="item.code" + /> + </el-select> + </el-form-item> + <el-form-item label="鐗堟湰鍙�"> + <el-input v-model="dialogForm.fileversion" disabled style="width: 200px" /> + </el-form-item> + <el-form-item label="鏂囦欢涓婁紶" prop="Files"> + <div style="width: 200px;"> + <el-upload + ref="uploadFileRef" + style="display: inline-block;" + action="#" + :limit="1" + :show-file-list="true" + :on-exceed="handleExceed" + :auto-upload="false" + :multiple="false" + accept=".mp4,.pdf,.png,.jpeg,.jpg,.svg,.txt,.xlsx,.xls" + > + <!-- accept=".mp4,.pdf"--> + <el-button + v-waves + type="primary" + style="width: 200px;display: flex;justify-content: center" + icon="el-icon-upload2" + >閫夋嫨鏂囦欢 + </el-button> + </el-upload> + </div> + </el-form-item> + </el-form> + <span slot="footer" class="dialog-footer"> + <div class="footerButton"> + <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button> + <el-button + v-waves + type="primary" + :loading="$store.state.app.buttonIsDisabled" + :disabled="$store.state.app.buttonIsDisabled" + @click="dialogVisibleConfirm" + >纭� 瀹�</el-button> + </div> + </span> + </el-dialog> + + </div> +</template> + +<script> +import Pagination from '@/components/Pagination' +import { WrkOrderSopAddSeave, WrkOrderSopDeleteSeave, WrkOrderSearch, WrkOrderSopMaxVersion } from '@/api/SopManager' +import { DeviceTypeSearch } from '@/api/DeviceManager' +import { EqpTypecodeSeachEqpPermissions, WrkOrderDataSelect } from '@/api/GeneralBasicData' +import waves from '@/directive/waves' +import elDragDialog from '@/directive/el-drag-dialog' +import { PartSelect } from '@/api/ProductModel' + +export default { + name: 'SopWorkOrder', + components: { + Pagination + }, + directives: { waves, elDragDialog }, + data() { + return { + mouseHoverType: 'mouseout', + isExpandForm: false, + mainHeight: 0, + tableHeight: 0, + form: { + check: 'N', // 鏄惁閫変腑鏈�楂樼増鏈� + search: '', // 鎼滅储鍏抽敭瀛� + prop: 'lm_date', // 鎺掑簭瀛楁 + order: 'desc', // 鎺掑簭瀛楁 + page: 1, // 绗嚑椤� + rows: 20 // 姣忛〉澶氬皯鏉� + }, + checked: false, + + total: 10, + tableData: [], + dialogVisible: false, + dialogForm: { + wocode: '', // 璁惧绫诲瀷缂栫爜 + partcode: '', // 鐗╂枡缂栫爜 + defilename: '', + filetypecode: '', // 鏂囦欢绫诲瀷缂栫爜 + Files: '', // 鏂囦欢 + fileversion: ''// 鏂囦欢鐗堟湰鍙� + }, + dialogFormRules: { + wocode: [ + { required: true, message: '璇烽�夋嫨璁惧绫诲瀷', trigger: ['blur', 'change'] } + ], + partcode: [ + { required: true, message: '璇烽�夋嫨浜у搧淇℃伅', trigger: ['blur', 'change'] } + ], + defilename: [ + { required: true, message: '璇疯緭鍏ュ悕鏂囦欢绉�', trigger: ['blur', 'change'] } + ], + filetypecode: [ + { required: true, message: '璇烽�夋嫨鏂囦欢绫诲瀷', trigger: ['blur', 'change'] } + ] + }, + partcodeArr: [], + workOrderArr: [], + filetypeArr: [// 鏂囦欢绫诲瀷涓嬫媺鏁扮粍 + { code: 'P001', name: '浣滀笟鎸囧涔�' }, + { code: 'P002', name: '妫�楠屾寚瀵间功' }, + { code: 'P003', name: '鍥剧焊' } + ] + + } + }, + + activated() { + window.addEventListener('resize', this.getHeight) + this.getHeight() + this.getWrkOrderSearch() + this.getPartSelect() + this.getWrkOrderDataSelect() + }, + created() { + this.getWrkOrderSearch() + + this.getPartSelect() + this.getWrkOrderDataSelect() + }, + mounted() { + window.addEventListener('resize', this.getHeight) + this.getHeight() + }, + methods: { + async getWrkOrderSearch() { + const res = await WrkOrderSearch(this.form) + this.tableData = res.data + this.total = res.count + }, + async getWrkOrderDataSelect() { + const { data: res } = await WrkOrderDataSelect() + this.workOrderArr = res + }, + // 鑾峰彇浜у搧淇℃伅 + async getPartSelect() { + const { data: res } = await PartSelect() + this.partcodeArr = res + }, + + // 鎺掑簭鏀瑰彉鏃� + sortChange({ column, prop, order }) { + if (order === 'descending') { + order = 'desc' + } else if (order === 'ascending') { + order = 'asc' + } else { + order = 'desc' + } + this.form.order = order + this.form.prop = prop + this.getWrkOrderSearch() + }, + // 鏌ヨ + search() { + this.getWrkOrderSearch() + }, + // 鏈�鏂扮増鏈敼鍙樻椂瑙﹀彂 + checkedChange(val) { + this.form.check = val ? 'Y' : 'N' + this.getWrkOrderSearch() + }, + // 鏂囦欢鏁伴噺瓒呰繃闄愬畾瑙﹀彂 + handleExceed() { + this.$message.info('鏆備笉鏀寔澶氭枃浠朵笂浼狅紒') + }, + async devicetypecodeChange(val) { + const t = this.workOrderArr.find(i => i.wo_code === val) + this.dialogForm.partcode = t.materiel_code + await this.filetypecodeChange() + }, + + async filetypecodeChange() { + const data = { + wocode: this.dialogForm.wocode, + partcode: this.dialogForm.partcode, + filetypecode: this.dialogForm.filetypecode + } + const { data: res } = await WrkOrderSopMaxVersion(data) + this.dialogForm.fileversion = res + }, + // 閲嶇疆 + reset() { + this.form.search = '' + this.getWrkOrderSearch() + }, + // 鏂板鎸夐挳 + add() { + this.dialogVisible = true + }, + + // 棰勮 + async check(row) { + window.open(process.env.VUE_APP_BASE_API_FILE + row.filepath) + }, + + // 鍒犻櫎鎸夐挳 + async del(row) { + this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + const data = { + id: row.id, + wocode: row.wo, + partcode: row.materielcode, + filepath: row.filepath + } + WrkOrderSopDeleteSeave(data).then(res => { + if (res.code === '200') { + this.$message.success('鍒犻櫎鎴愬姛!') + if (this.form.page > 1 && this.tableData.length === 1) { + this.form.page-- + } + this.getWrkOrderSearch() + } + }) + }).catch(() => { + this.$message.info('宸插彇娑堝垹闄�') + }) + }, + // 瀵硅瘽妗嗗叧闂簨浠� + handleClose() { + this.dialogForm.wocode = '' + this.dialogForm.partcode = '' + this.dialogForm.defilename = '' + this.dialogForm.filetypecode = '' + this.dialogForm.fileversion = '' + this.dialogForm.Files = '' + this.$refs.uploadFileRef.clearFiles() + this.$refs.dialogForm.clearValidate() + }, + // 瀵硅瘽妗嗗彇娑� + dialogVisibleCancel() { + this.dialogVisible = false + this.$store.state.app.buttonIsDisabled = false + }, + // 瀵硅瘽妗嗙‘璁� + dialogVisibleConfirm() { + if (!this.$refs.uploadFileRef.uploadFiles[0]) { + this.$message.info('璇烽�夋嫨鏂囦欢涓婁紶锛�') + } + + const isLt100M = this.$refs.uploadFileRef.uploadFiles[0].size / 1024 / 1024 <= 1024 + if (!isLt100M) { + return this.$message.info('璇锋鏌ワ紝涓婁紶鏂囦欢澶у皬涓嶈兘瓒呰繃1024MB!') + } + + this.$refs.dialogForm.validate(valid => { + if (valid) { + const formData = new FormData() + formData.append('wocode', this.dialogForm.wocode) + formData.append('partcode', this.dialogForm.partcode) + formData.append('filename', this.$refs.uploadFileRef.uploadFiles[0].name) + formData.append('filetypecode', this.dialogForm.filetypecode) + formData.append('version', this.dialogForm.fileversion) + formData.append('file', this.$refs.uploadFileRef.uploadFiles[0].raw) + // for (var [key, value] of formData) { + // console.log(key, value) + // } + this.$store.state.app.buttonIsDisabled = true + WrkOrderSopAddSeave(formData).then(res => { + if (res.code === '200') { + this.$message.success('鏂囦欢涓婁紶鎴愬姛锛�') + this.dialogVisible = false + this.$store.state.app.buttonIsDisabled = false + this.getWrkOrderSearch() + } else { + this.$message.error('鏂囦欢涓婁紶澶辫触锛�') + this.$store.state.app.buttonIsDisabled = false + } + }) + } + }) + }, + // 鑾峰彇椤甸潰楂樺害 + getHeight() { + this.$nextTick(() => { + this.mainHeight = window.innerHeight - 85 + this.tableHeight = this.mainHeight - 185 + this.$refs.tableDataRef.doLayout() + }) + }, + tableRowClassName({ row, rowIndex }) { + return 'custom-row' + } + } +} +</script> + +<style> +.el-table .custom-row { + background: #f8f8fa; +} +</style> -- Gitblit v1.9.3