src/api/admin/productType.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/const/crud/admin/productType.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/const/crud/admin/user.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/page/index/logo.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/admin/productType/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/plan/customerorder/customerorder-form.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/plan/customerorder/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/plan/manufacturingorder/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/plan/masterproductionschedule/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
vue.config.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/api/admin/productType.js
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,49 @@ /* * 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', }) } src/const/crud/admin/productType.js
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,39 @@ /* * 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, }] } src/const/crud/admin/user.js
@@ -125,7 +125,7 @@ rules: [{ required: true, message: 'è¯·éæ©è§è²', trigger: 'blur' trigger: 'change' }] }, { label: 'ç¶æ', @@ -137,7 +137,7 @@ rules: [{ required: true, message: 'è¯·éæ©ç¶æ', trigger: 'blur' trigger: 'change' }], dicData: [{ label: 'ææ', src/page/index/logo.vue
@@ -11,7 +11,7 @@ style="width: 220px;" src="/images/Sun-Mes-Logo-Normal.png" /></span>--> <div key="1" style="width:220px;height:60px;background-color:#875a7b;position: relative;"> <div key="2" style="width:220px;height:60px;background-color:#875a7b;position: relative;"> <!-- <el-image v-if="logSrc != null" style="width:200px;position: absolute;" src/views/admin/productType/index.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,205 @@ <!-- - 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.$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> src/views/plan/customerorder/customerorder-form.vue
@@ -88,7 +88,7 @@ </el-col> </el-row> <el-row> <el-col :span="6"> <!-- <el-col :span="6"> <el-form-item label="客æ·çé¶ä»¶å·" prop="customerPartNo"> <el-input v-model="dataForm.customerPartNo" @@ -96,7 +96,7 @@ disabled ></el-input> </el-form-item> </el-col> </el-col> --> <!-- <el-col :span="6">--> <!-- <el-form-item label="IFSè¡å·" prop="ifsLineNo">--> <!-- <el-input--> @@ -125,7 +125,7 @@ </el-select> </el-form-item> </el-col> <el-col :span="6"> <!-- <el-col :span="6"> <el-form-item label="è¡å·" prop="coLineNo"> <el-input v-model="dataForm.coLineNo" @@ -133,8 +133,8 @@ :disabled="!ediSource" ></el-input> </el-form-item> </el-col> <el-col :span="6"> </el-col> --> <!-- <el-col :span="6"> <el-form-item label="客æ·çé¶ä»¶è§æ ¼" prop="customerPartName"> <el-input v-model="dataForm.customerPartName" @@ -142,7 +142,7 @@ disabled ></el-input> </el-form-item> </el-col> </el-col> --> </el-row> <!-- <el-row>--> @@ -178,7 +178,7 @@ </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="客æ·é¶ä»¶åç§°" prop="productName"> <el-form-item label="产ååç§°" prop="productName"> <el-input v-model="dataForm.productName" placeholder="" @@ -282,7 +282,7 @@ </el-date-picker> </el-form-item> </el-col> <el-col :span="6"> <!-- <el-col :span="6"> <el-form-item label="客æ·é¶ä»¶è§æ ¼" prop="customerPartSpec"> <el-input v-model="dataForm.customerPartSpec" @@ -290,7 +290,7 @@ disabled ></el-input> </el-form-item> </el-col> </el-col> --> <!-- <el-col :span="6">--> <!-- <el-form-item label="äºä¸é¨" prop="division">--> <!-- <el-input--> @@ -302,7 +302,7 @@ <!-- </el-col>--> </el-row> <el-row> <el-col :span="6"> <!-- <el-col :span="6"> <el-form-item label="å°åæ¹å¼" prop="printType"> <el-input v-model="dataForm.printType" @@ -328,7 +328,7 @@ disabled ></el-input> </el-form-item> </el-col> </el-col> --> <el-col :span="6"> <el-form-item label="å è£ è¦æ±" prop="packageRequire"> <el-input @@ -396,7 +396,7 @@ ></el-input> </el-form-item> </el-col> <el-col :span="6"> <!-- <el-col :span="6"> <el-form-item label="æç»å®¢æ·" prop="remark"> <el-input v-model="dataForm.finalCustomerName" @@ -404,8 +404,8 @@ 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.productGroup" @@ -413,7 +413,7 @@ disabled ></el-input> </el-form-item> </el-col> </el-col> --> </el-row> <el-row> <el-col :span="6"> @@ -498,7 +498,7 @@ </el-row> </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> @@ -716,7 +716,7 @@ </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> @@ -815,286 +815,6 @@ </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> src/views/plan/customerorder/index.vue
@@ -64,13 +64,13 @@ > </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 style="margin-left:10px;" type="primary" @@ -1011,24 +1011,24 @@ ], 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', @@ -1227,16 +1227,16 @@ 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: 'æäº¤å®¡æ ¸', @@ -1274,7 +1274,7 @@ prop: 'coState', searchInfoType: 'select', // propVal: '01partUnCheck' propVal: '02technologyUnCheck' // propVal: '02technologyUnCheck' }) ) this.$refs.customerOrderTable.setQueryParam(queryParam) src/views/plan/manufacturingorder/index.vue
@@ -65,7 +65,7 @@ > </el-dropdown-menu> </el-dropdown> <el-button <!-- <el-button v-if="permissions.manufacturingorder_orderto_ifs" @click="commitOrderIfs()" type="primary" @@ -88,7 +88,7 @@ style="margin-left:10px;" :loading="loadingStructIfs" >ç©æåæ¥ERP </el-button> </el-button> --> <el-button v-if="permissions.manufacturingorder_refresh_ifsorder" @click="refreshIfsorder()" src/views/plan/masterproductionschedule/index.vue
@@ -90,7 +90,7 @@ :loading="loadingOa" >æäº¤OA </el-button> <el-button <!-- <el-button v-if="permissions.masterproductionschedule_sync_scm" @click="syncScm()" type="primary" @@ -103,7 +103,7 @@ type="primary" style="margin-left:10px;" >SCMç¶æåæ´ </el-button> </el-button> --> </template> </ttable> vue.config.js
@@ -2,7 +2,7 @@ * é ç½®åè: * https://cli.vuejs.org/zh/config/ */ const url = 'http://ztt-gateway:9999' const url = 'http://192.168.0.23:9999' const localUrl = 'http://localhost:8089' //const localUrl = 'http://10.88.15.95:8089' const CompressionWebpackPlugin = require('compression-webpack-plugin')