From d7a8405c0f57f8947f971b798d3e4713a8d1800f Mon Sep 17 00:00:00 2001 From: zhaowei <zhaowei> Date: 星期四, 15 五月 2025 16:49:39 +0800 Subject: [PATCH] 1、利用率分段分析页面增加导出功能,默认进入页面的计算时间段修改为00:00至23:59 2、设备管理页面增加设备属性的维护(普通、重点)同时TEEP页面新增对应筛选条件 3、看板增加MES产量数据展示(饼图里面改为设备产量对比,饼图下方增加两行展示计划量和完成量数目,点击饼图出现弹窗展示对应车间或车间工段下产量列表)2h 4、设备管理页面新增字段展示权限(弹窗中设备状态字段增加菜单按钮权限控制显隐) 5、OEE计算弹窗新增loading提示与计算成功后刷新列表功能 6、删除用户管理冗余字段展示 --- src/views/mdc/base/modules/WorkshopSignage/WorkshopDeviceOverview.vue | 51 +++ src/views/mdc/base/EquipmentList.vue | 6 src/views/mdc/base/modules/EquipmentList/UserModal.vue | 407 ++++++++++++++------------ src/views/system/UserList.vue | 48 -- src/views/mdc/base/WorkshopSignage.vue | 19 src/views/system/modules/UserModal.vue | 5 src/views/mdc/base/modules/OEEAnalysis/OEEAnalysisList.vue | 2 src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue | 5 src/views/mdc/base/modules/OEEAnalysis/ComputeOeeModal.vue | 36 + src/views/mdc/base/modules/OpenRateFractionAnalysis/OpenRateFractionAnalysisMain.vue | 25 + src/views/mdc/base/modules/WorkshopSignage/SignageModal.vue | 242 ++++++++++++++++ src/api/signage.js | 6 12 files changed, 591 insertions(+), 261 deletions(-) diff --git a/src/api/signage.js b/src/api/signage.js index b67808a..2cc4dc3 100644 --- a/src/api/signage.js +++ b/src/api/signage.js @@ -24,5 +24,9 @@ // 缂栬緫杞﹂棿淇℃伅 editWorkshopApi: params => putAction('/mdc/mdcWorkshopInfo/edit', params), // 鑾峰彇浜岀骇杞﹂棿淇℃伅 - getWorkshopListApi: () => getAction('/mdc/mdcWorkshopInfo/getProductionList') + getWorkshopListApi: () => getAction('/mdc/mdcWorkshopInfo/getProductionList'), + // 鑾峰彇杞﹂棿涓嬪伐娈靛垪琛� + getSectionListApi: productionId => getAction('/mdc/largeScreen/productionList', { productionId }), + // 鑾峰彇杞﹂棿mes浜ч噺鍒楄〃 + getMesProductionListApi: params => getAction('/mdc/mdcEquipmentOverFla/list', params) } \ No newline at end of file diff --git a/src/views/mdc/base/EquipmentList.vue b/src/views/mdc/base/EquipmentList.vue index 8af88e6..2c93341 100644 --- a/src/views/mdc/base/EquipmentList.vue +++ b/src/views/mdc/base/EquipmentList.vue @@ -280,6 +280,12 @@ dataIndex:'equipmentStatus_dictText' }, { + title:'璁惧灞炴��', + align:'center', + width: 100, + dataIndex:'attribute_dicText' + }, + { title: '鏈哄簥IP', align: 'center', width: 150, diff --git a/src/views/mdc/base/WorkshopSignage.vue b/src/views/mdc/base/WorkshopSignage.vue index 7a124a2..c6042b2 100644 --- a/src/views/mdc/base/WorkshopSignage.vue +++ b/src/views/mdc/base/WorkshopSignage.vue @@ -5,7 +5,8 @@ <div class="left-col"> <div class="col-content"> <div class="content-title">{{workshopDetails.workshopName}}#璁惧鎯呭喌</div> - <workshop-device-overview ref="workshopDeviceOverviewRef" :currentProductionId="currentProductionId" + <workshop-device-overview ref="workshopDeviceOverviewRef" :workshopName="workshopDetails.workshopName" + :currentProductionId="currentProductionId" :equipmentStatusList="equipmentStatusList" :toDecimal2NoZero="toDecimal2NoZero"/> </div> <div class="col-content"> @@ -208,15 +209,15 @@ padding: 1% 5%; } - .content-footer-container { - height: 25%; + /*.content-footer-container {*/ + /*height: 25%;*/ - .content-footer { - font-size: 0.7vw; - padding-left: 5%; - height: 40%; - } - } + /*.content-footer {*/ + /*font-size: 0.7vw;*/ + /*padding-left: 5%;*/ + /*height: 40%;*/ + /*}*/ + /*}*/ .chart-container { flex: 1; diff --git a/src/views/mdc/base/modules/EquipmentList/UserModal.vue b/src/views/mdc/base/modules/EquipmentList/UserModal.vue index bc14e33..088ba27 100644 --- a/src/views/mdc/base/modules/EquipmentList/UserModal.vue +++ b/src/views/mdc/base/modules/EquipmentList/UserModal.vue @@ -19,17 +19,18 @@ </template> <a-spin :spinning="confirmLoading"> - <a-form-model ref="form" :form="form" :model="model" :rules="validatorRules"> + <a-form-model ref="form" :form="form" :model="model" :rules="validatorRules" :labelCol="labelCol" + :wrapperCol="wrapperCol"> <a-row :gutter="24"> <a-col :span="12"> - <a-form-model-item label="缁熶竴缂栫爜" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentId"> + <a-form-model-item label="缁熶竴缂栫爜" prop="equipmentId"> <a-input-search :readOnly="true" v-model="model.equipmentId" - :disabled="disSearch" @search="deviceSearch" enter-button placeholder='璇烽�夋嫨缁熶竴缂栫爜' /> + :disabled="disSearch" @search="deviceSearch" enter-button placeholder='璇烽�夋嫨缁熶竴缂栫爜'/> </a-form-model-item> </a-col> <a-col :span="12"> - <a-form-model-item label="璁惧鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-form-model-item label="璁惧鍚嶇О"> <a-input :disabled="disSearch" :readOnly="disableSubmit" allow-clear placeholder="璇疯緭鍏ヨ澶囧悕绉�" v-model="model.equipmentName"/> </a-form-model-item> @@ -38,11 +39,13 @@ <a-row :gutter="24"> <a-col :span="12"> - <a-form-model-item v-if="isDepartType == 0" label="閮ㄩ棬鍒嗛厤" :labelCol="labelCol" :wrapperCol="wrapperCol" v-show="!departDisabled"> - <j-select-equipment-depart :disabled="disableSubmit" v-model="model.selectedDeparts" :multi="false" @back="backDepartInfo" :backDepart="true" :treeOpera="true"></j-select-equipment-depart> + <a-form-model-item v-if="isDepartType == 0" label="閮ㄩ棬鍒嗛厤" v-show="!departDisabled"> + <j-select-equipment-depart :disabled="disableSubmit" v-model="model.selectedDeparts" :multi="false" + @back="backDepartInfo" :backDepart="true" + :treeOpera="true"></j-select-equipment-depart> </a-form-model-item> - <a-form-model-item v-if="isDepartType == -1" label="璁惧绫诲瀷" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-form-model-item v-if="isDepartType == -1" label="璁惧绫诲瀷"> <a-select :disabled="disableSubmit" :readOnly="disableSubmit" placeholder="璇烽�夋嫨璁惧绫诲瀷" :triggerChange="true" v-model="model.equipmentType"> @@ -53,23 +56,26 @@ </a-form-model-item> </a-col> <a-col :span="12"> - <a-form-model-item label="杞﹂棿鍒嗛厤" :labelCol="labelCol" :wrapperCol="wrapperCol" v-show="!productionDisabled" ref="selectedProduction" prop="selectedProduction"> + <a-form-model-item label="杞﹂棿鍒嗛厤" v-show="!productionDisabled" ref="selectedProduction" + prop="selectedProduction"> <!--<j-select-equipment-production v-decorator="['selectedProduction',{rules:[{required:true,message:'璇烽�夋嫨杞﹂棿!'}]}]" :multi="false" @back="backProductionInfo" :backProduction="true" :treeProductOpera="true"></j-select-equipment-production>--> - <j-select-equipment-production :disabled="disableSubmit" v-model="model.selectedProduction" :multi="false" @back="backProductionInfo" :backProduction="true" :treeProductOpera="true"></j-select-equipment-production> + <j-select-equipment-production :disabled="disableSubmit" v-model="model.selectedProduction" :multi="false" + @back="backProductionInfo" :backProduction="true" + :treeProductOpera="true"></j-select-equipment-production> </a-form-model-item> </a-col> </a-row> <a-row :gutter="24"> <a-col :span="12"> - <a-form-model-item v-if="isDepartType == 0" label="璁惧绫诲瀷" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <a-select :disabled="disableSubmit" :readOnly="disableSubmit" placeholder="璇烽�夋嫨璁惧绫诲瀷" - :triggerChange="true" - v-model="model.equipmentType"> - <a-select-option v-for='item in selectList' :key='item.id' :value='item.equipmentTypeName'> - {{item.equipmentTypeName}} - </a-select-option> - </a-select> + <a-form-model-item v-if="isDepartType == 0" label="璁惧绫诲瀷"> + <a-select :disabled="disableSubmit" :readOnly="disableSubmit" placeholder="璇烽�夋嫨璁惧绫诲瀷" + :triggerChange="true" + v-model="model.equipmentType"> + <a-select-option v-for='item in selectList' :key='item.id' :value='item.equipmentTypeName'> + {{item.equipmentTypeName}} + </a-select-option> + </a-select> </a-form-model-item> </a-col> @@ -77,13 +83,13 @@ <a-row :gutter="24"> <a-col :span="12"> - <a-form-model-item label="鏈哄簥IP" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-form-model-item label="鏈哄簥IP"> <a-input :disabled="true" :readOnly="disableSubmit" placeholder="璇疯緭鍏ユ満搴奍P" v-model="model.equipmentIp"/> </a-form-model-item> </a-col> <a-col :span="12"> - <a-form-model-item label="鏈哄簥绔彛" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-form-model-item label="鏈哄簥绔彛"> <a-input :disabled="true" :readOnly="disableSubmit" placeholder="璇疯緭鍏ユ満搴婄鍙�" v-model="model.dataPort"/> </a-form-model-item> @@ -92,14 +98,14 @@ <a-row :gutter="24"> <a-col :span="12"> - <a-form-model-item label="椹卞姩绫诲瀷" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-form-model-item label="椹卞姩绫诲瀷"> <j-dict-select-tag :disabled="true" :readOnly="disableSubmit" placeholder="璇烽�夋嫨椹卞姩绫诲瀷" :triggerChange="true" dictCode="mdc_driveType" v-model="model.driveType" allow-clear/> </a-form-model-item> </a-col> <a-col :span="12"> - <a-form-model-item label="璁惧鍨嬪彿" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-form-model-item label="璁惧鍨嬪彿"> <a-input :disabled="true" :readOnly="disableSubmit" allow-clear placeholder="璇疯緭鍏ヨ澶囧瀷鍙�" v-model="model.equipmentModel"/> </a-form-model-item> @@ -108,20 +114,28 @@ <a-row :gutter="24"> <a-col :span="12"> - <a-form-model-item label="绯荤粺绫诲瀷" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <j-dict-select-tag placeholder="璇烽�夋嫨绯荤粺绫诲瀷" :triggerChange="true" dictCode="system_type" v-model="model.systemType" allow-clear/> + <a-form-model-item label="绯荤粺绫诲瀷"> + <j-dict-select-tag placeholder="璇烽�夋嫨绯荤粺绫诲瀷" :triggerChange="true" dictCode="system_type" + v-model="model.systemType" allow-clear/> </a-form-model-item> </a-col> <a-col :span="12"> - <a-form-model-item label="璁惧鐘舵��" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <j-dict-select-tag placeholder="璇烽�夋嫨璁惧鐘舵��" :triggerChange="true" dictCode="mdc_equipment_status" v-model="model.equipmentStatus" allow-clear/> + <a-form-model-item label="璁惧鐘舵��"> + <j-dict-select-tag placeholder="璇烽�夋嫨璁惧鐘舵��" :triggerChange="true" dictCode="mdc_equipment_status" + v-model="model.equipmentStatus" allow-clear/> </a-form-model-item> </a-col> </a-row> <a-row :gutter="24"> + <a-col :span="12" v-has="'equipment_attribute'"> + <a-form-model-item label="璁惧灞炴��"> + <j-dict-select-tag v-model="model.attribute" type="radio" + dictCode="equipment_attribute"/> + </a-form-model-item> + </a-col> <a-col :span="12"> - <a-form-model-item label="鎺掑簭" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-form-model-item label="鎺掑簭"> <a-input :disabled="disableSubmit" :readOnly="disableSubmit" placeholder="璇疯緭鍏ユ帓搴�" v-model="model.sortNo" style="width: 100%"/> </a-form-model-item> @@ -130,7 +144,7 @@ <a-row :gutter="24"> <a-col :span="24"> - <a-form-model-item :labelCol="{span:3}" :wrapperCol="{span:21}" label="澶囨敞"> + <a-form-model-item :labelCol="{span:4}" :wrapperCol="{span:19}" label="澶囨敞"> <a-textarea :disabled="disableSubmit" :readOnly="disableSubmit" placeholder="璇疯緭鍏ュ娉�" v-model="model.remark"/> </a-form-model-item> @@ -155,117 +169,118 @@ import pick from 'lodash.pick' import moment from 'moment' import Vue from 'vue' - import { ACCESS_TOKEN } from "@/store/mutation-types" + import { ACCESS_TOKEN } from '@/store/mutation-types' import { getAction } from '@/api/manage' - import { addEquipment,editEquipment} from '@/api/api' - import { disabledAuthFilter } from "@/utils/authFilter" + import { addEquipment, editEquipment } from '@/api/api' + import { disabledAuthFilter } from '@/utils/authFilter' import { duplicateCheck } from '@/api/api' import JSelectEquipmentProduction from '../../../../../components/jeecgbiz/JSelectEquipmentProduction' import JSelectProduction from '../../../../../components/jeecgbiz/JSelectProduction' import DeviceListModel from './DeviceListModal' import JSelectEquipmentDepart from '../../../../../components/jeecgbiz/JSelectEquipmentDepart' - import {mapActions} from 'vuex' + import { mapActions } from 'vuex' + export default { - name: "UserModal", + name: 'UserModal', components: { JSelectProduction, JSelectEquipmentDepart, JSelectEquipmentProduction, DeviceListModel }, - data () { + data() { return { - disSearch:false, + disSearch: false, departDisabled: false, //鏄惁鏄垜鐨勯儴闂ㄨ皟鐢ㄨ椤甸潰 productionDisabled: false, //鏄惁鏄垜鐨勮溅闂磋皟鐢ㄨ椤甸潰 roleDisabled: false, //鏄惁鏄鑹茬淮鎶よ皟鐢ㄨ椤甸潰 - modalWidth:800, - drawerWidth:700, - modalToggleFlag:true, + modalWidth: 800, + drawerWidth: 700, + modalToggleFlag: true, confirmDirty: false, - userId:"", //淇濆瓨鐢ㄦ埛id + userId: '', //淇濆瓨鐢ㄦ埛id // disableSubmit:false, disableSubmit: true, - dateFormat:"YYYY-MM-DD", + dateFormat: 'YYYY-MM-DD', form: this.$form.createForm(this), - validatorRules:{ + validatorRules: { // equipmentId: [{required: false, message: '璇烽�夋嫨璁惧缂栧彿!'}, {validator: this.validatequipmentId}], equipmentId: [ { - required: true, message: '璇烽�夋嫨璁惧缂栧彿!' - }, + required: true, message: '璇烽�夋嫨璁惧缂栧彿!' + } // { // validator: this.validatequipmentId // } ], - // trigger: 'blur' // 瑙﹀彂鏂瑰紡 + // trigger: 'blur' // 瑙﹀彂鏂瑰紡 selectedProduction: [ { - required:true,message: '璇烽�夋嫨杞﹂棿' + required: true, message: '璇烽�夋嫨杞﹂棿' } ] }, - departIdShow:false, - title:"鎿嶄綔", + departIdShow: false, + title: '鎿嶄綔', visible: false, model: { - equipmentId: "", - equipmentName: "", - equipmentModel: "", - equipmentIp: "", - dataPort: "", - driveType: "", - systemType: "", + equipmentId: '', + equipmentName: '', + equipmentModel: '', + equipmentIp: '', + dataPort: '', + driveType: '', + systemType: '', equipmentStatus: '0', - deviceLevel: "", - deviceCategory: "", + deviceLevel: '', + deviceCategory: '' }, labelCol: { xs: { span: 24 }, - sm: { span: 8 }, + sm: { span: 8 } }, wrapperCol: { xs: { span: 24 }, - sm: { span: 15 }, + sm: { span: 14 } }, - uploadLoading:false, + uploadLoading: false, confirmLoading: false, - headers:{}, + headers: {}, url: { - fileUpload: window._CONFIG['domianURL']+"/sys/common/upload", - userWithDepart: "/mdc/mdcEquipment/equipmentDepartList", // 寮曞叆涓烘寚瀹氱敤鎴锋煡鐪嬮儴闂ㄤ俊鎭渶瑕佺殑url + fileUpload: window._CONFIG['domianURL'] + '/sys/common/upload', + userWithDepart: '/mdc/mdcEquipment/equipmentDepartList', // 寮曞叆涓烘寚瀹氱敤鎴锋煡鐪嬮儴闂ㄤ俊鎭渶瑕佺殑url //寮曞叆涓烘寚瀹氱敤鎴锋煡鐪嬭溅闂翠俊鎭渶瑕佺殑url userProductionList: '/mdc/mdcEquipment/equipmentProductionList', - userId:"/sys/user/generateUserId", // 寮曞叆鐢熸垚娣诲姞鐢ㄦ埛鎯呭喌涓嬬殑url - syncUserByUserName:"/act/process/extActProcess/doSyncUserByUserName",//鍚屾鐢ㄦ埛鍒板伐浣滄祦 + userId: '/sys/user/generateUserId', // 寮曞叆鐢熸垚娣诲姞鐢ㄦ埛鎯呭喌涓嬬殑url + syncUserByUserName: '/act/process/extActProcess/doSyncUserByUserName',//鍚屾鐢ㄦ埛鍒板伐浣滄祦 queryTenantList: '/sys/tenant/queryList', - check:'/sys/duplicate/check', - queryEquipmentType:'/mdc/mdcEquipmentType/queryEquipmentType' + check: '/sys/duplicate/check', + queryEquipmentType: '/mdc/mdcEquipmentType/queryEquipmentType' }, tenantsOptions: [], - rolesOptions:[], - nextDepartOptions:[], - nextProductionOptions:[], - selectList:[], - isDepartType:'' + rolesOptions: [], + nextDepartOptions: [], + nextProductionOptions: [], + selectList: [], + isDepartType: '' } }, - created () { - const token = Vue.ls.get(ACCESS_TOKEN); - this.headers = {"X-Access-Token":token} + created() { + const token = Vue.ls.get(ACCESS_TOKEN) + this.headers = { 'X-Access-Token': token } this.queryGroup() this.queryTreeData() // this.initRoleList() // this.initTenantList() }, - computed:{ - uploadAction:function () { - return this.url.fileUpload; + computed: { + uploadAction: function() { + return this.url.fileUpload } }, methods: { @@ -277,11 +292,11 @@ } else { // this.$message.warn(res.message) this.$notification.warning({ - message:'娑堟伅', - description:res.message - }); + message: '娑堟伅', + description: res.message + }) } - }).finally(() =>{ + }).finally(() => { }) }, queryGroup() { @@ -294,9 +309,9 @@ } else { // this.$message.warning(res.message) this.$notification.warning({ - message:'娑堟伅', - description:res.message - }); + message: '娑堟伅', + description: res.message + }) } }).finally(() => { this.loading = false @@ -304,15 +319,15 @@ }, getDeviceRows(val) { console.log(val) - if(val.equipmentid ){ + if (val.equipmentid) { this.model.equipmentId = val.equipmentid this.model.equipmentName = val.equipmentname - this.model.equipmentModel = val.equipmentmodel - this.model.equipmentIp = val.equipmentip - this.model.dataPort = val.dataport - this.model.driveType = val.drivetype - this.model.controlSystem = val.controlsystem - this.model.saveTableName = val.savetablename + this.model.equipmentModel = val.equipmentmodel + this.model.equipmentIp = val.equipmentip + this.model.dataPort = val.dataport + this.model.driveType = val.drivetype + this.model.controlSystem = val.controlsystem + this.model.saveTableName = val.savetablename } }, @@ -321,63 +336,76 @@ this.$refs.deviceListModel.title = '閫夋嫨璁惧' this.$refs.deviceListModel.disableSubmit = false }, - add () { - this.refresh(); - this.edit({activitiSync:'1',userIdentity:1,equipmentId:"",equipmentName:"",equipmentModel:"",equipmentIp:'',dataPort:"",driveType:"",controlSystem:"",saveTableName:"",equipmentStatus:'0'}); + add() { + this.refresh() + this.edit({ + activitiSync: '1', + userIdentity: 1, + equipmentId: '', + equipmentName: '', + equipmentModel: '', + equipmentIp: '', + dataPort: '', + driveType: '', + controlSystem: '', + saveTableName: '', + equipmentStatus: '0', + attribute: 0 + }) }, - edit (record) { - let that = this; - that.visible = true; + edit(record) { + let that = this + that.visible = true //鏍规嵁灞忓箷瀹藉害鑷�傚簲鎶藉眽瀹藉害 - this.resetScreenSize(); + this.resetScreenSize() // that.userId = record.id; // console.log(record) - that.model = Object.assign({}, record); + that.model = Object.assign({}, record) // that.model = Object.assign({},{selectedroles:'',selectedProduction:''}, record); // this.model = Object.assign({}, record) this.$nextTick(() => { this.form.setFieldsValue(pick(that.model, 'selectedDeparts', 'selectedProduction', 'equipmentId', 'equipmentName', 'equipmentModel', 'equipmentType', 'equipmentIp', 'dataPort', - 'driveType', 'sortNo', 'remark','systemVersion','devicePower','controlSystem','saveTableName')) + 'driveType', 'sortNo', 'remark', 'systemVersion', 'devicePower', 'controlSystem', 'saveTableName')) }) - if(record.hasOwnProperty("id")){ + if (record.hasOwnProperty('id')) { // that.getUserRoles(record.id); - that.getUserDeparts(record.id); + that.getUserDeparts(record.id) } // console.log('that.model=',that.model) }, - isDisabledAuth(code){ - return disabledAuthFilter(code); + isDisabledAuth(code) { + return disabledAuthFilter(code) }, //绐楀彛鏈�澶у寲鍒囨崲 - toggleScreen(){ - if(this.modalToggleFlag){ - this.modalWidth = window.innerWidth; - }else{ - this.modalWidth = 800; + toggleScreen() { + if (this.modalToggleFlag) { + this.modalWidth = window.innerWidth + } else { + this.modalWidth = 800 } - this.modalToggleFlag = !this.modalToggleFlag; + this.modalToggleFlag = !this.modalToggleFlag }, // 鏍规嵁灞忓箷鍙樺寲,璁剧疆鎶藉眽灏哄 - resetScreenSize(){ - let screenWidth = document.body.clientWidth; - if(screenWidth < 500){ - this.drawerWidth = screenWidth; - }else{ - this.drawerWidth = 700; + resetScreenSize() { + let screenWidth = document.body.clientWidth + if (screenWidth < 500) { + this.drawerWidth = screenWidth + } else { + this.drawerWidth = 700 } }, - getUserDeparts(userid){ - let that = this; + getUserDeparts(userid) { + let that = this //閮ㄩ棬鐨剈rl - getAction(that.url.userWithDepart,{equipmentId:userid}).then((res)=>{ - if(res.success){ + getAction(that.url.userWithDepart, { equipmentId: userid }).then((res) => { + if (res.success) { // console.log(res.result) - let departOptions=[]; - let selectDepartKeys=[] + let departOptions = [] + let selectDepartKeys = [] for (let i = 0; i < res.result.length; i++) { - selectDepartKeys.push(res.result[i].key); + selectDepartKeys.push(res.result[i].key) //鏂板璐熻矗閮ㄩ棬閫夋嫨涓嬫媺妗� departOptions.push({ value: res.result[i].key, @@ -385,22 +413,22 @@ }) } - that.model.selectedDeparts = selectDepartKeys.join(",") + that.model.selectedDeparts = selectDepartKeys.join(',') // that.model.selectedProduction = selectDepartKeys.join(",") - that.nextDepartOptions=departOptions; + that.nextDepartOptions = departOptions // console.log('that.nextDepartOptions=',that.nextDepartOptions) } }) - getAction(that.url.userProductionList,{equipmentId:userid}).then((res)=>{ - if(res.success){ + getAction(that.url.userProductionList, { equipmentId: userid }).then((res) => { + if (res.success) { // console.log(res.result) - let ProductionOptions=[]; - let selectProductKeys=[] + let ProductionOptions = [] + let selectProductKeys = [] // console.log(res.result) for (let i = 0; i < res.result.length; i++) { - selectProductKeys.push(res.result[i].key); + selectProductKeys.push(res.result[i].key) //鏂板璐熻矗閮ㄩ棬閫夋嫨涓嬫媺妗� ProductionOptions.push({ value: res.result[i].key, @@ -408,9 +436,9 @@ }) } - that.model.selectedProduction = selectProductKeys.join(",") + that.model.selectedProduction = selectProductKeys.join(',') - that.nextProductionOptions=ProductionOptions; + that.nextProductionOptions = ProductionOptions // console.log('that.nextProductionOptions=',that.nextProductionOptions) } }) @@ -418,106 +446,107 @@ }, backDepartInfo(info) { // console.log(info) - this.model.departIds = this.model.selectedDeparts; - this.nextDepartOptions = info.map((item,index,arr)=>{ - let c = {label:item.text, value: item.value+""} - return c; + this.model.departIds = this.model.selectedDeparts + this.nextDepartOptions = info.map((item, index, arr) => { + let c = { label: item.text, value: item.value + '' } + return c }) }, backProductionInfo(info) { // console.log(info) - this.model.productionIds = this.model.selectedProduction; - this.nextProductionOptions = info.map((item,index,arr)=>{ - let c = {label:item.text, value: item.value+""} - return c; + this.model.productionIds = this.model.selectedProduction + this.nextProductionOptions = info.map((item, index, arr) => { + let c = { label: item.text, value: item.value + '' } + return c }) }, - refresh () { - this.userId="" - this.nextDepartOptions=[]; - this.nextProductionOptions = []; - this.departIdShow=false; - }, - close () { - this.$emit('close'); - this.visible = false; - this.disableSubmit = false; - this.nextDepartOptions=[]; + refresh() { + this.userId = '' + this.nextDepartOptions = [] this.nextProductionOptions = [] - this.departIdShow=false; + this.departIdShow = false + }, + close() { + this.$emit('close') + this.visible = false + this.disableSubmit = false + this.nextDepartOptions = [] + this.nextProductionOptions = [] + this.departIdShow = false // this.$refs.form.resetFields(); }, moment, - handleSubmit () { - const that = this; + handleSubmit() { + const that = this // 瑙﹀彂琛ㄥ崟楠岃瘉 this.$refs.form.validate(valid => { if (valid) { - that.confirmLoading = true; + that.confirmLoading = true //濡傛灉鏄笂绾ф嫨浼犲叆departIds,鍚﹀垯涓虹┖ // if(this.model.userIdentity!==2){ // this.model.departIds=""; // } - let obj; - if(!this.model.id){ - this.model.id = this.userId; - obj=addEquipment(this.model); - }else{ - obj=editEquipment(this.model,{ - id: this.model.id - }); + let obj + if (!this.model.id) { + this.model.id = this.userId + obj = addEquipment(this.model) + } else { + obj = editEquipment(this.model, { + id: this.model.id + }) } - obj.then((res)=>{ - if(res.success){ + obj.then((res) => { + if (res.success) { that.$notification.success({ - message:'娑堟伅', - description:res.message - }); - that.$emit('ok'); - }else{ + message: '娑堟伅', + description: res.message + }) + that.$emit('ok') + } else { that.$notification.warning({ - message:'娑堟伅', - description:res.message - }); + message: '娑堟伅', + description: res.message + }) } }).finally(() => { - that.confirmLoading = false; - that.close(); + that.confirmLoading = false + that.close() }) - }else{ - return false; + } else { + return false } }) }, handleConfirmBlur(e) { - const value = e.target.value; + const value = e.target.value this.confirmDirty = this.confirmDirty || !!value }, - identityChange(e){ - if(e.target.value===1){ - this.departIdShow=false; - }else{ - this.departIdShow=true; + identityChange(e) { + if (e.target.value === 1) { + this.departIdShow = false + } else { + this.departIdShow = true } }, /** * 缂栬緫鎴栨煡鐪嬭鎯呮暟鎹椂娓呴櫎鎶藉眽琛ㄥ崟楠岃瘉 */ - removeValidate(){ + removeValidate() { this.$refs.form.clearValidate() } - }, + } } </script> <style scoped> .avatar-uploader > .ant-upload { - width:104px; - height:104px; + width: 104px; + height: 104px; } + .ant-upload-select-picture-card i { font-size: 49px; color: #999; @@ -528,9 +557,9 @@ color: #666; } - .ant-table-tbody .ant-table-row td{ - padding-top:10px; - padding-bottom:10px; + .ant-table-tbody .ant-table-row td { + padding-top: 10px; + padding-bottom: 10px; } .drawer-bottom-button { diff --git a/src/views/mdc/base/modules/OEEAnalysis/ComputeOeeModal.vue b/src/views/mdc/base/modules/OEEAnalysis/ComputeOeeModal.vue index 1445eee..030dba9 100644 --- a/src/views/mdc/base/modules/OEEAnalysis/ComputeOeeModal.vue +++ b/src/views/mdc/base/modules/OEEAnalysis/ComputeOeeModal.vue @@ -1,17 +1,19 @@ <template> - <a-modal title="璁$畻OEE" :visible="visible" :width="550" @cancel="handleModalClose" @ok="handleComputeOee" - :maskClosable="false"> - <a-form-model :model="model" :labelCol="labelColLong" :wrapperCol="wrapperColLong"> - <a-row> - <a-col :span="24"> - <a-form-model-item label="鏃ユ湡"> - <a-range-picker v-model="dates" style="width: 100%" value-format="YYYY-MM-DD" - @change="dateParamChange"></a-range-picker> - </a-form-model-item> - </a-col> - </a-row> - </a-form-model> - </a-modal> + <j-modal title="璁$畻OEE" :visible="visible" :width="550" @cancel="handleModalClose" @ok="handleComputeOee" + :maskClosable="false" :confirmLoading="confirmLoading"> + <a-spin :spinning="confirmLoading"> + <a-form-model :model="model" :labelCol="labelColLong" :wrapperCol="wrapperColLong"> + <a-row> + <a-col :span="24"> + <a-form-model-item label="鏃ユ湡"> + <a-range-picker v-model="dates" style="width: 100%" value-format="YYYY-MM-DD" + @change="dateParamChange"></a-range-picker> + </a-form-model-item> + </a-col> + </a-row> + </a-form-model> + </a-spin> + </j-modal> </template> <script> @@ -23,6 +25,7 @@ data() { return { visible: false, + confirmLoading: false, model: {}, dates: [], labelColLong: { @@ -46,6 +49,7 @@ return } + this.confirmLoading = true mdcApi.computeOeeApi(this.model) .then(res => { if (res.success) { @@ -53,7 +57,8 @@ message: '娑堟伅', description: res.message }) - this.visible = false + this.$emit('ok') + this.handleModalClose() } else { this.$notification.error({ message: '娑堟伅', @@ -67,6 +72,9 @@ description: '璁$畻澶辫触' }) }) + .finally(() => { + this.confirmLoading = false + }) }, dateParamChange(value1, value2) { diff --git a/src/views/mdc/base/modules/OEEAnalysis/OEEAnalysisList.vue b/src/views/mdc/base/modules/OEEAnalysis/OEEAnalysisList.vue index b09a6a0..df9092d 100644 --- a/src/views/mdc/base/modules/OEEAnalysis/OEEAnalysisList.vue +++ b/src/views/mdc/base/modules/OEEAnalysis/OEEAnalysisList.vue @@ -49,7 +49,7 @@ </a-table> </div> - <ComputeOeeModal ref="computeOeeModalRef"/> + <ComputeOeeModal ref="computeOeeModalRef" @ok="modalFormOk"/> </div> </template> diff --git a/src/views/mdc/base/modules/OpenRateFractionAnalysis/OpenRateFractionAnalysisMain.vue b/src/views/mdc/base/modules/OpenRateFractionAnalysis/OpenRateFractionAnalysisMain.vue index 6972c4b..1ee20b1 100644 --- a/src/views/mdc/base/modules/OpenRateFractionAnalysis/OpenRateFractionAnalysisMain.vue +++ b/src/views/mdc/base/modules/OpenRateFractionAnalysis/OpenRateFractionAnalysisMain.vue @@ -16,8 +16,9 @@ <a-space> <a-time-picker :default-value="moment('00:00', 'HH:mm')" format="HH:mm" @change="onChangeStart" :allowClear="false"/> 鑷� - <a-time-picker :default-value="moment('08:00', 'HH:mm')" format="HH:mm" @change="onChangeEnd" :allowClear="false"/> + <a-time-picker :default-value="moment('23:59', 'HH:mm')" format="HH:mm" @change="onChangeEnd" :allowClear="false"/> <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button> + <a-button type="primary" @click="exportExcel" icon="download">瀵煎嚭</a-button> </a-space> </a-form-item> </a-col> @@ -28,17 +29,16 @@ <a-spin :spinning="loading"> <div id="Efficiency" class="container" style="margin-bottom: 15px;"> <div class="table2"> - <table class="dataContent table" border="1" cellspacing="0" cellpadding="0" - style="white-space: nowrap;text-align: center;"> + <table class="dataContent table" border="1" cellspacing="0" cellpadding="0"> <thead> <tr class="thead fixed equipname"> - <th class="thgu dong1 name" rowspan="2" style="min-width: 150px; max-width: 150px;width: 150px;"> + <th class="thgu dong1 name" style="min-width: 150px; max-width: 150px;width: 150px;"> 璁惧缂栧彿 </th> - <th class="thgu dong2 name" rowspan="2" style="min-width: 162px; max-width: 162px;width: 162px;"> + <th class="thgu dong2 name" style="min-width: 162px; max-width: 162px;width: 162px;"> 璁惧鍚嶇О </th> - <th class="thgu dong3 name" rowspan="2" style="min-width: 100px; max-width: 100px;width: 100px;"> + <th class="thgu dong3 name" style="min-width: 100px; max-width: 100px;width: 100px;"> 璁惧绫诲瀷 </th> <template v-for="(tableHead, index) in tableHeads"> @@ -128,7 +128,7 @@ this.queryParam.startDate = moment(this.dates[0]).format('YYYYMMDD') this.queryParam.endDate = moment(this.dates[1]).format('YYYYMMDD') this.queryParam.startTime = '00:00' - this.queryParam.endTime = '08:00' + this.queryParam.endTime = '23:59' this.queryParam.typeTree = '1' this.loadData1() @@ -183,6 +183,17 @@ }, methods: { moment, + exportExcel() { + $('#Efficiency').table2excel({ + exclude: '.noExl', + name: 'Excel Document Name', + filename: '鍒╃敤鐜囧垎娈靛垎鏋�', + exclude_img: true, + fileext: '.xls', + exclude_links: true, + exclude_inputs: true + }) + }, onChangeStart(time, timeString) { this.queryParam.startTime = timeString // console.log(time, timeString); diff --git a/src/views/mdc/base/modules/WorkshopSignage/SignageModal.vue b/src/views/mdc/base/modules/WorkshopSignage/SignageModal.vue new file mode 100644 index 0000000..022da86 --- /dev/null +++ b/src/views/mdc/base/modules/WorkshopSignage/SignageModal.vue @@ -0,0 +1,242 @@ +<template> + <a-modal :title="modalTitle" :width="modalWidth" :visible="visible" :footer="null" @cancel="visible=false" + destroyOnClose> + <a-form layout="inline" @keyup.enter.native="loadData(1)"> + <a-form-item label="宸ユ"> + <a-select default-value="" style="width: 200px" @select="handleSelectChange"> + <a-select-option key="">鍏ㄩ儴</a-select-option> + <a-select-option v-for="item in selectList" :key="item.id">{{item.productionName}}</a-select-option> + </a-select> + </a-form-item> + <a-form-item> + <a-button type="primary" @click="loadData(1)">鏌ヨ</a-button> + </a-form-item> + </a-form> + <a-table :columns="columns" :dataSource="dataSource" :pagination="ipagination" :loading="loading" + @change="handleTableChange" style="margin-top: 20px" rowKey="id"> + <template slot="qualifiedStatus" slot-scope="text, record"> + <span :style="{color:text==='鏈畬鎴�'?'#f00':'#89D961',fontWeight:'bold'}">{{text}}</span> + </template> + </a-table> + </a-modal> +</template> + +<script> + import signageApi from '@/api/signage' + import { filterObj } from '@/utils/util' + + export default { + name: 'SignageModal', + components: {}, + props: { + modalWidth: { + type: Number, + default: 1048 + }, + modalTitle: { + type: String + }, + productionId: { + type: String + } + }, + watch: { + visible: { + handler(newVal) { + // 鎵撳紑寮圭獥鏃舵暟鎹洖鍒扮涓�椤典笖姣忛〉鏄剧ず鏈�澶ф潯鏁版仮澶嶄负鏈�灏忓�� + if (newVal) { + this.getSectionListByApi() + this.searchReset() + this.ipagination.pageSize = +this.ipagination.pageSizeOptions[0] + } + } + } + }, + data() { + return { + visible: false, + selectList: [], + queryParam: {}, + loading: false, + /* 鍒嗛〉鍙傛暟 */ + ipagination: { + current: 1, + pageSize: 10, + pageSizeOptions: ['10', '20', '30'], + showTotal: (total, range) => { + return range[0] + '-' + range[1] + ' 鍏�' + total + '鏉�' + }, + showQuickJumper: true, + showSizeChanger: true, + total: 0 + }, + dataSource: [], + columns: [ + { + align: 'center', + title: '宸ュ巶鍚嶇О', + dataIndex: 'workshop', + key: 'workshop' + }, + { + align: 'center', + title: '宸ユ鍚嶇О', + dataIndex: 'dept', + key: 'dept' + }, + { + align: 'center', + title: '闆朵欢缂栧彿', + dataIndex: 'mdsItemCode', + key: 'mdsItemCode' + }, + { + align: 'center', + title: '涓嬭揪浠诲姟閲�', + key: 'batchNum', + dataIndex: 'batchNum' + }, + { + align: 'center', + title: '瀹屾垚浠诲姟閲�', + key: 'qualifiedQty', + dataIndex: 'qualifiedQty' + }, + { + align: 'center', + title: '瀹屾垚鐧惧垎姣�', + key: 'qualifiedRate', + dataIndex: 'qualifiedRate' + }, + { + align: 'center', + title: '鏄惁瀹屾垚', + key: 'qualifiedStatus', + dataIndex: 'qualifiedStatus', + scopedSlots: { customRender: 'qualifiedStatus' } + } + ] + } + }, + methods: { + // 鑾峰彇杞﹂棿瀵瑰簲宸ユ鍒楄〃 + getSectionListByApi() { + const that = this + signageApi.getSectionListApi(this.productionId) + .then(res => { + console.log('res--------', res) + if (res.success) that.selectList = res.result + }) + }, + + loadData(arg) { + //鍔犺浇鏁版嵁 鑻ヤ紶鍏ュ弬鏁�1鍒欏姞杞界涓�椤电殑鍐呭 + if (arg === 1) this.ipagination.current = 1 + const params = this.getQueryParams()//鏌ヨ鏉′欢 + params.productionId = this.productionId + if (!params) return false + this.loading = true + signageApi.getMesProductionListApi(params) + .then((res) => { + if (res.success) { + this.dataSource = res.result.records || res.result + if (res.result.total) { + this.ipagination.total = res.result.total + } else { + this.ipagination.total = 0 + } + } else { + this.$message.warning(res.message) + } + }) + .finally(() => { + this.loading = false + }) + }, + + /** + * 宸ユ閫夋嫨鍙樺寲鏃惰Е鍙� + * @param value 閫夋嫨鍚巏ey + */ + handleSelectChange(value) { + this.queryParam.proChildId = value + }, + + getQueryParams() { + //鑾峰彇鏌ヨ鏉′欢 + let sqp = {} + const param = Object.assign(sqp, this.queryParam, this.isorter, this.filters) + param.field = this.getQueryField() + param.pageNo = this.ipagination.current + param.pageSize = this.ipagination.pageSize + return filterObj(param) + }, + + getQueryField() { + let str = 'id,' + this.columns.forEach(function(value) { + str += ',' + value.dataIndex + }) + return str + }, + + searchReset() { + this.queryParam = {} + this.dataSource = [] + this.loadData(1) + }, + + /** + * 鍒嗛〉鍙樺寲鏃惰Е鍙� + * @param pagination 鍒嗛〉鍙傛暟 + */ + handleTableChange(pagination) { + this.ipagination = pagination + this.loadData() + } + } + } +</script> + +<style scoped> + /deep/ .ant-modal-content, /deep/ .ant-modal-header, + /deep/ .ant-table-placeholder, /deep/ .ant-pagination-item-active { + background-color: #000; + } + + /deep/ .ant-modal-title, /deep/ .ant-pagination-total-text, + /deep/ .ant-modal-close, /deep/ .ant-form-item-label label, + /deep/ .ant-table-placeholder .ant-empty-description, /deep/ .ant-pagination-options-quick-jumper { + color: #fff; + } + + /deep/ .ant-input, /deep/ .ant-pagination-item a, + /deep/ .ant-pagination-item-link, /deep/ .ant-select-selection--single, + /deep/ .ant-pagination-options-quick-jumper input, /deep/ .ant-select-dropdown-menu-item { + color: #fff; + background-color: #000; + } + + /deep/ .ant-table-thead th { + background-color: #5C5C5C; + color: #fff; + } + + /deep/ .ant-table-tbody td { + background-color: #262626; + color: #fff; + } + + /deep/ .ant-table-tbody > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) > td { + background: #7E7E7E; + } + + /deep/ .ant-pagination-item-link:hover { + color: #1890FF; + border-color: #1890FF; + } + + /deep/ .ant-select-dropdown-menu-item:hover:not(.ant-select-dropdown-menu-item-disabled) { + background-color: #1890FF; + } +</style> \ No newline at end of file diff --git a/src/views/mdc/base/modules/WorkshopSignage/WorkshopDeviceOverview.vue b/src/views/mdc/base/modules/WorkshopSignage/WorkshopDeviceOverview.vue index 4bf22e8..6eade6e 100644 --- a/src/views/mdc/base/modules/WorkshopSignage/WorkshopDeviceOverview.vue +++ b/src/views/mdc/base/modules/WorkshopSignage/WorkshopDeviceOverview.vue @@ -1,6 +1,20 @@ <template> <div style="flex:1;display: flex;"> - <div class="chart-container" :id="chartContainerId"></div> + <!--<div style="height: 100%">--> + <!--<div class="chart-container" :id="chartContainerId"></div>--> + + <!--</div>--> + <div style="flex: 1;display: flex;flex-direction: column"> + <div class="chart-container" :id="chartContainerId" style="flex: 1"></div> + <div class="pie-value-container"> + <div> + <span class="color-square" style="background-color: #00923f"></span>瀹屾垚閲� {{equipmentStatusCountObj.qualifiedQty}} + </div> + <div> + <span class="color-square" style="background-color: #e67817"></span>浠诲姟閲� {{equipmentStatusCountObj.planQty}} + </div> + </div> + </div> <div class="equipment-state-container"> <div>璁惧鎬绘暟锛歿{equipmentStatusCountObj.equipmentCount}}鍙�</div> <div>澶т慨銆侀」淇暟閲忥細{{equipmentStatusCountObj.repairCount}}鍙�</div> @@ -18,16 +32,22 @@ </div> </div> + + <SignageModal ref="signageModalRef" :modalTitle="modalTitle" :productionId="currentProductionId"/> </div> </template> <script> import signageApi from '@/api/signage' + import SignageModal from './SignageModal' export default { name: 'WorkshopDeviceOverview', - components: {}, + components: { SignageModal }, props: { + workshopName: { + type: String + }, currentProductionId: { type: String }, @@ -42,7 +62,8 @@ return { chartContainer: null, chartContainerId: 'left-col-chart1', - equipmentStatusCountObj: {} + equipmentStatusCountObj: {}, + modalTitle: '' } }, mounted() { @@ -81,7 +102,7 @@ { name: '绫荤洰', type: 'pie', - radius: '60%', + radius: '90%', center: ['50%', '50%'], hoverAnimation: false, data: [ @@ -124,6 +145,12 @@ } option.series[0].data[0].value = yAxisData1 option.series[0].data[1].value = yAxisData2 + + this.chartContainer.on('click', () => { + this.modalTitle = this.workshopName + '褰撴湀浠诲姟瀹屾垚鐧惧垎姣�' + this.$refs.signageModalRef.visible = true + }) + this.chartContainer.setOption(option, true) }, @@ -155,6 +182,22 @@ </script> <style lang="less"> + .pie-value-container { + > div { + text-align: center; + margin-bottom: 5px; + } + + .color-square { + display: inline-block; + width: 0.625vw; + height: 0.45vw; + border-radius: 0.1vw; + background-color: #00ff80; + margin-right: 0.4vw; + } + } + .equipment-state-container { display: flex; flex-direction: column; diff --git a/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue b/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue index 461a698..961e4a6 100644 --- a/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue +++ b/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue @@ -44,6 +44,11 @@ v-model="dates" :allowClear="false"/> </a-form-item> </a-col> + <a-col :md="6" :sm="6"> + <a-form-item label="璁惧灞炴��"> + <j-dict-select-tag v-model="queryParam.attribute" type="radio" dictCode="equipment_attribute"/> + </a-form-item> + </a-col> </a-row> <a-row :gutter="24" type="flex" align="middle"> diff --git a/src/views/system/UserList.vue b/src/views/system/UserList.vue index f29115e..0e25598 100644 --- a/src/views/system/UserList.vue +++ b/src/views/system/UserList.vue @@ -7,55 +7,33 @@ <a-row :gutter="24"> <a-col :md="6" :sm="12"> - <a-form-item label="璐﹀彿"> + <a-form-item label="鐢ㄦ埛璐﹀彿"> <!--<a-input placeholder="璇疯緭鍏ヨ处鍙锋煡璇�" v-model="queryParam.username"></a-input>--> <j-input placeholder="杈撳叆璐﹀彿妯$硦鏌ヨ" v-model="queryParam.username"></j-input> </a-form-item> </a-col> + <a-col :md="6" :sm="8"> - <a-form-item label="鎬у埆"> - <a-select v-model="queryParam.sex" placeholder="璇烽�夋嫨鎬у埆"> - <a-select-option value="">璇烽�夋嫨</a-select-option> - <a-select-option value="1">鐢�</a-select-option> - <a-select-option value="2">濂�</a-select-option> - </a-select> + <a-form-item label="鐢ㄦ埛濮撳悕"> + <a-input placeholder="璇疯緭鍏ョ敤鎴峰鍚�" v-model="queryParam.realname"></a-input> </a-form-item> </a-col> - - <template v-if="toggleSearchStatus"> - <a-col :md="6" :sm="8"> - <a-form-item label="鐪熷疄鍚嶅瓧"> - <a-input placeholder="璇疯緭鍏ョ湡瀹炲悕瀛�" v-model="queryParam.realname"></a-input> - </a-form-item> - </a-col> - - <a-col :md="6" :sm="8"> - <a-form-item label="鎵嬫満鍙风爜"> - <a-input placeholder="璇疯緭鍏ユ墜鏈哄彿鐮佹煡璇�" v-model="queryParam.phone"></a-input> - </a-form-item> - </a-col> - - <a-col :md="6" :sm="8"> - <a-form-item label="鐢ㄦ埛鐘舵��"> - <a-select v-model="queryParam.status" placeholder="璇烽�夋嫨"> - <a-select-option value="">璇烽�夋嫨</a-select-option> - <a-select-option value="1">姝e父</a-select-option> - <a-select-option value="2">鍐荤粨</a-select-option> - </a-select> - </a-form-item> - </a-col> - </template> + <a-col :md="6" :sm="8"> + <a-form-item label="鐢ㄦ埛鐘舵��"> + <a-select v-model="queryParam.status" placeholder="璇烽�夋嫨"> + <a-select-option value="">璇烽�夋嫨</a-select-option> + <a-select-option value="1">姝e父</a-select-option> + <a-select-option value="2">鍐荤粨</a-select-option> + </a-select> + </a-form-item> + </a-col> <a-col :md="6" :sm="8"> <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button> <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button> - <a @click="handleToggleSearch" style="margin-left: 8px"> - {{ toggleSearchStatus ? '鏀惰捣' : '灞曞紑' }} - <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> - </a> </span> </a-col> diff --git a/src/views/system/modules/UserModal.vue b/src/views/system/modules/UserModal.vue index 8b4de17..d6ab07a 100644 --- a/src/views/system/modules/UserModal.vue +++ b/src/views/system/modules/UserModal.vue @@ -82,6 +82,7 @@ <a-input placeholder="璇疯緭鍏ョ敤鎴峰鍚�" v-model="model.realname" + :readOnly="disableSubmit" /> </a-form-model-item> @@ -94,6 +95,7 @@ <a-input placeholder="璇疯緭鍏ュ伐鍙�" v-model="model.workNo" + :readOnly="disableSubmit" /> </a-form-model-item> @@ -145,6 +147,7 @@ v-model="model.selectedProduction" :multi="true" @back="backProductionInfo" + :disabled="disableSubmit" :backProduction="true" :treeProductOpera="true" ></j-select-production> @@ -215,7 +218,7 @@ <!--placeholder="璇风淮鎶や腑蹇�"--> <!-->--> <!--</j-multi-select-tag>--> - </a-form-model-item> + <!--</a-form-model-item>--> <!--<a-form-model-item--> <!--label="璐熻矗閮ㄩ棬"--> <!--:labelCol="labelCol"--> -- Gitblit v1.9.3