| | |
| | | "crypto-js": "^3.1.9-1", |
| | | "echarts": "^4.9.0", |
| | | "element-china-area-data": "^5.0.1", |
| | | "element-ui": "2.12.1", |
| | | "gojs": "2.1.371", |
| | | "element-ui": "2.12.0", |
| | | "gojs": "2.1.0", |
| | | "js-cookie": "^2.2.0", |
| | | "less-loader": "^6.0.0", |
| | | "monaco-editor": "^0.27.0", |
| | |
| | | <template> |
| | | <div id="app"> |
| | | <router-view/> |
| | | <router-view /> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | }, |
| | | computed: {}, |
| | | watch: {}, |
| | | created() { |
| | | }, |
| | | created() {}, |
| | | methods: {} |
| | | } |
| | | </script> |
| | | <style lang="scss"> |
| | | #app { |
| | | width: 100%; |
| | | height: 100%; |
| | | overflow: hidden; |
| | | } |
| | | #app { |
| | | width: 100%; |
| | | height: 100%; |
| | | overflow: hidden; |
| | | } |
| | | /* å
¨å±æ¨¡ææ¡æ ·å¼ */ |
| | | .el-dialog__header,.el-message-box__header { |
| | | box-sizing: border-box; |
| | | height: 56px; |
| | | border-bottom: 1px solid rgb(238, 238, 238); |
| | | padding: 0px; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | .el-dialog__header::before { |
| | | content: ""; |
| | | display: inline-block; |
| | | width: 4px; |
| | | height: 30.24px; |
| | | background: #875a7b; |
| | | border-radius: 10px; |
| | | margin-left: 32px; |
| | | margin-right: 8.5px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /* |
| | | * Copyright (c) 2018-2025, ztt All rights reserved. |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions are met: |
| | | * |
| | | * Redistributions of source code must retain the above copyright notice, |
| | | * this list of conditions and the following disclaimer. |
| | | * Redistributions in binary form must reproduce the above copyright |
| | | * notice, this list of conditions and the following disclaimer in the |
| | | * documentation and/or other materials provided with the distribution. |
| | | * Neither the name of the pig4cloud.com developer nor the names of its |
| | | * contributors may be used to endorse or promote products derived from |
| | | * this software without specific prior written permission. |
| | | * Author: ztt |
| | | */ |
| | | |
| | | import request from '@/router/axios' |
| | | |
| | | export function getList(query) { |
| | | return request({ |
| | | url: '/mes/customerOrderStaff/show', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | export function chooseStaff(query) { |
| | | return request({ |
| | | url: '/mes/customerOrderStaff/chooseStaff', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | export function addObj(obj) { |
| | | return request({ |
| | | url: '/mes/customerOrderStaff/add', |
| | | method: 'post', |
| | | data: obj |
| | | }) |
| | | } |
| | | |
| | | export function delObj(obj) { |
| | | return request({ |
| | | url: '/mes/customerOrderStaff/'+obj, |
| | | method: 'delete', |
| | | }) |
| | | } |
| | |
| | | export function syncPart(query) { |
| | | return request({ |
| | | url: '/mes/part/syncPart', |
| | | method: 'post', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | |
| | | }) |
| | | } |
| | | |
| | | export function updateCustomerOrderById(obj) { |
| | | return request({ |
| | | url: '/mes/plan/customerOrder/updateById', |
| | | method: 'put', |
| | | data: obj |
| | | }) |
| | | } |
| | | |
| | | // å建主ç产计åéæ± |
| | | export function createMpsRequirements(obj) { |
| | | return request({ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /* |
| | | * Copyright (c) 2018-2025, ztt All rights reserved. |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions are met: |
| | | * |
| | | * Redistributions of source code must retain the above copyright notice, |
| | | * this list of conditions and the following disclaimer. |
| | | * Redistributions in binary form must reproduce the above copyright |
| | | * notice, this list of conditions and the following disclaimer in the |
| | | * documentation and/or other materials provided with the distribution. |
| | | * Neither the name of the pig4cloud.com developer nor the names of its |
| | | * contributors may be used to endorse or promote products derived from |
| | | * this software without specific prior written permission. |
| | | * Author: ztt |
| | | */ |
| | | export const tableOption = { |
| | | border: true, |
| | | index: true, |
| | | indexLabel: 'åºå·', |
| | | stripe: true, |
| | | menuAlign: 'center', |
| | | searchMenuSpan: 6, |
| | | editBtn: false, |
| | | delBtn: false, |
| | | align: 'center', |
| | | addBtn: false, |
| | | viewBtn: false, |
| | | column: [{ |
| | | label: 'ç¨æ·', |
| | | prop: 'staffName', |
| | | type: 'select', |
| | | span: 24, |
| | | }, { |
| | | label: 'å
³é®å', |
| | | prop: 'type', |
| | | span: 24, |
| | | }] |
| | | } |
| | |
| | | rules: [{ |
| | | required: true, |
| | | message: 'è¯·éæ©è§è²', |
| | | trigger: 'blur' |
| | | trigger: 'change' |
| | | }] |
| | | }, { |
| | | label: 'ç¶æ', |
| | |
| | | rules: [{ |
| | | required: true, |
| | | message: 'è¯·éæ©ç¶æ', |
| | | trigger: 'blur' |
| | | trigger: 'change' |
| | | }], |
| | | dicData: [{ |
| | | label: 'ææ', |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /* |
| | | * Copyright (c) 2018-2025, ztt All rights reserved. |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions are met: |
| | | * |
| | | * Redistributions of source code must retain the above copyright notice, |
| | | * this list of conditions and the following disclaimer. |
| | | * Redistributions in binary form must reproduce the above copyright |
| | | * notice, this list of conditions and the following disclaimer in the |
| | | * documentation and/or other materials provided with the distribution. |
| | | * Neither the name of the pig4cloud.com developer nor the names of its |
| | | * contributors may be used to endorse or promote products derived from |
| | | * this software without specific prior written permission. |
| | | * Author: ztt |
| | | */ |
| | | export const tableOption = { |
| | | border: true, |
| | | index: true, |
| | | height: '292px', |
| | | indexLabel: 'åºå·', |
| | | menuAlign: 'center', |
| | | menuWidth: 100, |
| | | editBtn: false, |
| | | delBtn: false, |
| | | align: 'center', |
| | | addBtn: false, |
| | | addRowBtn: true, |
| | | refreshBtn: false, // æ¯å¦æ¾ç¤ºå·æ°æé® |
| | | columnBtn: false, // æ¯å¦æ¾ç¤ºæ¾å½±æé®H |
| | | column: [{ |
| | | label: 'é¶ä»¶å·', |
| | | slot: true, |
| | | formSlot: true, |
| | | cell: true, |
| | | prop: 'partNo', |
| | | minWidth: 200, |
| | | span: 24 |
| | | }, { |
| | | label: 'é¶ä»¶è§æ ¼', |
| | | prop: 'customerPartSpec', |
| | | type: 'input', |
| | | cell: true, |
| | | minWidth: 200, |
| | | span: 24 |
| | | }, { |
| | | label: 'å¶é 屿§', |
| | | prop: 'manufactureAttr', |
| | | cell: true, |
| | | type: 'select', |
| | | minWidth: 200, |
| | | span: 24, |
| | | dicData:[{ |
| | | label: 'æ®é', |
| | | value: 'N' |
| | | },{ |
| | | label: 'æ ·å', |
| | | value: 'S' |
| | | },{ |
| | | label: 'ç å', |
| | | value: 'D' |
| | | }] |
| | | }, { |
| | | label: '产ååç§°', |
| | | prop: 'productName', |
| | | cell: true, |
| | | type: 'input', |
| | | minWidth: 200, |
| | | span: 24 |
| | | }, { |
| | | label: 'é¶å±åç', |
| | | prop: 'productType', |
| | | cell: true, |
| | | type: 'input', |
| | | minWidth: 200, |
| | | span: 24 |
| | | }, { |
| | | label: 'åä½', |
| | | prop: 'otcUnit', |
| | | slot: true, |
| | | formSlot: true, |
| | | cell: true, |
| | | type: 'input', |
| | | minWidth: 200, |
| | | span: 24 |
| | | }, { |
| | | label: 'æ°é', |
| | | prop: 'buyQtyDue', |
| | | cell: true, |
| | | type: 'input', |
| | | dataType: 'number', |
| | | minWidth: 200, |
| | | span: 24, |
| | | rules:[{message:'ç±»åå¿
é¡»æ¯æ°å',trigger:'blur'}] |
| | | }, { |
| | | label: 'æ¶è´§å°å', |
| | | prop: 'shippingAddress', |
| | | cell: true, |
| | | type: 'input', |
| | | minWidth: 200, |
| | | span: 24 |
| | | }, { |
| | | label: '产å夿³¨', |
| | | prop: 'remark', |
| | | cell: true, |
| | | type: 'textarea', |
| | | minWidth: 200, |
| | | span: 24, |
| | | minRows: 1, |
| | | maxRows: 3 |
| | | }, ] |
| | | } |
| | |
| | | <template> |
| | | <div :class="{ 'avue--collapse': isCollapse }" class="avue-contail"> |
| | | <div class="avue-header"> |
| | | <div class="avue-header" style="background-color: #875a7b;"> |
| | | <!-- é¡¶é¨å¯¼èªæ --> |
| | | <top /> |
| | | </div> |
| | |
| | | <div class="avue-logo"> |
| | | <transition-group name="fade"> |
| | | <template v-if="!keyCollapse"> |
| | | <!--<span |
| | | key="1" |
| | | <span |
| | | key="1" style="background-color:#875a7b;font-weight: bold;" |
| | | class="avue-logo_title" @click="goIndex"><span |
| | | class="logo-lg">{{sysTitle&&sysTitle!='null'?sysTitle:'ASUN-MES'}}</span></span>--> |
| | | class="logo-lg">{{sysTitle&&sysTitle!='null'?sysTitle:'MES'}}</span></span> |
| | | <!--<span key="1" class="avue-logo_title" @click="goIndex"> |
| | | <el-image |
| | | style="width: 220px;" |
| | | src="/images/Sun-Mes-Logo-Normal.png" |
| | | /></span>--> |
| | | <div key="1" style="width:220px;height:60px;background-color:white;position: relative;"> |
| | | <el-image |
| | | <div key="2" style="width:220px;height:60px;background-color:#875a7b;position: relative;"> |
| | | <!-- <el-image |
| | | v-if="logSrc != null" |
| | | style="width:200px;position: absolute;" |
| | | class="left-logo-image" |
| | | :src="logSrc" |
| | | /> |
| | | /> --> |
| | | <!--<el-image |
| | | v-else |
| | | style="width: 220px;position: absolute;" |
| | |
| | | name: 'Logo', |
| | | data() { |
| | | return { |
| | | sysTitle: 'ASUN-MES', |
| | | sysTitle: 'MES', |
| | | logSrc: '/img/logo1.png', |
| | | iconNameCn: '', |
| | | iconNameEn: '' |
| | |
| | | <template> |
| | | <div class="avue-sidebar"> |
| | | <logo/> |
| | | <logo /> |
| | | <el-scrollbar style="height:100%"> |
| | | <div |
| | | v-if="validatenull(menu)" |
| | | class="avue-sidebar--tip">没æåç°èå</div> |
| | | <el-menu |
| | | :default-active="nowTagValue" |
| | | :show-timeout="200" |
| | | :collapse="keyCollapse" |
| | | unique-opened |
| | | mode="vertical"> |
| | | <sidebar-item |
| | | :menu="menu" |
| | | :screen="screen" |
| | | :props="website.menu.props" |
| | | :collapse="keyCollapse" |
| | | first/> |
| | | <div v-if="validatenull(menu)" class="avue-sidebar--tip">没æåç°èå</div> |
| | | <el-menu :default-active="nowTagValue" :show-timeout="200" :collapse="keyCollapse" unique-opened mode="vertical"> |
| | | <sidebar-item :menu="menu" :screen="screen" :props="website.menu.props" :collapse="keyCollapse" first /> |
| | | </el-menu> |
| | | </el-scrollbar> |
| | | </div> |
| | |
| | | }, |
| | | computed: { |
| | | ...mapGetters(['website', 'menu', 'tag', 'keyCollapse', 'screen']), |
| | | nowTagValue: function() { |
| | | nowTagValue: function () { |
| | | return this.$router.$avueRouter.getValue(this.$route) |
| | | } |
| | | } |
| | |
| | | <template> |
| | | <div |
| | | <div style="background-color: #875a7b;" |
| | | v-if="showTag" |
| | | @click="contextmenuFlag=false" |
| | | class="avue-tags"> |
| | |
| | | </div> |
| | | <div class="top-bar__right"> |
| | | |
| | | <el-tooltip |
| | | <!-- <el-tooltip |
| | | v-if="showLock" |
| | | effect="dark" |
| | | content="主é¢è®¾ç½®" |
| | |
| | | <div class="top-bar__item"> |
| | | <top-theme></top-theme> |
| | | </div> |
| | | </el-tooltip> |
| | | </el-tooltip> --> |
| | | <el-tooltip |
| | | v-if="showLock" |
| | | effect="dark" |
| | |
| | | id="myiframe" |
| | | >ä½ çæµè§å¨ä¸æ¯æè¯¥iframeæ ç¾</iframe |
| | | >--> |
| | | <el-image :src="url" style="width:100%;height:100%;"></el-image> |
| | | <!-- <el-image :src="url" style="width:100%;height:100%;"></el-image> --> |
| | | <el-row style="width: 100%; height: 100%;background-color: white;"> |
| | | <span>ææªå¼åãããããã</span> |
| | | </el-row> |
| | | </div> |
| | | </template> |
| | | <style scoped="scoped" lang="scss"> |
| | |
| | | year = (year + '').substring(2, 4) |
| | | return year + month |
| | | } |
| | | |
| | | /** |
| | | * è·åå¹´ææ¥ |
| | | */ |
| | | export function getYearAndMonthAndDays() { |
| | | const date = new Date() |
| | | let year = date.getFullYear() |
| | | let month = date.getMonth() + 1 |
| | | if (month < 10) { |
| | | month = '0' + month |
| | | } else { |
| | | month = month + '-' |
| | | } |
| | | year = year + '-' |
| | | let days = date.getDate() |
| | | return year + month + days |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <!-- |
| | | - Copyright (c) 2018-2025, ztt All rights reserved. |
| | | - |
| | | - Redistribution and use in source and binary forms, with or without |
| | | - modification, are permitted provided that the following conditions are met: |
| | | - |
| | | - Redistributions of source code must retain the above copyright notice, |
| | | - this list of conditions and the following disclaimer. |
| | | - Redistributions in binary form must reproduce the above copyright |
| | | - notice, this list of conditions and the following disclaimer in the |
| | | - documentation and/or other materials provided with the distribution. |
| | | - Neither the name of the pig4cloud.com developer nor the names of its |
| | | - contributors may be used to endorse or promote products derived from |
| | | - this software without specific prior written permission. |
| | | - Author: ztt |
| | | --> |
| | | |
| | | <template> |
| | | <div class="app-container calendar-list-container"> |
| | | <basic-container> |
| | | <avue-crud |
| | | ref="crud" |
| | | :option="tableOption" |
| | | :data="list" |
| | | :page="page" |
| | | v-model="form" |
| | | :table-loading="listLoading" |
| | | @on-load="getList" |
| | | @search-change="searchChange" |
| | | @refresh-change="refreshChange" |
| | | @size-change="sizeChange" |
| | | @current-change="currentChange"> |
| | | <template slot="staffName" slot-scope="scope">{{ scope.row.staffName }}</template> |
| | | <template slot="type" slot-scope="scope">{{ scope.row.type }}</template> |
| | | <template slot="menuLeft"> |
| | | <el-button |
| | | v-if="prodManager_btn_add" |
| | | class="filter-item" |
| | | type="primary" |
| | | icon="el-icon-plus" |
| | | @click="dialogAddVisible=true">æ·»å </el-button> |
| | | </template> |
| | | <template slot="menu" slot-scope="scope"> |
| | | <el-button |
| | | v-if="prodManager_btn_del" |
| | | type="text" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | @click="handleDelete(scope.row,scope.index)">å é¤ |
| | | </el-button> |
| | | </template> |
| | | </avue-crud> |
| | | </basic-container> |
| | | <el-dialog :visible.sync="dialogAddVisible" :close-on-click-modal="false" title="æ°å¢é
ç½®"> |
| | | <el-form :model="prodForm" :rules="rules" ref="addDialog"> |
| | | <el-form-item prop="staffName" label="ç¨æ·åç§°:" label-width="90px"> |
| | | <el-select style="width:100%" v-model="prodForm.staffName"> |
| | | <el-option v-for="(item,index) in staffNamesOptions" :key="index" :value="item.id" :label="item.staffName"/> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item prop="type" label="å
³é®å:" label-width="90px"> |
| | | <el-input style="width:100%" v-model="prodForm.type" placeholder="请è¾å
¥é¶å±åçå
³é®å"/> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" |
| | | class="dialog-footer"> |
| | | <el-button type="primary" size="small" @click="createConfirm">确 认</el-button> |
| | | <el-button type="default" size="small" @click="reset">åæ¶</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { tableOption } from '@/const/crud/admin/productType' |
| | | import { getList,addObj,delObj,chooseStaff } from '@/api/admin/productType' |
| | | import { mapGetters } from 'vuex' |
| | | |
| | | export default { |
| | | name: 'TableProduct', |
| | | data() { |
| | | return { |
| | | dialogAddVisible: false, |
| | | prodForm: { |
| | | staffName: '', |
| | | type: '' |
| | | }, |
| | | rules: { |
| | | staffName:[{ required:true,message:"ç¨æ·åä¸è½ä¸ºç©º", trigger: 'change' }], |
| | | type:[{required:true,message:"产åç±»åå
³é®åä¸è½ä¸ºç©º", trigger: 'blur'}] |
| | | }, |
| | | staffNamesOptions: [], |
| | | tableOption: tableOption, |
| | | page: { |
| | | total: 0, // æ»é¡µæ° |
| | | currentPage: 1, // å½åé¡µæ° |
| | | pageSize: 20 // æ¯é¡µæ¾ç¤ºå¤å°æ¡ |
| | | }, |
| | | list: [], |
| | | listLoading: false, |
| | | form: {}, |
| | | prodManager_btn_add: false, |
| | | prodManager_btn_del: false, |
| | | } |
| | | }, |
| | | created() { |
| | | this.prodManager_btn_add = this.permissions['sys_prod_add'] |
| | | this.prodManager_btn_del = this.permissions['sys_prod_del'] |
| | | this.getStaffList() |
| | | }, |
| | | computed: { |
| | | ...mapGetters(['elements', 'permissions']) |
| | | }, |
| | | methods: { |
| | | getStaffList(){ |
| | | chooseStaff(Object.assign({})).then(response => { |
| | | this.staffNamesOptions = response.data.data |
| | | }) |
| | | }, |
| | | getList(page, params) { |
| | | this.listLoading = true |
| | | getList(Object.assign({ |
| | | current: page.currentPage, |
| | | size: page.pageSize |
| | | }, params, this.searchForm)).then(response => { |
| | | this.list = response.data.data |
| | | this.page.total = response.data.data.total |
| | | this.listLoading = false |
| | | }).catch(() => { |
| | | this.listLoading = false |
| | | }) |
| | | }, |
| | | refreshChange() { |
| | | this.getList(this.page) |
| | | }, |
| | | searchChange(form, done) { |
| | | this.searchForm = form |
| | | this.page.currentPage = 1 |
| | | this.getList(this.page, form) |
| | | done() |
| | | }, |
| | | sizeChange(pageSize){ |
| | | this.page.pageSize = pageSize |
| | | }, |
| | | currentChange(current){ |
| | | this.page.currentPage = current |
| | | }, |
| | | handleCreate() { |
| | | this.$refs.crud.rowAdd() |
| | | }, |
| | | createConfirm(){ |
| | | this.$refs['addDialog'].validate(val=>{ |
| | | if(val){ |
| | | addObj({ |
| | | staffId: this.prodForm.staffName, |
| | | productType: this.prodForm.type |
| | | }).then(response => { |
| | | this.dialogAddVisible = false |
| | | this.$message.success("æ·»å æå") |
| | | this.refreshChange() |
| | | }).catch(() => { |
| | | this.$message.error("æ·»å 失败") |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | reset(){ |
| | | this.dialogAddVisible =false; |
| | | this.$refs['addDialog'].resetFields() |
| | | }, |
| | | handleDelete(row, index) { |
| | | this.$confirm('æ¯å¦ç¡®è®¤å é¤å称为"' + row.staffName + '"' + '"çæ°æ®é¡¹?', 'è¦å', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | closeOnClickModal:false, |
| | | type: 'warning' |
| | | }).then(function() { |
| | | return delObj(row.id) |
| | | }).then(() => { |
| | | this.getList(this.page) |
| | | this.$notify.success('å 餿å') |
| | | }) |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .el-dialog__wrapper { |
| | | .el-dialog { |
| | | width: 61% !important; |
| | | .dialog-main-tree { |
| | | max-height: 400px; |
| | | overflow-y: auto; |
| | | } |
| | | } |
| | | .el-form-item__label { |
| | | width: 100px !important; |
| | | padding-right: 20px; |
| | | } |
| | | .el-form-item__content { |
| | | margin-left: 200px !important; |
| | | } |
| | | } |
| | | </style> |
| | | |
| | |
| | | :printLabelInfo="printLabelInfo" |
| | | /> |
| | | </basic-container> |
| | | <el-dialog title="éæ©åæ¥æ¥æ" :visible.sync="syncDateVisible" width="21%"> |
| | | <div style="display: flex;justify-content: center"> |
| | | <el-form |
| | | :model="dataForm" |
| | | :inline="true" |
| | | :rules="dataRule" |
| | | ref="dataForm" |
| | | class="l-mes" |
| | | > |
| | | <el-form-item label="æ¥æ" prop="selectTime"> |
| | | <el-date-picker |
| | | v-model="dataForm.selectTime" |
| | | type="datetime" |
| | | placeholder="éæ©æ¥ææ¶é´" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="syncDateVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="syncIfs">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { fetchList, delObj, syncIfs, syncPart } from '@/api/basic/part' |
| | | import { fetchList, delObj, syncPart } from '@/api/basic/part' |
| | | import TableForm from './part-form' |
| | | import { mapGetters } from 'vuex' |
| | | import ttable from '@/views/common/ztt-table.vue' |
| | |
| | | export default { |
| | | data() { |
| | | return { |
| | | dataRule: { |
| | | selectTime: [ |
| | | { required: true, message: 'åæ¥æ¥æä¸è½ä¸ºç©º', trigger: 'change' } |
| | | ] |
| | | }, |
| | | dataForm: { |
| | | selectTime: null |
| | | }, |
| | | syncDateVisible: false, |
| | | ajaxFun: fetchList, |
| | | addOrUpdateVisible: false, |
| | | multipleSelection: [], |
| | |
| | | fun: this.addOrUpdateHandle |
| | | }, |
| | | { |
| | | text: '忥ERP', |
| | | text: '忥MDM', |
| | | type: 'primary', |
| | | fun: this.syncIfs, |
| | | loading: false |
| | | }, |
| | | { |
| | | text: '大æ ç¾', |
| | | type: 'primary', |
| | | fun: this.printLabel, |
| | | fun: () => (this.syncDateVisible = true), |
| | | loading: false |
| | | } |
| | | // { |
| | | // text: '大æ ç¾', |
| | | // type: 'primary', |
| | | // fun: this.printLabel, |
| | | // loading: false |
| | | // } |
| | | ], |
| | | operator: [ |
| | | { |
| | |
| | | // } |
| | | // }, |
| | | syncIfs() { |
| | | syncPart({}) |
| | | .then((res) => { |
| | | const data = res.data |
| | | if (data.code === 0) { |
| | | this.$message.success('å¼å§åæ¥') |
| | | } else { |
| | | this.$message.error('忥ERP失败') |
| | | } |
| | | }) |
| | | .catch((e) => { |
| | | // this.$message.error('忥ERP失败:' + e) |
| | | }) |
| | | this.$refs.dataForm.validate((valid) => { |
| | | if (valid) { |
| | | this.syncDateVisible = false |
| | | this.table.toolbar.find((e) => e.text === '忥MDM').loading = true |
| | | syncPart({ updateTime: this.dataForm.selectTime }) |
| | | .then((res) => { |
| | | const data = res.data |
| | | if (data.code === 0) { |
| | | this.$message.success(data.msg) |
| | | } else { |
| | | this.$message.error('忥MDM失败') |
| | | } |
| | | this.getData() |
| | | this.table.toolbar.find( |
| | | (e) => e.text === '忥MDM' |
| | | ).loading = false |
| | | }) |
| | | .catch((e) => { |
| | | this.$message.error('忥MDM失败:' + e) |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | printLabel() { |
| | | if (this.multipleSelection && this.multipleSelection.length > 0) { |
| | |
| | | this.$message.error('è¯·éæ©é¶ä»¶') |
| | | } |
| | | } |
| | | }, |
| | | watch: { |
| | | syncDateVisible(newVal) { |
| | | if (!newVal) { |
| | | this.$refs.dataForm.resetFields() |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | placeholder="é¶ä»¶å·" |
| | | :disabled="(dataForm.id != null && dataForm.id > 0) || status" |
| | | > |
| | | <el-button |
| | | <!-- <el-button |
| | | slot="append" |
| | | icon="el-icon-search" |
| | | @click="openPartDialog()" |
| | | v-show="!dataForm.id" |
| | | ></el-button> |
| | | ></el-button> --> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | placeholder="é¶ä»¶åç§°" |
| | | :disabled="status" |
| | | > |
| | | <el-button |
| | | <!-- <el-button |
| | | slot="append" |
| | | icon="el-icon-search" |
| | | @click="openPartDialog()" |
| | | ></el-button> |
| | | ></el-button> --> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | <template v-else> |
| | | <template v-if="!item.render"> |
| | | <template v-if="item.formatter"> |
| | | <span |
| | | <span v-if="item.isTag" style="text-align: center;"> |
| | | <el-tag style="width:50px;margin: 3px;" :type="scope.row[item.prop] == 0 ? 'success' : 'info'"> |
| | | <span v-html="item.formatter(scope.row, item, scope.row[item.prop])"></span> |
| | | </el-tag> |
| | | </span> |
| | | <span v-else |
| | | v-html=" |
| | | item.formatter(scope.row, item, scope.row[item.prop]) |
| | | " |
| | |
| | | class="l-mes" |
| | | :disabled="!editable" |
| | | > |
| | | <el-tabs type="border-card" ref="tabs"> |
| | | <el-tabs type="border-card" ref="tabs" @tab-click="tabsClick"> |
| | | <el-tab-pane label="主è¦" type="card"> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="åæ¥æ°æ®æ¥æº" prop="sourceId"> |
| | | <el-input |
| | | v-model="dataForm.sourceId" |
| | | v-model="dataForm.sourceId == 0 ? '忥' : 'æå¨'" |
| | | placeholder="" |
| | | :disabled="!ediSource" |
| | | disabled |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="订åå·" prop="customerOrderNo"> |
| | | <el-form-item label="订åå·" prop="contractNo"> |
| | | <el-input |
| | | v-model="dataForm.customerOrderNo" |
| | | @blur="dataForm.customerOrderNo = $event.target.value.trim()" |
| | | v-model="dataForm.contractNo" |
| | | @blur="dataForm.contractNo = $event.target.value.trim()" |
| | | placeholder="" |
| | | :disabled="!ediSource" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <!-- <el-col :span="6">--> |
| | | <!-- <el-form-item label="OTCè¡å·" prop="otcLineNo">--> |
| | | <!-- <el-input--> |
| | | <!-- v-model="dataForm.otcLineNo"--> |
| | | <!-- placeholder=""--> |
| | | <!-- disabled--> |
| | | <!-- ></el-input>--> |
| | | <!-- </el-form-item>--> |
| | | <!-- </el-col>--> |
| | | <!-- <el-col :span="6">--> |
| | | <!-- <el-form-item label="GSMè¡å·" prop="coLineNo">--> |
| | | <!-- <el-input--> |
| | | <!-- v-model="dataForm.coLineNo"--> |
| | | <!-- placeholder=""--> |
| | | <!-- disabled--> |
| | | <!-- ></el-input>--> |
| | | <!-- </el-form-item>--> |
| | | <!-- </el-col>--> |
| | | <el-col :span="6"> |
| | | <el-form-item label="客æ·ç¼å·" prop="customerNo"> |
| | | <el-input |
| | |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="客æ·çé¶ä»¶å·" prop="customerPartNo"> |
| | | <el-form-item label="客æ·è®¢åç¶æ" prop="returnStatus"> |
| | | <el-input |
| | | v-model="dataForm.customerPartNo" |
| | | v-model="dataForm.returnStatus" |
| | | placeholder="" |
| | | disabled |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <!-- <el-col :span="6">--> |
| | | <!-- <el-form-item label="IFSè¡å·" prop="ifsLineNo">--> |
| | | <!-- <el-input--> |
| | | <!-- v-model="dataForm.ifsLineNo"--> |
| | | <!-- placeholder=""--> |
| | | <!-- disabled--> |
| | | <!-- ></el-input>--> |
| | | <!-- </el-form-item>--> |
| | | <!-- </el-col>--> |
| | | <el-col :span="6"> |
| | | <el-form-item label="客æ·è®¢åç¶æ" prop="coState"> |
| | | <el-select |
| | | v-model="dataForm.coState" |
| | | filterable |
| | | style="width: 100%" |
| | | disabled></el-input> |
| | | <!-- <el-select |
| | | v-model="dataForm.returnStatus" |
| | | placeholder="" |
| | | filterable |
| | | style="width: 100%" |
| | |
| | | :value="item.value" |
| | | :disabled="!ediSource" |
| | | /> |
| | | </el-select> |
| | | </el-select> --> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="è¡å·" prop="coLineNo"> |
| | | <el-input |
| | | v-model="dataForm.coLineNo" |
| | | placeholder="" |
| | | <el-form-item label="ææäº¤è´§æ¶é´" prop="deliveryDate"> |
| | | <el-date-picker |
| | | v-model="dataForm.deliveryDate" |
| | | style="width: 100%" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | :disabled="!ediSource" |
| | | ></el-input> |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="客æ·çé¶ä»¶è§æ ¼" prop="customerPartName"> |
| | | <el-form-item label="ä¸å¡å" prop="salesMan"> |
| | | <el-input |
| | | v-model="dataForm.customerPartName" |
| | | v-model="dataForm.salesMan" |
| | | placeholder="" |
| | | disabled |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <!-- <el-row>--> |
| | | |
| | | <!-- <el-col :span="6">--> |
| | | <!-- <el-form-item label="IFS交货å·" prop="ifsDeliveryNo">--> |
| | | <!-- <el-input--> |
| | | <!-- v-model="dataForm.ifsDeliveryNo"--> |
| | | <!-- placeholder=""--> |
| | | <!-- disabled--> |
| | | <!-- ></el-input>--> |
| | | <!-- </el-form-item>--> |
| | | <!-- </el-col>--> |
| | | <!-- </el-row>--> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="é¶ä»¶å·" prop="partNo"> |
| | | <el-input v-model="dataForm.partNo" placeholder="" readonly> |
| | | <el-button |
| | | slot="append" |
| | | icon="el-icon-search" |
| | | @click="openPartDialog()" |
| | | ></el-button> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="é宿°é" prop="otcQuantity"> |
| | | <el-input |
| | | v-model="dataForm.otcQuantity" |
| | | placeholder="" |
| | | :disabled="!ediSource" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="客æ·é¶ä»¶åç§°" prop="productName"> |
| | | <el-input |
| | | v-model="dataForm.productName" |
| | | placeholder="" |
| | | disabled |
| | | > |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <!-- <el-col :span="6">--> |
| | | <!-- <el-form-item label="IFSè¡é¡¹å·" prop="ifsLineItemNo">--> |
| | | <!-- <el-input--> |
| | | <!-- v-model="dataForm.ifsLineItemNo"--> |
| | | <!-- placeholder=""--> |
| | | <!-- disabled--> |
| | | <!-- ></el-input>--> |
| | | <!-- </el-form-item>--> |
| | | <!-- </el-col>--> |
| | | <el-col :span="6"> |
| | | <el-form-item label="éå®ä»¶å·" prop="salesPartNo"> |
| | | <el-input |
| | | v-model="dataForm.salesPartNo" |
| | | placeholder="" |
| | | disabled |
| | | > |
| | | <el-button |
| | | slot="append" |
| | | icon="el-icon-search" |
| | | @click="openSalesPartDialog()" |
| | | v-show="dataForm.id" |
| | | ></el-button> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="éå®ä»¶æè¿°" prop="salesPartName"> |
| | | <el-input |
| | | v-model="dataForm.salesPartName" |
| | | placeholder="" |
| | | disabled |
| | | > |
| | | <el-button |
| | | slot="append" |
| | | icon="el-icon-search" |
| | | @click="openSalesPartDialog()" |
| | | v-show="dataForm.id" |
| | | ></el-button> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="å·¥èºæä»¶å·" prop="docNumber"> |
| | | <el-input |
| | | v-model="dataForm.docNumber" |
| | | placeholder="" |
| | | disabled |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="ææäº¤è´§æ¶é´" prop="wantedDeliveryDate"> |
| | | <el-date-picker |
| | | v-model="dataForm.wantedDeliveryDate" |
| | | style="width: 100%" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | :disabled="!ediSource" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <!-- <el-col :span="6"> |
| | | <el-form-item label="计å交货æ¶é´" prop="plannedDeliveryDate"> |
| | | <el-date-picker |
| | | v-model="dataForm.plannedDeliveryDate" |
| | |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="客æ·é¶ä»¶è§æ ¼" prop="customerPartSpec"> |
| | | <el-input |
| | | v-model="dataForm.customerPartSpec" |
| | | placeholder="" |
| | | disabled |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <!-- <el-col :span="6">--> |
| | | <!-- <el-form-item label="äºä¸é¨" prop="division">--> |
| | | <!-- <el-input--> |
| | | <!-- v-model="dataForm.division"--> |
| | | <!-- placeholder=""--> |
| | | <!-- disabled--> |
| | | <!-- ></el-input>--> |
| | | <!-- </el-form-item>--> |
| | | <!-- </el-col>--> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="å°åæ¹å¼" prop="printType"> |
| | | <el-input |
| | | v-model="dataForm.printType" |
| | | placeholder="" |
| | | disabled |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="å°åè¦æ±" prop="printingRequirements"> |
| | | <el-input |
| | | v-model="dataForm.printingRequirements" |
| | | placeholder="" |
| | | disabled |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="å°åå
容" prop="printContent"> |
| | | <el-input |
| | | v-model="dataForm.printContent" |
| | | placeholder="" |
| | | disabled |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | </el-col> --> |
| | | <!-- <el-col :span="6"> |
| | | <el-form-item label="å
è£
è¦æ±" prop="packageRequire"> |
| | | <el-input |
| | | v-model="dataForm.packageRequire" |
| | |
| | | disabled |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> --> |
| | | </el-row> |
| | | <el-row> |
| | | <!-- <el-col :span="6"> |
| | | <el-form-item label="é¶ä»¶å·" prop="partNo"> |
| | | <el-input v-model="dataForm.partNo" placeholder="" readonly> |
| | | <el-button |
| | | slot="append" |
| | | icon="el-icon-search" |
| | | @click="openPartDialog()" |
| | | ></el-button> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> --> |
| | | <!-- <el-col :span="6"> |
| | | <el-form-item label="çé¿è¦æ±" prop="lengthRequirement"> |
| | | <el-input |
| | | v-model="dataForm.lengthRequirement" |
| | | placeholder="" |
| | | disabled |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> --> |
| | | <el-col :span="6"> |
| | | <el-form-item label="é宿°é" prop="buyQtyDue"> |
| | | <el-input |
| | | v-model="dataForm.buyQtyDue" |
| | | placeholder="" |
| | | :disabled="!ediSource" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="产ååç§°" prop="productName"> |
| | | <el-input |
| | | v-model="dataForm.productName" |
| | | placeholder="" |
| | | disabled |
| | | > |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="é¶å±åç" prop="productType"> |
| | | <el-input |
| | | v-model="dataForm.productType" |
| | | placeholder="" |
| | | disabled |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="éå®ä»¶å·" prop="partNo"> |
| | | <el-input |
| | | v-model="dataForm.partNo" |
| | | placeholder="" |
| | | disabled |
| | | > |
| | | <el-button |
| | | slot="append" |
| | | icon="el-icon-search" |
| | | @click="openSalesPartDialog()" |
| | | v-show="dataForm.id" |
| | | ></el-button> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="è´¨éè¦æ±" prop="qualityRequire"> |
| | | <!-- <el-col :span="6"> |
| | | <el-form-item label="éå®ä»¶æè¿°" prop="salesPartName"> |
| | | <el-input |
| | | v-model="dataForm.qualityRequire" |
| | | v-model="dataForm.salesPartName" |
| | | placeholder="" |
| | | disabled |
| | | ></el-input> |
| | | > |
| | | <el-button |
| | | slot="append" |
| | | icon="el-icon-search" |
| | | @click="openSalesPartDialog()" |
| | | v-show="dataForm.id" |
| | | ></el-button> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-col> --> |
| | | <el-col :span="6"> |
| | | <el-form-item label="çäº§éæ±è¯´æ" prop="otherProductRequire"> |
| | | <el-form-item label="å·¥èºæä»¶å·" prop="docNumber"> |
| | | <el-input |
| | | v-model="dataForm.otherProductRequire" |
| | | placeholder="" |
| | | disabled |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="ç³»ç»" prop="divisionSystem"> |
| | | <el-input |
| | | v-model="dataForm.divisionSystem" |
| | | v-model="dataForm.docNumber" |
| | | placeholder="" |
| | | disabled |
| | | ></el-input> |
| | |
| | | <el-input |
| | | v-model="dataForm.shippingAddress" |
| | | placeholder="" |
| | | disabled |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="ä¸å¡å" prop="salesmanName"> |
| | | <el-input |
| | | v-model="dataForm.salesmanName" |
| | | <el-form-item label="åä½" prop="otcUnit"> |
| | | <el-select |
| | | v-model="dataForm.otcUnit" |
| | | placeholder="" |
| | | disabled |
| | | ></el-input> |
| | | filterable |
| | | style="width: 100%" |
| | | > |
| | | <el-option |
| | | v-for="item in units" |
| | | :key="item.id" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="çé¿è¦æ±" prop="lengthRequirement"> |
| | | <el-form-item label="产ååå·" prop="customerPartSpec"> |
| | | <el-input |
| | | v-model="dataForm.lengthRequirement" |
| | | placeholder="" |
| | | disabled |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="æç»å®¢æ·" prop="remark"> |
| | | <el-input |
| | | v-model="dataForm.finalCustomerName" |
| | | placeholder="" |
| | | disabled |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="产ååç»" prop="remark"> |
| | | <el-input |
| | | v-model="dataForm.productGroup" |
| | | v-model="dataForm.customerPartSpec" |
| | | placeholder="" |
| | | disabled |
| | | ></el-input> |
| | |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="产åç±»å" prop="remark"> |
| | | <!-- <el-col :span="6"> |
| | | <el-form-item label="ç³»ç»" prop="divisionSystem"> |
| | | <el-input |
| | | v-model="dataForm.productType" |
| | | v-model="dataForm.divisionSystem" |
| | | placeholder="" |
| | | disabled |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | </el-col> --> |
| | | </el-row> |
| | | <el-row> |
| | | <!-- <el-col :span="6"> |
| | | <el-form-item label="ééæ§è´¨" prop="centralizedMiningProperty"> |
| | | <el-input |
| | | v-model="dataForm.centralizedMiningProperty" |
| | |
| | | disabled |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | </el-col> --> |
| | | <!-- <el-col :span="6"> |
| | | <el-form-item label="订åè¡å¤æ³¨" prop="remark"> |
| | | <el-input |
| | | v-model="dataForm.remark" |
| | |
| | | disabled |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-col> --> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <!-- <el-col :span="6"> |
| | | <el-form-item label="OTCæ¨éç¶æ" prop="remark"> |
| | | <span>{{ |
| | | dataForm.otcPartSync != null |
| | |
| | | : '' |
| | | }}</span> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-col> --> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="订å说æ" prop="orderDescription"> |
| | | <el-form-item label="订å夿³¨" prop="comment"> |
| | | <el-input |
| | | type="textarea" |
| | | :rows="3" |
| | | placeholder="" |
| | | v-model="dataForm.orderDescription" |
| | | v-model="dataForm.comment" |
| | | maxlength="500" |
| | | show-word-limit |
| | | > |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-card header="订ååæ°" shadow="never"> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="产å夿³¨" prop="remark"> |
| | | <el-input |
| | | type="textarea" |
| | | :rows="3" |
| | | placeholder="" |
| | | v-model="dataForm.remark" |
| | | maxlength="500" |
| | | show-word-limit |
| | | > |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <!-- <el-card header="订ååæ°" shadow="never"> |
| | | <el-row> |
| | | <el-form-item |
| | | style="float:left;width: 50%" |
| | |
| | | ></el-input |
| | | ></el-form-item> |
| | | </el-row> |
| | | </el-card> |
| | | </el-card> --> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="éä»¶" type="card"> |
| | | <el-tab-pane label="OTCéä»¶" type="card"> |
| | | <el-table :data="fileList" style="width: 100%" height="500"> |
| | | <el-table-column prop="original" label="æä»¶å" align="center"> |
| | | </el-table-column> |
| | |
| | | </el-col> |
| | | </el-row> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="å·¥èºéä»¶" type="card"> |
| | | <el-tab-pane label="éä»¶ä¸ä¼ " type="card"> |
| | | <div style="display: flex;justify-content:flex-end;"> |
| | | <div></div> |
| | | </div> |
| | |
| | | @click="synchronizeFile(scope.row)" |
| | | type="text" |
| | | size="small" |
| | | :disabled="scope.row.lineNumber !== dataForm.otcLineNo" |
| | | :disabled="scope.row.lineNumber !== dataForm.customerNo" |
| | | >忥</el-button |
| | | > |
| | | <el-button |
| | | @click="delProcessConfigFile(scope.row)" |
| | | type="text" |
| | | size="small" |
| | | :disabled="scope.row.lineNumber !== dataForm.otcLineNo" |
| | | :disabled="scope.row.lineNumber !== dataForm.customerNo" |
| | | >å é¤</el-button |
| | | > |
| | | <el-button |
| | |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-tab-pane> |
| | | <el-tab-pane |
| | | label="å·¥èºé
ç½®å" |
| | | type="card" |
| | | style="height: 650px;overflow-y: auto" |
| | | > |
| | | <div |
| | | style="margin: 5px 20px;display: flex;justify-content:space-between;" |
| | | > |
| | | <el-radio-group |
| | | v-model="configContent.modelType" |
| | | :disabled="configContent.id ? true : false" |
| | | @change="changeModal" |
| | | > |
| | | <el-radio v-model="radio" label="01">模æ¿1</el-radio> |
| | | <el-radio v-model="radio" label="02">模æ¿2</el-radio> |
| | | </el-radio-group> |
| | | |
| | | <span style="right: 0;"> |
| | | <el-button |
| | | :disabled="!configContent.id" |
| | | type="danger" |
| | | size="mini" |
| | | v-thinclick="`deleteConfig`" |
| | | > |
| | | å é¤ |
| | | </el-button> |
| | | <el-button type="success" size="mini" v-thinclick="`saveConfig`"> |
| | | ä¿å |
| | | </el-button> |
| | | <el-button |
| | | type="success" |
| | | size="mini" |
| | | v-thinclick="`saveConfigForAll`" |
| | | > |
| | | ä¿åå¹¶åºç¨è³å
¶ä»è®¢åè¡ |
| | | </el-button> |
| | | </span> |
| | | </div> |
| | | <el-divider content-position="left">é
ç½®åå
容</el-divider> |
| | | <!--模æ¿1--> |
| | | <div |
| | | class="node-content-remark" |
| | | v-if="configContent.modelType == configTypes[0].value" |
| | | > |
| | | <el-form |
| | | class="configform1" |
| | | :inline="true" |
| | | ref="form" |
| | | label-width="80px" |
| | | > |
| | | <el-form-item label="订åç¼å·"> |
| | | <el-input v-model="configContent.proNo" readonly></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="项ç®åç§°"> |
| | | <el-input v-model="configContent.proName" readonly></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <!-- çäº§è¦æ±æè¿°ï¼--> |
| | | <rich-text |
| | | editor-id="editor1" |
| | | :richContent="configContent.remark1" |
| | | @contentChange="setConfigRemark1" |
| | | placeholder="请è¾å
¥çäº§è¦æ±æè¿°" |
| | | ></rich-text> |
| | | <!-- å°å举ä¾ï¼--> |
| | | <!-- <rich-text--> |
| | | <!-- editor-id="editor2"--> |
| | | <!-- :richContent="configContent.remark2"--> |
| | | <!-- @contentChange="setConfigRemark2"--> |
| | | <!-- placeholder="请è¾å
¥å°å举ä¾"--> |
| | | <!-- ></rich-text>--> |
| | | <!-- 注æï¼--> |
| | | <!-- <rich-text--> |
| | | <!-- editor-id="editor3"--> |
| | | <!-- :richContent="configContent.remark3"--> |
| | | <!-- @contentChange="setConfigRemark3"--> |
| | | <!-- placeholder="请è¾å
¥æ³¨æ"--> |
| | | <!-- ></rich-text>--> |
| | | <!-- 夿³¨ï¼--> |
| | | <!-- <rich-text--> |
| | | <!-- editor-id="editor4"--> |
| | | <!-- :richContent="configContent.remark4"--> |
| | | <!-- @contentChange="setConfigRemark4"--> |
| | | <!-- placeholder="请è¾å
¥å¤æ³¨"--> |
| | | <!-- ></rich-text>--> |
| | | </div> |
| | | |
| | | <!--模æ¿2--> |
| | | <div |
| | | class="node-content-remark" |
| | | v-if="configContent.modelType == configTypes[1].value" |
| | | > |
| | | <div |
| | | class="node-content-remark2" |
| | | style="width: 80%;margin-left: 30px;" |
| | | > |
| | | <el-button type="primary" size="mini" @click="getHistoryData" |
| | | >è·å</el-button |
| | | > |
| | | <el-form |
| | | class="configform2" |
| | | :inline="true" |
| | | ref="form" |
| | | label-width="80px" |
| | | > |
| | | <el-form-item label="ååç¼å·ï¼" style="width: 40%"> |
| | | <el-input v-model="configContent.proNo" readonly></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="项ç®åç§°ï¼" style="width: 40%"> |
| | | <el-input v-model="configContent.proName"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å°åè¦æ±ï¼" style="width: 100%"> |
| | | <el-input v-model="configContent.printReq"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <rich-text |
| | | placeholder="çäº§è§æ ¼åå·åæ°é" |
| | | editor-id="editorb1" |
| | | :richContent="configContent.remark1" |
| | | @contentChange="setConfigRemark1" |
| | | ></rich-text> |
| | | <rich-text |
| | | placeholder="çäº§è¦æ±æè¿°" |
| | | editor-id="editorb2" |
| | | :richContent="configContent.remark2" |
| | | @contentChange="setConfigRemark2" |
| | | ></rich-text> |
| | | <el-form-item label="å®é
å°åè¦æ±ï¼" style="width: 80%"> |
| | | <el-input v-model="configContent.realPrintReq"></el-input> |
| | | </el-form-item> |
| | | <el-row class="bodyrow"> |
| | | <el-col :span="5"> |
| | | <div class="param-top"> |
| | | <div class="form-item" style="text-align: left"> |
| | | <label>åæ³¡ç¼è¯(Φmm)</label> |
| | | <div style="color: #7A9EFD"> |
| | | <el-input v-model="configContent.cableCore"></el-input> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="3"> |
| | | <div style="text-align: right;padding-right: 20px"> |
| | | æ¤å¥æ¨¡å
·ï¼ |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="3"> |
| | | <div class="param-top"> |
| | | <div class="form-item"> |
| | | <label>模è¯(Φmm)</label> |
| | | <div style="color: #7A9EFD"> |
| | | <el-input v-model="configContent.modelCore"></el-input> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="3"> |
| | | <div class="param-top"> |
| | | <div class="form-item"> |
| | | <label>模å¥(Φmm)</label> |
| | | <div style="color: #7A9EFD"> |
| | | <el-input |
| | | v-model="configContent.modelSleeve" |
| | | ></el-input> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="3" |
| | | ><div class="param-top"> |
| | | <div class="form-item"> |
| | | <label>å®å¾æ¨¡(Φmm)</label> |
| | | <div style="color: #7A9EFD"> |
| | | <el-input |
| | | v-model="configContent.sizingModel" |
| | | ></el-input> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="3" |
| | | ><div class="param-top"> |
| | | <div class="form-item"> |
| | | <label>è¿æ¨¡(Φmm)</label> |
| | | <div style="color: #7A9EFD"> |
| | | <el-input |
| | | v-model="configContent.strandModel" |
| | | ></el-input> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <!-- <rich-text--> |
| | | <!-- placeholder="产åçæ§è½è¦æ±"--> |
| | | <!-- editor-id="editorb3"--> |
| | | <!-- :richContent="configContent.remark3"--> |
| | | <!-- @contentChange="setConfigRemark3"--> |
| | | <!-- ></rich-text>--> |
| | | <div> |
| | | 产åçæ§è½è¦æ±ï¼20âæ¶ççµæ°ç¹å¾ |
| | | </div> |
| | | |
| | | <el-table |
| | | :data="configContent.processConfigDataList" |
| | | style="width: 100%;margin-top: 10px" |
| | | border |
| | | > |
| | | <el-table-column prop="date" label="é¢ç(MHz)"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.frequency"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="name" label="æå¤§ä¼ éè¡°å(dB/km)"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.deliveryReduce"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="province" |
| | | label="è¦åæèmax(dB),2ç±³,95%" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.couplingLoss"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column fixed="right" label="æä½" width="120"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | @click.native.prevent="deleteConfigTableRow(scope.$index)" |
| | | type="text" |
| | | size="small" |
| | | > |
| | | å é¤ |
| | | </el-button> |
| | | <el-button |
| | | v-if=" |
| | | scope.$index == |
| | | configContent.processConfigDataList.length - 1 |
| | | " |
| | | @click.native.prevent="addConfigTableRow(scope.$index)" |
| | | type="text" |
| | | size="small" |
| | | > |
| | | æ°å¢ |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-form-item |
| | | label="å·¥ä½é¢å¸¦å
驻波æ¯ï¼" |
| | | style="width: 80%" |
| | | label-width="120px" |
| | | > |
| | | <el-input v-model="configContent.workFrequency"></el-input> |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="é¢çèå´ï¼" |
| | | style="width: 80%" |
| | | label-width="120px" |
| | | > |
| | | <el-input v-model="configContent.frequencyRange"></el-input> |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="ç´æµçµé»ï¼" |
| | | style="width: 80%" |
| | | label-width="120px" |
| | | > |
| | | <el-input v-model="configContent.resistance"></el-input> |
| | | </el-form-item> |
| | | <rich-text |
| | | placeholder="请è¾å
¥" |
| | | editor-id="editorb4" |
| | | :richContent="configContent.remark4" |
| | | @contentChange="setConfigRemark4" |
| | | ></rich-text> |
| | | </div> |
| | | </div> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </el-form> |
| | |
| | | getCustomerOrder, |
| | | addCustomerOrder, |
| | | putCustomerOrder, |
| | | updateCustomerOrderById, |
| | | download, |
| | | getOtcCustomerOrderFileList, |
| | | otcDownload, |
| | |
| | | dataForm: { |
| | | id: 0, |
| | | sourceId: '', |
| | | customerOrderNo: '', |
| | | contractNo: '', |
| | | customerNo: '', |
| | | customerName: '', |
| | | coState: '', |
| | | coLineNo: '', |
| | | returnStatus: '', |
| | | deliveryDate: '', |
| | | salesMan: '', |
| | | salerWorkCode: '', |
| | | manufactureAttr: '', |
| | | buyQtyDue: 0, |
| | | productName: '', |
| | | productType: '', |
| | | partNo: '', |
| | | docNumber: '', |
| | | shippingAddress: '', |
| | | remark: '', |
| | | otcUnit: '', |
| | | coState: '', |
| | | customerPartSpec: '', |
| | | entityName: '', |
| | | factoryPlaceOrderDate: '', |
| | | isCp: '', |
| | | originalContractStatus: '', |
| | | placeOrderDate: '', |
| | | province: '', |
| | | |
| | | customerOrderNo: '', |
| | | coLineNo: '', |
| | | customerPartName: '', |
| | | buyQtyDue: '', |
| | | otcQuantity: '', |
| | | wantedDeliveryDate: '', |
| | | plannedDeliveryDate: '', |
| | | customerPoNo: '', |
| | |
| | | ifsSalesUnit: null, |
| | | ifsConvFactor: null, |
| | | unit: null, |
| | | otcUnit: null, |
| | | otcQuantity: null, |
| | | docNumber: null, |
| | | manufactureAttr: 'N', |
| | | customerPartSpec: null, |
| | | division: null, |
| | | printType: null, |
| | | printingRequirements: null, |
| | |
| | | qualityRequire: null, |
| | | otherProductRequire: null, |
| | | divisionSystem: null, |
| | | shippingAddress: null, |
| | | salesmanName: null, |
| | | lengthRequirement: null, |
| | | remark: null, |
| | | otcPartSync: null, |
| | | finalCustomerName: null, |
| | | productGroup: null, |
| | | productType: null, |
| | | centralizedMiningProperty: null, |
| | | orderDescription: null, |
| | | otcLineNo: null, |
| | |
| | | if (!this.dataForm.id) { |
| | | return true |
| | | } |
| | | if (this.dataForm.id && this.dataForm.sourceId !== 'GSM') { |
| | | if (this.dataForm.id && (this.dataForm.sourceId != null && this.dataForm.sourceId !== 'GSM')) { |
| | | return true |
| | | } |
| | | return false |
| | |
| | | this.getManufactureAttrs('manufacture_attr_type') |
| | | }, |
| | | methods: { |
| | | tabsClick(tab,even){ |
| | | if(tab.index == 2){ |
| | | this.getConfigFiles(); |
| | | } |
| | | }, |
| | | init(id) { |
| | | this.orderParamList = [] |
| | | this.dataForm.id = id || 0 |
| | |
| | | // } else { |
| | | // console.log('2') |
| | | this.dataForm = response.data.data |
| | | |
| | | // } |
| | | // this.fileList = response.data.data.customerOrderAttachmentList |
| | | this.getFileList() |
| | | const sourceId = response.data.data.sourceId |
| | | if(sourceId === '0'){ |
| | | this.getFileList() |
| | | } |
| | | this.orderParamList = response.data.data.orderParamList |
| | | this.title = |
| | | this.dataForm.customerName + this.dataForm.customerOrderNo |
| | |
| | | // this.this.configContent.modelType = '01' |
| | | // this.configContent.orderId = this.dataForm.id |
| | | // this.configContent.orderId = response.data.data.customerOrderNo |
| | | console.log(response.data.data) |
| | | if (response.data.data.processConfigDTO) { |
| | | // æä¿åçæ°æ® |
| | | this.configContent = response.data.data.processConfigDTO |
| | |
| | | }, |
| | | getFileList() { |
| | | this.fileList = [] |
| | | const queryParam = { orderNumber: this.dataForm.customerOrderNo } |
| | | const queryParam = { orderNumber: this.dataForm.contractNo } |
| | | getOtcCustomerOrderFileList(queryParam).then((response) => { |
| | | const resData = response.data |
| | | if (resData.code === 0) { |
| | |
| | | this.$refs.dataForm.validate((valid) => { |
| | | if (valid) { |
| | | if (this.dataForm.id) { |
| | | putCustomerOrder(this.dataForm) |
| | | updateCustomerOrderById(this.dataForm) |
| | | .then((data) => { |
| | | this.$message.success('ä¿®æ¹æå') |
| | | this.visible = false |
| | |
| | | delOutPutBatch(row) {}, |
| | | addOutPutBatch() {}, |
| | | submitUpload() { |
| | | this.paramData.orderNumber = this.dataForm.customerOrderNo |
| | | this.paramData.lineNumber = this.dataForm.otcLineNo |
| | | this.paramData.orderNumber = this.dataForm.contractNo |
| | | this.paramData.lineNumber = this.dataForm.customerNo |
| | | this.progrecessFileLoading = true |
| | | }, |
| | | uploadSuccess() { |
| | |
| | | }, |
| | | getConfigFiles() { |
| | | const param = { |
| | | orderNumber: this.dataForm.customerOrderNo, |
| | | lineNumber: this.dataForm.otcLineNo |
| | | orderNumber: this.dataForm.contractNo, |
| | | lineNumber: this.dataForm.customerNo |
| | | } |
| | | getProcessConfigFiles(param).then((res) => { |
| | | this.processConfigFileTableData = res.data.data |
| | |
| | | ref="customerOrderTable" |
| | | > |
| | | <template #toolbar> |
| | | <el-dropdown |
| | | <!-- <el-dropdown |
| | | v-if="permissions.customerorder_state_change" |
| | | @command="handleCommand" |
| | | > |
| | |
| | | <el-dropdown-item |
| | | :command="item.command" |
| | | v-for="item in stateTagArr" |
| | | :disabled="item.disabled" |
| | | >{{ item.label }}</el-dropdown-item |
| | | > |
| | | :disabled="item.disabled"> |
| | | {{ item.label }} |
| | | </el-dropdown-item> |
| | | </el-dropdown-menu> |
| | | </el-dropdown> |
| | | </el-dropdown> --> |
| | | <el-dropdown |
| | | v-if="permissions.customerorder_doc_relate" |
| | | @command="documentHandle" |
| | |
| | | <el-dropdown-item |
| | | :command="item.command" |
| | | v-for="item in documentTagArr" |
| | | :disabled="item.disabled" |
| | | > |
| | | :disabled="item.disabled"> |
| | | {{ item.label }} |
| | | </el-dropdown-item> |
| | | </el-dropdown-menu> |
| | |
| | | > |
| | | </el-dropdown-menu> |
| | | </el-dropdown> |
| | | <el-button |
| | | <!-- <el-button |
| | | v-if="permissions.customerorder_push_otc" |
| | | style="margin-left:10px;" |
| | | type="primary" |
| | | @click="pushOtc" |
| | | >æ¨éERP</el-button |
| | | > |
| | | <el-button |
| | | > --> |
| | | <!-- <el-button |
| | | style="margin-left:10px;" |
| | | type="primary" |
| | | @click="importOutPutBatch" |
| | | >导å
¥äº§åºæ¹æ¬¡</el-button |
| | | > |
| | | > --> |
| | | <el-button |
| | | style="margin-left:10px;" |
| | | type="primary" |
| | | @click="exportStandBook" |
| | | @click="()=>exportDialogVisible=true" |
| | | >导åºå°è´¦</el-button |
| | | > |
| | | <el-button |
| | |
| | | </span> |
| | | <span slot="footer" class="dialog-footer"> </span> |
| | | </el-dialog> |
| | | <!-- å¯¼åº --> |
| | | <el-dialog title="导åºå°è´¦" :visible.sync="exportDialogVisible" width="20%"> |
| | | <div style="display: flex;justify-content: center"> |
| | | <el-form :model="dataForm" :inline="true" :rules="dataRule" ref="exportForm" class="l-mes"> |
| | | <el-form-item label="æ¥æ" prop="exportTime"> |
| | | <el-date-picker |
| | | v-model="dataForm.exportTime" |
| | | type="datetime" |
| | | style="width:100%" |
| | | placeholder="éæ©æ¥ææ¶é´" |
| | | value-format="yyyy-MM-dd HH:mm:ss"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="exportDialogVisible=false">å æ¶</el-button> |
| | | <el-button type="primary" @click="exportStandBook">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <!-- ç®±ç ä¿¡æ¯å¯¼åº --> |
| | | <el-dialog |
| | | title="ç®±ç ä¿¡æ¯å¯¼åº" |
| | |
| | | </el-dialog> |
| | | </basic-container> |
| | | |
| | | <el-dialog title="éæ©åæ¥æ¥æ" :visible.sync="syncDateVisible" width="30%"> |
| | | <el-dialog title="éæ©åæ¥æ¥æ" :visible.sync="syncDateVisible" width="20%"> |
| | | <div style="display: flex;justify-content: center"> |
| | | <el-date-picker |
| | | v-model="syncDate" |
| | | type="daterange" |
| | | value-format="yyyy-MM-dd" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | :picker-options="pickerOptions" |
| | | > |
| | | </el-date-picker> |
| | | <el-form :model="dataForm" :inline="true" :rules="dataRule" ref="dataForm" class="l-mes"> |
| | | <el-form-item label="æ¥æ"> |
| | | <el-date-picker |
| | | v-model="dataForm.selectTime" |
| | | type="datetime" |
| | | placeholder="éæ©æ¥ææ¶é´" |
| | | value-format="yyyy-MM-dd HH:mm:ss"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="syncDateVisible = false">å æ¶</el-button> |
| | |
| | | import MpsRequirements from './mps-requirements' |
| | | import SalesPartBatchDialog from './sales-part-batch.vue' |
| | | import CustomerorderReturnDialog from './customerorder-return.vue' |
| | | import { otcCustomerOrderSync } from '@/api/plan/customerorder' |
| | | import { |
| | | delCustomerOrder, |
| | | fetchListCustomerOrder, |
| | |
| | | export default { |
| | | data() { |
| | | return { |
| | | dataForm: { |
| | | selectTime: null, |
| | | exportTime: null |
| | | }, |
| | | dataRule: { |
| | | exportTime:[{required:true,message:'å¯¼åºæ¥æä¸è½ä¸ºç©º',trigger:'change'}] |
| | | }, |
| | | pickerOptions: { |
| | | onPick: ({ maxDate, minDate }) => { |
| | | if (minDate && this.pickerMinDate) { |
| | |
| | | return false |
| | | } |
| | | }, |
| | | exportDialogVisible: false, |
| | | syncDateVisible: false, |
| | | syncDate: [], |
| | | showCustomerorderReturn: false, |
| | |
| | | { |
| | | minWidth: '100', |
| | | width: '100px', |
| | | prop: 'customerOrderNo', |
| | | prop: 'contractNo', |
| | | label: 'ååç¼å·', |
| | | // label: '订åå·', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | |
| | | { |
| | | minWidth: '120', |
| | | prop: 'entityName', |
| | | label: 'åå主é¢', |
| | | sort: false, |
| | | label: 'å·¥ç¨åç§°', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'sourceId', |
| | | label: 'æ·»å æ¥æº', |
| | | isTag: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'select', |
| | | formatter: this.getSourceId, |
| | | optList: () => { |
| | | return this.sourceIdList |
| | | } |
| | | }, |
| | | { |
| | | minWidth: '200', |
| | |
| | | { |
| | | minWidth: '120', |
| | | prop: 'placeOrderDate', |
| | | label: 'ç¾è®¢æ¥æ', |
| | | label: 'ä¸åæ¥æ', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | formatter: this.formatDutyDate |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'factoryPlaceOrderDate', |
| | | label: 'å¼å§æ¥æ', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | formatter: this.formatDutyDate |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'endTime', |
| | | label: 'ç»æ¢æ¥æ', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | formatter: this.formatDutyDate |
| | | }, |
| | | // { |
| | | // minWidth: '120', |
| | | // prop: 'customerNo', |
| | | // label: '客æ·ç¼å·', |
| | | // sort: true, |
| | | // isTrue: true, |
| | | // isSearch: true, |
| | | // searchInfoType: 'text' |
| | | // }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'customerName', |
| | |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | // { |
| | | // minWidth: '120', |
| | | // prop: 'customerContractNo', |
| | | // label: '客æ·è®¢åå·', |
| | | // sort: true, |
| | | // isTrue: true, |
| | | // isSearch: true, |
| | | // searchInfoType: 'text' |
| | | // }, |
| | | |
| | | { |
| | | minWidth: '120', |
| | | prop: 'coState', |
| | |
| | | return this.isAuditList |
| | | } |
| | | }, |
| | | { |
| | | minWidth: '80', |
| | | prop: 'ifsDeliveryNo', |
| | | label: 'åååç±»', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '80', |
| | | prop: 'ifsLineItemNo', |
| | | label: 'å忥æº', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '80', |
| | | prop: 'returnStatus', |
| | | label: 'ååç¶æ', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '80', |
| | | prop: 'originalContractStatus', |
| | | label: 'åºåºç¶æ', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | |
| | | { |
| | | minWidth: '120', |
| | | prop: 'ifsSalesUnit', |
| | | label: 'å¯ç¨ç¶æ', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | // { |
| | | // minWidth: '120', |
| | | // prop: 'coLineNo', |
| | | // label: 'GSMè¡å·', |
| | | // minWidth: '80', |
| | | // prop: 'sourceId', |
| | | // label: 'è®¢åæ¥æº', |
| | | // sort: true, |
| | | // isTrue: true, |
| | | // isSearch: true, |
| | | // searchInfoType: 'text' |
| | | // }, |
| | | // { |
| | | // minWidth: '120', |
| | | // prop: 'otcLineNo', |
| | | // label: 'OTCè¡å·', |
| | | // sort: true, |
| | | // isTrue: true, |
| | | // isSearch: true, |
| | | // searchInfoType: 'text' |
| | | // }, |
| | | // // ç¶æ |
| | | // { |
| | | // minWidth: '120', |
| | | // prop: 'otcPartSync', |
| | | // label: 'OTCæ¨éç¶æ', |
| | | // sort: true, |
| | | // isTrue: true, |
| | | // isSearch: true, |
| | | // searchInfoType: 'select', |
| | | // optList: () => { |
| | | // return this.getOtcPartSyncOptionList() |
| | | // }, |
| | | // formatter: (row, column, cellValue) => { |
| | | // var formatVal |
| | | // if (cellValue == null) { |
| | | // formatVal = '' |
| | | // } else if (cellValue) { |
| | | // formatVal = '已忥' |
| | | // } else { |
| | | // formatVal = 'æªåæ¥' |
| | | // } |
| | | // return formatVal |
| | | // } |
| | | // }, |
| | | // { |
| | | // minWidth: '120', |
| | | // prop: 'verifyDate', |
| | | // label: 'OTCå®¡æ ¸æ¶é´', |
| | | // sort: true, |
| | | // isTrue: true, |
| | | // isSearch: true, |
| | | // searchInfoType: 'datetimerange' |
| | | // }, |
| | | { |
| | | minWidth: '120', |
| | | width: '100px', |
| | | prop: 'partNo', |
| | | label: 'é¶ä»¶å·', |
| | | label: '产åç¼å·', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | |
| | | { |
| | | minWidth: '120', |
| | | width: '100px', |
| | | prop: 'customerPartName', |
| | | label: 'é¶ä»¶åç§°', |
| | | prop: 'productName', |
| | | label: '产ååç§°', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | |
| | | minWidth: '120', |
| | | width: '100px', |
| | | prop: 'productType', |
| | | label: 'åå·', |
| | | label: 'é¶å±åç', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | |
| | | minWidth: '120', |
| | | width: '100px', |
| | | prop: 'otcUnit', |
| | | label: 'é¶ä»¶å±æ§', |
| | | label: 'åä½', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | width: '100px', |
| | | prop: 'outerColor', |
| | | label: '夿¤é¢è²', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'otcQuantity', |
| | | label: 'é宿°é', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '80', |
| | | prop: 'otcUnit', |
| | | label: 'éå®åä½', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'buyQtyDue', |
| | | label: 'åºåæ°é', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '80', |
| | | prop: 'unit', |
| | | label: 'é¶ä»¶åä½', |
| | | label: 'æ°é', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'requireNumber', |
| | | label: 'å·²ä¸åæ°é', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'customerPartSpec', |
| | | label: '客æ·é¶ä»¶è§æ ¼', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'finalCustomerName', |
| | | label: 'æç»å®¢æ·åç§°', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'productGroup', |
| | | label: '产ååç»', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'productType', |
| | | label: '产åç±»å', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'centralizedMiningProperty', |
| | | label: 'ééæ§è´¨', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'orderDescription', |
| | | label: '订å说æ', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'division', |
| | | label: 'äºä¸é¨', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'printType', |
| | | label: 'å°åæ¹å¼', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'printingRequirements', |
| | | label: 'å°åè¦æ±', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'printContent', |
| | | label: 'å°åå
容', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'packageRequire', |
| | | label: 'å
è£
è¦æ±', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'qualityRequire', |
| | | label: 'è´¨éè¦æ±', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'otherProductRequire', |
| | | label: 'çäº§éæ±è¯´æ', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'divisionSystem', |
| | | label: 'ç³»ç»', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'shippingAddress', |
| | | label: 'æ¶è´§å°å', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'salesmanName', |
| | | label: 'ä¸å¡å', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'lengthRequirement', |
| | | label: 'çé¿è¦æ±', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'remark', |
| | | label: '订åè¡å¤æ³¨', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'comment', |
| | | label: '订å头夿³¨', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | // { |
| | | // minWidth: '80', |
| | | // prop: 'ifsLineNo', |
| | | // label: 'IFSè¡å·', |
| | | // sort: true, |
| | | // isTrue: true, |
| | | // isSearch: true, |
| | | // searchInfoType: 'text' |
| | | // }, |
| | | // { |
| | | // minWidth: '80', |
| | | // prop: 'ifsDeliveryNo', |
| | | // label: 'IFS交货å·', |
| | | // sort: true, |
| | | // isTrue: true, |
| | | // isSearch: true, |
| | | // searchInfoType: 'text' |
| | | // }, |
| | | // { |
| | | // minWidth: '80', |
| | | // prop: 'ifsLineItemNo', |
| | | // label: 'IFSè¡é¡¹å·', |
| | | // sort: true, |
| | | // isTrue: true, |
| | | // isSearch: true, |
| | | // searchInfoType: 'text' |
| | | // }, |
| | | { |
| | | minWidth: '80', |
| | | prop: 'salesPartNo', |
| | | label: 'éå®ä»¶å·', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '80', |
| | | prop: 'salesPartName', |
| | | label: 'éå®ä»¶æè¿°', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | width: '120', |
| | | prop: 'wantedDeliveryDate', |
| | | label: 'ææäº¤è´§æ¶é´', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'datetimerange', |
| | | formatter: this.formatDutyDate |
| | | }, |
| | | { |
| | | minWidth: '200', |
| | | width: '120', |
| | | prop: 'plannedDeliveryDate', |
| | | label: '计å交货æ¶é´', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'datetimerange', |
| | | formatter: this.formatDutyDate |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'manufactureAttr', |
| | | label: 'å¶é 屿§', |
| | | sort: true, |
| | |
| | | searchInfoType: 'select', |
| | | formatter: this.getManufactureAttr, |
| | | optList: () => { |
| | | return this.manufactureAttrs |
| | | return this.manufactureAttrList |
| | | } |
| | | } |
| | | // { |
| | | // minWidth: '200', |
| | | // width: '120', |
| | | // prop: 'createTime', |
| | | // label: 'å建æ¶é´', |
| | | // sort: true, |
| | | // isTrue: true, |
| | | // isSearch: true, |
| | | // searchInfoType: 'datetimerange', |
| | | // formatter: this.formatDutyDate |
| | | // } |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'customerPartSpec', |
| | | label: 'è§æ ¼åå·', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'returnStatus', |
| | | label: 'å忣æ¬ç¶æ', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'originalContractStatus', |
| | | label: 'æ£æ¬ç¶æ', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'salesMan', |
| | | label: 'ä¸å¡å', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | width: '120', |
| | | prop: 'deliveryDate', |
| | | label: '交货æ¶é´', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'datetimerange', |
| | | formatter: this.formatDutyDate |
| | | }, |
| | | ], |
| | | toolbar: [], |
| | | operator: [ |
| | | { |
| | | text: '订å说æ', |
| | | type: 'text', |
| | | size: 'small', |
| | | fun: this.openCustomerOrder |
| | | }, |
| | | { |
| | | text: 'æ¥çåºå', |
| | | type: 'text', |
| | | size: 'small', |
| | | fun: this.stockHandle |
| | | }, |
| | | { |
| | | text: 'ç®±ç ä¿¡æ¯å¯¼åº', |
| | | type: 'text', |
| | | size: 'small', |
| | | fun: this.packageExportHandle |
| | | }, |
| | | // { |
| | | // text: '订å说æ', |
| | | // type: 'text', |
| | | // size: 'small', |
| | | // fun: this.openCustomerOrder |
| | | // }, |
| | | // { |
| | | // text: 'æ¥çåºå', |
| | | // type: 'text', |
| | | // size: 'small', |
| | | // fun: this.stockHandle |
| | | // }, |
| | | // { |
| | | // text: 'ç®±ç ä¿¡æ¯å¯¼åº', |
| | | // type: 'text', |
| | | // size: 'small', |
| | | // fun: this.packageExportHandle |
| | | // }, |
| | | { |
| | | text: 'ä½åº', |
| | | type: 'text', |
| | |
| | | operatorConfig: { |
| | | fixed: 'right', |
| | | label: 'æä½', |
| | | width: 260, |
| | | width: 100, |
| | | minWidth: 100 |
| | | } |
| | | }, |
| | |
| | | label: '订åç¼è¾' |
| | | } |
| | | ], |
| | | manufactureAttrList: [{ |
| | | label: 'æ®é', |
| | | value: 'N' |
| | | },{ |
| | | label: 'æ ·å', |
| | | value: 'S' |
| | | },{ |
| | | label: 'ç å', |
| | | value: 'D' |
| | | }], |
| | | isAuditList: [ |
| | | { |
| | | value: '01draft', |
| | |
| | | label: 'éå' |
| | | } |
| | | ], |
| | | sourceIdList: [{ |
| | | label: '忥', |
| | | value: '0' |
| | | },{ |
| | | label: 'æå¨', |
| | | value: '1' |
| | | }], |
| | | stockVisible: false, |
| | | partName: null, |
| | | showPullCustomerOrderVisible: false, |
| | |
| | | ...mapGetters(['permissions']) |
| | | }, |
| | | watch: { |
| | | exportDialogVisible(newVal) { |
| | | if (!newVal) { |
| | | this.$refs.exportForm.resetFields() |
| | | } |
| | | }, |
| | | coState: { |
| | | handler(newValue, oldValue) { |
| | | if (newValue) { |
| | |
| | | this.initQueryParams() |
| | | }, |
| | | created() { |
| | | this.getManufactureAttrs() |
| | | // this.getManufactureAttrs() |
| | | this.getTitles() |
| | | /** |
| | | * { |
| | |
| | | permitArr: [] |
| | | }) |
| | | } |
| | | if (this.permissions.customerorder_ifs_line) { |
| | | this.table.toolbar.push({ |
| | | text: 'è·åERPè¡å·', |
| | | type: 'primary', |
| | | fun: this.pullIfsLineNo, |
| | | disabled: false, |
| | | permitArr: [], |
| | | loading: false |
| | | }) |
| | | } |
| | | // if (this.permissions.customerorder_ifs_line) { |
| | | // this.table.toolbar.push({ |
| | | // text: 'è·åERPè¡å·', |
| | | // type: 'primary', |
| | | // fun: this.pullIfsLineNo, |
| | | // disabled: false, |
| | | // permitArr: [], |
| | | // loading: false |
| | | // }) |
| | | // } |
| | | if (this.permissions.customerorder_submit_oa) { |
| | | this.table.toolbar.push({ |
| | | text: 'æäº¤å®¡æ ¸', |
| | | type: 'primary', |
| | | fun: this.auditCustomerOrder, |
| | | disabled: false, |
| | | permitArr: [], |
| | | loading: false |
| | | }) |
| | | // this.table.toolbar.push({ |
| | | // text: 'æäº¤å®¡æ ¸', |
| | | // type: 'primary', |
| | | // fun: this.auditCustomerOrder, |
| | | // disabled: false, |
| | | // permitArr: [], |
| | | // loading: false |
| | | // }) |
| | | } |
| | | if (this.permissions.customerorder_set_salesparts) { |
| | | this.table.toolbar.push({ |
| | |
| | | queryParam.push( |
| | | Object.assign({ |
| | | prop: 'coState', |
| | | searchInfoType: 'select', |
| | | searchInfoType: 'select' |
| | | // propVal: '01partUnCheck' |
| | | propVal: '02technologyUnCheck' |
| | | // propVal: '02technologyUnCheck' |
| | | }) |
| | | ) |
| | | this.$refs.customerOrderTable.setQueryParam(queryParam) |
| | |
| | | }, |
| | | // å建主ç产计å |
| | | masterPlanHandle() { |
| | | console.log(this.multipleSelection); |
| | | if (this.multipleSelection && this.multipleSelection.length > 0) { |
| | | if (this.judgeCoState(this.multipleSelection)) { |
| | | // 夿ä¸ä¸å©ä½æ°éæ¯å¦å¤§äº0 |
| | | for (let i = 0, len = this.multipleSelection.length; i < len; i++) { |
| | | if ( |
| | | this.multipleSelection[i].buyQtyDue - |
| | | this.multipleSelection[i].requireNumber <= |
| | | 0 |
| | | ) { |
| | | this.$message.error('请éåºåæ°é大äºå·²ä¸åæ°éçéå®è®¢å') |
| | | return |
| | | } |
| | | // if ( |
| | | // this.multipleSelection[i].buyQtyDue - |
| | | // this.multipleSelection[i].requireNumber <= |
| | | // 0 |
| | | // ) { |
| | | // this.$message.error('请éåºåæ°é大äºå·²ä¸åæ°éçéå®è®¢å') |
| | | // return |
| | | // } |
| | | if ( |
| | | !( |
| | | this.multipleSelection[i].isAudit != null && |
| | |
| | | }) |
| | | return cellValue |
| | | }, |
| | | getManufactureAttr(row, column, cellValue) { |
| | | this.manufactureAttrs.forEach((obj) => { |
| | | getSourceId(row, column, cellValue) { |
| | | this.sourceIdList.forEach((obj) => { |
| | | if (obj.value === cellValue) { |
| | | cellValue = obj.label |
| | | } |
| | | }) |
| | | return cellValue |
| | | }, |
| | | getManufactureAttrs() { |
| | | remote('manufacture_attr_type').then((response) => { |
| | | if (response.data.code === 0) { |
| | | this.manufactureAttrs = response.data.data |
| | | } else { |
| | | this.manufactureAttrs = [] |
| | | getManufactureAttr(row, column, cellValue) { |
| | | this.manufactureAttrList.forEach((obj) => { |
| | | if (obj.value === cellValue) { |
| | | cellValue = obj.label |
| | | } |
| | | }) |
| | | return cellValue |
| | | }, |
| | | // getManufactureAttrs() { |
| | | // remote('manufacture_attr_type').then((response) => { |
| | | // if (response.data.code === 0) { |
| | | // this.manufactureAttrs = response.data.data |
| | | // } else { |
| | | // this.manufactureAttrs = [] |
| | | // } |
| | | // }) |
| | | // }, |
| | | getTitles() { |
| | | remote('order_export_title_type').then((response) => { |
| | | if (response.data.code === 0) { |
| | |
| | | 'åå¨éå®è®¢åå·²å
³èå·¥èºæä»¶ï¼å¦éæ´æ¹ï¼è¯·å
è§£é¤å
³è' |
| | | ) |
| | | } |
| | | if (item.salesPartNo == null || item.salesPartNo === '') { |
| | | if (item.partNo == null || item.partNo === '') { |
| | | status = true |
| | | this.$message.error('åå¨éå®è®¢åæªç»å®éå®ä»¶ï¼è¯·å
ç»å®') |
| | | } |
| | |
| | | // } else { |
| | | // this.$message.error('è¯·éæ©è³å°ä¸æ¡éå®è®¢å') |
| | | // } |
| | | exportCustomerOrder(this.$refs.customerOrderTable.getQueryParam()) |
| | | .then((response) => { |
| | | transform(response) |
| | | }) |
| | | .catch(() => {}) |
| | | this.$refs['exportForm'].validate(valid => { |
| | | if(valid){ |
| | | const exportTime = this.dataForm.exportTime |
| | | let queryParam=this.$refs.customerOrderTable.getQueryParam(); |
| | | queryParam.selectTime = exportTime |
| | | exportCustomerOrder(queryParam) |
| | | .then((response) => { |
| | | transform(response) |
| | | }) |
| | | .catch(() => {}) |
| | | } |
| | | }) |
| | | }, |
| | | setSalesPart() { |
| | | if (this.multipleSelection.length > 0) { |
| | |
| | | this.syncDateVisible = false |
| | | this.table.toolbar.find((e) => e.text === 'è·åéå®è®¢å').loading = true |
| | | |
| | | syncOrder({ |
| | | startTime: this.syncDate[0], |
| | | endTime: this.syncDate[1] |
| | | }) |
| | | .then((res) => { |
| | | this.table.toolbar.find( |
| | | (e) => e.text === 'è·åéå®è®¢å' |
| | | ).loading = false |
| | | const resData = res.data |
| | | if (resData.code === 0) { |
| | | this.$message.success(resData.data) |
| | | this.getData() |
| | | } else { |
| | | this.$message.error('åæ¥å¤±è´¥') |
| | | } |
| | | if (this.dataForm.selectTime != null && this.dataForm.selectTime != '') { |
| | | otcCustomerOrderSync({ |
| | | selectTime: this.dataForm.selectTime, |
| | | pathCode: '1' |
| | | }) |
| | | .catch((e) => { |
| | | this.table.toolbar.find( |
| | | (e) => e.text === 'è·åéå®è®¢å' |
| | | ).loading = false |
| | | this.$forceUpdate() |
| | | }) |
| | | .then((response) => { |
| | | this.table.toolbar.find( |
| | | (e) => e.text === 'è·åéå®è®¢å' |
| | | ).loading = false |
| | | const resData = response.data |
| | | if (resData.code === 0) { |
| | | this.$message.success('æåéå®è®¢åæåï¼' + resData.msg) |
| | | this.dataForm.selectTime = null |
| | | this.$emit('refreshDataList') |
| | | this.getData() |
| | | } else { |
| | | this.$message.success('æåéå®è®¢å失败') |
| | | } |
| | | }) |
| | | .catch((e) => { |
| | | this.table.toolbar.find( |
| | | (e) => e.text === 'è·åéå®è®¢å' |
| | | ).loading = false |
| | | this.$forceUpdate() |
| | | }) |
| | | } else { |
| | | this.table.toolbar.find( |
| | | (e) => e.text === 'è·åéå®è®¢å' |
| | | ).loading = false |
| | | this.$message.error('请å
éæ©æ¥æ') |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | <el-input v-model="dataForm.entityName" placeholder=""></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <!-- <el-col :span="6"> |
| | | <el-form-item label="äºä¸é¨" prop="salesDepartment"> |
| | | <el-input |
| | | v-model="dataForm.salesDepartment" |
| | | placeholder="" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | </el-col> --> |
| | | <el-col :span="6"> |
| | | <el-form-item label="ç份" prop="province"> |
| | | <el-input v-model="dataForm.province" placeholder=""></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="ä¸å¡å" prop="salesMan"> |
| | | <el-input v-model="dataForm.salesMan" placeholder=""></el-input> |
| | | <el-select @change="selsctionSales" v-model="salesSelectData" style="width:100%"> |
| | | <el-option v-for="(item,index) in staffOptions" :key="index" :value="item" :label="item.staffName"/> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="æ£æ¬ç¶æ" prop="originalContractStatus"> |
| | | <el-input |
| | | v-model="dataForm.originalContractStatus" |
| | | placeholder="" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="å忣æ¬ç¶æ" prop="returnStatus"> |
| | | <el-input |
| | | v-model="dataForm.returnStatus" |
| | | placeholder="" |
| | | ></el-input> |
| | | </el-form-item> |
| | |
| | | <el-col :span="6"> |
| | | <el-form-item label="客æ·ç¼ç " prop="customerNo"> |
| | | <el-input v-model="dataForm.customerNo" placeholder=""></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="å忣æ¬ç¶æ" prop="returnStatus"> |
| | | <el-input |
| | | v-model="dataForm.returnStatus" |
| | | placeholder="" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="äº¤è´§æ¥æ" prop="deliveryDate"> |
| | | <el-date-picker |
| | | v-model="dataForm.deliveryDate" |
| | | style="width: 100%" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="订å夿³¨" prop="comment"> |
| | | <el-input |
| | | v-model="dataForm.comment" |
| | | style="width: 100%" |
| | | type="textarea" |
| | | :rows="1" |
| | | > |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | </div> |
| | | |
| | | <el-divider |
| | | ><span style="font-weight:bold;font-size:16px;">订åè¡</span></el-divider |
| | | > |
| | | <div class="l-mes normal-form"> |
| | | <el-divider> |
| | | <span style="font-weight:bold;font-size:16px;">订åè¡</span> |
| | | </el-divider> |
| | | <div> |
| | | <avue-crud ref="crud" |
| | | show-hide="false" |
| | | :option="option" |
| | | :data="tableData"> |
| | | <template slot="partNo" slot-scope="scope"> |
| | | <el-input v-model="scope.row.partNo" placeholder="æ¥è¯¢é¶ä»¶å·" readonly> |
| | | <el-button slot="append" icon="el-icon-search" @click="openPartDialog(scope.row.$index)"></el-button> |
| | | </el-input> |
| | | </template> |
| | | <template slot="otcUnit" slot-scope="scope"> |
| | | <el-select v-model="scope.row.otcUnit" placeholder="è¯·éæ©åä½" style="width: 100%"> |
| | | <el-option |
| | | v-for="item in units" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" /> |
| | | </el-select> |
| | | </template> |
| | | </avue-crud> |
| | | </div> |
| | | <!-- <div class="l-mes normal-form"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="2"> |
| | | <span>é¶ä»¶å·</span> |
| | |
| | | ></el-input> |
| | | </el-col> |
| | | <el-col :span="2"> |
| | | <span>å°åç±»å</span> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-input |
| | | v-model="dataForm.customerOrder.printType" |
| | | placeholder="" |
| | | ></el-input> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="2"> |
| | | <span>å°åè¦æ±</span> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-input |
| | | v-model="dataForm.customerOrder.printingRequirements" |
| | | placeholder="" |
| | | ></el-input> |
| | | </el-col> |
| | | <el-col :span="2"> |
| | | <span>å
è£
è¦æ±</span> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | |
| | | placeholder="" |
| | | ></el-input> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="2"> |
| | | <span>è´¨éè¦æ±</span> |
| | | </el-col> |
| | |
| | | placeholder="" |
| | | ></el-input> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="2"> |
| | | <span>çäº§éæ±è¯´æ</span> |
| | | </el-col> |
| | |
| | | placeholder="" |
| | | ></el-input> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="2"> |
| | | <span>æ¶è´§å°å</span> |
| | | </el-col> |
| | |
| | | placeholder="" |
| | | ></el-input> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="2"> |
| | | <span>ä¸å¡å</span> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-input |
| | | v-model="dataForm.customerOrder.salesmanName" |
| | | placeholder="" |
| | | ></el-input> |
| | | <el-select v-model="dataForm.customerOrder.salesmanName" style="width:100%"> |
| | | <el-option v-for="(item,index) in staffOptions" :key="index" :value="item.staff_no" :label="item.staffName"/> |
| | | </el-select> |
| | | </el-col> |
| | | <el-col :span="2"> |
| | | <span>çé¿è¦æ±</span> |
| | |
| | | placeholder="" |
| | | ></el-input> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="2"> |
| | | <span>夿³¨</span> |
| | | </el-col> |
| | |
| | | placeholder="" |
| | | ></el-input> |
| | | </el-col> |
| | | <el-col :span="2"> |
| | | <span>产åç±»å</span> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-input |
| | | v-model="dataForm.customerOrder.productType" |
| | | placeholder="" |
| | | ></el-input> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </div> --> |
| | | |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="visible = false">åæ¶</el-button> |
| | |
| | | import { remote } from '@/api/admin/dict' |
| | | import PartDialog from '@/views/common/part.vue' |
| | | import { validateSixDecimal } from '@/util/validate' |
| | | import {dateFormat} from '@/util/date' |
| | | import { chooseStaff } from '@/api/admin/productType' |
| | | import { tableOption } from '@/const/crud/customerOrder/customerOrderForm' |
| | | |
| | | export default { |
| | | components: { |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | salesSelectData: null, |
| | | currentSelectRow: 0, |
| | | option: tableOption, |
| | | tableData: [{ |
| | | "$cellEdit": true, |
| | | "$index": 0, |
| | | "partNo": "", |
| | | "customerPartSpec": "", |
| | | "manufactureAttr": "", |
| | | "productName": "", |
| | | "productType": "", |
| | | "otcUnit": "", |
| | | "buyQtyDue": "", |
| | | "shippingAddress": "", |
| | | "remark": "", |
| | | "isTrusted": true |
| | | }], |
| | | staffOptions: [], |
| | | title: '', |
| | | isFullScreen: false, |
| | | visible: false, |
| | | buttonDisable: false, |
| | | showPart: false, |
| | | dataForm: { |
| | | id: 0, |
| | | contractNo: null, |
| | | customerName: null, |
| | | entityName: null, |
| | | salesDepartment: null, |
| | | province: null, |
| | | salesMan: null, |
| | | originalContractStatus: null, |
| | | isCp: null, |
| | | customerNo: null, |
| | | returnStatus: null, |
| | | placeOrderDate: null, |
| | | customerOrderVOList: [], |
| | | deliveryDate: null, |
| | | entityName: null, |
| | | factoryPlaceOrderDate: null, |
| | | customerOrder: { |
| | | partNo: null, |
| | | unit: null, |
| | | buyQtyDue: null, |
| | | voltAgeClass: null, |
| | | productName: null, |
| | | manufactureAttr: 'S', |
| | | outerColor: null, |
| | | customerPartSpec: null, |
| | | printType: null, |
| | | printingRequirements: null, |
| | | packageRequire: null, |
| | | qualityRequire: null, |
| | | otherProductRequire: null, |
| | | divisionSystem: null, |
| | | shippingAddress: null, |
| | | salesmanName: null, |
| | | lengthRequirement: null, |
| | | remark: null |
| | | } |
| | | salesDepartment: null, |
| | | isCp: null, |
| | | originalContractStatus: null, |
| | | placeOrderDate: null, |
| | | province: null, |
| | | returnStatus: null, |
| | | salesMan: null, |
| | | salerWorkCode: null, |
| | | comment: null |
| | | }, |
| | | dataRule: {}, |
| | | units: [], |
| | |
| | | mounted: function() { |
| | | this.getDicUnit('unit') // è·ååä½ |
| | | this.getManufactureAttrs('manufacture_attr_type') |
| | | this.getStaffOptions(); |
| | | }, |
| | | methods: { |
| | | selsctionSales(data){ |
| | | this.dataForm.salesMan = data.staffName |
| | | this.dataForm.salerWorkCode = data.staffNo |
| | | }, |
| | | getStaffOptions(){ |
| | | chooseStaff().then((response)=>{ |
| | | this.staffOptions = response.data.data |
| | | }) |
| | | }, |
| | | init(id) { |
| | | this.initDataForm() |
| | | this.visible = true |
| | |
| | | }) |
| | | }, |
| | | initDataForm() { |
| | | this.dataForm.id = 0 |
| | | this.dataForm.contractNo = null |
| | | this.dataForm.customerName = null |
| | | this.dataForm.entityName = null |
| | | this.dataForm.salesDepartment = null |
| | | this.dataForm.province = null |
| | | this.dataForm.salesMan = null |
| | | this.dataForm.originalContractStatus = null |
| | | this.dataForm.isCp = null |
| | | this.dataForm.customerNo = null |
| | | this.dataForm.returnStatus = null |
| | | this.dataForm.placeOrderDate = null |
| | | this.dataForm.factoryPlaceOrderDate = null |
| | | this.dataForm.customerOrder.partNo = null |
| | | this.dataForm.customerOrder.unit = null |
| | | this.dataForm.customerOrder.buyQtyDue = null |
| | | this.dataForm.customerOrder.voltAgeClass = null |
| | | this.dataForm.customerOrder.productName = null |
| | | this.dataForm.customerOrder.manufactureAttr = 'S' |
| | | this.dataForm.customerOrder.outerColor = null |
| | | this.dataForm.customerOrder.customerPartSpec = null |
| | | this.dataForm.customerOrder.printType = null |
| | | this.dataForm.customerOrder.printingRequirements = null |
| | | this.dataForm.customerOrder.packageRequire = null |
| | | this.dataForm.customerOrder.qualityRequire = null |
| | | this.dataForm.customerOrder.otherProductRequire = null |
| | | this.dataForm.customerOrder.divisionSystem = null |
| | | this.dataForm.customerOrder.shippingAddress = null |
| | | this.dataForm.customerOrder.salesmanName = null |
| | | this.dataForm.customerOrder.lengthRequirement = null |
| | | this.dataForm.customerOrder.remark = null |
| | | this.dataForm.placeOrderDate = dateFormat(new Date(),'yyyy-MM-dd hh:mm:ss') |
| | | this.dataForm.factoryPlaceOrderDate = dateFormat(new Date(),'yyyy-MM-dd hh:mm:ss') |
| | | this.dataForm.deliveryDate = null |
| | | this.dataForm.comment = null |
| | | this.dataForm.customerOrderVOList = [{ |
| | | "$cellEdit": true, |
| | | "$index": 0, |
| | | "partNo": "", |
| | | "customerPartSpec": "", |
| | | "manufactureAttr": "", |
| | | "productName": "", |
| | | "productType": "", |
| | | "otcUnit": "", |
| | | "buyQtyDue": "", |
| | | "shippingAddress": "", |
| | | "remark": "", |
| | | "isTrusted": true |
| | | }] |
| | | }, |
| | | // 表åæäº¤ |
| | | dataFormSubmit() { |
| | | this.buttonDisable = true |
| | | this.$refs.dataForm.validate((valid) => { |
| | | this.dataForm.customerOrderVOList = this.tableData |
| | | if (valid) { |
| | | addObj(this.dataForm) |
| | | .then((data) => { |
| | | this.$message.success('æ·»å æå') |
| | | this.initDataForm(); |
| | | this.visible = false |
| | | this.buttonDisable = false |
| | | this.$emit('refreshDataList', 1) |
| | |
| | | }) |
| | | }, |
| | | // é¶ä»¶éæ© |
| | | openPartDialog() { |
| | | openPartDialog(index) { |
| | | this.currentSelectRow = index |
| | | this.showPart = true |
| | | }, |
| | | selectPart(part) { |
| | | console.log(part); |
| | | const index = this.currentSelectRow |
| | | if (part) { |
| | | this.dataForm.customerOrder.partNo = part.partNo |
| | | this.tableData[index].partNo = part.partNo |
| | | this.tableData[index].customerPartSpec = part.specs |
| | | this.tableData[index].productName = part.partName |
| | | } |
| | | }, |
| | | // å
¨å± |
| | |
| | | width="120px" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-form-item>{{ scope.row.customerOrderNo }}</el-form-item> |
| | | <el-form-item>{{ scope.row.contractNo }}</el-form-item> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-form-item class="inline-el-hidden">{{ |
| | | scope.row.partName |
| | | scope.row.productName |
| | | }}</el-form-item> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | width="60px" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.unit }}</span> |
| | | <span>{{ scope.row.otcUnit }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | |
| | | width="160px" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-form-item>{{ scope.row.wantedDeliveryDate }}</el-form-item> |
| | | <el-form-item>{{ scope.row.deliveryDate }}</el-form-item> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | |
| | | > |
| | | </el-dropdown-menu> |
| | | </el-dropdown> |
| | | <el-button |
| | | <!-- <el-button |
| | | v-if="permissions.manufacturingorder_orderto_ifs" |
| | | @click="commitOrderIfs()" |
| | | type="primary" |
| | |
| | | style="margin-left:10px;" |
| | | :loading="loadingStructIfs" |
| | | >ç©æåæ¥ERP |
| | | </el-button> |
| | | </el-button> --> |
| | | <el-button |
| | | v-if="permissions.manufacturingorder_refresh_ifsorder" |
| | | @click="refreshIfsorder()" |
| | |
| | | sort: true, |
| | | isTrue: true, |
| | | formatter: this.formatState, |
| | | propVal: '01planned', |
| | | propVal: '', |
| | | isSearch: true, |
| | | searchInfoType: 'select', |
| | | optList: () => { |
| | |
| | | </el-dropdown-menu> |
| | | </el-dropdown> |
| | | |
| | | <el-dropdown |
| | | <!-- <el-dropdown |
| | | v-if="permissions.masterproductionschedule_doc_relate" |
| | | @command="documentHandle" |
| | | style="margin-left: 10px" |
| | |
| | | {{ item.label }} |
| | | </el-dropdown-item> |
| | | </el-dropdown-menu> |
| | | </el-dropdown> |
| | | </el-dropdown> --> |
| | | <!--å®¡æ ¸ç¶ææ¹å--> |
| | | <el-dropdown |
| | | v-if="permissions.masterproductionschedule_audit_change" |
| | |
| | | :loading="loadingOa" |
| | | >æäº¤OA |
| | | </el-button> |
| | | <el-button |
| | | <!-- <el-button |
| | | v-if="permissions.masterproductionschedule_sync_scm" |
| | | @click="syncScm()" |
| | | type="primary" |
| | |
| | | type="primary" |
| | | style="margin-left:10px;" |
| | | >SCMç¶æåæ´ |
| | | </el-button> |
| | | </el-button> --> |
| | | </template> |
| | | </ttable> |
| | | |
| | |
| | | size: 'small', |
| | | fun: this.customReserved |
| | | }, |
| | | { |
| | | text: 'æ¥çåºå', |
| | | type: 'text', |
| | | size: 'small', |
| | | fun: this.stockHandle |
| | | }, |
| | | // { |
| | | // text: 'æ¥çåºå', |
| | | // type: 'text', |
| | | // size: 'small', |
| | | // fun: this.stockHandle |
| | | // }, |
| | | { |
| | | text: 'æ¥æº', |
| | | type: 'text', |
| | |
| | | * é
ç½®åè: |
| | | * https://cli.vuejs.org/zh/config/ |
| | | */ |
| | | const url = 'http://192.168.32.45:9999' |
| | | const url = 'http://192.168.83.249:9999' |
| | | const localUrl = 'http://localhost:8089' |
| | | //const localUrl = 'http://10.88.15.95:8089' |
| | | const CompressionWebpackPlugin = require('compression-webpack-plugin') |