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/mouldManager/mouldMaintainStand.vue | 1431 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 718 insertions(+), 713 deletions(-) diff --git a/src/views/mouldManager/mouldMaintainStand.vue b/src/views/mouldManager/mouldMaintainStand.vue index ec0705a..ff2ceba 100644 --- a/src/views/mouldManager/mouldMaintainStand.vue +++ b/src/views/mouldManager/mouldMaintainStand.vue @@ -1,713 +1,718 @@ -<template> - <div> - <div class="body" :style="{height:mainHeight+'px'}"> - <div class="bodyTopButtonGroup" style="justify-content: space-between"> - <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button> - <el-button - v-waves - type="success" - icon="el-icon-download" - @click="$router.push('./../systemSetting/dataImport?fileCode=14_1')" - >瀵煎叆 - </el-button> - </div> - - <div class="bodyTopFormGroup"> - <el-form - ref="form" - :model="form" - label-width="100px" - inline - style="display: flex;" - > - <div class="elForm"> - <el-form-item label="鏍囧噯缂栫爜" style=" display: flex;"> - <el-input v-model="form.repairstandcode" placeholder="璇疯緭鍏�" style="width: 200px" /> - </el-form-item> - <el-form-item label="鏍囧噯鍚嶇О" style=" display: flex;"> - <el-input v-model="form.repairstandname" placeholder="璇疯緭鍏�" style="width: 200px" /> - </el-form-item> - <el-form-item label="鏍囧噯鎻忚堪" style=" display: flex;"> - <el-input v-model="form.repairstandescr" placeholder="璇疯緭鍏�" style="width: 200px" /> - </el-form-item> - </div> - <div - class="bodySearchReset" - :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}" - > - <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button> - <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button> - </div> - </el-form> - - <div - class="bodyTopFormExpand" - style="height:5px" - /> - </div> - - <div class="elTableDiv"> - <!-- <TableColumnSettings--> - <!-- :list1="tableColumnSettingsArray"--> - <!-- @tableColumnUpdate="tableColumnUpdate"--> - <!-- />--> - <el-table - ref="tableDataRef" - :key="tableTimeStampKey" - :data="tableData" - :height="tableHeight+'px'" - border - class="tableFixed" - :row-class-name="tableRowClassName" - :style="{width: 100+'%',height:tableHeight+'px',}" - highlight-current-row - :header-cell-style="this.$headerCellStyle" - :cell-style="this.$cellStyle" - @sort-change="sortChange" - > - - <el-table-column - v-for="item in tableColumnSettingsArray" - v-if="item.show" - :key="item.id" - :sortable="item.sortable" - :prop="item.prop" - :min-width="item.minWidth" - :label="item.label" - :width="item.width" - show-tooltip-when-overflow - :fixed="item.fixed?(item.fixed==='left'?'left':'right'):false" - > - <template slot-scope="{row}"> - <div v-if="!row[item.prop]">/</div> - <div v-else-if="item.prop==='is_repairmould'"> - <i - v-if="row[item.prop]==='Y'" - :style="{color:$store.state.settings.theme}" - class="el-icon-share" - style="cursor: pointer" - @click="connectClick(row)" - /> - <i - v-if="row[item.prop]==='N'" - class="el-icon-share" - style="color: rgb(180 ,181, 185);cursor:pointer;" - @click="connectClick(row)" - /> - </div> - <div v-else>{{ row[item.prop] }}</div> - </template> - </el-table-column> - - <el-table-column - label="鎿嶄綔" - fixed="right" - width="120" - > - <template slot-scope="{row}"> - <div class="operationClass"> - <el-tooltip class="item" effect="dark" content="缂栬緫" placement="top"> - <i - :style="{color:$store.state.settings.theme}" - class="el-icon-edit-outline" - @click="edit('edit',row)" - /> - </el-tooltip> - <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top"> - <i :style="{color:$store.state.settings.theme}" class="el-icon-delete" @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="getMouldRepairStandArdSearch" - /> - </div> - - <el-dialog - v-el-drag-dialog - :title="operation==='add'?'鏂板':'缂栬緫'" - :visible.sync="dialogVisible" - width="1100px" - :close-on-click-modal="false" - top="8vh" - @closed="handleClose" - @close="handleClose" - > - <div style="margin: 0 30px;"> - <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px"> - <el-divider content-position="left">妯″叿淇濆吇鏍囧噯淇℃伅</el-divider> - - <el-form-item label="鏍囧噯缂栫爜" prop="code"> - <el-input v-model="dialogForm.code" :disabled="operation!=='add'" style="width: 200px" /> - </el-form-item> - <el-form-item label="鏍囧噯鍚嶇О" prop="name"> - <el-input v-model="dialogForm.name" style="width: 200px" /> - </el-form-item> - <el-form-item label="鏍囧噯鎻忚堪" prop="description"> - <el-input v-model="dialogForm.description" type="textarea" style="width: 200px" /> - </el-form-item> - </el-form> - </div> - <el-divider content-position="left">鎸囧畾淇濆吇椤逛俊鎭�</el-divider> - <div style="display: flex;align-items: center"> - <!-- <div style="font-weight: bolder">鐐规椤归�夋嫨锛�</div>--> - <el-drag-select - v-model="checkSelectedValue" - style="width:940px;" - multiple - placeholder="璇烽�夋嫨鐩稿搴旀寚瀹氶」" - > - <el-option - v-for="item in checkSelectArr" - :key="item.code" - :label="item.name" - :value="item.code" - /> - </el-drag-select> - </div> - - <div class="elTableDiv"> - <el-table - ref="tableDataDialogRef" - :data="tableDataDialog" - :height="(tableHeight-300)+'px'" - border - :row-class-name="tableRowClassName" - :style="{width: 100+'%',height:(tableHeight-300)+'px',}" - highlight-current-row - :header-cell-style="this.$headerCellStyle" - :cell-style="this.$cellStyle" - > - <el-table-column - type="index" - width="50" - label="搴忓彿" - /> - <el-table-column - prop="code" - width="150" - label="鐐规閮ㄤ綅缂栫爜" - show-tooltip-when-overflow - /> - <el-table-column - prop="name" - label="鐐规閮ㄤ綅鍚嶇О" - width="150" - show-tooltip-when-overflow - /> - - <el-table-column - prop="description" - label="鐐规瑕佹眰" - show-tooltip-when-overflow - > - <template slot-scope="{row}"> - <el-input v-model="row.description" /> - </template> - </el-table-column> - - </el-table> - </div> - <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> - - <el-dialog - v-el-drag-dialog - title="鍏宠仈妯″叿" - :visible.sync="mouldDialogVisible" - width="800px" - :close-on-click-modal="false" - top="8vh" - @closed="handleMouldClose" - @close="handleMouldClose" - > - <div> - <el-input - v-model="filterText" - placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" - /> - <el-tree - ref="tree" - class="filter-tree" - :data="tree" - :props="defaultProps" - show-checkbox - node-key="code" - style="margin-top:15px;height: 550px;overflow: auto" - default-expand-all - :filter-node-method="filterNode" - /> - </div> - <span slot="footer" class="dialog-footer"> - <div class="footerButton"> - <el-button v-waves @click="mouldDialogVisibleCancel">鍙� 娑�</el-button> - <el-button - v-waves - type="primary" - :loading="$store.state.app.buttonIsDisabled" - :disabled="$store.state.app.buttonIsDisabled" - @click="mouldDialogVisibleConfirm" - >纭� 瀹�</el-button> - </div> - </span> - </el-dialog> - - </div> -</template> - -<script> -import Pagination from '@/components/Pagination' -import { validateCode } from '@/utils/global' -import elDragDialog from '@/directive/el-drag-dialog' -import waves from '@/directive/waves' -import TableColumnSettings from '@/components/TableColumnSettings' -import { - AddUpdateMouldRepairStandArd, - DeleteMouldRepairStaned, - MouldRepairStandArdSearch, - RepairStanedAssociationMould, - SaveRepairStanedAssociationMould, - ViewMouldRepairStanedSearch -} from '@/api/MouldManager' -import ElDragSelect from '@/components/DragSelect' -import { MouldRepairItemSelect } from '@/api/GeneralBasicData' -import arrayToTree from 'array-to-tree' - -export default { - name: 'MouldMaintainStand', - components: { - Pagination, TableColumnSettings, ElDragSelect - }, - directives: { elDragDialog, waves }, - data() { - return { - mainHeight: 0, - tableHeight: 0, - form: { - repairstandcode: '', // 鏍囧噯缂栫爜 - repairstandname: '', // 鏍囧噯鍚嶇О - repairstandescr: '', // 鐐规绠℃帶 - prop: 'lm_date', // 鎺掑簭瀛楁 - order: 'desc', // 鎺掑簭瀛楁 - page: 1, // 绗嚑椤� - rows: 20 // 姣忛〉澶氬皯鏉� - }, - checkcontrArr: [ - { code: 'Y', name: '鏄�' }, - { code: 'N', name: '鍚�' } - ], - cycleArr: [ - { code: 'D', name: '鏃�' } - ], - total: 10, - tableData: [], - tableColumnSettingsArray: [ - { minWidth: false, width: 55, prop: 'id', label: 'id', id: 1, show: false, fixed: false, sortable: false }, // 闅愯棌鍒� show: false闅愯棌锛宼rue鏄剧ず - { minWidth: false, width: 55, prop: 'rowNum', label: '搴忓彿', id: 2, show: true, fixed: 'left', sortable: false }, // custom - { - minWidth: 110, - width: false, - prop: 'code', - label: '鏍囧噯缂栫爜', - id: 3, - show: true, - fixed: false, - sortable: true - }, - { - minWidth: 110, - width: false, - prop: 'name', - label: '鏍囧噯鍚嶇О', - id: 4, - show: true, - fixed: false, - sortable: true - }, - { - minWidth: 330, - width: false, - prop: 'description', - label: '鏍囧噯鎻忚堪', - id: 5, - show: true, - fixed: false, - sortable: true - }, - { - minWidth: false, - width: 110, - prop: 'is_repairmould', - label: '鍏宠仈妯″叿', - id: 6, - show: true, - fixed: false, - sortable: true - }, - // { - // minWidth: false, - // width: 110, - // prop: 'is_checkeqp', - // label: '鍏宠仈璁惧', - // id: 7, - // show: true, - // fixed: false, - // sortable: true - // }, - { - minWidth: false, - width: 110, - prop: 'lm_user', - label: '鍒涘缓浜哄憳', - id: 8, - show: true, - fixed: false, - sortable: true - }, - { - minWidth: false, - width: 160, - prop: 'lm_date', - label: '鍒涘缓鏃堕棿', - id: 9, - show: true, - fixed: false, - sortable: true - } - ], - tableTimeStampKey: new Date().getTime(), // 琛ㄦ牸key - - dialogVisible: false, - dialogForm: { - code: '', - name: '', - description: '' - }, - operation: '', - dialogFormRules: { - code: [ - { required: true, validator: validateCode, trigger: ['blur', 'change'] } - ], - name: [ - { required: true, message: '璇疯緭鍏ユ爣鍑嗗悕绉�', trigger: ['blur', 'change'] } - ] - - }, - tableDataDialog: [], // 琛ㄦ牸鏁版嵁 - - checkSelectedValue: [], - checkSelectArr: [], - - mouldDialogVisible: false, - tree: [ - { - code: '-1', - name: '鍏ㄩ儴' - } - ], - filterText: '', - defaultProps: { - children: 'children', - label: 'name' - }, - repairstand_code: '' - - } - }, - watch: { - filterText(val) { - this.$refs.tree.filter(val) - }, - 'checkSelectedValue': { - handler: function(val) { - const arr = JSON.parse(JSON.stringify(this.tableDataDialog)) - const arrCheckcode = arr.map(i => i.code) - this.tableDataDialog = [] - val.forEach(i => { - this.tableDataDialog.push( - { - code: i, - name: this.checkSelectArr.find(j => j.code === i).name, - description: arrCheckcode.includes(i) ? arr.find(j => j.code === i).description : this.checkSelectArr.find(j => j.code === i).description - } - ) - }) - } - } - }, - activated() { window.addEventListener('resize', this.getHeight) this.getHeight() }, created() { - this.handleRequest() - }, - mounted() { - window.addEventListener('resize', this.getHeight) - this.getHeight() - }, - methods: { - - tableColumnUpdate(val, isCopyTrue) { - if (isCopyTrue) { - this.tableColumnSettingsArray = val - } - this.tableTimeStampKey = new Date().getTime() - - this.$refs.tableDataRef.doLayout() - }, - handleRequest() { - this.getMouldRepairStandArdSearch().then(res => { - if (res.code === '200') { - this.getMouldRepairItemSelect() - } - }) - }, - async getMouldRepairStandArdSearch() { - const res = await MouldRepairStandArdSearch(this.form) - this.tableData = res.data - this.total = res.count - return { code: res.code } - }, - // 鎺掑簭鏀瑰彉鏃� - 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.getMouldRepairStandArdSearch() - }, - // 鏌ヨ - search() { - this.getMouldRepairStandArdSearch() - }, - - // 閲嶇疆 - reset() { - this.form.repairstandcode = '' - this.form.repairstandname = '' - this.form.repairstandescr = '' - this.getMouldRepairStandArdSearch() - }, - - async getMouldRepairItemSelect() { - const { data: res } = await MouldRepairItemSelect() - this.checkSelectArr = res - }, - - // 鏂板鎸夐挳 - add(operation) { - this.operation = operation - this.dialogVisible = true - this.$nextTick(() => { - this.$refs.tableDataDialogRef.doLayout() - }) - }, - // 淇敼鎸夐挳 - edit(operation, row) { - this.operation = operation - this.getViewMouldRepairStanedSearch(row.code) - this.dialogVisible = true - this.$nextTick(() => { - this.$refs.tableDataDialogRef.doLayout() - }) - }, - // 淇敼鍓嶈姹傛帴鍙� - async getViewMouldRepairStanedSearch(repairstand_code) { - const { data: res } = await ViewMouldRepairStanedSearch({ repairstand_code }) - this.tableDataDialog = res.data - this.checkSelectedValue = res.data.map(i => i.code) - - this.dialogForm.code = res.code - this.dialogForm.name = res.name - this.dialogForm.description = res.description - - this.tableDataDialog.forEach(item => { - item.description = item.chkdesc - }) - }, - // 鍒犻櫎鎸夐挳 - async del(row) { - this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', { - confirmButtonText: '纭畾', - cancelButtonText: '鍙栨秷', - type: 'warning' - }).then(() => { - DeleteMouldRepairStaned({ repairstand_code: row.code }).then(res => { - if (res.code === '200') { - this.$notify.success('鍒犻櫎鎴愬姛!') - if (this.form.page > 1 && this.tableData.length === 1) { - this.form.page-- - } - this.getMouldRepairStandArdSearch() - } - }) - }).catch(() => { - this.$notify.info('宸插彇娑堝垹闄�') - }) - }, - - // 瀵硅瘽妗嗗叧闂簨浠� - handleClose() { - this.dialogForm.code = '' - this.dialogForm.name = '' - this.dialogForm.description = '' - this.tableDataDialog = [] - this.checkSelectedValue = [] - this.$refs.dialogForm.clearValidate() - }, - // 瀵硅瘽妗嗗彇娑� - dialogVisibleCancel() { - this.dialogVisible = false - }, - // 瀵硅瘽妗嗙‘璁� - dialogVisibleConfirm() { - this.$refs.dialogForm.validate(valid => { - if (valid) { - if (this.tableDataDialog.length === 0) { - return this.$message.info('淇濆吇椤逛俊鎭笉鑳戒负绌猴紒') - } - - const Data = [] - this.tableDataDialog.forEach((i, index) => { - Data.push({ - repairitem_seq: index + 1, - repairitem_code: i.code, - repairitem_name: i.name, - repairitem_descr: i.description - // cycle: '', - // isscan: '' - }) - }) - const data = { - 'code': this.dialogForm.code, - 'name': this.dialogForm.name, - 'description': this.dialogForm.description, - 'Data': Data - } - - this.$store.state.app.buttonIsDisabled = true - AddUpdateMouldRepairStandArd(data, this.operation === 'add' ? 'Add' : 'Update').then(res => { - if (res.code === '200') { - this.dialogVisible = false - this.$notify.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�') - this.getMouldRepairStandArdSearch() - this.$store.state.app.buttonIsDisabled = false - } else { - this.$notify.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�') - } - }) - } - }) - }, - - // 鍏宠仈妯″叿鐐瑰嚮 - async connectClick(row) { - const { data: res } = await RepairStanedAssociationMould({ repairstand_code: row.code }) - this.repairstand_code = row.code - - const keySelected = [] - res.forEach(i => { - i.parentid = '-1' - i.name = i.code + ' / ' + i.name - - if (i.flag === 'Y') { - keySelected.push(i.code) - } - }) - this.tree = arrayToTree(this.tree.concat(res), { - parentProperty: 'parentid', - customID: 'code', - childrenProperty: 'children' - }) - this.mouldDialogVisible = true - this.$nextTick(() => { - this.$refs.tree.setCheckedKeys(keySelected) - }) - }, - filterNode(value, data) { - if (!value) return true - return data.name.indexOf(value) !== -1 - }, - handleMouldClose() { - this.tree = [ - { - code: '-1', - name: '鍏ㄩ儴' - } - ] - }, - mouldDialogVisibleCancel() { - this.mouldDialogVisible = false - }, - mouldDialogVisibleConfirm() { - const treeKey = this.$refs.tree.getCheckedKeys() - const arr = [] - this.tree[0].children.forEach(i => { - // i.flag = treeKey.includes(i.code) ? 'Y' : 'N' - if (treeKey.includes(i.code)) { - arr.push({ - code: i.code, - name: i.name.split('/')[1].trim() - }) - } - }) - - this.$store.state.app.buttonIsDisabled = true - SaveRepairStanedAssociationMould(arr, this.repairstand_code).then(res => { - if (res.code === '200') { - this.$notify.success('缁戝畾鎴愬姛锛�') - this.mouldDialogVisible = false - this.getMouldRepairStandArdSearch() - this.$store.state.app.buttonIsDisabled = false - } else { - this.$store.state.app.buttonIsDisabled = false - this.$notify.error('缁戝畾澶辫触锛�') - } - }) - }, - - // 鑾峰彇椤甸潰楂樺害 - getHeight() { - this.$nextTick(() => { - this.mainHeight = window.innerHeight - 85 - this.tableHeight = this.mainHeight - 205 - this.$refs.tableDataRef.doLayout() - }) - }, - tableRowClassName({ row, rowIndex }) { - return 'custom-row' - } - - } -} -</script> -<style scoped lang="scss"> -::v-deep .el-select__caret { - display: flex; - align-items: center; - justify-content: center; -} -</style> +<template> + <div> + <div class="body" :style="{height:mainHeight+'px'}"> + <div class="bodyTopButtonGroup" style="justify-content: space-between"> + <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button> + <el-button + v-waves + type="success" + icon="el-icon-download" + @click="$router.push('./../systemSetting/dataImport?fileCode=14_1')" + >瀵煎叆 + </el-button> + </div> + + <div class="bodyTopFormGroup"> + <el-form + ref="form" + :model="form" + label-width="100px" + inline + style="display: flex;" + > + <div class="elForm"> + <el-form-item label="鏍囧噯缂栫爜" style=" display: flex;"> + <el-input v-model="form.repairstandcode" placeholder="璇疯緭鍏�" style="width: 200px" /> + </el-form-item> + <el-form-item label="鏍囧噯鍚嶇О" style=" display: flex;"> + <el-input v-model="form.repairstandname" placeholder="璇疯緭鍏�" style="width: 200px" /> + </el-form-item> + <el-form-item label="鏍囧噯鎻忚堪" style=" display: flex;"> + <el-input v-model="form.repairstandescr" placeholder="璇疯緭鍏�" style="width: 200px" /> + </el-form-item> + </div> + <div + class="bodySearchReset" + :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}" + > + <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button> + <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button> + </div> + </el-form> + + <div + class="bodyTopFormExpand" + style="height:5px" + /> + </div> + + <div class="elTableDiv"> + <!-- <TableColumnSettings--> + <!-- :list1="tableColumnSettingsArray"--> + <!-- @tableColumnUpdate="tableColumnUpdate"--> + <!-- />--> + <el-table + ref="tableDataRef" + :key="tableTimeStampKey" + :data="tableData" + :height="tableHeight+'px'" + border + class="tableFixed" + :row-class-name="tableRowClassName" + :style="{width: 100+'%',height:tableHeight+'px',}" + highlight-current-row + :header-cell-style="this.$headerCellStyle" + :cell-style="this.$cellStyle" + @sort-change="sortChange" + > + + <el-table-column + v-for="item in tableColumnSettingsArray" + v-if="item.show" + :key="item.id" + :sortable="item.sortable" + :prop="item.prop" + :min-width="item.minWidth" + :label="item.label" + :width="item.width" + show-tooltip-when-overflow + :fixed="item.fixed?(item.fixed==='left'?'left':'right'):false" + > + <template slot-scope="{row}"> + <div v-if="!row[item.prop]">/</div> + <div v-else-if="item.prop==='is_repairmould'"> + <i + v-if="row[item.prop]==='Y'" + :style="{color:$store.state.settings.theme}" + class="el-icon-share" + style="cursor: pointer" + @click="connectClick(row)" + /> + <i + v-if="row[item.prop]==='N'" + class="el-icon-share" + style="color: rgb(180 ,181, 185);cursor:pointer;" + @click="connectClick(row)" + /> + </div> + <div v-else>{{ row[item.prop] }}</div> + </template> + </el-table-column> + + <el-table-column + label="鎿嶄綔" + fixed="right" + width="120" + > + <template slot-scope="{row}"> + <div class="operationClass"> + <el-tooltip class="item" effect="dark" content="缂栬緫" placement="top"> + <i + :style="{color:$store.state.settings.theme}" + class="el-icon-edit-outline" + @click="edit('edit',row)" + /> + </el-tooltip> + <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top"> + <i :style="{color:$store.state.settings.theme}" class="el-icon-delete" @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="getMouldRepairStandArdSearch" + /> + </div> + + <el-dialog + v-el-drag-dialog + :title="operation==='add'?'鏂板':'缂栬緫'" + :visible.sync="dialogVisible" + width="1100px" + :close-on-click-modal="false" + top="8vh" + @closed="handleClose" + @close="handleClose" + > + <div style="margin: 0 30px;"> + <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px"> + <el-divider content-position="left">妯″叿淇濆吇鏍囧噯淇℃伅</el-divider> + + <el-form-item label="鏍囧噯缂栫爜" prop="code"> + <el-input v-model="dialogForm.code" :disabled="operation!=='add'" style="width: 200px" /> + </el-form-item> + <el-form-item label="鏍囧噯鍚嶇О" prop="name"> + <el-input v-model="dialogForm.name" style="width: 200px" /> + </el-form-item> + <el-form-item label="鏍囧噯鎻忚堪" prop="description"> + <el-input v-model="dialogForm.description" type="textarea" style="width: 200px" /> + </el-form-item> + </el-form> + </div> + <el-divider content-position="left">鎸囧畾淇濆吇椤逛俊鎭�</el-divider> + <div style="display: flex;align-items: center"> + <!-- <div style="font-weight: bolder">鐐规椤归�夋嫨锛�</div>--> + <el-drag-select + v-model="checkSelectedValue" + style="width:940px;" + multiple + placeholder="璇烽�夋嫨鐩稿搴旀寚瀹氶」" + > + <el-option + v-for="item in checkSelectArr" + :key="item.code" + :label="item.name" + :value="item.code" + /> + </el-drag-select> + </div> + + <div class="elTableDiv"> + <el-table + ref="tableDataDialogRef" + :data="tableDataDialog" + :height="(tableHeight-300)+'px'" + border + :row-class-name="tableRowClassName" + :style="{width: 100+'%',height:(tableHeight-300)+'px',}" + highlight-current-row + :header-cell-style="this.$headerCellStyle" + :cell-style="this.$cellStyle" + > + <el-table-column + type="index" + width="50" + label="搴忓彿" + /> + <el-table-column + prop="code" + width="150" + label="鐐规閮ㄤ綅缂栫爜" + show-tooltip-when-overflow + /> + <el-table-column + prop="name" + label="鐐规閮ㄤ綅鍚嶇О" + width="150" + show-tooltip-when-overflow + /> + + <el-table-column + prop="description" + label="鐐规瑕佹眰" + show-tooltip-when-overflow + > + <template slot-scope="{row}"> + <el-input v-model="row.description" /> + </template> + </el-table-column> + + </el-table> + </div> + <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> + + <el-dialog + v-el-drag-dialog + title="鍏宠仈妯″叿" + :visible.sync="mouldDialogVisible" + width="800px" + :close-on-click-modal="false" + top="8vh" + @closed="handleMouldClose" + @close="handleMouldClose" + > + <div> + <el-input + v-model="filterText" + placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" + /> + <el-tree + ref="tree" + class="filter-tree" + :data="tree" + :props="defaultProps" + show-checkbox + node-key="code" + style="margin-top:15px;height: 550px;overflow: auto" + default-expand-all + :filter-node-method="filterNode" + /> + </div> + <span slot="footer" class="dialog-footer"> + <div class="footerButton"> + <el-button v-waves @click="mouldDialogVisibleCancel">鍙� 娑�</el-button> + <el-button + v-waves + type="primary" + :loading="$store.state.app.buttonIsDisabled" + :disabled="$store.state.app.buttonIsDisabled" + @click="mouldDialogVisibleConfirm" + >纭� 瀹�</el-button> + </div> + </span> + </el-dialog> + + </div> +</template> + +<script> +import Pagination from '@/components/Pagination' +import { validateCode } from '@/utils/global' +import elDragDialog from '@/directive/el-drag-dialog' +import waves from '@/directive/waves' +import TableColumnSettings from '@/components/TableColumnSettings' +import { + AddUpdateMouldRepairStandArd, + DeleteMouldRepairStaned, + MouldRepairStandArdSearch, + RepairStanedAssociationMould, + SaveRepairStanedAssociationMould, + ViewMouldRepairStanedSearch +} from '@/api/MouldManager' +import ElDragSelect from '@/components/DragSelect' +import { MouldRepairItemSelect } from '@/api/GeneralBasicData' +import arrayToTree from 'array-to-tree' + +export default { + name: 'MouldMaintainStand', + components: { + Pagination, TableColumnSettings, ElDragSelect + }, + directives: { elDragDialog, waves }, + data() { + return { + mainHeight: 0, + tableHeight: 0, + form: { + repairstandcode: '', // 鏍囧噯缂栫爜 + repairstandname: '', // 鏍囧噯鍚嶇О + repairstandescr: '', // 鐐规绠℃帶 + prop: 'lm_date', // 鎺掑簭瀛楁 + order: 'desc', // 鎺掑簭瀛楁 + page: 1, // 绗嚑椤� + rows: 20 // 姣忛〉澶氬皯鏉� + }, + checkcontrArr: [ + { code: 'Y', name: '鏄�' }, + { code: 'N', name: '鍚�' } + ], + cycleArr: [ + { code: 'D', name: '鏃�' } + ], + total: 10, + tableData: [], + tableColumnSettingsArray: [ + { minWidth: false, width: 55, prop: 'id', label: 'id', id: 1, show: false, fixed: false, sortable: false }, // 闅愯棌鍒� show: false闅愯棌锛宼rue鏄剧ず + { minWidth: false, width: 55, prop: 'rowNum', label: '搴忓彿', id: 2, show: true, fixed: 'left', sortable: false }, // custom + { + minWidth: 110, + width: false, + prop: 'code', + label: '鏍囧噯缂栫爜', + id: 3, + show: true, + fixed: false, + sortable: true + }, + { + minWidth: 110, + width: false, + prop: 'name', + label: '鏍囧噯鍚嶇О', + id: 4, + show: true, + fixed: false, + sortable: true + }, + { + minWidth: 330, + width: false, + prop: 'description', + label: '鏍囧噯鎻忚堪', + id: 5, + show: true, + fixed: false, + sortable: true + }, + { + minWidth: false, + width: 110, + prop: 'is_repairmould', + label: '鍏宠仈妯″叿', + id: 6, + show: true, + fixed: false, + sortable: true + }, + // { + // minWidth: false, + // width: 110, + // prop: 'is_checkeqp', + // label: '鍏宠仈璁惧', + // id: 7, + // show: true, + // fixed: false, + // sortable: true + // }, + { + minWidth: false, + width: 110, + prop: 'lm_user', + label: '鍒涘缓浜哄憳', + id: 8, + show: true, + fixed: false, + sortable: true + }, + { + minWidth: false, + width: 160, + prop: 'lm_date', + label: '鍒涘缓鏃堕棿', + id: 9, + show: true, + fixed: false, + sortable: true + } + ], + tableTimeStampKey: new Date().getTime(), // 琛ㄦ牸key + + dialogVisible: false, + dialogForm: { + code: '', + name: '', + description: '' + }, + operation: '', + dialogFormRules: { + code: [ + { required: true, validator: validateCode, trigger: ['blur', 'change'] } + ], + name: [ + { required: true, message: '璇疯緭鍏ユ爣鍑嗗悕绉�', trigger: ['blur', 'change'] } + ] + + }, + tableDataDialog: [], // 琛ㄦ牸鏁版嵁 + + checkSelectedValue: [], + checkSelectArr: [], + + mouldDialogVisible: false, + tree: [ + { + code: '-1', + name: '鍏ㄩ儴' + } + ], + filterText: '', + defaultProps: { + children: 'children', + label: 'name' + }, + repairstand_code: '' + + } + }, + watch: { + filterText(val) { + this.$refs.tree.filter(val) + }, + 'checkSelectedValue': { + handler: function(val) { + const arr = JSON.parse(JSON.stringify(this.tableDataDialog)) + const arrCheckcode = arr.map(i => i.code) + this.tableDataDialog = [] + val.forEach(i => { + this.tableDataDialog.push( + { + code: i, + name: this.checkSelectArr.find(j => j.code === i).name, + description: arrCheckcode.includes(i) ? arr.find(j => j.code === i).description : this.checkSelectArr.find(j => j.code === i).description + } + ) + }) + } + } + }, + activated() { + window.addEventListener('resize', this.getHeight) + this.getHeight() + this.handleRequest() + }, + created() { + this.handleRequest() + }, + mounted() { + window.addEventListener('resize', this.getHeight) + this.getHeight() + }, + methods: { + + tableColumnUpdate(val, isCopyTrue) { + if (isCopyTrue) { + this.tableColumnSettingsArray = val + } + this.tableTimeStampKey = new Date().getTime() + + this.$refs.tableDataRef.doLayout() + }, + handleRequest() { + this.getMouldRepairStandArdSearch().then(res => { + if (res.code === '200') { + this.getMouldRepairItemSelect() + } + }) + }, + async getMouldRepairStandArdSearch() { + const res = await MouldRepairStandArdSearch(this.form) + this.tableData = res.data + this.total = res.count + return { code: res.code } + }, + // 鎺掑簭鏀瑰彉鏃� + 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.getMouldRepairStandArdSearch() + }, + // 鏌ヨ + search() { + this.getMouldRepairStandArdSearch() + }, + + // 閲嶇疆 + reset() { + this.form.repairstandcode = '' + this.form.repairstandname = '' + this.form.repairstandescr = '' + this.getMouldRepairStandArdSearch() + }, + + async getMouldRepairItemSelect() { + const { data: res } = await MouldRepairItemSelect() + this.checkSelectArr = res + }, + + // 鏂板鎸夐挳 + add(operation) { + this.operation = operation + this.dialogVisible = true + this.$nextTick(() => { + this.$refs.tableDataDialogRef.doLayout() + }) + }, + // 淇敼鎸夐挳 + edit(operation, row) { + this.operation = operation + this.getViewMouldRepairStanedSearch(row.code) + this.dialogVisible = true + this.$nextTick(() => { + this.$refs.tableDataDialogRef.doLayout() + }) + }, + // 淇敼鍓嶈姹傛帴鍙� + async getViewMouldRepairStanedSearch(repairstand_code) { + const { data: res } = await ViewMouldRepairStanedSearch({ repairstand_code }) + this.tableDataDialog = res.data + this.checkSelectedValue = res.data.map(i => i.code) + + this.dialogForm.code = res.code + this.dialogForm.name = res.name + this.dialogForm.description = res.description + + this.tableDataDialog.forEach(item => { + item.description = item.chkdesc + }) + }, + // 鍒犻櫎鎸夐挳 + async del(row) { + this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + DeleteMouldRepairStaned({ repairstand_code: row.code }).then(res => { + if (res.code === '200') { + this.$notify.success('鍒犻櫎鎴愬姛!') + if (this.form.page > 1 && this.tableData.length === 1) { + this.form.page-- + } + this.getMouldRepairStandArdSearch() + } + }) + }).catch(() => { + this.$notify.info('宸插彇娑堝垹闄�') + }) + }, + + // 瀵硅瘽妗嗗叧闂簨浠� + handleClose() { + this.dialogForm.code = '' + this.dialogForm.name = '' + this.dialogForm.description = '' + this.tableDataDialog = [] + this.checkSelectedValue = [] + this.$refs.dialogForm.clearValidate() + }, + // 瀵硅瘽妗嗗彇娑� + dialogVisibleCancel() { + this.dialogVisible = false + }, + // 瀵硅瘽妗嗙‘璁� + dialogVisibleConfirm() { + this.$refs.dialogForm.validate(valid => { + if (valid) { + if (this.tableDataDialog.length === 0) { + return this.$message.info('淇濆吇椤逛俊鎭笉鑳戒负绌猴紒') + } + + const Data = [] + this.tableDataDialog.forEach((i, index) => { + Data.push({ + repairitem_seq: index + 1, + repairitem_code: i.code, + repairitem_name: i.name, + repairitem_descr: i.description + // cycle: '', + // isscan: '' + }) + }) + const data = { + 'code': this.dialogForm.code, + 'name': this.dialogForm.name, + 'description': this.dialogForm.description, + 'Data': Data + } + + this.$store.state.app.buttonIsDisabled = true + AddUpdateMouldRepairStandArd(data, this.operation === 'add' ? 'Add' : 'Update').then(res => { + if (res.code === '200') { + this.dialogVisible = false + this.$notify.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�') + this.getMouldRepairStandArdSearch() + this.$store.state.app.buttonIsDisabled = false + } else { + this.$notify.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�') + } + }) + } + }) + }, + + // 鍏宠仈妯″叿鐐瑰嚮 + async connectClick(row) { + const { data: res } = await RepairStanedAssociationMould({ repairstand_code: row.code }) + this.repairstand_code = row.code + + const keySelected = [] + res.forEach(i => { + i.parentid = '-1' + i.name = i.code + ' / ' + i.name + + if (i.flag === 'Y') { + keySelected.push(i.code) + } + }) + this.tree = arrayToTree(this.tree.concat(res), { + parentProperty: 'parentid', + customID: 'code', + childrenProperty: 'children' + }) + this.mouldDialogVisible = true + this.$nextTick(() => { + this.$refs.tree.setCheckedKeys(keySelected) + }) + }, + filterNode(value, data) { + if (!value) return true + return data.name.indexOf(value) !== -1 + }, + handleMouldClose() { + this.tree = [ + { + code: '-1', + name: '鍏ㄩ儴' + } + ] + }, + mouldDialogVisibleCancel() { + this.mouldDialogVisible = false + }, + mouldDialogVisibleConfirm() { + const treeKey = this.$refs.tree.getCheckedKeys() + const arr = [] + this.tree[0].children.forEach(i => { + // i.flag = treeKey.includes(i.code) ? 'Y' : 'N' + if (treeKey.includes(i.code)) { + arr.push({ + code: i.code, + name: i.name.split('/')[1].trim() + }) + } + }) + + this.$store.state.app.buttonIsDisabled = true + SaveRepairStanedAssociationMould(arr, this.repairstand_code).then(res => { + if (res.code === '200') { + this.$notify.success('缁戝畾鎴愬姛锛�') + this.mouldDialogVisible = false + this.getMouldRepairStandArdSearch() + this.$store.state.app.buttonIsDisabled = false + } else { + this.$store.state.app.buttonIsDisabled = false + this.$notify.error('缁戝畾澶辫触锛�') + } + }) + }, + + // 鑾峰彇椤甸潰楂樺害 + getHeight() { + this.$nextTick(() => { + this.mainHeight = window.innerHeight - 85 + this.tableHeight = this.mainHeight - 205 + this.$refs.tableDataRef.doLayout() + }) + }, + tableRowClassName({ row, rowIndex }) { + return 'custom-row' + } + + } +} +</script> +<style scoped lang="scss"> +::v-deep .el-select__caret { + display: flex; + align-items: center; + justify-content: center; +} +</style> -- Gitblit v1.9.3