| | |
| | | NODE_ENV=production |
| | | #NODE_ENV=production |
| | | NODE_ENV=development |
| | | VUE_APP_PLATFORM_NAME=JeecgBoot 企业级低代码平台 |
| | | # 开启单点登录 |
| | | VUE_APP_SSO=false |
| | |
| | | NODE_ENV=development |
| | | VUE_APP_API_BASE_URL=http://127.0.0.1:8089 |
| | | #工控网 |
| | | #VUE_APP_API_BASE_URL=http://10.118.10.62:6099 |
| | | #涉密网 |
| | | #VUE_APP_API_BASE_URL=http://20.10.3.42:6099 |
| | | #本地 |
| | | VUE_APP_API_BASE_URL=http://127.0.0.1:9999 |
| | | #本地虚拟机 |
| | | #VUE_APP_API_BASE_URL=http://192.168.1.18:9999 |
| | | VUE_APP_CAS_BASE_URL=http://cas.example.org:8443/cas |
| | | VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview |
| | | |
| | |
| | | NODE_ENV=production |
| | | VUE_APP_API_BASE_URL=http://localhost:8080/jeecg-boot |
| | | #工控网 |
| | | #VUE_APP_API_BASE_URL=http://10.118.10.62:6099 |
| | | #涉密网 |
| | | #VUE_APP_API_BASE_URL=http://20.10.3.42:6099 |
| | | #本地 |
| | | VUE_APP_API_BASE_URL=http://127.0.0.1:9999 |
| | | #本地虚拟机 |
| | | #VUE_APP_API_BASE_URL=http://192.168.1.18:9999 |
| | | VUE_APP_CAS_BASE_URL=http://localhost:8888/cas |
| | | VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview |
| | |
| | | <a-col :md="24-5" :sm="24"> |
| | | <div class="device-status-info"> |
| | | <a-space v-for="item in deviceStatusList" :key="item.value" class="single-status-info"> |
| | | <template v-if="item.value!=99"> |
| | | <template v-if="item.value!=99 && item.value!=88"> |
| | | <div>{{ item.label }}</div> |
| | | <div class="status-square" :style="{ backgroundColor: item.color }"></div> |
| | | <div>{{getDeviceNumberByStatus(item.value) }}</div> |
| | |
| | | value: 22, |
| | | color: '#FF0000' |
| | | }, |
| | | { |
| | | label: '异常', |
| | | value: 33, |
| | | color: '#FFA200' |
| | | }, |
| | | // { |
| | | // label: '异常', |
| | | // value: 33, |
| | | // color: '#FFA200' |
| | | // }, |
| | | { |
| | | label: '总数', |
| | | value: 99, |
| | | color: '#fff' |
| | | }, |
| | | { |
| | | label: '大修、项修数', |
| | | value: 88 |
| | | } |
| | | ]// 设备状态指示灯列表, |
| | | } |
| | |
| | | } |
| | | }, |
| | | |
| | | /** |
| | | * 单击状态反馈后触发 |
| | | * @param record |
| | | */ |
| | | editEquipmentStatus(record) { |
| | | const _this = this |
| | | this.$notification.info({ |
| | | key: 'equipmentStatus', |
| | | message: '消息', |
| | | description: '反馈中...' |
| | | }) |
| | | getAction(this.url.updateEquipmentStatus, { id: record.id }) |
| | | .then(res => { |
| | | if (res.success) { |
| | | _this.equipmentStatistics(this.param, { key: true, message: res.message }) |
| | | } else { |
| | | this.$notification.warning({ |
| | | message: '消息', |
| | | description: res.message |
| | | }) |
| | | } |
| | | }) |
| | | .catch(err => { |
| | | this.$notification.error({ |
| | | message: '消息', |
| | | description: err.message |
| | | }) |
| | | }) |
| | | }, |
| | | // /** |
| | | // * 单击状态反馈后触发 |
| | | // * @param record |
| | | // */ |
| | | // editEquipmentStatus(record) { |
| | | // const _this = this |
| | | // this.$notification.info({ |
| | | // key: 'equipmentStatus', |
| | | // message: '消息', |
| | | // description: '反馈中...' |
| | | // }) |
| | | // getAction(this.url.updateEquipmentStatus, { id: record.id }) |
| | | // .then(res => { |
| | | // if (res.success) { |
| | | // _this.equipmentStatistics(this.param, { key: true, message: res.message }) |
| | | // } else { |
| | | // this.$notification.warning({ |
| | | // message: '消息', |
| | | // description: res.message |
| | | // }) |
| | | // } |
| | | // }) |
| | | // .catch(err => { |
| | | // this.$notification.error({ |
| | | // message: '消息', |
| | | // description: err.message |
| | | // }) |
| | | // }) |
| | | // }, |
| | | |
| | | /** |
| | | * 根据设备状态值获取对应设备数量 |
| | |
| | | |
| | | <a-col :md="4" :sm="4"> |
| | | <a-form-item label="车间名称"> |
| | | <!--<a-input placeholder="请输入车间名称" v-model="queryParam.productionName"></a-input>--> |
| | | <a-tree-select v-model="queryParam.productionName" :treeData="workshopTreeData" placeholder="请选择车间" |
| | | :treeDefaultExpandedKeys="treeDefaultExpandedKeys"></a-tree-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="4" :sm="4"> |
| | | <a-form-item label="设备状态"> |
| | | <j-dict-select-tag placeholder="请选择设备状态" :triggerChange="true" dictCode="mdc_equipment_status" v-model="queryParam.equipmentStatus" allow-clear/> |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | |
| | | // sorter: true |
| | | }, |
| | | { |
| | | title:'设备状态', |
| | | align:'center', |
| | | width: 100, |
| | | dataIndex:'equipmentStatus_dictText' |
| | | }, |
| | | { |
| | | title: '机床IP', |
| | | align: 'center', |
| | | width: 225, |
| | | width: 150, |
| | | dataIndex: 'equipmentIp' |
| | | }, |
| | | { |
| | | title: '机床端口', |
| | | align: 'center', |
| | | width: 225, |
| | | width: 200, |
| | | dataIndex: 'dataPort' |
| | | }, |
| | | { |
| | |
| | | // sorter: true |
| | | }, |
| | | { |
| | | title:'设备状态', |
| | | align:'center', |
| | | width: 100, |
| | | dataIndex:'equipmentStatus_dictText' |
| | | }, |
| | | { |
| | | title: '机床IP', |
| | | align: 'center', |
| | | width: 200, |
| | |
| | | <template> |
| | | <div ref="wrap"> |
| | | <a-modal |
| | | width="70%" |
| | | width="90%" |
| | | :visible="visible" |
| | | :getContainer="() => this.$refs.wrap" |
| | | @cancel="handleCancel" |
| | |
| | | |
| | | </a-descriptions> |
| | | |
| | | <a-descriptions |
| | | title="坐标信息" |
| | | v-if="xyzList != null" |
| | | :column="5" |
| | | > |
| | | <a-descriptions-item label="机床坐标X">{{xyzList.xmachine}}</a-descriptions-item> |
| | | <a-descriptions-item label="Y">{{xyzList.ymachine}}</a-descriptions-item> |
| | | <a-descriptions-item label="Z">{{xyzList.zmachine}}</a-descriptions-item> |
| | | <a-descriptions-item label="A">{{xyzList.amachine}}</a-descriptions-item> |
| | | <a-descriptions-item label="B">{{xyzList.bmachine}}</a-descriptions-item> |
| | | <a-descriptions-item label="绝对坐标X">{{xyzList.xabsolute}}</a-descriptions-item> |
| | | <a-descriptions-item label="Y">{{xyzList.yabsolute}}</a-descriptions-item> |
| | | <a-descriptions-item label="Z">{{xyzList.zabsolute}}</a-descriptions-item> |
| | | <a-descriptions-item label="A">{{xyzList.aabsolute}}</a-descriptions-item> |
| | | <a-descriptions-item label="B">{{xyzList.babsolute}}</a-descriptions-item> |
| | | </a-descriptions> |
| | | |
| | | </td> |
| | | </tr> |
| | | </table> |
| | |
| | | url: { |
| | | mdcEquipmentDetailedInfo: '/mdc/mdcEquipment/mdcEquipmentDetailedInfo' |
| | | }, |
| | | modalTimer: null |
| | | modalTimer: null, |
| | | xyzList: null |
| | | } |
| | | }, |
| | | beforeDestroy() { |
| | |
| | | _this.spindleload = res.result.spindleload |
| | | _this.rapidfeed = res.result.rapidfeed |
| | | _this.runData = res.result.runData |
| | | _this.xyzList = res.result.xyzList |
| | | |
| | | // _this.xyzAliasesList = res.result.xyzAliasesList |
| | | this.$nextTick(() => { |
| | | _this.drawLine() |
| | |
| | | <template slot="oporationDict" slot-scope="text, record"> |
| | | <div :style="{color:record.equipmentStatus!==0?'#f00':null}">{{text}}</div> |
| | | </template> |
| | | <template slot="equipmentStatus" slot-scope="text"> |
| | | <div :style="{color:text!==0?'#f00':null}">{{text===0?'正常':'异常'}}</div> |
| | | </template> |
| | | <!-- <template slot="equipmentStatus" slot-scope="text">--> |
| | | <!-- <div :style="{color:text!==0?'#f00':null}">{{text===0?'正常':'异常'}}</div>--> |
| | | <!-- </template>--> |
| | | <template slot="collecttime" slot-scope="text, record"> |
| | | <div :style="{color:record.equipmentStatus!==0?'#f00':null}">{{text}}</div> |
| | | </template> |
| | | <template slot="action" slot-scope="text, record"> |
| | | <a-popconfirm title="确定反馈吗?" @confirm="$emit('editEquipmentStatus',record)" v-has="'deiveBaseInfo:responseStatus'"> |
| | | <a>状态反馈</a> |
| | | </a-popconfirm> |
| | | </template> |
| | | <!-- <template slot="action" slot-scope="text, record">--> |
| | | <!-- <a-popconfirm title="确定反馈吗?" @confirm="$emit('editEquipmentStatus',record)" v-has="'deiveBaseInfo:responseStatus'">--> |
| | | <!-- <a>状态反馈</a>--> |
| | | <!-- </a-popconfirm>--> |
| | | <!-- </template>--> |
| | | </a-table> |
| | | |
| | | </div> |
| | |
| | | align: "center", |
| | | dataIndex: 'equipmentId', |
| | | scopedSlots: {customRender: 'equipmentId'}, |
| | | width:210 |
| | | width:300 |
| | | }, |
| | | { |
| | | title: '设备名称', |
| | |
| | | scopedSlots: {customRender: 'oporationDict'}, |
| | | width:200 |
| | | }, |
| | | { |
| | | title: '设备异常', |
| | | align: "center", |
| | | dataIndex: 'equipmentStatus', |
| | | scopedSlots: {customRender: 'equipmentStatus'}, |
| | | width:200 |
| | | }, |
| | | // { |
| | | // title: '设备异常', |
| | | // align: "center", |
| | | // dataIndex: 'equipmentStatus', |
| | | // scopedSlots: {customRender: 'equipmentStatus'}, |
| | | // width:200 |
| | | // }, |
| | | { |
| | | title: '采集时间', |
| | | align: "center", |
| | |
| | | defaultSortOrder:'descend', |
| | | sorter: (a, b) => {return a.collecttime>b.collecttime?1:-1}, |
| | | scopedSlots: {customRender: 'collecttime'}, |
| | | width:350 |
| | | }, |
| | | { |
| | | title: '操作', |
| | | dataIndex: 'action', |
| | | scopedSlots: {customRender: 'action'}, |
| | | align: "center", |
| | | width: 150, |
| | | fixed:'right' |
| | | } |
| | | // { |
| | | // title: '操作', |
| | | // dataIndex: 'action', |
| | | // scopedSlots: {customRender: 'action'}, |
| | | // align: "center", |
| | | // width: 150, |
| | | // fixed:'right' |
| | | // } |
| | | ], |
| | | scrollY:465, |
| | | } |
| | |
| | | </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> |
| | | </a-col> |
| | | </a-row> |
| | | |
| | | <a-row :gutter="24"> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="排序" :labelCol="labelCol" :wrapperCol="wrapperCol"> |
| | | <a-input :disabled="disableSubmit" :readOnly="disableSubmit" placeholder="请输入排序" |
| | | v-model="model.sortNo" style="width: 100%"/> |
| | |
| | | dataPort: "", |
| | | driveType: "", |
| | | systemType: "", |
| | | equipmentStatus: '0', |
| | | deviceLevel: "", |
| | | deviceCategory: "" |
| | | deviceCategory: "", |
| | | }, |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | |
| | | }, |
| | | add () { |
| | | this.refresh(); |
| | | this.edit({activitiSync:'1',userIdentity:1,equipmentId:"",equipmentName:"",equipmentModel:"",equipmentIp:'',dataPort:"",driveType:"",controlSystem:"",saveTableName:""}); |
| | | this.edit({activitiSync:'1',userIdentity:1,equipmentId:"",equipmentName:"",equipmentModel:"",equipmentIp:'',dataPort:"",driveType:"",controlSystem:"",saveTableName:"",equipmentStatus:'0'}); |
| | | }, |
| | | edit (record) { |
| | | let that = this; |
| | |
| | | <a href="/"> |
| | | <img src="~@/assets/logo.png" class="logo" alt="logo"> |
| | | <span class="title">中国航发成发</span> |
| | | <div class="subtitle">设备管理系统(MDC)</div> |
| | | </a> |
| | | </div> |
| | | </div> |
| | |
| | | .top { |
| | | text-align: center; |
| | | position: absolute; |
| | | top: 10%; |
| | | top: 0; |
| | | |
| | | .header { |
| | | height: 44px; |
| | | line-height: 44px; |
| | | font-family: "Chinese Quote", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; |
| | | font-weight: 600; |
| | | |
| | | .badge { |
| | | position: absolute; |
| | |
| | | |
| | | .title { |
| | | font-size: 2vw; |
| | | color: #000; |
| | | font-family: "Chinese Quote", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; |
| | | font-weight: 600; |
| | | position: relative; |
| | | top: 2px; |
| | | color: #000; |
| | | } |
| | | |
| | | .subtitle{ |
| | | font-size: 1.2vw; |
| | | position: relative; |
| | | top: 2px; |
| | | color: #000; |
| | | } |
| | | } |
| | | .desc { |