src/api/dzkb.js
@@ -114,3 +114,11 @@ method: 'get' }) } // 车é´çæ¿å ¬å export function WkspReportNotice(data) { return request({ url: 'KanBanManagerent/WkspReportNotice', method: 'post', params: data }) } src/api/scgl.js
@@ -227,3 +227,28 @@ data }) } // MESå·¥åæ¥è¯¢ export function MesOrderBitchClosedSearch(data) { return request({ url: 'ProductionManagement/MesOrderBitchClosedSearch', method: 'get', params: data }) } // MES工忹éå ³éæäº¤ export function MesOrderBitchClosedSeave(data) { return request({ url: 'ProductionManagement/MesOrderBitchClosedSeave', method: 'post', data }) } // MES工忹éåå ³é export function MesOrderBitchAntiClosedSeave(data) { return request({ url: 'ProductionManagement/MesOrderBitchAntiClosedSeave', method: 'post', data }) } src/styles/global.css
@@ -24,7 +24,7 @@ } /*头鍿é®ç»æ ·å¼*/ .bodyTopButtonGroup{ .bodyTopButtonGroup { /*padding-left: 10px;*/ display: flex; background-color: #f8f8fa; @@ -34,9 +34,17 @@ } /*头é¨è¡¨åç»æ ·å¼*/ .bodyTopFormGroup{ .bodyTopFormGroup { background-color: #f8f8fa; padding: 10px; } .bodyTopFormExpand { display: flex; justify-content: center; align-items: center; background-color: #eee; cursor: pointer; } .elForm { @@ -69,10 +77,11 @@ justify-content: end; } .ellipsis{ text-overflow :ellipsis;overflow:hidden;white-space:nowrap; .ellipsis { text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } /* src/utils/global.js
@@ -76,5 +76,18 @@ } return items } export default clearAllChildren // æ£åè¡¨è¾¾å¼ ç¼ç ä¸è½å«æä¸ææç¹æ®å符 const SER_HZ = /^[a-zA-Z0-9_\-;,.<>() ]{0,}$/ export const validateCode = (rule, value, callback) => { if (!value) { return callback(new Error('请è¾å ¥ç¼ç ')) } else { if (!SER_HZ.test(value)) { return callback(new Error('ç¼ç ä¸è½å«æä¸ææç¹æ®å符')) } else { callback() } } } src/views/jcsz/jsqd.vue
@@ -277,7 +277,7 @@ sortable="custom" > <template slot-scope="{row}"> <el-input v-if="row.isVisible===1" v-model="row.roletype_code" placeholder="请è¾å ¥" /> <el-input v-if="row.isVisible===1" v-model="row.roletype_code" oninput="value=value.replace(/[^0-9a-zA-Z]/g,'')" placeholder="请è¾å ¥" /> <div v-else> {{ row.roletype_code }}</div> </template> </el-table-column> @@ -581,26 +581,14 @@ } from '@/api/jcsz' import { getCookie } from '@/utils/auth' import $ from 'jquery' import clearAllChildren from '@/utils/global' import clearAllChildren, { validateCode } from '@/utils/global' const SER_HZ = /^[\u4e00-\u9fa5]+$/ export default { name: 'JSQD', components: { Pagination, ImportPicker }, data() { const validateName = (rule, value, callback) => { if (!value) { return callback(new Error('请è¾å ¥ç¼ç ')) } else { if (SER_HZ.test(value)) { return callback(new Error('ç¼ç ä¸è½ä¸ºä¸æ')) } else { callback() } } } return { isIpad: false, mainHeight: 0, @@ -637,7 +625,7 @@ operation: '', dialogFormRules: { RoleCode: [ { required: true, validator: validateName, trigger: ['blur', 'change'] } { required: true, validator: validateCode, trigger: ['blur', 'change'] } ], RoleName: [ { required: true, message: '请è¾å ¥åç§°', trigger: ['blur', 'change'] } src/views/jcsz/wldw.vue
@@ -259,25 +259,13 @@ } from '@/api/jcsz' import { SeaveSearchPartner } from '@/api/ErpSyncMes' import ImportPicker from '@/components/ImportPicker' const SER_HZ = /^[\u4e00-\u9fa5]+$/ import { validateCode } from '@/utils/global' export default { name: 'WLDW', components: { Pagination, ImportPicker }, data() { const validateName = (rule, value, callback) => { if (!value) { return callback(new Error('请è¾å ¥ç¼ç ')) } else { if (SER_HZ.test(value)) { return callback(new Error('ç¼ç ä¸è½ä¸ºä¸æ')) } else { callback() } } } const validateMobile = (rule, value, callback) => { if (!value) { callback() @@ -332,7 +320,7 @@ operation: '', dialogFormRules: { unitcode: [ { required: true, validator: validateName, trigger: ['blur', 'change'] } { required: true, validator: validateCode, trigger: ['blur', 'change'] } ], unitname: [ { required: true, message: '请è¾å ¥ä¾æ¹åç§°', trigger: ['blur', 'change'] } src/views/jcsz/yhqd.vue
@@ -458,7 +458,7 @@ sortable="custom" > <template slot-scope="{row}"> <el-input v-if="row.isVisible===1" v-model="row.group_code" placeholder="请è¾å ¥" /> <el-input v-if="row.isVisible===1" v-model="row.group_code" oninput="value=value.replace(/[^0-9a-zA-Z]/g,'')" placeholder="请è¾å ¥" /> <div v-else> {{ row.group_code }}</div> </template> </el-table-column> @@ -534,27 +534,15 @@ } from '@/api/jcsz' import { getCookie } from '@/utils/auth' import $ from 'jquery' import clearAllChildren from '@/utils/global' import clearAllChildren, { validateCode } from '@/utils/global' import { MesOrderStepReportSelectUserGroup } from '@/api/scgl' const SER_HZ = /^[\u4e00-\u9fa5]+$/ export default { name: 'YYQD', components: { Pagination, ImportPicker }, data() { const validateName = (rule, value, callback) => { if (!value) { return callback(new Error('请è¾å ¥ç¼ç ')) } else { if (SER_HZ.test(value)) { return callback(new Error('ç¼ç ä¸è½ä¸ºä¸æ')) } else { callback() } } } const validateMobile = (rule, value, callback) => { if (!value) { callback() @@ -584,7 +572,6 @@ } } } return { isIpad: false, mainHeight: 0, @@ -637,7 +624,7 @@ operation: '', dialogFormRules: { UserCode: [ { required: true, validator: validateName, trigger: ['blur', 'change'] } { required: true, validator: validateCode, trigger: ['blur', 'change'] } ], UserName: [ { required: true, message: '请è¾å ¥ç¨æ·åç§°', trigger: ['blur', 'change'] } src/views/jcsz/zzjg.vue
@@ -204,25 +204,27 @@ import Pagination from '@/components/Pagination' import { AddUpdateOrganization, DeleteOrganization, OrganizationSearch, PrentOrganization } from '@/api/jcsz' import { getCookie } from '@/utils/auth' import { validateCode } from '@/utils/global' const SER_HZ = /^[\u4e00-\u9fa5]+$/ // const SER_HZ = /^[\u4e00-\u9fa5]+$/ // const SER_HZ = /^[a-zA-Z0-9_;,.<>() ]{0,}$/ export default { name: 'ZZJG', components: { Pagination }, data() { const validateName = (rule, value, callback) => { if (!value) { return callback(new Error('请è¾å ¥ç¼ç ')) } else { if (SER_HZ.test(value)) { return callback(new Error('ç¼ç ä¸è½ä¸ºä¸æ')) } else { callback() } } } // const validateName = (rule, value, callback) => { // if (!value) { // return callback(new Error('请è¾å ¥ç¼ç ')) // } else { // if (!this.$SER_HZ.test(value)) { // return callback(new Error('ç¼ç ä¸è½å«æä¸ææç¹æ®å符')) // } else { // callback() // } // } // } const validateTypeCode = (rule, value, callback) => { if (!value) { return callback(new Error('è¯·éæ©ä¸çº§')) @@ -270,7 +272,8 @@ { required: true, message: '请è¾å ¥éæ©ç±»å', trigger: ['blur', 'change'] } ], OrgCode: [ { required: true, validator: validateName, trigger: ['blur', 'change'] } // { required: true, validator: validateName, trigger: ['blur', 'change'] } { required: true, validator: validateCode, trigger: ['blur', 'change'] } ], OrgName: [ { required: true, message: '请è¾å ¥åç§°', trigger: ['blur', 'change'] } src/views/kb/bzcj.vue
@@ -287,7 +287,7 @@ LineSearchBottomRightData, LineSearchTopLeftData, LineSearchTopRightData, ShopSearch, ShopSearchLine ShopSearchLine, WkspReportNotice } from '@/api/dzkb' import MarqueeTips from 'vue-marquee-tips' @@ -334,10 +334,25 @@ }, // è·åå ¬å getMarqueeTipsContent() { this.MarqueeTipsContent = 'åä½åå·¥ä»¬ï¼æ ¹æ®ä¸çº§çéç¥ï¼ç»åæä¼å®é æ åµï¼ç°å°20xxå¹´çå æ¦æ¾åéç¥å¦ä¸ï¼ä¸ã1æ1æ¥è³1æ3æ¥æ¾åè°ä¼ï¼å ±3天ã1æ4æ¥æ£å¼ä¸çãäºãè忥æé´ï¼åçç»è¦ä¸¥æ ¼è½å®ä¸çº§çéè¦æç¤ºç²¾ç¥ï¼æç §ä¸çº§çå ·ä½è¦æ±ï¼è®¤çæå¥½è½å®èæ¥æé´å¼çå¤å¤å·¥ä½ï¼ç¡®ä¿èæ¥æé´ä¼ä¸å项工使£å¸¸è¿è½¬ãxxä¼ä¸20xxå¹´12æ28æ¥' const spance = ' '.padStart(this.MarqueeTipsContent.length * 2, ' ') this.MarqueeTipsContent = this.MarqueeTipsContent + spance this.speed = this.MarqueeTipsContent.length / 10 WkspReportNotice({ shopcode: this.ShopArr.join(',') }).then(res => { let contentAll = '' res.data.forEach(item => { contentAll += item.contents + ' '.padStart(item.contents.toString().length * 2, ' ') }) this.MarqueeTipsContent = contentAll this.speed = this.MarqueeTipsContent.length / 10 setInterval(() => { WkspReportNotice({ shopcode: this.ShopArr.join(',') }).then(res1 => { let contentAll = '' res1.data.forEach(item => { contentAll += item.contents + ' '.padStart(item.contents.toString().length * 2, ' ') }) this.MarqueeTipsContent = contentAll this.speed = this.MarqueeTipsContent.length / 10 }) }, this.speed * 1000) }) }, // è·å车é´ç¼ç async getShopSearch() { src/views/kb/dccj.vue
@@ -287,7 +287,7 @@ LineSearchBottomRightData, LineSearchTopLeftData, LineSearchTopRightData, ShopSearch, ShopSearchLine ShopSearchLine, WkspReportNotice } from '@/api/dzkb' import MarqueeTips from 'vue-marquee-tips' @@ -334,10 +334,25 @@ }, // è·åå ¬å getMarqueeTipsContent() { this.MarqueeTipsContent = 'åä½åå·¥ä»¬ï¼æ ¹æ®ä¸çº§çéç¥ï¼ç»åæä¼å®é æ åµï¼ç°å°20xxå¹´çå æ¦æ¾åéç¥å¦ä¸ï¼ä¸ã1æ1æ¥è³1æ3æ¥æ¾åè°ä¼ï¼å ±3天ã1æ4æ¥æ£å¼ä¸çãäºãè忥æé´ï¼åçç»è¦ä¸¥æ ¼è½å®ä¸çº§çéè¦æç¤ºç²¾ç¥ï¼æç §ä¸çº§çå ·ä½è¦æ±ï¼è®¤çæå¥½è½å®èæ¥æé´å¼çå¤å¤å·¥ä½ï¼ç¡®ä¿èæ¥æé´ä¼ä¸å项工使£å¸¸è¿è½¬ãxxä¼ä¸20xxå¹´12æ28æ¥' const spance = ' '.padStart(this.MarqueeTipsContent.length * 2, ' ') this.MarqueeTipsContent = this.MarqueeTipsContent + spance this.speed = this.MarqueeTipsContent.length / 10 WkspReportNotice({ shopcode: this.ShopArr.join(',') }).then(res => { let contentAll = '' res.data.forEach(item => { contentAll += item.contents + ' '.padStart(item.contents.toString().length * 2, ' ') }) this.MarqueeTipsContent = contentAll this.speed = this.MarqueeTipsContent.length / 10 setInterval(() => { WkspReportNotice({ shopcode: this.ShopArr.join(',') }).then(res1 => { let contentAll = '' res1.data.forEach(item => { contentAll += item.contents + ' '.padStart(item.contents.toString().length * 2, ' ') }) this.MarqueeTipsContent = contentAll this.speed = this.MarqueeTipsContent.length / 10 }) }, this.speed * 1000) }) }, // è·å车é´ç¼ç async getShopSearch() { src/views/kb/zhkb.vue
@@ -287,7 +287,7 @@ LineSearchBottomRightData, LineSearchTopLeftData, LineSearchTopRightData, ShopSearch, ShopSearchLine ShopSearchLine, WkspReportNotice } from '@/api/dzkb' import MarqueeTips from 'vue-marquee-tips' @@ -331,13 +331,29 @@ await this.getTableDataRoll() await this.getTableDataRankRoll() await this.getMarqueeTipsContent() await this.getMarqueeTipsContent() }, // è·åå ¬å getMarqueeTipsContent() { this.MarqueeTipsContent = 'åä½åå·¥ä»¬ï¼æ ¹æ®ä¸çº§çéç¥ï¼ç»åæä¼å®é æ åµï¼ç°å°20xxå¹´çå æ¦æ¾åéç¥å¦ä¸ï¼ä¸ã1æ1æ¥è³1æ3æ¥æ¾åè°ä¼ï¼å ±3天ã1æ4æ¥æ£å¼ä¸çãäºãè忥æé´ï¼åçç»è¦ä¸¥æ ¼è½å®ä¸çº§çéè¦æç¤ºç²¾ç¥ï¼æç §ä¸çº§çå ·ä½è¦æ±ï¼è®¤çæå¥½è½å®èæ¥æé´å¼çå¤å¤å·¥ä½ï¼ç¡®ä¿èæ¥æé´ä¼ä¸å项工使£å¸¸è¿è½¬ãxxä¼ä¸20xxå¹´12æ28æ¥' const spance = ' '.padStart(this.MarqueeTipsContent.length * 2, ' ') this.MarqueeTipsContent = this.MarqueeTipsContent + spance this.speed = this.MarqueeTipsContent.length / 10 WkspReportNotice({ shopcode: this.ShopArr.join(',') }).then(res => { let contentAll = '' res.data.forEach(item => { contentAll += item.contents + ' '.padStart(item.contents.toString().length * 2, ' ') }) this.MarqueeTipsContent = contentAll this.speed = this.MarqueeTipsContent.length / 10 setInterval(() => { WkspReportNotice({ shopcode: this.ShopArr.join(',') }).then(res1 => { let contentAll = '' res1.data.forEach(item => { contentAll += item.contents + ' '.padStart(item.contents.toString().length * 2, ' ') }) this.MarqueeTipsContent = contentAll this.speed = this.MarqueeTipsContent.length / 10 }) }, this.speed * 1000) }) }, // è·å车é´ç¼ç async getShopSearch() { src/views/kb/zpcj.vue
@@ -287,7 +287,7 @@ LineSearchBottomRightData, LineSearchTopLeftData, LineSearchTopRightData, ShopSearch, ShopSearchLine ShopSearchLine, WkspReportNotice } from '@/api/dzkb' import MarqueeTips from 'vue-marquee-tips' @@ -334,10 +334,25 @@ }, // è·åå ¬å getMarqueeTipsContent() { this.MarqueeTipsContent = 'åä½åå·¥ä»¬ï¼æ ¹æ®ä¸çº§çéç¥ï¼ç»åæä¼å®é æ åµï¼ç°å°20xxå¹´çå æ¦æ¾åéç¥å¦ä¸ï¼ä¸ã1æ1æ¥è³1æ3æ¥æ¾åè°ä¼ï¼å ±3天ã1æ4æ¥æ£å¼ä¸çãäºãè忥æé´ï¼åçç»è¦ä¸¥æ ¼è½å®ä¸çº§çéè¦æç¤ºç²¾ç¥ï¼æç §ä¸çº§çå ·ä½è¦æ±ï¼è®¤çæå¥½è½å®èæ¥æé´å¼çå¤å¤å·¥ä½ï¼ç¡®ä¿èæ¥æé´ä¼ä¸å项工使£å¸¸è¿è½¬ãxxä¼ä¸20xxå¹´12æ28æ¥' const spance = ' '.padStart(this.MarqueeTipsContent.length * 2, ' ') this.MarqueeTipsContent = this.MarqueeTipsContent + spance this.speed = this.MarqueeTipsContent.length / 10 WkspReportNotice({ shopcode: this.ShopArr.join(',') }).then(res => { let contentAll = '' res.data.forEach(item => { contentAll += item.contents + ' '.padStart(item.contents.toString().length * 2, ' ') }) this.MarqueeTipsContent = contentAll this.speed = this.MarqueeTipsContent.length / 10 setInterval(() => { WkspReportNotice({ shopcode: this.ShopArr.join(',') }).then(res1 => { let contentAll = '' res1.data.forEach(item => { contentAll += item.contents + ' '.padStart(item.contents.toString().length * 2, ' ') }) this.MarqueeTipsContent = contentAll this.speed = this.MarqueeTipsContent.length / 10 }) }, this.speed * 1000) }) }, // è·å车é´ç¼ç async getShopSearch() { src/views/sbgl/bybw.vue
@@ -195,36 +195,17 @@ <script> import Pagination from '@/components/Pagination' import { AddUpdateOrganization, DeleteOrganization, OrganizationSearch, PrentOrganization } from '@/api/jcsz' import { getCookie } from '@/utils/auth' import { AddUpdateDeviceMaiItem, DeleteDeviceMaiItem, DeviceCheckItemSearch, DeviceMaiItemSearch } from '@/api/sbgl' import ImportPicker from '@/components/ImportPicker' const SER_HZ = /^[\u4e00-\u9fa5]+$/ import { AddUpdateDeviceMaiItem, DeleteDeviceMaiItem, DeviceMaiItemSearch } from '@/api/sbgl' import ImportPicker from '@/components/ImportPicker' import { validateCode } from '@/utils/global' export default { name: 'Zzjg', components: { Pagination, ImportPicker }, data() { const validateName = (rule, value, callback) => { if (!value) { return callback(new Error('请è¾å ¥ç¼ç ')) } else { if (SER_HZ.test(value)) { return callback(new Error('ç¼ç ä¸è½ä¸ºä¸æ')) } else { callback() } } } const validateTypeCode = (rule, value, callback) => { if (!value) { return callback(new Error('è¯·éæ©ä¸çº§')) } else { callback() } } return { mainHeight: 0, tableHeight: 0, @@ -257,7 +238,7 @@ operation: '', dialogFormRules: { maiitemcode: [ { required: true, validator: validateName, trigger: ['blur', 'change'] } { required: true, validator: validateCode, trigger: ['blur', 'change'] } ], maiitemname: [ { required: true, message: '请è¾å ¥åç§°', trigger: ['blur', 'change'] } src/views/sbgl/bybz.vue
@@ -387,46 +387,26 @@ <script> import Pagination from '@/components/Pagination' import { AddUpdateOrganization, DeleteOrganization, OrganizationSearch, PrentOrganization } from '@/api/jcsz' import { getCookie } from '@/utils/auth' import ImportPicker from '@/components/ImportPicker' import { AddUpdateDeviceCheckStandArd, AddUpdateDeviceRepairStandArd, DeleteDeviceCheckStaned, DeleteDeviceRepairStaned, DeviceCheckItemSelect, DeviceCheckStandArdSearch, DeviceCheckStanedAssociationEqp, DeviceRepairItemSelect, DeviceRepairStandArdSearch, DeviceRepairStanedAssociationEqp, SaveDeviceCheckStanedAssociationEqp, SaveDeviceRepairStanedAssociationEqp, ViewDeviceCheckStanedSearch, ViewDeviceRepairStanedSearch AddUpdateDeviceRepairStandArd, DeleteDeviceRepairStaned, DeviceRepairItemSelect, DeviceRepairStandArdSearch, DeviceRepairStanedAssociationEqp, SaveDeviceRepairStanedAssociationEqp, ViewDeviceRepairStanedSearch } from '@/api/sbgl' import $ from 'jquery' import { validateCode } from '@/utils/global' const SER_HZ = /^[\u4e00-\u9fa5]+$/ export default { name: 'Zzjg', components: { Pagination, ImportPicker }, data() { const validateName = (rule, value, callback) => { if (!value) { return callback(new Error('请è¾å ¥ç¼ç ')) } else { if (SER_HZ.test(value)) { return callback(new Error('ç¼ç ä¸è½ä¸ºä¸æ')) } else { callback() } } } const validateTypeCode = (rule, value, callback) => { if (!value) { return callback(new Error('è¯·éæ©ä¸çº§')) } else { callback() } } return { mainHeight: 0, tableHeight: 0, @@ -462,7 +442,7 @@ dialogFormRules: { code: [ { required: true, validator: validateName, trigger: ['blur', 'change'] } { required: true, validator: validateCode, trigger: ['blur', 'change'] } ], name: [ { required: true, message: '请è¾å ¥æ ååç§°', trigger: ['blur', 'change'] } src/views/sbgl/djbw.vue
@@ -234,29 +234,16 @@ <script> import Pagination from '@/components/Pagination' import { AddUpdateOrganization, DeleteOrganization, OrganizationSearch, PrentOrganization } from '@/api/jcsz' import { getCookie } from '@/utils/auth' import { AddUpdateDeviceCheckItem, DeleteDeviceCheckItem, DeviceCheckItemSearch } from '@/api/sbgl' import ImportPicker from '@/components/ImportPicker' import { validateCode } from '@/utils/global' const SER_HZ = /^[\u4e00-\u9fa5]+$/ export default { name: 'Zzjg', components: { Pagination, ImportPicker }, data() { const validateName = (rule, value, callback) => { if (!value) { return callback(new Error('请è¾å ¥ç¼ç ')) } else { if (SER_HZ.test(value)) { return callback(new Error('ç¼ç ä¸è½ä¸ºä¸æ')) } else { callback() } } } return { mainHeight: 0, tableHeight: 0, @@ -294,7 +281,7 @@ operation: '', dialogFormRules: { checkitemcode: [ { required: true, validator: validateName, trigger: ['blur', 'change'] } { required: true, validator: validateCode, trigger: ['blur', 'change'] } ], checkitemname: [ { required: true, message: '请è¾å ¥é¨ä½åç§°', trigger: ['blur', 'change'] } src/views/sbgl/djbz.vue
@@ -429,32 +429,14 @@ ViewDeviceCheckStanedSearch } from '@/api/sbgl' import $ from 'jquery' import { validateCode } from '@/utils/global' const SER_HZ = /^[\u4e00-\u9fa5]+$/ export default { name: 'Zzjg', components: { Pagination, ImportPicker }, data() { const validateName = (rule, value, callback) => { if (!value) { return callback(new Error('请è¾å ¥ç¼ç ')) } else { if (SER_HZ.test(value)) { return callback(new Error('ç¼ç ä¸è½ä¸ºä¸æ')) } else { callback() } } } const validateTypeCode = (rule, value, callback) => { if (!value) { return callback(new Error('è¯·éæ©ä¸çº§')) } else { callback() } } return { mainHeight: 0, tableHeight: 0, @@ -487,7 +469,7 @@ dialogFormRules: { code: [ { required: true, validator: validateName, trigger: ['blur', 'change'] } { required: true, validator: validateCode, trigger: ['blur', 'change'] } ], name: [ { required: true, message: '请è¾å ¥æ ååç§°', trigger: ['blur', 'change'] } src/views/sbgl/sbqd.vue
@@ -67,7 +67,6 @@ style="width: 200px" filterable placeholder="è¯·éæ©" @change="deviceTypeChange" > <!-- @focus="getDeviceTypeSelect"--> @@ -79,7 +78,7 @@ /> </el-select> </el-form-item> <el-form-item label="设å¤ç»" style=" display: flex;"> <el-form-item v-show="isExpandForm" label="设å¤ç»" style=" display: flex;"> <el-select v-model="form.DeviceGroup" filterable @@ -103,15 +102,22 @@ </div> </el-form> </div> <div class="elTableDiv"> <div class="bodyTopFormExpand" @click="isExpandForm=!isExpandForm" > <i :class="!isExpandForm?'el-icon-arrow-down':'el-icon-arrow-up'" :style="{color:'#42B983'}" /></div> <div class="elTableDiv" style="margin-top: 0;"> <el-table :data="tableData" border :height="tableHeight+'px'" :height="isExpandForm?tableHeight:(tableHeight+40)+'px'" highlight-current-row :row-class-name="tableRowClassName" :style="{width: 100+'%',height:(tableHeight-50)+'px'}" :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}" :header-cell-style="this.$headerCellStyle" :cell-style="this.$cellStyle" @sort-change="sortChange" @@ -397,7 +403,7 @@ sortable="custom" > <template slot-scope="{row}"> <el-input v-if="row.isVisible===1" v-model="row.code" placeholder="请è¾å ¥" /> <el-input v-if="row.isVisible===1" v-model="row.code" oninput="value=value.replace(/[^0-9a-zA-Z]/g,'')" placeholder="请è¾å ¥" /> <div v-else> {{ row.code }}</div> </template> </el-table-column> @@ -487,7 +493,7 @@ sortable="custom" > <template slot-scope="{row}"> <el-input v-if="row.isVisible===1" v-model="row.code" placeholder="请è¾å ¥" /> <el-input v-if="row.isVisible===1"v-model="row.code" oninput="value=value.replace(/[^0-9a-zA-Z]/g,'')" placeholder="请è¾å ¥" /> <div v-else> {{ row.code }}</div> </template> </el-table-column> @@ -580,27 +586,16 @@ DeviceTypeSelectGroup, WorkShopSelect, WorkShopSelectLine } from '@/api/sbgl' import { handleDatetime } from '@/utils/global' import { handleDatetime, validateCode } from '@/utils/global' const SER_HZ = /^[\u4e00-\u9fa5]+$/ export default { name: 'SBQD', components: { Pagination }, data() { const validateName = (rule, value, callback) => { if (!value) { return callback(new Error('请è¾å ¥ç¼ç ')) } else { if (SER_HZ.test(value)) { return callback(new Error('ç¼ç ä¸è½ä¸ºä¸æ')) } else { callback() } } } return { isExpandForm: false, mainHeight: 0, tableHeight: 0, form: { @@ -642,7 +637,7 @@ operation: '', dialogFormRules: { devicecode: [ { required: true, validator: validateName, trigger: ['blur', 'change'] } { required: true, validator: validateCode, trigger: ['blur', 'change'] } ], devicename: [ { required: true, message: '请è¾å ¥åç§°', trigger: ['blur', 'change'] } @@ -870,7 +865,7 @@ getHeight() { this.$nextTick(() => { this.mainHeight = window.innerHeight - 85 this.tableHeight = this.mainHeight - 240 this.tableHeight = this.mainHeight - 250 // if (window.innerHeight < 769) { // this.tableHeight = this.tableHeight - 50 // } src/views/scgl/gd.vue
@@ -57,28 +57,21 @@ :label="item.name" :value="item.code" /> </el-select> </el-form-item> </el-select> </el-form-item> <el-form-item label="产åç¼ç " style=" display: flex;"> <!-- <el-select v-model="form.partcode" :popper-append-to-body="false" style="width: 200px" placeholder="è¯·éæ©">--> <!-- <el-option--> <!-- v-for="item in OrgTypeArr"--> <!-- :key="item.code"--> <!-- :label="item.name"--> <!-- :value="item.code"--> <!-- />--> <!-- </el-select>--> <el-input v-model="form.partcode" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> <el-form-item label="产ååç§°" style=" display: flex;"> <el-form-item v-show="isExpandForm" label="产ååç§°" style=" display: flex;"> <el-input v-model="form.partname" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> <el-form-item label="产åè§æ ¼" style=" display: flex;"> <el-form-item v-show="isExpandForm" label="产åè§æ ¼" style=" display: flex;"> <el-input v-model="form.partspec" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> <el-form-item label="å建人å" style=" display: flex;"> <el-form-item v-show="isExpandForm" label="å建人å" style=" display: flex;"> <el-input v-model="form.creatuser" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> <el-form-item label="å建æ¶é´" style=" display: flex;"> <el-form-item v-show="isExpandForm" label="å建æ¶é´" style=" display: flex;"> <!-- <el-date-picker--> <!-- v-model="form.createdate"--> <!-- type="daterange"--> @@ -99,7 +92,7 @@ /> </el-form-item> </div> <div style="min-height: 100px"> <div> <div style="display: flex;align-items: start;justify-content:end;margin-top: 5px;z-index: 2"> <el-button type="primary" icon="el-icon-search" @click="search">æ¥è¯¢</el-button> <el-button type="info" icon="el-icon-refresh" @click="reset">éç½®</el-button> @@ -121,17 +114,27 @@ </el-form> </div> <div class="elTableDiv"> <div class="bodyTopFormExpand" @click="isExpandForm=!isExpandForm" > <i :class="!isExpandForm?'el-icon-arrow-down':'el-icon-arrow-up'" :style="{color:'#42B983'}" /></div> <div class="elTableDiv" style="margin-top: 0"> <el-table :data="tableData" :height="tableHeight+'px'" :height="isExpandForm?tableHeight:(tableHeight+40)+'px'" border :row-class-name="tableRowClassName" :style="{width: 100+'%',height:tableHeight+'px',}" :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px'}" highlight-current-row :header-cell-style="this.$headerCellStyle" :cell-style="this.$cellStyle" @sort-change="sortChange" @row-click="rowClick" > <!-- <el-table-column--> <!-- type="selection"--> @@ -240,7 +243,7 @@ label="å·¥èºè·¯çº¿" show-tooltip-when-overflow sortable="custom" min-width="140" width="180" > <template slot-scope="{row}"> <div v-if="row.route_name">{{ row.route_name }}</div> @@ -311,11 +314,16 @@ > <template slot-scope="{row}"> <div class="operationClass"> <el-tooltip class="item" effect="dark" content="å·¥åºä»»å¡" placement="top"> <el-tooltip class="item" effect="dark" content="æå°å·¥å" placement="top"> <!-- <i--> <!-- class="el-icon-tickets"--> <!-- style="cursor: pointer;color: #42b983;margin-right: 15px"--> <!-- @click="check(row)"--> <!-- />--> <i class="el-icon-tickets" style="cursor: pointer;color: #42b983;margin-right: 15px" @click="check(row)" @click="handlePrint(row.wo_code)" /> </el-tooltip> <el-tooltip v-del-tab-index class="item" effect="dark" content="å é¤" placement="top"> @@ -336,6 +344,81 @@ popper-class="select_bottom" @pagination="getMesOrderSearch" /> <div class="elTableDiv"> <el-table :data="tableDataDetail" border height="161px" :row-class-name="tableRowClassName" highlight-current-row :header-cell-style="this.$headerCellStyle" :cell-style="this.$cellStyle" > <!-- <el-table-column--> <!-- width="50"--> <!-- type="index"--> <!-- prop="åºå·"--> <!-- fixed--> <!-- /> --> <el-table-column width="50" prop="seq" label="åºå·" fixed /> <el-table-column prop="wo_code" label="å·¥åç¼å·" /> <el-table-column prop="partcode" label="产åç¼ç " /> <el-table-column prop="partname" label="产ååç§°" /> <el-table-column label="å·¥åºç¼ç " prop="partcode" /> <el-table-column label="å·¥åºåç§°" prop="partname" /> <el-table-column label="任塿°é" prop="plan_qty" /> <el-table-column label="åæ ¼æ°é" prop="good_qty" /> <el-table-column label="ä¸è¯æ°é" prop="ng_qty" /> <el-table-column label="æä½" width="120" > <template slot-scope="{row}"> <div class="operationClass"> <el-tooltip class="item" effect="dark" content="æå°å·¥åº" placement="top"> <i class="el-icon-tickets" style="cursor: pointer;color: #42b983;margin-right: 15px" @click="supplementSmallClick(row)" /> </el-tooltip> </div> </template> </el-table-column> </el-table> </div> </div> <!--æ°å¢æ´¾åå¯¹è¯æ¡--> <el-dialog @@ -759,20 +842,20 @@ /> </el-select> </el-form-item> <el-form-item v-show="isExpand" label="订åç¼å·" style=" display: flex;"> <el-form-item v-show="isExpandDialog" label="订åç¼å·" style=" display: flex;"> <el-input v-model="sourceForm.erpordercode" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item v-show="isExpand" label="产åç¼ç " style=" display: flex;"> <el-form-item v-show="isExpandDialog" label="产åç¼ç " style=" display: flex;"> <el-input v-model="sourceForm.partcode" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> <el-form-item v-show="isExpand" label="产ååç§°" style=" display: flex;"> <el-form-item v-show="isExpandDialog" label="产ååç§°" style=" display: flex;"> <el-input v-model="sourceForm.partname" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> <el-form-item v-show="isExpand" label="产åè§æ ¼" style=" display: flex;"> <el-form-item v-show="isExpandDialog" label="产åè§æ ¼" style=" display: flex;"> <el-input v-model="sourceForm.partspec" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> <el-form-item v-show="isExpand" label="å建人å" style=" display: flex;"> <el-form-item v-show="isExpandDialog" label="å建人å" style=" display: flex;"> <el-input v-model="sourceForm.creatuser" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> @@ -785,14 +868,14 @@ </div> </el-form> </div> <!-- <el-tooltip :content="!isExpand?'ç¹å»å±ç¤ºæ´å¤':'æ¶èµ·'" placement="bottom">--> <!-- <el-tooltip :content="!isExpandDialog?'ç¹å»å±ç¤ºæ´å¤':'æ¶èµ·'" placement="bottom">--> <div style="display:flex;justify-content: center; align-items:center;background-color:#eee;cursor: pointer" @click="isExpand=!isExpand" @click="isExpandDialog=!isExpandDialog" > <i :class="!isExpand?'el-icon-arrow-down':'el-icon-arrow-up'" :class="!isExpandDialog?'el-icon-arrow-down':'el-icon-arrow-up'" :style="{color:'#42B983'}" /></div> <!-- </el-tooltip>--> @@ -997,36 +1080,36 @@ <el-form ref="formApprove" :model="formApprove" label-width="100px" label-width="80px" inline style="display: flex;justify-content: space-between" > <div class="elForm"> <el-form-item label="å·¥åç¼å·ï¼" class="formContent"> <el-form-item label="å·¥åç¼å·:" class="formContent"> {{ formApprove.mesordercode }} </el-form-item> <el-form-item label="æºååå·ï¼" class="formContent"> <el-form-item label="æºååå·:" class="formContent"> {{ formApprove.m_po }} </el-form-item> <el-form-item label="产åç¼ç ï¼" class="formContent"> <el-form-item label="产åç¼ç :" class="formContent"> {{ formApprove.partcode }} </el-form-item> <el-form-item label="产ååç§°ï¼" class="formContent"> <el-form-item label="产ååç§°:" class="formContent"> {{ formApprove.partname }} </el-form-item> <el-form-item label="产åè§æ ¼ï¼" class="formContent"> <el-form-item label="产åè§æ ¼:" class="formContent"> {{ formApprove.partspec }} </el-form-item> <el-form-item label="工忰éï¼" class="formContent"> <el-form-item label="工忰é:" class="formContent"> {{ formApprove.plan_qty }} </el-form-item> <el-form-item label="å·¥èºè·¯çº¿ï¼" class="formContent"> <el-form-item label="å·¥èºè·¯çº¿:" class="formContent"> {{ formApprove.routename }} </el-form-item> <el-form-item label="æå°äººåï¼" class="formContent"> <el-form-item label="æå°äººå:" class="formContent"> {{ username }} </el-form-item> <el-form-item label="æå°æ¶é´ï¼" class="formContent"> <el-form-item label="æå°æ¶é´:" class="formContent"> {{ formApprove.lm_date }} </el-form-item> </div> @@ -1295,8 +1378,14 @@ fixed="right" > <template slot-scope="{row}"> <div v-if="row.enable==='Y'"><svg-icon icon-class="circleYes" style="margin-right: 2px" />æ¯</div> <div v-if="row.enable==='N'"><svg-icon icon-class="circleNo" style="margin-right: 2px" />å¦</div> <div v-if="row.enable==='Y'"> <svg-icon icon-class="circleYes" style="margin-right: 2px" /> æ¯ </div> <div v-if="row.enable==='N'"> <svg-icon icon-class="circleNo" style="margin-right: 2px" /> å¦ </div> </template> </el-table-column> </el-table> @@ -1322,31 +1411,19 @@ SelectRouteStep } from '@/api/scgl' import { InventoryFileAssociationRoute, PartSelect, SaveInventoryFile } from '@/api/zzmx' import { handleDatetime, handleDatetime2 } from '@/utils/global' import { handleDatetime, handleDatetime2, validateCode } from '@/utils/global' import { getCookie } from '@/utils/auth' import { MesOrderPrintSearch1, PrintOrder } from '@/api/utils' import { urlAddRandomNo, webapp_ws_ajax_run, webapp_ws_autoupdate } from '@/utils/grwebapp' import QRCode from 'qrcodejs2' import $ from 'jquery' const SER_HZ = /^[\u4e00-\u9fa5]+$/ export default { name: 'GD', components: { Pagination }, data() { const validateName = (rule, value, callback) => { if (!value) { return callback(new Error('请è¾å ¥ç¼ç ')) } else { if (SER_HZ.test(value)) { return callback(new Error('ç¼ç ä¸è½ä¸ºä¸æ')) } else { callback() } } } return { isIpad: false, mainHeight: 0, @@ -1422,7 +1499,7 @@ { required: true, message: 'è¯·éæ©äº§åä¿¡æ¯', trigger: ['blur', 'change'] } ], mesordercode: [ { required: true, validator: validateName, trigger: ['blur', 'change'] } { required: true, validator: validateCode, trigger: ['blur', 'change'] } ], mesqty: [ { required: true, message: '请è¾å ¥å·¥åæ°é', trigger: ['blur', 'change'] } @@ -1535,7 +1612,7 @@ }, sourceFormTotal: 10, radioSelectedId: '', isExpand: false, // æ¯å¦å¼ å¼ï¼é»è®¤ä¸å±å¼ isExpandDialog: false, // å¯¹è¯æ¡è¡¨åæ¯å¦å±å¼ï¼é»è®¤ä¸å±å¼ dialogVisibleRoute: false, dialogFormRoute: { projectName: '', // 产ååç§° @@ -1544,7 +1621,9 @@ }, defaultroute_code: '', // é»è®¤å·¥èºè·¯çº¿éä¸å¼ defaultroute_codeArr: '', // é»è®¤å·¥èºè·¯çº¿æ°ç» projectTableData: []// 设å¤å表 projectTableData: [], // 设å¤å表 isExpandForm: false, // è¡¨åæ¯å¦å±å¼ï¼é»è®¤ä¸å±å¼ tableDataDetail: []// ç¹å»å·¥å表çè¡ æ¾ç¤ºè¯¦ç»ä¿¡æ¯ } }, created() { @@ -1910,7 +1989,8 @@ getHeight() { this.$nextTick(() => { this.mainHeight = window.innerHeight - 85 this.tableHeight = this.mainHeight - 260 // this.tableHeight = this.mainHeight - 250 this.tableHeight = this.mainHeight - 420 if (window.innerHeight < 769) { this.tableHeight = this.tableHeight - 20 } @@ -1930,14 +2010,14 @@ this.dialogVisibleSearch = false }, // å¤çæå° handlePrint() { handlePrint(wo_code) { // const number = Math.random() * Math.random() // this.number = number === 0 ? (10 + Math.random()) : number // console.log(number) const data2 = { username: getCookie('admin'), mesordercode: this.dialogForm.mesordercode mesordercode: wo_code || this.dialogForm.mesordercode } MesOrderPrintSearch1(data2).then(res2 => { if (res2.code === '200') { @@ -2043,17 +2123,21 @@ // è¡¥æå°æ ç¾ supplementSmallClick(row) { // let obj = {} this.taskTableData.forEach((item, index) => { console.log(row, 21) // this.taskTableData.forEach((item, index) => { this.tableDataDetail.forEach((item, index) => { if (item.seq === row.seq) { console.log(item) this.qrForm = { qrvalue: item.seq === this.taskTableData.length ? item.wo_code + ';' + item.stepcode : item.wo_code + ';' + this.taskTableData[item.seq].stepcode, startqty: item.seq === this.taskTableData.length ? item.plan_qty : this.taskTableData[item.seq].plan_qty, // qrvalue: item.seq === this.taskTableData.length ? item.wo_code + ';' + item.stepcode : item.wo_code + ';' + this.taskTableData[item.seq].stepcode, qrvalue: item.seq === this.tableDataDetail.length ? item.wo_code + ';' + item.stepcode : item.wo_code + ';' + this.tableDataDetail[item.seq].stepcode, // startqty: item.seq === this.taskTableData.length ? item.plan_qty : this.taskTableData[item.seq].plan_qty, startqty: item.seq === this.tableDataDetail.length ? item.plan_qty : this.tableDataDetail[item.seq].plan_qty, wo_code: item.wo_code, partcode: item.partcode, partname: item.partname, nextstepname: item.seq === this.taskTableData.length ? item.stepname : this.taskTableData[item.seq].stepname, // nextstepname: item.seq === this.taskTableData.length ? item.stepname : this.taskTableData[item.seq].stepname, nextstepname: item.seq === this.tableDataDetail.length ? item.stepname : this.tableDataDetail[item.seq].stepname, operator: getCookie('username'), operatorTime: handleDatetime2(new Date()) } @@ -2100,7 +2184,7 @@ this.dialogVisibleSource = true }, async getErpOrderSearch() { async getErpOrderSearch() { let tempDate2 = this.sourceForm.paystartdate if (tempDate2.length > 0) { tempDate2 = handleDatetime(tempDate2[0]) + '~' + handleDatetime(tempDate2[1]) @@ -2164,7 +2248,7 @@ this.sourceForm.creatuser = '' this.sourceForm.createdate = '' this.isExpand = false this.isExpandDialog = false this.sourceTableData = [] }, dialogVisibleSourceBack() { @@ -2273,6 +2357,17 @@ this.defaultroute_code = '' } this.defaultroute_codeArr = this.dialogFormRoute.routeOperationArr.filter(item => item.isSelected2) }, // è¡ç¹å»äºä»¶ async rowClick(row, event, column) { console.log(row, event, column) console.log(row.wo_code, event, column) const { data: res } = await SearchWorkStep({ wo_code: row.wo_code }) this.tableDataDetail = res }, // æå°å·¥å printOrder() { } } } @@ -2339,17 +2434,20 @@ } } } .dialogVisibleRoute { ::v-deep .el-dialog__body { padding: 20px 20px !important; } } .defaultroute_code ::v-deep .el-input__suffix-inner{ .defaultroute_code ::v-deep .el-input__suffix-inner { display: flex; align-items: center; justify-content: center; margin-top: -3px; } .el-date-editor { font-size: 14px; } @@ -2396,9 +2494,10 @@ } //.elTableDiv { ::v-deep .el-radio__label { display: none; } ::v-deep .el-radio__label { display: none; } //} .el-table::before { @@ -2439,19 +2538,23 @@ <style lang="scss" scoped> $main_color: #42b983; ::v-deep .el-range-input{ ::v-deep .el-range-input { font-size: 14px !important; } ::v-deep .el-range__icon{ ::v-deep .el-range__icon { line-height: 28px !important; } ::v-deep .el-range-separator{ ::v-deep .el-range-separator { line-height: 28px !important; } ::v-deep .el-range-input{ font-size: 14px ; ::v-deep .el-range-input { font-size: 14px; } ::v-deep .el-range-separator{ ::v-deep .el-range-separator { display: flex; justify-content: center; align-items: center; src/views/scgl/gd_back.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,2579 @@ <template> <div> <div class="body" :style="{height:mainHeight+'px'}"> <div class="bodyTopButtonGroup" style="justify-content: space-between"> <div style="display: flex"> <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">æ°å¢</el-button> <el-button type="primary" icon="el-icon-connection" @click="send('send')">æ´¾å</el-button> </div> <el-button icon="el-icon-switch-button" @click="orderClose">å ³éå·¥å</el-button> </div> <div class="bodyTopFormGroup"> <el-form ref="form" :model="form" label-width="80px" inline style="display: flex;justify-content: space-between" > <div class="elForm"> <el-form-item label="订åç¶æ" style=" display: flex;"> <el-select v-model="form.mesorderstus" :popper-append-to-body="false" style="width: 200px" placeholder="è¯·éæ©" filterable @change="erporderstusChange" > <el-option v-for="item in erporderstusArr" :key="item.code" :label="item.name" :value="item.code" /> </el-select> </el-form-item> <el-form-item label="订åç¼å·" style=" display: flex;"> <el-input v-model="form.mesordercode" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item label="æºååå·" style="display: flex;"> <el-input v-model="form.sourceorder" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> <el-form-item label="åæ®ç±»å" style=" display: flex;"> <el-select v-model="form.ordertype" :popper-append-to-body="false" style="width: 200px" placeholder="è¯·éæ©" > <!-- @change="mesordertypeChange"--> <el-option v-for="item in ordertypeArr" :key="item.code" :label="item.name" :value="item.code" /> </el-select> </el-form-item> <el-form-item label="产åç¼ç " style=" display: flex;"> <el-input v-model="form.partcode" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> <el-form-item v-show="isExpandForm" label="产ååç§°" style=" display: flex;"> <el-input v-model="form.partname" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> <el-form-item v-show="isExpandForm" label="产åè§æ ¼" style=" display: flex;"> <el-input v-model="form.partspec" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> <el-form-item v-show="isExpandForm" label="å建人å" style=" display: flex;"> <el-input v-model="form.creatuser" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> <el-form-item v-show="isExpandForm" label="å建æ¶é´" style=" display: flex;"> <!-- <el-date-picker--> <!-- v-model="form.createdate"--> <!-- type="daterange"--> <!-- :clearable="false"--> <!-- range-separator="~"--> <!-- start-placeholder="å¼å§æ¥æ"--> <!-- end-placeholder="ç»ææ¥æ"--> <!-- size="mini"--> <!-- />--> <el-date-picker v-model="form.createdate" type="date" size="mini" :clearable="false" class="dateMini" format="yyyy-MM-dd" placeholder="éæ©æ¥æ" /> </el-form-item> </div> <div> <div style="display: flex;align-items: start;justify-content:end;margin-top: 5px;z-index: 2"> <el-button type="primary" icon="el-icon-search" @click="search">æ¥è¯¢</el-button> <el-button type="info" icon="el-icon-refresh" @click="reset">éç½®</el-button> </div> <!-- <div v-if="!isIpad" style="display: flex;align-items: start; margin-top: 15px;z-index: 2">--> <!-- <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">æ°å¢</el-button>--> <!-- <el-button type="primary" icon="el-icon-connection" @click="send('send')">æ´¾å</el-button>--> <!-- <el-button type="primary" icon="el-icon-switch-button">订åå ³é</el-button>--> <!-- </div>--> <!-- <div v-if="isIpad" style="display: flex;flex-direction: column;align-items: end">--> <!-- <div style="display: flex;margin: 10px 0">--> <!-- <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">æ°å¢</el-button>--> <!-- <el-button type="primary" icon="el-icon-connection" @click="send('send')">æ´¾å</el-button>--> <!-- </div>--> <!-- <el-button type="primary" icon="el-icon-switch-button">订åå ³é</el-button>--> <!-- </div>--> </div> </el-form> </div> <div class="bodyTopFormExpand" @click="isExpandForm=!isExpandForm" > <i :class="!isExpandForm?'el-icon-arrow-down':'el-icon-arrow-up'" :style="{color:'#42B983'}" /></div> <div class="elTableDiv" style="margin-top: 0"> <el-table :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--> <!-- type="selection"--> <!-- width="50"--> <!-- />--> <el-table-column width="50" fixed > <template slot-scope="{row}"> <el-radio v-model="radioSelected" :label="row.wo_code" style="color: transparent;padding-left: 10px;" @change.native="getCurrentRow(row.wo_code)" /> </template> </el-table-column> <el-table-column prop="RowNum" width="50" label="åºå·" fixed /> <el-table-column prop="status" label="订åç¶æ" sortable="custom" width="110" > <template slot-scope="{row}"> <div v-if="row.status==='NEW'">æ°å·¥å</div> <!-- <div v-if="row.status==='CREATING'">æ§è¡ä¸</div>--> <!-- <div v-if="row.status==='CREATED'">å·²å ³é</div>--> <div v-if="row.status==='ALLO'">已派å</div> <div v-if="row.status==='START'">å¼å·¥</div> <div v-if="row.status==='CLOSED'">å®å·¥</div> </template> </el-table-column> <el-table-column prop="wo_code" label="å·¥åç¼å·" sortable="custom" min-width="160" /> <el-table-column prop="m_po" label="æºååå·" sortable="custom" min-width="160" /> <el-table-column prop="wotype" label="åæ®ç±»å" sortable="custom" min-width="120" > <template slot-scope="{row}"> <div v-if="row.wotype==='PO'">æ åå·¥å</div> <div v-else-if="row.wotype==='FO'">æ¥åºè¡¥å</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="partcode" label="产åç¼ç " sortable="custom" min-width="120" /> <el-table-column prop="partname" min-width="150" label="产ååç§°" sortable="custom" /> <el-table-column prop="partspec" label="产åè§æ ¼" sortable="custom" width="110" > <template slot-scope="{row}"> <div v-if="row.partspec">{{ row.partspec }}</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="plan_qty" label="工忰" sortable="custom" width="100" /> <el-table-column prop="wkshp_name" label="ç产车é´" sortable="custom" width="120" > <template slot-scope="{row}"> <div v-if="row.wkshp_name">{{ row.wkshp_name }}</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="route_name" label="å·¥èºè·¯çº¿" show-tooltip-when-overflow sortable="custom" width="180" > <template slot-scope="{row}"> <div v-if="row.route_name">{{ row.route_name }}</div> <div v-else>/</div> </template> </el-table-column> <!-- <el-table-column--> <!-- prop="route_name"--> <!-- label="å ³èå·¥èºè·¯çº¿"--> <!-- min-width="110"--> <!-- >--> <!-- <template slot-scope="{row}">--> <!-- <i v-if="row.route_name" class="el-icon-share" @click="routeClick(row)" />--> <!-- <i v-else style="color:rgb(180 ,181, 185)" class="el-icon-share" @click="routeClick(row)" />--> <!-- </template>--> <!-- </el-table-column>--> <el-table-column prop="plan_startdate" label="计åå¼å§æ¶é´" sortable="custom" width="160" > <template slot-scope="{row}"> <div v-if="row.plan_startdate">{{ row.plan_startdate }}</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="plan_enddate" label="计åç»ææ¶é´" sortable="custom" width="160" > <template slot-scope="{row}"> <div v-if="row.plan_enddate">{{ row.plan_enddate }}</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="piroque" label="å·¥åç级" sortable="custom" width="120" > <template slot-scope="{row}"> <div v-if="row.piroque==='1'">ç¹çº§</div> <div v-if="row.piroque==='2'">ç´§æ¥</div> <div v-if="row.piroque==='3'">æ£å¸¸</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="lm_user" label="å建人å" sortable="custom" width="120" /> <el-table-column prop="lm_date" label="å建æ¶é´" width="160" sortable="custom" /> <el-table-column label="æä½" width="120" fixed="right" > <template slot-scope="{row}"> <div class="operationClass"> <el-tooltip class="item" effect="dark" content="å·¥åºä»»å¡" placement="top"> <i class="el-icon-tickets" 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" @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="getMesOrderSearch" /> </div> <!--æ°å¢æ´¾åå¯¹è¯æ¡--> <el-dialog :title="operation==='add'?'æ°å¢':'æ´¾å'" :visible.sync="dialogVisible" width="840px" top="15vh" :close-on-click-modal="false" @closed="handleClose" @close="handleClose" > <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="110px" > <el-form-item label="订åç¶æ" prop="mesorderstus" > <el-select v-model="dialogForm.mesorderstus" disabled filterable :popper-append-to-body="false" style="width: 200px" placeholder="è¯·éæ©" > <el-option v-for="item in erporderstusArr" :key="item.code" :label="item.name" :value="item.code" /> </el-select> </el-form-item> <el-form-item label="å·¥åç¼å·" prop="mesordercode"> <el-input v-model="dialogForm.mesordercode" :disabled="operation!=='add'" style="width: 200px" /> </el-form-item> <div style="display: flex"> <el-form-item label="å·¥åç±»å" prop="mesorderstus"> <el-select v-model="dialogForm.ordertype" :popper-append-to-body="false" style="width: 200px" :disabled="operation!=='add'" placeholder="è¯·éæ©" @change="mesordertypeChange" > <el-option v-for="item in ordertypeArr" :key="item.code" :label="item.name" :value="item.code" /> </el-select> </el-form-item> <div style="display: flex;flex-wrap: nowrap"> <el-form-item label="æºååå·"> <el-input v-model="dialogForm.sourceorder" :disabled="dialogForm.ordertype==='PO'" style="width: 172px" /> </el-form-item> <el-button type="primary" style="padding: 0 10px;margin-left: -8px;margin-top: 3px" class="el-icon-search" :disabled="operation!=='add'||dialogForm.ordertype==='PO'" @click="mesordertsourcesearchclick" /> </div> </div> <el-form-item label="工忰é" prop="mesqty"> <el-input v-model="dialogForm.mesqty" oninput="value=value.replace(/[^0-9.]/g,'')" :disabled="operation!=='add'" style="width: 200px" /> </el-form-item> <el-form-item v-if="operation==='add'" label="产ååç§°" prop="partcode" > <el-select v-model="dialogForm.partcode" filterable :disabled="operation!=='add'" :popper-append-to-body="false" style="width: 200px" placeholder="è¯·éæ©" @change="partcodeChangeDialog" > <el-option v-for="item in partArr" :key="item.partcode" :label="item.partname" :value="item.partcode" /> </el-select> </el-form-item> <el-form-item v-if="operation!=='add'" label="产ååç§°" prop="partname"> <el-input v-model="dialogForm.partname" disabled style="width: 200px" /> </el-form-item> <el-form-item label="产åç¼ç "> <el-input v-model="dialogForm.partcode" disabled style="width: 200px" /> </el-form-item> <el-form-item label="产åè§æ ¼" prop="partspec"> <el-input v-model="dialogForm.partspec" disabled style="width: 200px" /> </el-form-item> <div style="display: flex"> <div style="display: flex;flex-wrap: nowrap"> <el-form-item label="å·¥èºè·¯çº¿" prop="routecode"> <el-select v-model="dialogForm.routecode" filterable :disabled="dialogForm.partcode===''" :popper-append-to-body="false" style="width: 172px" placeholder="è¯·éæ©" @change="routecodeChange" > <el-option v-for="item in routeArr" :key="item.code" :label="item.name" :value="item.code" /> </el-select> </el-form-item> <el-button type="primary" style="padding: 0 10px;margin-left: -8px;margin-top:3px" class="el-icon-search" @click="searchClick" /> <!-- :disabled="dialogForm.routecode===''"--> </div> <el-form-item label="ç产车é´" prop="wkshopcode"> <el-select v-model="dialogForm.wkshopcode" filterable :popper-append-to-body="false" style="width: 200px;" placeholder="è¯·éæ©" :disabled="dialogForm.routecode===''" > <el-option v-for="item in wkshopArr" :key="item.org_code" :label="item.org_name" :value="item.org_code" /> </el-select> </el-form-item> </div> <el-form-item label="计åå¼å§æ¶é´" prop="planstartdate"> <el-date-picker v-model="dialogForm.planstartdate" type="date" :clearable="false" value-format="yyyy-MM-dd" style="width: 200px" placeholder="éæ©æ¥æ" /> </el-form-item> <el-form-item label="计å宿æ¶é´" prop="planenddate"> <el-date-picker v-model="dialogForm.planenddate" type="date" :clearable="false" value-format="yyyy-MM-dd" style="width: 200px" placeholder="éæ©æ¥æ" /> </el-form-item> <el-form-item label="å·¥åç级" prop="orderlev"> <el-select v-model="dialogForm.orderlev" filterable :popper-append-to-body="false" style="width: 200px" placeholder="è¯·éæ©" > <el-option v-for="item in orderlevArr" :key="item.code" :label="item.name" :value="item.code" /> </el-select> </el-form-item> </el-form> <!-- å·¥èºè·¯çº¿æ¾å¤§éå¯¹è¯æ¡--> <el-dialog title="å·¥èºè·¯çº¿" :visible.sync="dialogVisibleSearch" width="840px" top="20vh" class="dialogVisibleSearch" append-to-body :close-on-click-modal="false" > <el-table :data="searchTableData" border :row-class-name="tableRowClassName" height="300" style="width: 100%;" highlight-current-row :header-cell-style="this.$headerCellStyle" :cell-style="this.$cellStyle" > <el-table-column prop="seq" label="åºå·" width="50" fixed /> <el-table-column prop="stepcode" label="å·¥åºç¼ç " /> <el-table-column prop="stepname" label="å·¥åºåç§°" /> <el-table-column prop="flwtype" label="å·¥åºç±»å" > <template slot-scope="{row}"> <div v-if="row.flwtype==='W'">å¤å</div> <div v-if="row.flwtype==='Z'">èªå¶</div> </template> </el-table-column> <el-table-column prop="descr" label="å·¥åºæè¿°" fixed="right" /> </el-table> </el-dialog> <span slot="footer" class="dialog-footer"> <div class="footerButton"> <el-button @click="dialogVisibleCancel">å æ¶</el-button> <!-- <el-button v-if="operation==='add'" type="primary" @click="dialogVisibleConfirmPreview('add')">é¢è§</el-button>--> <el-button type="primary" @click="dialogVisibleConfirm">ç¡® å®</el-button> </div> </span> </el-dialog> <!-- å·¥åºä»»å¡å¯¹è¯æ¡--> <el-dialog title="å·¥åºä»»å¡" :visible.sync="dialogVisibleTask" width="840px" top="15vh" class="dialogVisibleSearch" :close-on-click-modal="false" @close="dialogVisibleTaskClose" > <el-button style="margin-bottom: 15px" type="primary" @click="supplementClick" >è¡¥æ </el-button> <el-table :data="taskTableData" border :row-class-name="tableRowClassName" height="300" style="width: 100%;" highlight-current-row :header-cell-style="this.$headerCellStyle" :cell-style="this.$cellStyle" > <el-table-column prop="seq" width="50" label="åºå·" fixed /> <el-table-column prop="wo_code" label="å·¥åç¼å·" width="200" /> <el-table-column prop="stepcode" label="å·¥åºç¼ç " /> <el-table-column prop="stepname" label="å·¥åºåç§°" /> <!-- <el-table-column--> <!-- prop="flwtype"--> <!-- label="å·¥åºç±»å"--> <!-- >--> <!-- <template slot-scope="{row}">--> <!-- <div v-if="row.flwtype==='W'">å¤å</div>--> <!-- <div v-if="row.flwtype==='Z'">èªå¶</div>--> <!-- </template>--> <!-- </el-table-column>--> <!-- <el-table-column--> <!-- prop="descr"--> <!-- label="å·¥åºæè¿°"--> <!-- />--> <el-table-column prop="plan_qty" label="任塿°é" /> <el-table-column prop="good_qty" label="åæ ¼æ°é" /> <el-table-column prop="ng_qty" label="ä¸è¯æ°é" /> <el-table-column label="æä½" fixed="right" > <template slot-scope="{row}"> <el-button type="text" style="padding: 0;" @click="supplementSmallClick(row)">è¡¥æ</el-button> </template> </el-table-column> </el-table> <span slot="footer" class="dialog-footer"> <div class="footerButton"> <el-button @click="dialogVisibleBack">è¿ å</el-button> <!-- <el-button type="primary" @click="dialogVisibleConfirm">ç¡® å®</el-button>--> </div> </span> </el-dialog> <!-- æºååå·å¯¹è¯æ¡--> <el-dialog title="æºååå·" :visible.sync="dialogVisibleSource" width="1200px" top="5vh" class="dialogVisibleSearch" :close-on-click-modal="false" @close="dialogVisibleSourceClose" > <div class="bodyTopFormGroup" style="animation: move 1s linear"> <el-form ref="sourceForm" :model="sourceForm" label-width="100px" inline style="display: flex;justify-content: space-between" > <div class="elForm"> <el-form-item label="é¢è®¡å¼å·¥æ¶é´" label-width="100px" style=" display: flex;font-size: 14px;margin-top: 3px" > <el-date-picker v-model="sourceForm.paystartdate" type="daterange" range-separator="~" class="timeMini" size="mini" style="width: 200px;display: flex;line-height: 34px;height: 34px;font-size: 14px!important;" :clearable="false" start-placeholder="å¼å§æ¥æ" end-placeholder="ç»ææ¥æ" /> <!-- :picker-options="expireTimeOption"--> </el-form-item> <el-form-item label="é¢è®¡å®å·¥æ¶é´" label-width="100px" style=" display: flex;font-size: 14px;margin-top: 3px" > <el-date-picker v-model="sourceForm.payenddate" type="daterange" :clearable="false" class="timeMini" range-separator="~" start-placeholder="å¼å§æ¥æ" style="width: 200px;display: flex;line-height: 34px ;height: 34px ;font-size: 14px !important;" end-placeholder="ç»ææ¥æ" size="mini" /> </el-form-item> <el-form-item label="订åç¶æ" style=" display: flex;"> <el-select v-model="sourceForm.erporderstus" filterable :popper-append-to-body="false" style="width: 200px" placeholder="è¯·éæ©" > <el-option v-for="item in erporderstusArr" :key="item.code" :label="item.name" :value="item.code" /> </el-select> </el-form-item> <el-form-item v-show="isExpandDialog" label="订åç¼å·" style=" display: flex;"> <el-input v-model="sourceForm.erpordercode" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item v-show="isExpandDialog" label="产åç¼ç " style=" display: flex;"> <el-input v-model="sourceForm.partcode" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> <el-form-item v-show="isExpandDialog" label="产ååç§°" style=" display: flex;"> <el-input v-model="sourceForm.partname" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> <el-form-item v-show="isExpandDialog" label="产åè§æ ¼" style=" display: flex;"> <el-input v-model="sourceForm.partspec" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> <el-form-item v-show="isExpandDialog" label="å建人å" style=" display: flex;"> <el-input v-model="sourceForm.creatuser" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> </div> <div> <div style="display: flex;align-items: start;margin-top: 5px;z-index: 2;justify-content: end"> <el-button type="primary" icon="el-icon-search" @click="sourceSearch">æ¥è¯¢</el-button> <el-button type="info" icon="el-icon-refresh" @click="sourceReset">éç½®</el-button> </div> </div> </el-form> </div> <!-- <el-tooltip :content="!isExpandDialog?'ç¹å»å±ç¤ºæ´å¤':'æ¶èµ·'" placement="bottom">--> <div style="display:flex;justify-content: center; align-items:center;background-color:#eee;cursor: pointer" @click="isExpandDialog=!isExpandDialog" > <i :class="!isExpandDialog?'el-icon-arrow-down':'el-icon-arrow-up'" :style="{color:'#42B983'}" /></div> <!-- </el-tooltip>--> <div class="elTableDiv"> <el-table :data="sourceTableData" :height="(tableHeight-100)+'px'" border :row-class-name="tableRowClassName" :style="{width: 100+'%',height:(tableHeight-100)+'px',}" highlight-current-row :header-cell-style="this.$headerCellStyle" :cell-style="this.$cellStyle" @sort-change="sourceSortChange" > <!-- <el-table-column--> <!-- type="selection"--> <!-- width="50"--> <!-- />--> <el-table-column width="50" fixed > <template slot-scope="{row}"> <el-radio v-model="radioSelectedId" :label="row.id" style="color: transparent;padding-left: 10px;" @change.native="getCurrentRowSource(row.id)" /> </template> </el-table-column> <el-table-column prop="RowNum" width="50" fixed label="åºå·" /> <el-table-column prop="status" label="订åç¶æ" sortable="custom" width="110" > <template slot-scope="{row}"> <div v-if="row.status==='NEW'">æ°è®¢å</div> <div v-if="row.status==='CREATING'">é¨åä¸è¾¾</div> <div v-if="row.status==='CREATED'">å ¨é¨ä¸è¾¾</div> <div v-if="row.status==='CLOSED'">å·²å ³é</div> </template> </el-table-column> <el-table-column prop="wo" label="订åç¼å·" sortable="custom" min-width="150" /> <el-table-column prop="partcode" label="产åç¼ç " sortable="custom" min-width="150" /> <el-table-column prop="partname" label="产ååç§°" sortable="custom" min-width="150" /> <el-table-column prop="partspec" label="产åè§æ ¼" sortable="custom" min-width="110" > <template slot-scope="{row}"> <div v-if="row.partspec">{{ row.partspec }}</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="qty" label="è®¢åæ°é" width="150" sortable="custom" /> <el-table-column prop="relse_qty" label="å·²ä¸åæ°é" width="150" sortable="custom" /> <el-table-column prop="wkshp_name" label="ç产车é´" sortable="custom" width="150" > <template slot-scope="{row}"> <div v-if="row.wkshp_name">{{ row.wkshp_name }}</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="planstartdate" label="é¢è®¡å¼å·¥æ¶é´" sortable="custom" width="130" > <template slot-scope="{row}"> <div v-if="row.planstartdate">{{ row.planstartdate.substring(0, 11) }}</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="planenddate" label="é¢è®¡å®å·¥æ¶é´" sortable="custom" width="130" > <template slot-scope="{row}"> <div v-if="row.planenddate">{{ row.planenddate.substring(0, 11) }}</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="createuser" label="å建人å" sortable="custom" width="150" > <template slot-scope="{row}"> <div v-if="row.createuser">{{ row.createuser }}</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="createdate" label="å建æ¶é´" width="130" sortable="custom" > <template slot-scope="{row}"> <div v-if="row.createdate">{{ row.createdate.substring(0, 11) }}</div> <div v-else>/</div> </template> </el-table-column> <!-- <el-table-column--> <!-- label="æä½"--> <!-- fixed="right"--> <!-- width="80"--> <!-- >--> <!-- <template slot-scope="{row}">--> <!-- <div class="operationClass">--> <!-- <el-tooltip class="item" effect="dark" content="ä¸è¾¾" placement="top">--> <!-- <!– <el-button type="text" @click="edit('edit',row)">ä¸è¾¾</el-button>–>--> <!-- <i--> <!-- class="el-icon-bottom"--> <!-- style="color:#42b983;cursor: pointer;margin-left: 5px"--> <!-- @click="edit('edit',row)"--> <!-- />--> <!-- </el-tooltip>--> <!-- </div>--> <!-- </template>--> <!-- </el-table-column>--> </el-table> </div> <!--å页--> <pagination :total="sourceFormTotal" :page.sync="sourceForm.page" :limit.sync="sourceForm.rows" align="right" layout="total,prev, pager, next,sizes" popper-class="select_bottom" @pagination="getErpOrderSearch" /> <span slot="footer" class="dialog-footer"> <div class="footerButton"> <el-button @click="dialogVisibleSourceBack">è¿ å</el-button> <el-button type="primary" @click="dialogVisibleSourceConfirm">ç¡® å®</el-button> </div> </span> </el-dialog> <!--æå°é¢è§å¯¹è¯æ¡ 大æ ç¾--> <el-dialog title="" :visible.sync="dialogVisibleApprove" width="812px" class="dialogVisibleConfirmClass" append-to-body :close-on-click-modal="false" @close="dialogVisibleConfirmClose" > <!-- è¦æå°çåºå --> <div id="printMe" style="padding: 30px"> <div style="font-size: 26px; text-align: center">æµç¨å</div> <div style="display: flex;justify-content: space-around;margin-top: 20px; position: relative;"> <div style="width: 78%"> <el-form ref="formApprove" :model="formApprove" label-width="100px" inline style="display: flex;justify-content: space-between" > <div class="elForm"> <el-form-item label="å·¥åç¼å·ï¼" class="formContent"> {{ formApprove.mesordercode }} </el-form-item> <el-form-item label="æºååå·ï¼" class="formContent"> {{ formApprove.m_po }} </el-form-item> <el-form-item label="产åç¼ç ï¼" class="formContent"> {{ formApprove.partcode }} </el-form-item> <el-form-item label="产ååç§°ï¼" class="formContent"> {{ formApprove.partname }} </el-form-item> <el-form-item label="产åè§æ ¼ï¼" class="formContent"> {{ formApprove.partspec }} </el-form-item> <el-form-item label="工忰éï¼" class="formContent"> {{ formApprove.plan_qty }} </el-form-item> <el-form-item label="å·¥èºè·¯çº¿ï¼" class="formContent"> {{ formApprove.routename }} </el-form-item> <el-form-item label="æå°äººåï¼" class="formContent"> {{ username }} </el-form-item> <el-form-item label="æå°æ¶é´ï¼" class="formContent"> {{ formApprove.lm_date }} </el-form-item> </div> </el-form> </div> <div id="qrCode" style="width: 22%;height:97px; margin-top: 20px; overflow-y: scroll;display: flex; justify-content: center; position: relative;" > <!-- <div id="qrCode0" ref="qrCodeDiv0" />--> </div> <div style="background-color: #fff;width: 20px;height:120px; position: absolute;right: 0" /> <div style="z-index: 10;background-color:transparent;width: 120px;height:120px; position: absolute;right: 21px" /> </div> <!-- <div style="width:100%;height: 30px;border-bottom: 1px solid #eee;margin-bottom: 20px" />--> <el-table id="table" :data="tableDataPrint" border class="tableDataPrint" :header-cell-style="{ background: '#c0c0c0',textAlign:'center',color:'#000',borderColor:'#000'}" :cell-style="{textAlign: 'center',color:'#000',borderColor:'#000'}" style="width: 100%;margin-top: 20px;text-align: center;border-color: #000" > <el-table-column id="column0" prop="seq" label="å·¥åºå·" width="70" align="center" /> <el-table-column id="column1" prop="stepqrcode" label="å·¥åºäºç»´ç " width="100" align="center" > <template slot-scope="{row}"> <div :id="'qrCode'+row.seq" :ref="'qrCodeDiv'+row.seq" class="tableColumn" /> </template> </el-table-column> <el-table-column id="column2" prop="stepname" label="å·¥åº" width="120" align="center" /> <el-table-column id="column3" prop="plan_qty" label="å å·¥æ°é" width="100" align="center" /> <el-table-column id="column4" prop="good_qty" width="100" align="center" label="åæ ¼æ°é" /> <el-table-column id="column5" width="100" prop="ng_qty" align="center" label="ä¸è¯æ°é" /> <el-table-column id="column6" prop="desc" align="center" width="120" label="夿³¨" /> </el-table> </div> <span slot="footer" class="dialog-footer"> <div class="footerButton"> <el-button @click="dialogVisibleBackPreview">è¿ å</el-button> <!-- <el-button v-if="operation==='add'" type="primary" @click="dialogVisibleConfirm">ç¡® å®</el-button>--> <!-- <el-button type="primary" @click="dialogVisibleConfirm">ç¡® å®/æ å°</el-button>--> <el-button v-print="printObj" type="primary">æ å°</el-button> </div> </span> </el-dialog> <!--æå°é¢è§é¡µé¢ å°æ ç¾--> <el-dialog title="é¢è§" :visible.sync="dialogVisible2" width="1140" top="10vh" :close-on-click-modal="false" @close="dialogVisible2Close" > <!-- è¦æå°çåºå --> <div id="printMe2" style="padding: 30px;"> <div style="display: flex;width: 280px;height: 150px;border: 1px solid #000;text-align: center;font-size: 10px;" > <div style="width: 90px;display: flex;flex-direction: column;border-right: 1px solid #000"> <div style="display: flex;height: 90px;border-bottom:1px solid #000; justify-content: center;align-items: center;position: relative" > <div id="qrCode2" ref="qrCodeDiv2" style="overflow-y: hidden;height:60px;position: absolute;left: 14px;" /> </div> <div style="display: flex;height: 30px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center" > <div style="margin-left: 5px;width: 28px">æ°é:</div> {{ qrForm.startqty }} </div> <div style="display: flex;height: 30px;justify-content: flex-start;align-items: center"> <div style="margin-left: 5px;width: 42px">å¤ç人:</div> {{ qrForm.operator }} </div> </div> <div style="width:190px;display: flex;flex-direction: column"> <div style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left" > <div style="width: 60px;margin-left: 5px;">å·¥åç¼å·:</div> <div>{{ qrForm.wo_code }}</div> </div> <div style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left" > <div style="width: 60px;margin-left: 5px;">产åç¼ç :</div> <div>{{ qrForm.partcode }}</div> </div> <div style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left" > <div style="width:60px;margin-left: 5px;">产ååç§°:</div> <div>{{ qrForm.partname }}</div> </div> <div style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left" > <div style="width:60px;margin-left: 5px;">ä¸éå·¥åº:</div> <div>{{ qrForm.nextstepname }}</div> </div> <div style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left"> <div style="width: 60px;margin-left: 5px;">å¤çæ¶é´:</div> <div>{{ qrForm.operatorTime }}</div> </div> </div> </div> </div> <span slot="footer" class="dialog-footer"> <div class="footerButton"> <el-button @click="dialogVisible2 = false">å æ¶</el-button> <el-button v-print="printObj2" type="primary">ç¡® å®</el-button> </div> </span> </el-dialog> <!-- å·¥èºè·¯çº¿å¯¹è¯æ¡--> <el-dialog :close-on-click-modal="false" title="å ³èå·¥èºè·¯çº¿" :visible.sync="dialogVisibleRoute" width="800px" top="10vh" :fullscreen="isIpad" class="dialogVisibleRoute" @closed="handleCloseRoute" @close="handleCloseRoute" > <div> <i class="el-icon-s-comment" style="color:#42b983;" /> 产ååç§°ï¼{{ dialogFormRoute.projectName }} </div> <el-divider /> <div style="margin-bottom: 10px"> <i class="el-icon-s-operation" style="color:#42b983;" /> å·¥èºè·¯çº¿éå </div> <div class="myCheckboxGroup"> <div v-for="item in dialogFormRoute.routeOperationArr" :key="item.code" :style="{border:item.isSelected1?'1px solid #42b983':'1px solid #eee'}" class="myCheckbox" @click="myCheckboxClick(item)" > <input class="myCheckboxInput" type="checkbox" :value="item.code" :name="item.name" :style="{color:item.isSelected2?'#42b983':'#fff'}" @click="myCheckboxInputClick(item)" >{{ item.name }} <!-- ç¶åç¹å»äºä»¶ä¸å½±å--> <!-- onClick="event.cancelBubble = true"--> </div> </div> <el-divider /> <div> <i class="el-icon-s-operation" style="color:#42b983;" /> é»è®¤å·¥èºè·¯çº¿ </div> <div style="margin-top: 20px"> <el-select v-model="defaultroute_code" filterable style="width: 200px;" placeholder="è¯·éæ©" class="defaultroute_code" > <el-option v-for="item in defaultroute_codeArr" :key="item.code" :label="item.name" :value="item.code" /> </el-select> </div> <el-divider /> <div style="margin-bottom: 10px"> <i class="el-icon-s-operation" style="color:#42b983;" /> å·¥åºå表 </div> <div style="overflow-y: scroll"> <el-table ref="projectTableData" :data="projectTableData" border height="280" :row-class-name="tableRowClassName" highlight-current-row :header-cell-style="this.$headerCellStyle" :cell-style="this.$cellStyle" > <el-table-column prop="seq" width="100" label="å·¥åºåºå·" fixed /> <el-table-column prop="stepcode" label="å·¥åºç¼ç " /> <el-table-column prop="stepname" label="å·¥åºåç§°" /> <el-table-column prop="enable" label="å¯ç¨ç¶æ" fixed="right" > <template slot-scope="{row}"> <div v-if="row.enable==='Y'"> <svg-icon icon-class="circleYes" style="margin-right: 2px" /> æ¯ </div> <div v-if="row.enable==='N'"> <svg-icon icon-class="circleNo" style="margin-right: 2px" /> å¦ </div> </template> </el-table-column> </el-table> </div> <span slot="footer" class="dialog-footer"> <div class="footerButton"> <el-button @click="routeDialogVisibleCancel">å æ¶</el-button> <el-button type="primary" @click="routeDialogVisibleConfirm">ç¡® å®</el-button> </div> </span> </el-dialog> </div> </template> <script> import Pagination from '@/components/Pagination' import { AddUpdateMesOrder, ClosedMesOrder, DeleteMesOrder, ErpOrderSearch, MesOrderSearch, PartSelectRoute, RouteSelectWkshop, SearchWorkStep, SelectRouteStep } from '@/api/scgl' import { InventoryFileAssociationRoute, PartSelect, SaveInventoryFile } from '@/api/zzmx' import { handleDatetime, handleDatetime2, validateCode } from '@/utils/global' import { getCookie } from '@/utils/auth' import { MesOrderPrintSearch1, PrintOrder } from '@/api/utils' import { urlAddRandomNo, webapp_ws_ajax_run, webapp_ws_autoupdate } from '@/utils/grwebapp' import QRCode from 'qrcodejs2' import $ from 'jquery' export default { name: 'GD', components: { Pagination }, data() { return { isIpad: false, mainHeight: 0, tableHeight: 0, username: '', form: { mesorderstus: '', // å·¥åç¶æç mesordercode: '', // å·¥åç¼å· partcode: '', // 产åç¼ç ordertype: '', // ordertype sourceorder: '', // æºååå· partname: '', // 产ååç§° partspec: '', // 产åè§æ ¼ creatuser: '', // å建人å createdate: '', // å建æ¶é´ prop: 'lm_date', // æåºå段 order: 'desc', // æåºå段 page: 1, // 第å 页 rows: 20 // æ¯é¡µå¤å°æ¡ }, erporderstusArr: [ { code: 'NEW', name: 'æ°å·¥å' }, // { code: 'CREATING', name: 'æ§è¡ä¸' }, // { code: 'CREATED', name: 'å·²å ³é' } { code: 'ALLO', name: '已派å' }, { code: 'START', name: 'å¼å·¥' }, { code: 'CLOSED', name: 'å®å·¥' } ], total: 10, radioSelected: '', tableData: [], dialogVisible: false, dialogForm: { partname: '', // 产ååç§° partspec: '', // 产åè§æ ¼ wkshopname: '', // ç产车é´åç§° routename: '', // å·¥èºè·¯çº¿åç§° mesorderstus: 'NEW', // å·¥åç¶æç mesordercode: '', // å·¥åç¼å· partcode: '', // 产åç¼ç ordertype: 'PO', // å·¥åç±»å sourceorder: '', // æºååå· mesqty: '', // 工忰é routecode: '', // å·¥èºè·¯çº¿ç¼ç wkshopcode: '', // ç产车é´ç¼ç planstartdate: '', // 计åå¼å§æ¶é´ planenddate: '', // 计å宿æ¶é´ orderlev: '', // å·¥åç级 OperType: '' // æä½ç±»å }, ordertypeArr: [// å·¥åç±»å { code: 'PO', name: 'æ åå·¥å' }, { code: 'FO', name: 'æ¥åºè¡¥å' } ], partArr: [], // 产åä¿¡æ¯ wkshopArr: [], // çäº§è½¦é´æ°ç» routeArr: [], // å·¥èºè·¯çº¿æ°ç» orderlevArr: [ { code: 1, name: 'ç¹çº§' }, { code: 2, name: 'ç´§æ¥' }, { code: 3, name: 'æ£å¸¸' } ], // å·¥åç级æ°ç» operation: '', dialogFormRules: { mesorderstus: [ { required: true, message: 'è¯·éæ©è®¢åç¶æ', trigger: ['blur', 'change'] } ], partcode: [ { required: true, message: 'è¯·éæ©äº§åä¿¡æ¯', trigger: ['blur', 'change'] } ], mesordercode: [ { required: true, validator: validateCode, trigger: ['blur', 'change'] } ], mesqty: [ { required: true, message: '请è¾å ¥å·¥åæ°é', trigger: ['blur', 'change'] } ], wkshopcode: [ { required: true, message: 'è¯·éæ©ç产车é´', trigger: ['blur', 'change'] } ], routecode: [ { required: true, message: 'è¯·éæ©å·¥èºè·¯çº¿', trigger: ['blur', 'change'] } ], planstartdate: [ { required: true, message: 'è¯·éæ©å¼å§æ¶é´', trigger: ['blur', 'change'] } ], planenddate: [ { required: true, message: 'è¯·éæ©ç»ææ¶é´', trigger: ['blur', 'change'] } ], orderlev: [ { required: true, message: 'è¯·éæ©å·¥åç级', trigger: ['blur', 'change'] } ] }, dialogVisibleTask: false, taskTableData: [], dialogVisibleSearch: false, searchTableData: [], dialogVisibleApprove: false, tableDataPrint: [], // æå°é¡µé¢å 容 printObj: { id: 'printMe', popTitle: 'æå°æ¨¡æ¿', preview: false, extraHead: '<meta http-equiv="Content-Language" content="zh-cn"/>', closeCallback(vue) { // å ³éæå°çåè°äºä»¶ï¼æ æ³ç¡®å®ç¹å»çæ¯ç¡®è®¤è¿æ¯åæ¶ï¼ console.log('11212', vue) // vue.dialogVisible = false vue.dialogVisibleApprove = false }, beforeOpenCallback(vue) { vue.printLoading = true console.log('æå¼ä¹å') console.log() }, openCallback(vue) { vue.printLoading = false console.log('æ§è¡äºæå°') } }, formApprove: { m_po: '', // æºååå· mesordercode: '', partcode: '', partname: '', partspec: '', plan_qty: '', routename: '', lm_date: '' }, number: '', dialogVisible2: false, printObj2: { id: 'printMe2', popTitle: 'æå°æ¨¡æ¿', preview: false, extraHead: '<meta http-equiv="Content-Language" content="zh-cn"/>', closeCallback(vue) { // å ³éæå°çåè°äºä»¶ï¼æ æ³ç¡®å®ç¹å»çæ¯ç¡®è®¤è¿æ¯åæ¶ï¼ console.log('11212', vue) // vue.dialogVisible = false vue.dialogVisible2 = false // vue.dialogVisible = false }, beforeOpenCallback(vue) { vue.printLoading = true console.log('æå¼ä¹å') console.log() }, openCallback(vue) { vue.printLoading = false console.log('æ§è¡äºæå°') } }, qrForm: { qrvalue: '', startqty: '', wo_code: '', partcode: '', partname: '', nextstepname: '', operator: '', // æä½äºº operatorTime: ''// æä½æ¶é´ }, dialogVisibleSource: false, sourceTableData: [], sourceForm: { erporderstus: '', // 订åç¶æç erpordercode: '', // 订åç¼å· partcode: '', // 产åç¼ç partname: '', // 产ååç§° partspec: '', // 产åè§æ ¼ creatuser: '', // å建人å // paystartdate: '', // äº¤ä»æ¶é´ paystartdate: '', // é¢è®¡å¼å·¥æ¶é´ payenddate: '', // é¢è®¡å®å·¥æ¶é´ createdate: '', // å建æ¶é´ prop: 'createdate', // æåºå段 order: 'desc', // æåºå段 page: 1, // 第å 页 rows: 20 // æ¯é¡µå¤å°æ¡ }, sourceFormTotal: 10, radioSelectedId: '', isExpandDialog: false, // å¯¹è¯æ¡è¡¨åæ¯å¦å±å¼ï¼é»è®¤ä¸å±å¼ dialogVisibleRoute: false, dialogFormRoute: { projectName: '', // 产ååç§° projectCode: '', // 产å代ç routeOperationArr: [] // å·¥èºè·¯çº¿éå }, defaultroute_code: '', // é»è®¤å·¥èºè·¯çº¿éä¸å¼ defaultroute_codeArr: '', // é»è®¤å·¥èºè·¯çº¿æ°ç» projectTableData: [], // 设å¤å表 isExpandForm: false// è¡¨åæ¯å¦å±å¼ï¼é»è®¤ä¸å±å¼ } }, created() { this.handleRequest() }, mounted() { window.addEventListener('resize', this.getHeight) this.getHeight() // webapp_urlprotocol_startup() // webapp_ws_autoupdate(true) this.username = getCookie('username') }, methods: { tableRowClassName({ row, rowIndex }) { return 'custom-row' }, handleRequest() { this.getMesOrderSearch().then(res => { if (res.code === '200') { this.getSelect() } }) }, async getMesOrderSearch() { // let tempDate = this.form.createdate // if (tempDate.length > 0) { // tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1]) // } const data = { mesorderstus: this.form.mesorderstus, // å·¥åç¶æç mesordercode: this.form.mesordercode, // å·¥åç¼å· partcode: this.form.partcode, // 产åç¼ç partname: this.form.partname, // 产ååç§° partspec: this.form.partspec, // 产åè§æ ¼ creatuser: this.form.creatuser, // å建人å sourceorder: this.form.sourceorder, // æºååå· ordertype: this.form.ordertype, // åæ®ç±»å createdate: this.form.createdate.toString().length > 0 ? handleDatetime(this.form.createdate) : '', // å建æ¶é´ prop: this.form.prop, // æåºå段 order: this.form.order, // æåºå段 page: this.form.page, // 第å 页 rows: this.form.rows // æ¯é¡µå¤å°æ¡ } const res = await MesOrderSearch(data) this.tableData = res.data this.total = res.count // this.form.createdate = tempDate return { code: res.code } }, async getSelect() { // è·å产åä¿¡æ¯ const { data: res1 } = await PartSelect() this.partArr = res1 }, // 订åç¶ææ¹åæ¶ erporderstusChange(val) { this.form.mesorderstus = val }, // æåºæ¹åæ¶ 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.getMesOrderSearch() }, sourceSortChange({ column, prop, order }) { if (order === 'descending') { order = 'desc' } else if (order === 'ascending') { order = 'asc' } else { order = 'desc' } this.sourceForm.order = order this.sourceForm.prop = prop this.getErpOrderSearch() }, // æ¥è¯¢ search() { this.getMesOrderSearch() }, // éç½® reset(val) { this.form.mesorderstus = '' this.form.mesordercode = '' this.form.partcode = '' this.form.partname = '' this.form.partspec = '' this.form.paydate = '' this.form.creatuser = '' this.form.sourceorder = '' this.form.creatuser = '' this.form.ordertype = '' this.getMesOrderSearch() }, // åéæ¡éä¸è·åå½åè¡ä¿¡æ¯ getCurrentRow(wo_code) { this.radioSelected = wo_code }, // æ°å¢æé® async add(operation) { this.operation = operation this.dialogVisible = true this.dialogForm.planstartdate = handleDatetime(new Date()) this.dialogForm.planenddate = handleDatetime(new Date()) this.dialogForm.orderlev = 3 }, // 产åä¿¡æ¯å¼æ¹å async partcodeChange(val) { console.log(val, 22) const { data: res } = await PartSelectRoute({ partcode: val }) this.routeArr = res let flag = false this.routeArr.forEach(item => { if (item.code === item.default_route) { this.dialogForm.routecode = item.code this.routecodeChange(this.dialogForm.routecode) flag = true } }) if (!flag) { this.dialogForm.routecode = '' } this.dialogForm.wkshopcode = '' }, // å·¥èºè·¯çº¿å¼æ¹å async routecodeChange(val) { const data = { partcode: this.dialogForm.partcode, routecode: this.dialogForm.routecode } // è·åçäº§è½¦é´æ°ç» const { data: res2 } = await RouteSelectWkshop(data) this.wkshopArr = res2 this.dialogForm.wkshopcode = '' }, // å·¥åºä»»å¡ async check(row) { const { data: res } = await SearchWorkStep({ wo_code: row.wo_code }) this.taskTableData = res if (this.taskTableData.length === 0) { return this.$message.info('æ çäº§ä»»å¡æ°æ®ï¼') } this.dialogForm.mesordercode = res[0].wo_code this.dialogVisibleTask = true }, dialogVisibleBack() { this.dialogVisibleTask = false }, // æ´¾å send(operation) { if (this.radioSelected.length < 1) { return this.$message.info('请å 鿩工åï¼') } const row = this.tableData.find(item => item.wo_code === this.radioSelected) if (row.status !== 'NEW') { return this.$message.info('æ¤å·¥åä¸ºéæ°å·¥åç¶æï¼ä¸å¯æ´¾åï¼') } this.operation = operation this.dialogVisible = true this.$nextTick(() => { this.dialogForm.mesorderstus = row.status this.dialogForm.mesordercode = row.wo_code this.dialogForm.partcode = row.partcode this.partcodeChange(row.partcode) this.dialogForm.partname = row.partname this.dialogForm.mesqty = row.plan_qty this.dialogForm.partspec = row.partspec this.dialogForm.sourceorder = row.m_po this.dialogForm.ordertype = row.wotype // this.routecodeChange(this.dialogForm.routecode) this.dialogForm.planstartdate = row.plan_startdate !== null ? row.plan_startdate : handleDatetime(new Date()) this.dialogForm.planenddate = row.plan_enddate !== null ? row.plan_enddate : handleDatetime(new Date()) this.dialogForm.orderlev = row.piroque !== null ? row.piroque : 3 // ç级 }) }, // å é¤æé® async del(row) { if (row.status === 'START' || row.status === 'CLOSED') { return this.$message.info('æ¤å·¥åä¸å¯å é¤ï¼') } this.$confirm('æ¯å¦ç¡®è®¤å é¤?', 'æç¤º', { confirmButtonText: 'ç¡®å®', cancelButtonText: 'åæ¶', type: 'warning' }).then(() => { console.log(row, 1) const data = { souceid: row.sourceid, wocode: row.wo_code, m_po: row.m_po, orderqty: row.plan_qty } DeleteMesOrder(data).then(res => { if (res.code === '200') { this.$message.success('å 餿å!') if (this.form.page > 1 && this.tableData.length === 1) { this.form.page-- } this.getMesOrderSearch() } }) }).catch(() => { this.$message.info('已忶å é¤') }) }, // å·¥åå ³éäºä»¶ orderClose() { if (this.radioSelected.length < 1) { return this.$message.info('请å 鿩工åï¼') } console.log('å·¥åå ³éäºä»¶') this.tableData.forEach(item => { if (item.wo_code === this.radioSelected) { if (item.status === 'START') { return this.$message.info('å½åå·¥åæªå®å·¥ï¼æ æ³å ³éï¼') } else if (item.status === 'CLOSED') { return this.$message.info('å·¥åå·²å ³éï¼æ éåå ³éï¼') } else { this.$confirm('æ¯å¦ç¡®è®¤å ³éå·¥å?', 'æç¤º', { confirmButtonText: 'ç¡®å®', cancelButtonText: 'åæ¶', type: 'warning' }).then(() => { const data = { wocode: item.wo_code, m_po: item.m_po } ClosedMesOrder(data).then(res => { if (res.code === '200') { this.$message.success('å·¥åå ³éæå!') this.getMesOrderSearch() // this.radioSelected = '' } }) }).catch(() => { this.$message.info('å·²åæ¶å ³éï¼') }) } } }) }, // å¯¹è¯æ¡äº§åä¿¡æ¯å¼æ¹å partcodeChangeDialog(val) { console.log(val) this.dialogForm.partname = this.partArr.find(item => item.partcode === val).partname this.dialogForm.partcode = this.partArr.find(item => item.partcode === val).partcode this.dialogForm.partspec = this.partArr.find(item => item.partcode === val).partspec // const { data: res } = await PartSelectRpute({ partcode: val }) // this.routeArr = res // this.dialogForm.routecode = '' this.partcodeChange(val) }, // å¯¹è¯æ¡å ³éäºä»¶ handleClose() { this.dialogForm.partname = '' // 产ååç§° this.dialogForm.partspec = '' // 产åè§æ ¼ this.dialogForm.wkshopname = '' // ç产车é´åç§° this.dialogForm.routename = '' // å·¥èºè·¯çº¿åç§° this.dialogForm.mesorderstus = 'NEW' // å·¥åç¶æç this.dialogForm.mesordercode = '' // å·¥åç¼å· this.dialogForm.partcode = '' // 产åç¼ç this.dialogForm.mesqty = '' // 工忰é this.dialogForm.ordertype = 'PO' // å·¥åç±»å this.dialogForm.sourceorder = '' // æºååå· this.dialogForm.routecode = '' // å·¥èºè·¯çº¿ç¼ç this.dialogForm.wkshopcode = '' // ç产车é´ç¼ç this.dialogForm.planstartdate = '' // 计åå¼å§æ¶é´ this.dialogForm.planenddate = '' // 计å宿æ¶é´ this.dialogForm.orderlev = '' // å·¥åç级 this.$refs.dialogForm.clearValidate() }, // å¯¹è¯æ¡åæ¶ dialogVisibleCancel() { this.dialogVisible = false }, // å¯¹è¯æ¡ç¡®è®¤ dialogVisibleConfirm() { this.$refs.dialogForm.validate(valid => { if (valid) { if (this.dialogForm.ordertype === 'FO' && this.dialogForm.sourceorder.toString().trim().length <= 0) { return this.$message.info('æºååå·ä¸è½ä¸ºç©ºï¼') } const data = { // partname: this.dialogForm.partname, // 产ååç§° // partspec: this.dialogForm.partspec, // 产åè§æ ¼ // wkshopname: this.dialogForm.wkshopname, // ç产车é´åç§° // routename: this.dialogForm.routename, // å·¥èºè·¯çº¿åç§° mesorderstus: this.dialogForm.mesorderstus, // å·¥åç¶æç mesordercode: this.dialogForm.mesordercode, // å·¥åç¼å· partcode: this.dialogForm.partcode, // 产åç¼ç mesqty: this.dialogForm.mesqty, // 工忰é ordertype: this.dialogForm.ordertype, // åæ®ç±»å sourceorder: this.dialogForm.sourceorder, // æºååå· routecode: this.dialogForm.routecode, // å·¥èºè·¯çº¿ç¼ç wkshopcode: this.dialogForm.wkshopcode, // ç产车é´ç¼ç planstartdate: this.dialogForm.planstartdate, // 计åå¼å§æ¶é´ planenddate: this.dialogForm.planenddate, // 计å宿æ¶é´ orderlev: this.dialogForm.orderlev, // å·¥åç级 OperType: this.operation === 'add' ? 'Add' : 'Update' } AddUpdateMesOrder(data).then(res => { if (res.code === '200') { this.dialogVisible = false this.handlePrint() this.$message.success(this.operation === 'add' ? 'æ·»å æåï¼' : 'æ´¾åæåï¼') // this.dialogVisible = false this.getMesOrderSearch() } else { this.$message.error(this.operation === 'add' ? 'æ·»å 失败ï¼' : 'æ´¾å失败ï¼') } }) } }) }, // æ´¾åæå° async sendPrint() { const data = { username: getCookie('admin'), // username: getCookie('username'), mesordercode: this.dialogForm.mesordercode } const res = await MesOrderPrintSearch1(data) // const res = await PrintOrder(data) if (res.code === '200') { // åæ°å ·ä½è¯´æè¯·åèå¸®å©ææ¡£ä¸çâWEBæ¥è¡¨(B/Sæ¥è¡¨)->WEBæ¥è¡¨å®¢æ·ç«¯->å¯å¨åæ°è¯´æâé¨å var args = { type: 'print', // preview print showOptionDlg: false, // 妿䏿¾ç¤ºæå°å¯¹è¯æ¡èç´æ¥æå°ï¼å°æ¤è¡æ³¨é廿å³å¯ report: urlAddRandomNo('./static/grf/äº§åæµä¼ åA4.grf'), data: res.data } webapp_ws_ajax_run(args) } }, // è·å页é¢é«åº¦ getHeight() { this.$nextTick(() => { this.mainHeight = window.innerHeight - 85 this.tableHeight = this.mainHeight - 250 if (window.innerHeight < 769) { this.tableHeight = this.tableHeight - 20 } this.isIpad = window.innerHeight < 769 && window.innerWidth < 1367 }) }, // å·¥èºè·¯çº¿æ¾å¤§éç¹å» async searchClick() { if (this.dialogForm.routecode === '') { return this.$message.info('请å 鿩工èºè·¯çº¿ï¼') } this.dialogVisibleSearch = true const { data: res } = await SelectRouteStep({ routecode: this.dialogForm.routecode }) this.searchTableData = res }, dialogVisibleSearchBack() { this.dialogVisibleSearch = false }, // å¤çæå° handlePrint() { // const number = Math.random() * Math.random() // this.number = number === 0 ? (10 + Math.random()) : number // console.log(number) const data2 = { username: getCookie('admin'), mesordercode: this.dialogForm.mesordercode } MesOrderPrintSearch1(data2).then(res2 => { if (res2.code === '200') { const res3 = res2.data.recordset this.tableDataPrint = res3 this.formApprove.mesordercode = res3[0].wo_code this.formApprove.m_po = res3[0].m_po this.formApprove.partcode = res3[0].partcode this.formApprove.partname = res3[0].partname this.formApprove.partspec = res3[0].partspec this.formApprove.plan_qty = res3[0].plan_qty this.formApprove.routename = res3[0].routename this.formApprove.lm_date = res3[0].lm_date this.$nextTick(() => { res3.forEach(i => { this.bindQRCode(i.seq, i.stepqrcode, 'small') }) // this.bindQRCode('0', this.formApprove.mesordercode, 'big') const div = document.getElementById('qrCode') // è¿ä¹å¤ä»£ç åªéè¦è¿ä¸å¥å®ç°æä»¬æéè¦çåè½ï¼å®ä½divæ»å¨æ¡ä½ç½®å¨åºé¨ï¼scrollHeight计ç®åºdivçé«åº¦ï¼åscrollTop 设置æ»å¨æ¡çé«åº¦ä¸ºå¤å° // div.scrollTop = div.scrollHeight // æ»å¨æ¡ä½äºæåºé¨ div.scrollTop = 0 // æ»å¨æ¡ä½äºæé¡¶é¨ }) } }) this.dialogVisibleApprove = true }, dialogVisibleTaskClose() { this.dialogForm.mesordercode = '' }, /* * æå¨ç¹å»æå° * */ // è¿åæé® dialogVisibleBackPreview() { this.dialogVisibleApprove = false }, // dialogVisibleConfirmPreview(param) { // this.$refs.dialogForm.validate(valid => { // if (valid) { // const data = { // username: getCookie('admin'), // mesordercode: this.dialogForm.mesordercode // } // MesOrderPrintSearch1(data).then(res => { // if (res.code === '200') { // this.dialogVisibleApprove = true // console.log(res, 11) // } // }) // } // }) // }, // çæäºç»´ç bindQRCode(seq, text, size) { if (size === 'big') { console.log(text, 1) new QRCode(this.$refs.qrCodeDiv0, { text: text, width: size === 'big' ? 90 : 60, height: size === 'big' ? 90 : 60, // colorDark: '#333333', // äºç»´ç é¢è² colorDark: '#000', // äºç»´ç é¢è² colorLight: '#ffffff', // äºç»´ç èæ¯è² correctLevel: QRCode.CorrectLevel.L// 容éçï¼L/M/H }) } else { new QRCode(this.$refs['qrCodeDiv' + seq], { text: text, width: size === 'big' ? 90 : 60, height: size === 'big' ? 90 : 60, // colorDark: '#333333', // äºç»´ç é¢è² colorDark: '#000', // äºç»´ç é¢è² colorLight: '#ffffff', // äºç»´ç èæ¯è² correctLevel: QRCode.CorrectLevel.L// 容éçï¼L/M/H }) } }, dialogVisibleConfirmClose() { // this.dialogForm.mesordercode = '' this.formApprove.mesordercode = '' this.formApprove.m_po = '' this.formApprove.partcode = '' this.formApprove.partname = '' this.formApprove.partspec = '' this.formApprove.plan_qty = '' this.formApprove.routename = '' this.formApprove.lm_date = '' // this.$refs.qrCodeDiv0.title = '' this.tableDataPrint = [] }, // è¡¥ææé® supplementClick() { this.dialogVisibleTask = false this.handlePrint() }, // è¡¥æå°æ ç¾ supplementSmallClick(row) { // let obj = {} this.taskTableData.forEach((item, index) => { if (item.seq === row.seq) { console.log(item) this.qrForm = { qrvalue: item.seq === this.taskTableData.length ? item.wo_code + ';' + item.stepcode : item.wo_code + ';' + this.taskTableData[item.seq].stepcode, startqty: item.seq === this.taskTableData.length ? item.plan_qty : this.taskTableData[item.seq].plan_qty, wo_code: item.wo_code, partcode: item.partcode, partname: item.partname, nextstepname: item.seq === this.taskTableData.length ? item.stepname : this.taskTableData[item.seq].stepname, operator: getCookie('username'), operatorTime: handleDatetime2(new Date()) } this.$nextTick(() => { console.log(this.qrForm.qrvalue, 3333) this.bindQRCode2(this.qrForm.qrvalue) }) } }) // this.dialogVisibleTask = false this.dialogVisible2 = true console.log(this.qrForm, 1111) }, dialogVisible2Close() { this.qrForm.qrvalue = '' this.qrForm.startqty = '' this.qrForm.wo_code = '' this.qrForm.partcode = '' this.qrForm.partname = '' this.qrForm.nextstepname = '' this.qrForm.operator = '' this.qrForm.operatorTime = '' // this.$refs.qrCodeDiv2 = '' }, // çæäºç»´ç bindQRCode2(text) { new QRCode(this.$refs.qrCodeDiv2, { text: text, width: 60, height: 60, colorDark: '#000', // äºç»´ç é¢è² colorLight: '#ffffff', // äºç»´ç èæ¯è² correctLevel: QRCode.CorrectLevel.L// 容éçï¼L/M/H }) }, // æ¥åºè¡¥åæ åµä¸å¯ç¹å»éæ© mesordertsourcesearchclick() { if (this.dialogForm.ordertype === 'PO') { return this.$message.info('å·¥åç±»å为æ¥åºè¡¥åæ åµä¸å¯éæ©ï¼') } this.getErpOrderSearch() this.dialogVisibleSource = true }, async getErpOrderSearch() { let tempDate2 = this.sourceForm.paystartdate if (tempDate2.length > 0) { tempDate2 = handleDatetime(tempDate2[0]) + '~' + handleDatetime(tempDate2[1]) } let tempDate = this.sourceForm.payenddate if (tempDate.length > 0) { tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1]) } const data = { erporderstus: this.sourceForm.erporderstus, // 订åç¶æç erpordercode: this.sourceForm.erpordercode, // 订åç¼å· partcode: this.sourceForm.partcode, // 产åç¼ç partname: this.sourceForm.partname, // 产ååç§° partspec: this.sourceForm.partspec, // 产åè§æ ¼ paystartdate: tempDate2, // äº¤ä»æ¶é´ payenddate: tempDate, // äº¤ä»æ¶é´ creatuser: this.sourceForm.creatuser, // å建人å prop: this.sourceForm.prop, // æåºå段 order: this.sourceForm.order, // æåºå段 page: this.sourceForm.page, // 第å 页 rows: this.sourceForm.rows // æ¯é¡µå¤å°æ¡ } const res = await ErpOrderSearch(data) this.sourceTableData = res.data.filter(item => item.status !== 'NEW') this.sourceFormTotal = res.count }, // åéæ¡éä¸è·åå½åè¡ä¿¡æ¯ getCurrentRowSource(id) { this.radioSelectedId = id }, sourceSearch() { this.getErpOrderSearch() }, sourceReset() { this.sourceForm.erporderstus = '' this.sourceForm.erpordercode = '' this.sourceForm.partcode = '' this.sourceForm.partname = '' this.sourceForm.partspec = '' this.sourceForm.paystartdate = '' this.sourceForm.payenddate = '' this.sourceForm.creatuser = '' this.sourceForm.createdate = '' this.getErpOrderSearch() }, dialogVisibleSourceClose() { this.radioSelectedId = '' this.sourceForm.erporderstus = '' this.sourceForm.erpordercode = '' this.sourceForm.partcode = '' this.sourceForm.partname = '' this.sourceForm.partspec = '' this.sourceForm.paystartdate = '' this.sourceForm.payenddate = '' this.sourceForm.creatuser = '' this.sourceForm.createdate = '' this.isExpandDialog = false this.sourceTableData = [] }, dialogVisibleSourceBack() { this.dialogVisibleSource = false }, dialogVisibleSourceConfirm() { console.log(this.radioSelectedId) this.sourceTableData.forEach(item => { if (item.id === this.radioSelectedId) { this.dialogForm.sourceorder = item.wo this.dialogForm.partcode = item.partcode this.dialogForm.partspec = item.partspec } }) this.dialogVisibleSource = false this.partcodeChange(this.dialogForm.partcode) }, mesordertypeChange(val) { if (val === 'PO') { this.dialogForm.sourceorder = '' this.dialogForm.partcode = '' this.dialogForm.partspec = '' } }, /* å ³èå·¥èºè·¯çº¿æ¨¡å*/ // å ³èå·¥èºè·¯çº¿ async routeClick(row) { console.log(row) // this.defaultroute_code = row.default_route this.dialogFormRoute.projectCode = row.partcode this.dialogFormRoute.projectName = row.partname this.dialogVisibleRoute = true const { data: res } = await InventoryFileAssociationRoute({ partcode: this.dialogFormRoute.projectCode }) this.dialogFormRoute.routeOperationArr = res this.dialogFormRoute.routeOperationArr.forEach((item, index) => { item.isSelected1 = false item.isSelected2 = false if (index === 0) { item.isSelected1 = true this.projectTableData = item.Data } if (item.flag === 'Y') { item.isSelected2 = true this.$nextTick(() => { $('input:checkbox').eq(index).prop('checked', true) }) } }) this.defaultroute_codeArr = this.dialogFormRoute.routeOperationArr.filter(item => item.flag === 'Y') }, // å¯¹è¯æ¡å ³é handleCloseRoute() { this.dialogFormRoute.routeOperationArr = [] this.defaultroute_codeArr = [] this.defaultroute_code = '' this.projectTableData = [] }, // åæ¶ routeDialogVisibleCancel() { this.dialogVisibleRoute = false }, // ç¡®å® async routeDialogVisibleConfirm() { const temp = this.dialogFormRoute.routeOperationArr.filter(item => item.isSelected2) if (this.defaultroute_code === '' && temp.length > 0) { return this.$message.info('é»è®¤å·¥èºè·¯çº¿ä¸è½ä¸ºç©ºï¼') } // æäº¤æ ¼å¼ const data = [] this.dialogFormRoute.routeOperationArr.forEach(item => { if (item.isSelected2) { data.push({ code: item.code, name: item.name }) } }) const res = await SaveInventoryFile(this.dialogFormRoute.projectCode, this.defaultroute_code, data) if (res.code === '200') { this.$message.success('ä¿åæåï¼') await this.getMesOrderSearch() this.dialogVisibleRoute = false } }, // 大çåç¹å»äºä»¶ myCheckboxClick(val) { console.log(val, 1) this.dialogFormRoute.routeOperationArr.forEach(item => { item.isSelected1 = val.code === item.code }) this.projectTableData = val.Data }, // å°çåç¹å»äºä»¶ myCheckboxInputClick(val) { console.log(val, 2) val.isSelected2 = !val.isSelected2 this.dialogFormRoute.routeOperationArr.forEach((item, index) => { if (val.code === item.code) { item.flag = !item.flag } }) if (val.code === this.defaultroute_code) { this.defaultroute_code = '' } this.defaultroute_codeArr = this.dialogFormRoute.routeOperationArr.filter(item => item.isSelected2) } } } </script> <style lang="scss" scoped> $main_color: #42b983; .dialogVisibleRoute { .myCheckboxGroup { display: flex; flex-wrap: wrap; .myCheckbox { //border: 1px solid $main_color; border: 1px solid #eee; display: flex; min-width: 100px; padding: 10px; margin: 10px 30px 0 0; border-radius: 5px; cursor: default; .myCheckboxInput { margin: 1px 5px 0 0; cursor: pointer; } } //.myCheckbox{ // border: 1px solid $main_color; //} input[type=checkbox] { cursor: pointer; position: relative; width: 14px; height: 14px; font-size: 14px; } input[type=checkbox]::after { position: absolute; top: 0; //color: rgb(130, 35, 35); color: $main_color; width: 14px; height: 14px; display: inline-block; visibility: visible; padding-left: 0px; text-align: center; content: ' '; border-radius: 3px } input[type=checkbox]:checked::after { //content: "â"; content: "â"; color: #fff; font-size: 12px; font-weight: bold; background-color: $main_color; } } } .dialogVisibleRoute { ::v-deep .el-dialog__body { padding: 20px 20px !important; } } .defaultroute_code ::v-deep .el-input__suffix-inner { display: flex; align-items: center; justify-content: center; margin-top: -3px; } .el-date-editor { font-size: 14px; } ::v-deep .el-dialog__body { padding: 20px 100px !important; } .dialogVisibleSearch ::v-deep .el-dialog__body { padding: 20px 20px !important; } .dialogVisibleConfirmClass ::v-deep .el-dialog__body { padding: 20px 20px !important; } ::v-deep .el-table .caret-wrapper { transform: scale(0.8); } ::v-deep .el-button--text { color: $main_color; font-size: 14px; cursor: pointer; } .operationClass { height: 23px; display: flex; justify-content: space-between; align-items: center; } ::v-deep .el-radio.is-bordered + .el-radio.is-bordered { margin: 10px 30px 0px 0; } .body ::v-deep .el-form-item { margin-bottom: 0; } .elForm ::v-deep .el-form-item { margin-bottom: 0; } //.elTableDiv { ::v-deep .el-radio__label { display: none; } //} .el-table::before { height: 0; } //.dialogVisibleConfirmClass >>>.el-table--border, .el-table--fit { // border-bottom: 2px solid #000 ; // //outline: #000 solid 2px !important; //} .tableDataPrint ::v-deep div.cell { display: flex !important; align-items: center !important; justify-content: center !important; } .formContent { width: 240px; } </style> <style media="print"> /*@media print {*/ @page { size: auto; margin: 3mm; } </style> <style> .formContent .el-form-item__label { color: #000 !important; } </style> <!--å ¬å ±é¡µé¢æ ·å¼--> <style lang="scss" scoped> $main_color: #42b983; ::v-deep .el-range-input { font-size: 14px !important; } ::v-deep .el-range__icon { line-height: 28px !important; } ::v-deep .el-range-separator { line-height: 28px !important; } ::v-deep .el-range-input { font-size: 14px; } ::v-deep .el-range-separator { display: flex; justify-content: center; align-items: center; } .el-icon-share, .el-icon-delete, .el-icon-edit-outline { color: $main_color; cursor: pointer; } .el-icon-edit-outline { margin-right: 15px; } ::v-deep .el-button--primary, .el-button--default, .el-button--info { height: 34px; display: flex; align-items: center; padding: 0 15px; } ::v-deep .el-button--primary { //background-color: $main_color !important; } ::v-deep .el-button--default { background-color: #f8f8fa; border: none; } ::v-deep .el-input__inner { height: 34px; line-height: 34px; //color: #a7a7a7; } ::v-deep .el-dialog__body { padding: 20px 100px !important; } ::v-deep .dialogVisibleRoles .el-dialog__body { padding: 20px 20px !important; } ::v-deep .importPickerClass .el-dialog__body { padding: 20px 20px !important; } ::v-deep .el-dialog__footer { display: flex; justify-content: flex-end; } ::v-deep .el-table .caret-wrapper { transform: scale(0.8); } ::v-deep .cell { display: flex; align-items: center; justify-content: space-between; } ::v-deep .el-table::before { height: 0; } ::v-deep .el-table__body-wrapper { background-color: #f8f8fa; } ::v-deep .el-table__body .el-table__row.hover-row td { background-color: #eaecef; } ::v-deep .el-form--inline .el-form-item__label { color: #a7a7a7; } .body ::v-deep .el-divider { border: 1px solid #eee; width: 99%; margin: 10px auto; } .body ::v-deep .el-form-item { margin-bottom: 0; } .userDialogVisible ::v-deep .el-form-item { margin-bottom: 0; } .dateMini { ::v-deep .el-input__inner { line-height: 34px; height: 34px; width: 200px; display: flex; font-size: 14px !important; align-items: center !important; } ::v-deep .el-input__prefix { margin-top: -3px; } //::v-deep .el-range__icon{ // line-height: 28px; //} } </style> <style> .el-table .custom-row { background: #f8f8fa; } </style> src/views/scgl/gdplgb.vue
@@ -1,9 +1,12 @@ <template> <div> <div class="body" :style="{height:mainHeight+'px'}"> <div class="bodyTopButtonGroup"> <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">æ°å¢</el-button> <el-button icon="el-icon-download" @click="upload">å¯¼å ¥</el-button> <div class="bodyTopButtonGroup" style="justify-content: space-between"> <!-- <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">æ°å¢</el-button>--> <!-- <el-button icon="el-icon-download" @click="upload">å¯¼å ¥</el-button>--> <el-button icon="el-icon-switch-button" @click="handleClose('close')">æ¹éå ³å</el-button> <el-button icon="el-icon-switch-button" @click="handleClose('noClose')">æ¹éåå ³å</el-button> </div> <div class="bodyTopFormGroup"> @@ -15,24 +18,39 @@ style="display: flex;justify-content: space-between" > <div class="elForm"> <el-form-item label="ç»ç»ç¼ç " style=" display: flex;"> <el-input v-model="form.OrgCode" placeholder="请è¾å ¥" style="width: 200px" /> <el-form-item label="å·¥åç¶æ" style=" display: flex;"> <el-input v-model="form.mesorderstus" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item label="ç»ç»åç§°" style=" display: flex;"> <el-input v-model="form.OrgName" placeholder="请è¾å ¥" style="width: 200px" /> <el-form-item label="å·¥åç¼å·" style=" display: flex;"> <el-input v-model="form.mesordercode" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item label="ç»ç»ç±»å" style=" display: flex;"> <el-select v-model="form.OrgType" style="width: 200px" placeholder="è¯·éæ©"> <el-form-item label="æºååå·" style=" display: flex;"> <el-input v-model="form.sourceorder" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item label="åæ®ç±»å" style=" display: flex;"> <el-select v-model="form.ordertype" style="width: 200px" placeholder="è¯·éæ©"> <el-option v-for="item in OrgTypeArr" v-for="item in ordertypeArr" :key="item.code" :label="item.name" :value="item.code" /> </el-select> </el-form-item> <el-form-item label="产åç¼ç " style=" display: flex;"> <el-input v-model="form.partcode" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> <el-form-item label="产ååç§°" style=" display: flex;"> <el-input v-model="form.partname" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> <el-form-item label="产åè§æ ¼" style=" display: flex;"> <el-input v-model="form.partspec" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> <el-form-item label="å建人å" style=" display: flex;"> <el-input v-model="form.UserName" style="width: 200px" placeholder="请è¾å ¥" /> <el-input v-model="form.creatuser" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> <el-form-item label="å建æ¶é´" style=" display: flex;"> <el-input v-model="form.createdate" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> </div> <div style="display: flex;align-items: start;margin-top: 5px;z-index: 2"> @@ -44,6 +62,7 @@ <div class="elTableDiv"> <el-table ref="multipleTable" :data="tableData" :height="tableHeight+'px'" border @@ -52,38 +71,192 @@ highlight-current-row :header-cell-style="this.$headerCellStyle" :cell-style="this.$cellStyle" @selection-change="handleSelectionChange" @sort-change="sortChange" > <el-table-column type="selection" fixed width="50" /> <!-- <el-table-column--> <!-- width="50"--> <!-- fixed--> <!-- >--> <!-- <template slot-scope="{row}">--> <!-- <el-radio--> <!-- v-model="radioSelected"--> <!-- :label="row.wo_code"--> <!-- style="color: transparent;padding-left: 10px;"--> <!-- @change.native="getCurrentRow(row.wo_code)"--> <!-- />--> <!-- </template>--> <!-- </el-table-column>--> <el-table-column prop="RowNum" width="50" fixed label="åºå·" fixed /> <el-table-column prop="org_code" label="ç»ç»ç¼ç " prop="status" label="订åç¶æ" sortable="custom" width="110" > <template slot-scope="{row}"> <div v-if="row.status==='NEW'">æ°å·¥å</div> <!-- <div v-if="row.status==='CREATING'">æ§è¡ä¸</div>--> <!-- <div v-if="row.status==='CREATED'">å·²å ³é</div>--> <div v-if="row.status==='ALLO'">已派å</div> <div v-if="row.status==='START'">å¼å·¥</div> <div v-if="row.status==='CLOSED'">å®å·¥</div> </template> </el-table-column> <el-table-column prop="wo_code" label="å·¥åç¼å·" sortable="custom" min-width="160" /> <el-table-column prop="m_po" label="æºååå·" sortable="custom" min-width="160" /> <el-table-column prop="wotype" label="åæ®ç±»å" sortable="custom" min-width="120" > <template slot-scope="{row}"> <div v-if="row.wotype==='PO'">æ åå·¥å</div> <div v-else-if="row.wotype==='FO'">æ¥åºè¡¥å</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="partcode" label="产åç¼ç " sortable="custom" min-width="120" /> <el-table-column prop="partname" min-width="150" label="产ååç§°" sortable="custom" /> <el-table-column prop="org_name" label="ç»ç»åç§°" prop="partspec" label="产åè§æ ¼" sortable="custom" width="110" > <template slot-scope="{row}"> <div v-if="row.partspec">{{ row.partspec }}</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="plan_qty" label="任塿°é" sortable="custom" width="110" /> <el-table-column prop="description" label="ç»ç»ç±»å" prop="good_qty" label="åæ ¼æ°é" sortable="custom" width="110" /> <el-table-column prop="parentorg_name" label="ä¸çº§åä½" prop="ng_qty" label="ä¸è¯æ°é" sortable="custom" width="110" /> <el-table-column prop="bad_qty" label="æ¥åºæ°é" sortable="custom" width="110" /> <el-table-column prop="wkshp_name" label="ç产车é´" sortable="custom" width="120" > <template slot-scope="{row}"> <div v-if="row.wkshp_name">{{ row.wkshp_name }}</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="route_name" label="å·¥èºè·¯çº¿" show-tooltip-when-overflow sortable="custom" width="180" > <template slot-scope="{row}"> <div v-if="row.route_name">{{ row.route_name }}</div> <div v-else>/</div> </template> </el-table-column> <!-- <el-table-column--> <!-- prop="route_name"--> <!-- label="å ³èå·¥èºè·¯çº¿"--> <!-- min-width="110"--> <!-- >--> <!-- <template slot-scope="{row}">--> <!-- <i v-if="row.route_name" class="el-icon-share" @click="routeClick(row)" />--> <!-- <i v-else style="color:rgb(180 ,181, 185)" class="el-icon-share" @click="routeClick(row)" />--> <!-- </template>--> <!-- </el-table-column>--> <el-table-column prop="plan_startdate" label="计åå¼å§æ¶é´" sortable="custom" width="160" > <template slot-scope="{row}"> <div v-if="row.plan_startdate">{{ row.plan_startdate }}</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="plan_enddate" label="计åç»ææ¶é´" sortable="custom" width="160" > <template slot-scope="{row}"> <div v-if="row.plan_enddate">{{ row.plan_enddate }}</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="piroque" label="å·¥åç级" sortable="custom" width="120" > <template slot-scope="{row}"> <div v-if="row.piroque==='1'">ç¹çº§</div> <div v-if="row.piroque==='2'">ç´§æ¥</div> <div v-if="row.piroque==='3'">æ£å¸¸</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="lm_user" label="å建人å" sortable="custom" width="120" /> <el-table-column prop="lm_date" @@ -91,22 +264,26 @@ width="160" sortable="custom" /> <el-table-column label="æä½" width="120" fixed="right" > <template slot-scope="{row}"> <div class="operationClass"> <el-tooltip class="item" effect="dark" content="ç¼è¾" placement="top"> <i 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 class="el-icon-delete" @click="del(row)" /> </el-tooltip> </div> </template> </el-table-column> <!-- <el-table-column--> <!-- label="æä½"--> <!-- width="120"--> <!-- fixed="right"--> <!-- >--> <!-- <template slot-scope="{row}">--> <!-- <div class="operationClass">--> <!-- <el-tooltip class="item" effect="dark" content="å·¥åºä»»å¡" placement="top">--> <!-- <i--> <!-- class="el-icon-tickets"--> <!-- 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" @click="del(row)" />--> <!-- </el-tooltip>--> <!-- </div>--> <!-- </template>--> <!-- </el-table-column>--> </el-table> </div> <!--å页--> @@ -115,54 +292,21 @@ :page.sync="form.page" :limit.sync="form.rows" align="right" layout="prev, pager, next,sizes" layout="total,prev, pager, next,sizes" popper-class="select_bottom" @pagination="getOrganizationSearch" @pagination="getMesOrderBitchClosedSearch" /> </div> <el-dialog :title="operation==='add'?'æ°å¢':'ç¼è¾'" :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="OrgCode"> <el-input v-model="dialogForm.OrgCode" :disabled="operation!=='add'" style="width: 200px" /> </el-form-item> <el-form-item label="ç»ç»åç§°" prop="OrgName"> <el-input v-model="dialogForm.OrgName" style="width: 200px" /> </el-form-item> <el-form-item prop="SupUnit" label="ä¸çº§åä½"> <el-select v-model="dialogForm.SupUnit" style="width: 200px" placeholder="è¯·éæ©" :popper-append-to-body="false" > <el-option v-for="item in SupUnitArr" :key="item.code" :label="item.name" :value="item.code" /> </el-select> </el-form-item> </el-form> <span slot="footer" class="dialog-footer"> <div class="footerButton"> <el-button @click="dialogVisibleCancel">å æ¶</el-button> <el-button type="primary" @click="dialogVisibleConfirm">ç¡® å®</el-button> </div> </span> </el-dialog> <!--å¯¼å ¥ç»ä»¶--> <import-picker ref="importPickerFunc" class="importPickerClass" :shows.sync="shows" :title="title_value" :colos="colos" :code="code" /> <import-picker ref="importPickerFunc" class="importPickerClass" :shows.sync="shows" :title="title_value" :colos="colos" :code="code" /> </div> </template> @@ -172,77 +316,41 @@ import { AddUpdateOrganization, DeleteOrganization, OrganizationSearch, PrentOrganization } from '@/api/jcsz' import { getCookie } from '@/utils/auth' import ImportPicker from '@/components/ImportPicker' import { validateCode } from '@/utils/global' import { MesOrderBitchAntiClosedSeave, MesOrderBitchClosedSearch, MesOrderBitchClosedSeave } from '@/api/scgl' const SER_HZ = /^[\u4e00-\u9fa5]+$/ export default { name: 'Zzjg', components: { Pagination, ImportPicker }, data() { const validateName = (rule, value, callback) => { if (!value) { return callback(new Error('请è¾å ¥ç¼ç ')) } else { if (SER_HZ.test(value)) { return callback(new Error('ç¼ç ä¸è½ä¸ºä¸æ')) } else { callback() } } } const validateTypeCode = (rule, value, callback) => { if (!value) { return callback(new Error('è¯·éæ©ä¸çº§')) } else { callback() } } return { mainHeight: 0, tableHeight: 0, form: { OrgCode: '', // ç»ç»æ¶æä»£ç OrgName: '', // ç»ç»æ¶æåç§° OrgType: '', // ç»ç»ç±»å UserName: '', // å建人å mesorderstus: '', // å·¥åç¶æ mesordercode: '', // å·¥åç¼å· sourceorder: '', // æºååå· ordertype: '', // åæ®ç±»å partcode: '', // 产åç¼ç partname: '', // 产ååç§° partspec: '', // 产åè§æ ¼ creatuser: '', // å建人å createdate: '', // å建æ¶é´ prop: 'lm_date', // æåºå段 order: 'desc', // æåºå段 page: 1, // 第å 页 rows: 20 // æ¯é¡µå¤å°æ¡ }, OrgTypeArr: [ { label: 'å·¥å', value: 'F' }, { label: 'é¨é¨', value: 'D' }, { label: '车é´', value: 'W' }, { label: 'ç§å®¤', value: 'K' }, { label: 'ç产线', value: 'L' } ordertypeArr: [// å·¥åç±»å { code: 'PO', name: 'æ åå·¥å' }, { code: 'FO', name: 'æ¥åºè¡¥å' } ], total: 10, tableData: [], dialogVisible: false, dialogForm: { OrgType: '', OrgCode: '', OrgName: '', SupUnit: ''// ä¸çº§åä½ }, operation: '', dialogFormRules: { OrgType: [ { required: true, message: '请è¾å ¥éæ©ç±»å', trigger: ['blur', 'change'] } ], OrgCode: [ { required: true, validator: validateName, trigger: ['blur', 'change'] } ], OrgName: [ { required: true, message: '请è¾å ¥åç§°', trigger: ['blur', 'change'] } ], SupUnit: [ { required: true, validator: validateTypeCode, trigger: ['blur', 'change'] } ] }, multipleSelection: [], title_value: 'æ°æ®å¯¼å ¥ / ç¹æ£é¨ä½', code: '4', @@ -253,20 +361,20 @@ watch: { shows() { if (!this.shows) { this.getOrganizationSearch() this.getMesOrderBitchClosedSearch() } } }, created() { this.getOrganizationSearch() this.getMesOrderBitchClosedSearch() }, mounted() { window.addEventListener('resize', this.getHeight) this.getHeight() }, methods: { async getOrganizationSearch() { const res = await OrganizationSearch(this.form) async getMesOrderBitchClosedSearch() { const res = await MesOrderBitchClosedSearch(this.form) this.tableData = res.data this.total = res.count }, @@ -281,11 +389,11 @@ } this.form.order = order this.form.prop = prop this.getOrganizationSearch() this.getMesOrderBitchClosedSearch() }, // æ¥è¯¢ search() { this.getOrganizationSearch() this.getMesOrderBitchClosedSearch() }, // å¯¼å ¥æé® upload() { @@ -297,88 +405,71 @@ }, // éç½® reset() { this.form.OrgCode = '' this.form.OrgName = '' this.form.OrgType = '' this.form.UserName = '' this.getOrganizationSearch() this.form.mesorderstus = '' this.form.mesordercode = '' this.form.sourceorder = '' this.form.ordertype = '' this.form.partcode = '' this.form.partname = '' this.form.partspec = '' this.form.creatuser = '' this.form.createdate = '' this.getMesOrderBitchClosedSearch() }, // æ°å¢æé® add(operation) { this.operation = operation this.dialogVisible = true handleSelectionChange(val) { this.multipleSelection = val }, // ä¿®æ¹æé® edit(operation, row) { this.operation = operation this.dialogVisible = true this.$nextTick(() => { this.dialogForm.OrgCode = row.org_code this.dialogForm.OrgName = row.org_name this.dialogForm.SupUnit = row.parent_id }) }, // å é¤æé® async del(row) { this.$confirm('æ¯å¦ç¡®è®¤å é¤?', 'æç¤º', { confirmButtonText: 'ç¡®å®', cancelButtonText: 'åæ¶', type: 'warning' }).then(() => { DeleteOrganization({ orgid: row.code }).then(res => { if (res.code === '200') { this.$message.success('å 餿å!') if (this.form.page > 1 && this.tableData.length === 1) { this.form.page-- } this.getOrganizationSearch() handleClose(val) { const data = [] if (val === 'close') { // 夿é»è¾:åæ ¼+ä¸è¯>=任塿°éæ¶ ä¸ç¶æä¸ä¸ºCLOSED this.multipleSelection.forEach(item => { if (item.status !== 'CLOSED' && parseFloat(item.good_qty) + parseFloat(item.ng_qty) + parseFloat(item.bad_qty) >= parseFloat(item.plan_qty)) { data.push({ wo_code: item.wo_code }) } }) }).catch(() => { this.$message.info('已忶å é¤') }) }, // å¯¹è¯æ¡å ³éäºä»¶ handleClose() { this.dialogForm.OrgType = '' this.dialogForm.OrgCode = '' this.dialogForm.OrgName = '' this.dialogForm.SupUnit = '' this.$refs.dialogForm.clearValidate() }, // å¯¹è¯æ¡åæ¶ dialogVisibleCancel() { this.dialogVisible = false }, // å¯¹è¯æ¡ç¡®è®¤ dialogVisibleConfirm() { this.$refs.dialogForm.validate(valid => { if (valid) { const data = { OrganCode: this.dialogForm.OrgCode, OrganName: this.dialogForm.OrgName, OperType: this.operation === 'add' ? 'Add' : 'Update', Operator: getCookie('admin') } AddUpdateOrganization(data).then(res => { this.$confirm('æ¯å¦ç¡®è®¤æ¹éå ³å?', 'æç¤º', { confirmButtonText: 'ç¡®å®', cancelButtonText: 'åæ¶', type: 'warning' }).then(() => { MesOrderBitchClosedSeave({ dt: data }).then(res => { if (res.code === '200') { this.$message.success(this.operation === 'add' ? 'æ·»å æåï¼' : 'ä¿®æ¹æåï¼') this.dialogVisible = false this.getOrganizationSearch() } else { this.$message.error(this.operation === 'add' ? 'æ·»å 失败ï¼' : 'ä¿®æ¹å¤±è´¥ï¼') this.$message.success('æ¹éå ³åæåï¼') this.$refs.multipleTable.clearSelection() } }) } }) }).catch(() => { this.$message.info('已忶æ¹éå ³åï¼') }) } else if (val === 'noClose') { this.multipleSelection.forEach(item => { if (item.status === 'CLOSED') { data.push({ wo_code: item.wo_code }) } }) this.$confirm('æ¯å¦ç¡®è®¤æ¹éåå ³å?', 'æç¤º', { confirmButtonText: 'ç¡®å®', cancelButtonText: 'åæ¶', type: 'warning' }).then(() => { MesOrderBitchAntiClosedSeave({ dt: data }).then(res => { if (res.code === '200') { this.$message.success('æ¹éåå ³åæåï¼') this.$refs.multipleTable.clearSelection() } }) }).catch(() => { this.$message.info('已忶æ¹éåå ³åï¼') }) } }, // è·å页é¢é«åº¦ getHeight() { this.$nextTick(() => { this.mainHeight = window.innerHeight - 85 this.tableHeight = this.mainHeight - 200 this.tableHeight = this.mainHeight - 240 }) }, tableRowClassName({ row, rowIndex }) { @@ -391,15 +482,17 @@ <!--å ¬å ±é¡µé¢æ ·å¼--> <style lang="scss" scoped> $main_color: #42b983; ::v-deep .el-button--text{ font-size: 14px ; cursor: pointer ; ::v-deep .el-button--text { font-size: 14px; cursor: pointer; } .el-icon-share ,.el-icon-delete,.el-icon-edit-outline{ .el-icon-share, .el-icon-delete, .el-icon-edit-outline { color: $main_color; cursor: pointer; } .el-icon-edit-outline{ .el-icon-edit-outline { margin-right: 15px; } @@ -460,8 +553,8 @@ background-color: #f8f8fa; } ::v-deep .el-table__body .el-table__row.hover-row td{ background-color: #eaecef ; ::v-deep .el-table__body .el-table__row.hover-row td { background-color: #eaecef; } ::v-deep .el-form--inline .el-form-item__label { @@ -482,7 +575,7 @@ margin-bottom: 0; } ::v-deep .el-select__caret{ ::v-deep .el-select__caret { display: flex; align-items: center; justify-content: center; src/views/scgl/scdd.vue
@@ -49,14 +49,13 @@ <el-form-item label="产ååç§°" style=" display: flex;"> <el-input v-model="form.partname" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> <el-form-item label="产åè§æ ¼" style=" display: flex;"> <el-form-item v-show="isExpandForm" label="产åè§æ ¼" style=" display: flex;"> <el-input v-model="form.partspec" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> <el-form-item label="å建人å" style=" display: flex;"> <el-form-item v-show="isExpandForm" label="å建人å" style=" display: flex;"> <el-input v-model="form.creatuser" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> <el-form-item label="é¢è®¡å¼å·¥æ¶é´" label-width="100px" style=" display: flex;font-size: 14px;margin-top: 3px"> <el-form-item v-show="isExpandForm" label="é¢è®¡å¼å·¥æ¶é´" label-width="100px" style=" line-height: 40px;;display: flex;font-size: 14px;"> <el-date-picker v-model="form.paystartdate" type="daterange" @@ -72,7 +71,7 @@ <!-- :picker-options="expireTimeOption"--> </el-form-item> <el-form-item label="é¢è®¡å®å·¥æ¶é´" label-width="100px" style=" display: flex;font-size: 14px;margin-top: 3px"> <el-form-item v-show="isExpandForm" label="é¢è®¡å®å·¥æ¶é´" label-width="100px" style=" display: flex;font-size: 14px;"> <el-date-picker v-model="form.payenddate" type="daterange" @@ -96,7 +95,7 @@ <!-- />--> </el-form-item> </div> <div style="min-height: 100px"> <div> <div style="display: flex;align-items: start;margin-top: 5px;z-index: 2;justify-content: end"> <el-button type="primary" icon="el-icon-search" @click="search">æ¥è¯¢</el-button> <el-button type="info" icon="el-icon-refresh" @click="reset">éç½®</el-button> @@ -133,13 +132,23 @@ </div> </el-form> </div> <div class="elTableDiv"> <div class="bodyTopFormExpand" @click="isExpandForm=!isExpandForm" > <i :class="!isExpandForm?'el-icon-arrow-down':'el-icon-arrow-up'" :style="{color:'#42B983'}" /></div> <div class="elTableDiv" style="margin-top: 0"> <el-table :data="tableData" :height="tableHeight+'px'" :height="isExpandForm?tableHeight:(tableHeight+40)+'px'" border :row-class-name="tableRowClassName" :style="{width: 100+'%',height:tableHeight+'px',}" :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}" highlight-current-row :header-cell-style="this.$headerCellStyle" :cell-style="this.$cellStyle" @@ -474,7 +483,8 @@ { required: true, message: '请è¾å ¥ä¸ååæ°', trigger: ['blur', 'change'] } ] } }, isExpandForm: false // expireTimeOption: { // disabledDate(time) { // return time.getTime() > Date.now() - 8.64e6 // å¦ææ²¡æåé¢ç-8.64e6å°±æ¯ä¸å¯ä»¥éæ©ä»å¤©ç @@ -713,7 +723,7 @@ getHeight() { this.$nextTick(() => { this.mainHeight = window.innerHeight - 85 this.tableHeight = this.mainHeight - 260 this.tableHeight = this.mainHeight - 250 this.isIpad = window.innerHeight < 769 && window.innerWidth < 1367 if (this.isIpad) { src/views/template.vue
@@ -172,32 +172,14 @@ import { AddUpdateOrganization, DeleteOrganization, OrganizationSearch, PrentOrganization } from '@/api/jcsz' import { getCookie } from '@/utils/auth' import ImportPicker from '@/components/ImportPicker' import { validateCode } from '@/utils/global' const SER_HZ = /^[\u4e00-\u9fa5]+$/ export default { name: 'Zzjg', components: { Pagination, ImportPicker }, data() { const validateName = (rule, value, callback) => { if (!value) { return callback(new Error('请è¾å ¥ç¼ç ')) } else { if (SER_HZ.test(value)) { return callback(new Error('ç¼ç ä¸è½ä¸ºä¸æ')) } else { callback() } } } const validateTypeCode = (rule, value, callback) => { if (!value) { return callback(new Error('è¯·éæ©ä¸çº§')) } else { callback() } } return { mainHeight: 0, tableHeight: 0, @@ -234,14 +216,12 @@ { required: true, message: '请è¾å ¥éæ©ç±»å', trigger: ['blur', 'change'] } ], OrgCode: [ { required: true, validator: validateName, trigger: ['blur', 'change'] } { required: true, validator: validateCode, trigger: ['blur', 'change'] } ], OrgName: [ { required: true, message: '请è¾å ¥åç§°', trigger: ['blur', 'change'] } ], SupUnit: [ { required: true, validator: validateTypeCode, trigger: ['blur', 'change'] } ] }, title_value: 'æ°æ®å¯¼å ¥ / ç¹æ£é¨ä½', src/views/wlgl/ckdy.vue
@@ -165,25 +165,14 @@ import { AddUpdateWareHouseDef, DeleteWareHouseDef, WareHouseDefSearch } from '@/api/wlgl' import { SeaveSearchWhareHouseLocation } from '@/api/ErpSyncMes' import ImportPicker from '@/components/ImportPicker' import { validateCode } from '@/utils/global' const SER_HZ = /^[\u4e00-\u9fa5]+$/ export default { name: 'CKDY', components: { Pagination, ImportPicker }, data() { const validateName = (rule, value, callback) => { if (!value) { return callback(new Error('请è¾å ¥ç¼ç ')) } else { if (SER_HZ.test(value)) { return callback(new Error('ç¼ç ä¸è½ä¸ºä¸æ')) } else { callback() } } } return { mainHeight: 0, tableHeight: 0, @@ -210,7 +199,7 @@ operation: '', dialogFormRules: { warehousecode: [ { required: true, validator: validateName, trigger: ['blur', 'change'] } { required: true, validator: validateCode, trigger: ['blur', 'change'] } ], warehousename: [ { required: true, message: '请è¾å ¥åç§°', trigger: ['blur', 'change'] } src/views/wlgl/kwdy.vue
@@ -192,25 +192,14 @@ <script> import Pagination from '@/components/Pagination' import { AddUpdateStorageDef, DeleteStorageDef, StorageDefSearch, WareHouseSelect } from '@/api/wlgl' import { validateCode } from '@/utils/global' const SER_HZ = /^[\u4e00-\u9fa5]+$/ export default { name: 'KWDY', components: { Pagination }, data() { const validateName = (rule, value, callback) => { if (!value) { return callback(new Error('请è¾å ¥ç¼ç ')) } else { if (SER_HZ.test(value)) { return callback(new Error('ç¼ç ä¸è½ä¸ºä¸æ')) } else { callback() } } } return { mainHeight: 0, tableHeight: 0, @@ -241,7 +230,7 @@ operation: '', dialogFormRules: { storagecode: [ { required: true, validator: validateName, trigger: ['blur', 'change'] } { required: true, validator: validateCode, trigger: ['blur', 'change'] } ], storagename: [ { required: true, message: '请è¾å ¥åç§°', trigger: ['blur', 'change'] } src/views/xtsz/cjgg.vue
@@ -240,31 +240,12 @@ import { SystemAnnouncementAddUpdate, SystemAnnouncementDelete, SystemAnnouncementSearch } from '@/api/xtsz' import { ShopSearch } from '@/api/dzkb' const SER_HZ = /^[\u4e00-\u9fa5]+$/ export default { name: 'Zzjg', components: { Pagination, ImportPicker }, data() { const validateName = (rule, value, callback) => { if (!value) { return callback(new Error('请è¾å ¥ç¼ç ')) } else { if (SER_HZ.test(value)) { return callback(new Error('ç¼ç ä¸è½ä¸ºä¸æ')) } else { callback() } } } const validateTypeCode = (rule, value, callback) => { if (!value) { return callback(new Error('è¯·éæ©ä¸çº§')) } else { callback() } } return { mainHeight: 0, tableHeight: 0, src/views/zlgl/gxjybz.vue
@@ -268,32 +268,14 @@ StepCheckItemSelect, StepCheckStanedSearch } from '@/api/zlgl' import { validateCode } from '@/utils/global' const SER_HZ = /^[\u4e00-\u9fa5]+$/ export default { name: 'ZJBZ', components: { Pagination }, data() { const validateName = (rule, value, callback) => { if (!value) { return callback(new Error('请è¾å ¥ç¼ç ')) } else { if (SER_HZ.test(value)) { return callback(new Error('ç¼ç ä¸è½ä¸ºä¸æ')) } else { callback() } } } const validateTypeCode = (rule, value, callback) => { if (!value) { return callback(new Error('è¯·éæ©ä¸çº§')) } else { callback() } } return { isIpad: false, mainHeight: 0, @@ -319,7 +301,7 @@ operation: '', dialogFormRules: { code: [ { required: true, validator: validateName, trigger: ['blur', 'change'] } { required: true, validator: validateCode, trigger: ['blur', 'change'] } ], name: [ { required: true, message: '请è¾å ¥åç§°', trigger: ['blur', 'change'] } src/views/zlgl/gxjyjl.vue
@@ -31,10 +31,10 @@ <el-form-item label="å·¥åºåç§°" style=" display: flex;"> <el-input v-model="form.stepname" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item label="æ ååç§°" style=" display: flex;"> <el-form-item v-show="isExpandForm" label="æ ååç§°" style=" display: flex;"> <el-input v-model="form.standname" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item label="æ£éªç±»å" style=" display: flex;"> <el-form-item v-show="isExpandForm" label="æ£éªç±»å" style=" display: flex;"> <el-select v-model="form.checktype" style="width: 200px" placeholder="è¯·éæ©"> <el-option v-for="item in checktypeArr" @@ -44,7 +44,7 @@ /> </el-select> </el-form-item> <el-form-item label="æ£éªç»æ" style=" display: flex;"> <el-form-item v-show="isExpandForm" label="æ£éªç»æ" style=" display: flex;"> <el-select v-model="form.checkresult " style="width: 200px" placeholder="è¯·éæ©"> <el-option v-for="item in checkresultArr" @@ -54,7 +54,6 @@ /> </el-select> </el-form-item> </div> <div style="display: flex;align-items: start;margin-top: 5px;z-index: 2"> <el-button type="primary" icon="el-icon-search" @click="search">æ¥è¯¢</el-button> @@ -62,14 +61,21 @@ </div> </el-form> </div> <div class="elTableDiv"> <div class="bodyTopFormExpand" @click="isExpandForm=!isExpandForm" > <i :class="!isExpandForm?'el-icon-arrow-down':'el-icon-arrow-up'" :style="{color:'#42B983'}" /></div> <div class="elTableDiv" style="margin-top: 0"> <el-table :data="tableData" :height="tableHeight+'px'" :height="isExpandForm?tableHeight:(tableHeight+40)+'px'" border :row-class-name="tableRowClassName" :style="{width: 100+'%',height:tableHeight+'px',}" :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px'}" highlight-current-row :header-cell-style="this.$headerCellStyle" :cell-style="this.$cellStyle" @@ -341,25 +347,8 @@ Pagination, ImportPicker }, data() { const validateName = (rule, value, callback) => { if (!value) { return callback(new Error('请è¾å ¥ç¼ç ')) } else { if (SER_HZ.test(value)) { return callback(new Error('ç¼ç ä¸è½ä¸ºä¸æ')) } else { callback() } } } const validateTypeCode = (rule, value, callback) => { if (!value) { return callback(new Error('è¯·éæ©ä¸çº§')) } else { callback() } } return { isExpandForm: false, mainHeight: 0, tableHeight: 0, form: { @@ -536,7 +525,7 @@ getHeight() { this.$nextTick(() => { this.mainHeight = window.innerHeight - 85 this.tableHeight = this.mainHeight - 240 this.tableHeight = this.mainHeight - 250 }) }, tableRowClassName({ row, rowIndex }) { src/views/zlgl/gxjyxm.vue
@@ -146,25 +146,14 @@ <script> import Pagination from '@/components/Pagination' import { AddUpdateStepCheckItem, DeleteStepCheckItem, StepCheckItemSearch } from '@/api/zlgl' import { validateCode } from '@/utils/global' const SER_HZ = /^[\u4e00-\u9fa5]+$/ export default { name: 'Xxxx', components: { Pagination }, data() { const validateName = (rule, value, callback) => { if (!value) { return callback(new Error('请è¾å ¥ç¼ç ')) } else { if (SER_HZ.test(value)) { return callback(new Error('ç¼ç ä¸è½ä¸ºä¸æ')) } else { callback() } } } return { mainHeight: 0, tableHeight: 0, @@ -188,7 +177,7 @@ operation: '', dialogFormRules: { checkitemcode: [ { required: true, validator: validateName, trigger: ['blur', 'change'] } { required: true, validator: validateCode, trigger: ['blur', 'change'] } ], checkitemname: [ { required: true, message: '请è¾å ¥åç§°', trigger: ['blur', 'change'] } src/views/zlgl/qxdy.vue
@@ -153,25 +153,14 @@ import Pagination from '@/components/Pagination' import { AddUpdateDedect, DedectSearch, DeleteDedect } from '@/api/zlgl' import ImportPicker from '@/components/ImportPicker' import { validateCode } from '@/utils/global' const SER_HZ = /^[\u4e00-\u9fa5]+$/ export default { name: 'QXDY', components: { Pagination, ImportPicker }, data() { const validateName = (rule, value, callback) => { if (!value) { return callback(new Error('请è¾å ¥ç¼ºé·ä»£ç ')) } else { if (SER_HZ.test(value)) { return callback(new Error('代ç ä¸è½ä¸ºä¸æ')) } else { callback() } } } return { mainHeight: 0, tableHeight: 0, @@ -195,7 +184,7 @@ operation: '', dialogFormRules: { defectcode: [ { required: true, validator: validateName, trigger: ['blur', 'change'] } { required: true, validator: validateCode, trigger: ['blur', 'change'] } ], defectname: [ { required: true, message: '请è¾å ¥ç¼ºé·åç§°', trigger: ['blur', 'change'] } src/views/zzmx/chda.vue
@@ -608,25 +608,14 @@ } from '@/api/zzmx' import $ from 'jquery' import { SeaveSearchInventory, SeaveSearchInventoryClass, SeaveSearchUnit } from '@/api/ErpSyncMes' import { validateCode } from '@/utils/global' const SER_HZ = /^[\u4e00-\u9fa5]+$/ export default { name: 'CHDA', components: { Pagination }, data() { const validateName = (rule, value, callback) => { if (!value) { return callback(new Error('请è¾å ¥ç©æç¼ç ')) } else { if (SER_HZ.test(value)) { return callback(new Error('ç¼ç ä¸è½ä¸ºä¸æ')) } else { callback() } } } return { isIpad: false, mainHeight: 0, @@ -668,7 +657,7 @@ operation: '', dialogFormRules: { materialcode: [ { required: true, validator: validateName, trigger: ['blur', 'change'] } { required: true, validator: validateCode, trigger: ['blur', 'change'] } ], materialname: [ { required: true, message: '请è¾å ¥ç©æåç§°', trigger: ['blur', 'change'] } src/views/zzmx/gxdy.vue
@@ -406,25 +406,14 @@ StepSearch } from '@/api/zzmx' import $ from 'jquery' import { validateCode } from '@/utils/global' const SER_HZ = /^[\u4e00-\u9fa5]+$/ export default { name: 'GXDY', components: { Pagination }, data() { const validateName = (rule, value, callback) => { if (!value) { return callback(new Error('请è¾å ¥ç¼ç ')) } else { if (SER_HZ.test(value)) { return callback(new Error('ç¼ç ä¸è½ä¸ºä¸æ')) } else { callback() } } } return { isIpad: false, mainHeight: 0, @@ -464,7 +453,7 @@ operation: '', dialogFormRules: { stepcode: [ { required: true, validator: validateName, trigger: ['blur', 'change'] } { required: true, validator: validateCode, trigger: ['blur', 'change'] } ], stepname: [ { required: true, message: '请è¾å ¥åç§°', trigger: ['blur', 'change'] } src/views/zzmx/gylx.vue
@@ -285,25 +285,14 @@ <script> import Pagination from '@/components/Pagination' import { AddUpdateRoute, DeleteRoute, RouteSearch, StepSelect, ViewRoute } from '@/api/zzmx' import { validateCode } from '@/utils/global' const SER_HZ = /^[\u4e00-\u9fa5]+$/ export default { name: 'GYLX', components: { Pagination }, data() { const validateName = (rule, value, callback) => { if (!value) { return callback(new Error('请è¾å ¥ç¼ç ')) } else { if (SER_HZ.test(value)) { return callback(new Error('ç¼ç ä¸è½ä¸ºä¸æ')) } else { callback() } } } return { isIpad: false, mainHeight: 0, @@ -349,7 +338,7 @@ operation: '', dialogFormRules: { code: [ { required: true, validator: validateName, trigger: ['blur', 'change'] } { required: true, validator: validateCode, trigger: ['blur', 'change'] } ], name: [ { required: true, message: '请è¾å ¥åç§°', trigger: ['blur', 'change'] } src/views/zzmx/jpgj.vue
@@ -2,9 +2,9 @@ <div> <div class="body" :style="{height:mainHeight+'px'}"> <div class="bodyTopButtonGroup"> <div class="bodyTopButtonGroup" style="justify-content: space-between"> <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">æ°å¢</el-button> <!-- <el-button type="primary" icon="el-icon-upload2" @click="upload">å¯¼å ¥</el-button>--> <el-button icon="el-icon-download" @click="upload">å¯¼å ¥</el-button> </div> <div class="bodyTopFormGroup"> @@ -453,6 +453,16 @@ </div> </span> </el-dialog> <!--å¯¼å ¥ç»ä»¶--> <import-picker ref="importPickerFunc" class="importPickerClass" :shows.sync="shows" :title="title_value" :colos="colos" :code="code" /> </div> </template> @@ -466,32 +476,14 @@ StepSelectEqp, StepSelectEqpList } from '@/api/zzmx' import ImportPicker from '@/components/ImportPicker' const SER_HZ = /^[\u4e00-\u9fa5]+$/ export default { name: 'JPGJ', components: { Pagination Pagination, ImportPicker }, data() { const validateName = (rule, value, callback) => { if (!value) { return callback(new Error('请è¾å ¥ç¼ç ')) } else { if (SER_HZ.test(value)) { return callback(new Error('ç¼ç ä¸è½ä¸ºä¸æ')) } else { callback() } } } const validateTypeCode = (rule, value, callback) => { if (!value) { return callback(new Error('è¯·éæ©ä¸çº§')) } else { callback() } } return { isIpad: false, mainHeight: 0, @@ -543,21 +535,18 @@ editRouteName: '', // ç¼è¾æ¶å·¥èºè·¯çº¿åç§° editStepName: '', // ç¼è¾æ¶å 工工åºåç§° operation: '', dialogFormRules: { OrgType: [ { required: true, message: '请è¾å ¥éæ©ç±»å', trigger: ['blur', 'change'] } ], OrgCode: [ { required: true, validator: validateName, trigger: ['blur', 'change'] } ], OrgName: [ { required: true, message: '请è¾å ¥åç§°', trigger: ['blur', 'change'] } ], SupUnit: [ { required: true, validator: validateTypeCode, trigger: ['blur', 'change'] } ] } dialogFormRules: {}, title_value: 'æ°æ®å¯¼å ¥ / èæå·¥ä»·', code: '24', shows: false } }, watch: { shows() { if (!this.shows) { this.getBeatRateSearch() } } }, created() { @@ -863,6 +852,14 @@ // } // }) // }, // å¯¼å ¥æé® upload() { this.shows = true this.$refs.importPickerFunc.newDataFunc() }, colos() { this.shows = false }, // è·å页é¢é«åº¦ getHeight() { this.$nextTick(() => {