diff --git a/.env.dev b/.env.dev index 9171993b..d0716c26 100644 --- a/.env.dev +++ b/.env.dev @@ -1,8 +1,8 @@ ### # @Author: Do not edit # @Date: 2023-08-29 09:40:39 - # @LastEditTime: 2024-07-29 15:00:13 - # @LastEditors: DY + # @LastEditTime: 2024-07-31 14:57:31 + # @LastEditors: zhp # @Description: ### # 开发环境配置 @@ -13,14 +13,18 @@ VUE_APP_TITLE = MES系统 # 芋道管理系统/开发环境 # VUE_APP_BASE_API = 'http://100.64.0.26:48082' -VUE_APP_BASE_API = 'http://192.168.0.33:48082' -# VUE_APP_BASE_API = 'http://192.168.1.164:48082' +# VUE_APP_BASE_API = 'http://192.168.0.33:48082' +# VUE_APP_BASE_API = 'http://192.168.4.173:48080' # VUE_APP_BASE_API = 'http://192.168.2.173:48080' # VUE_APP_BASE_API = 'http://192.168.1.81:48082' # VUE_APP_BASE_API = 'http://192.168.1.8:48082' # VUE_APP_BASE_API = 'http://192.168.4.159:48080' # VUE_APP_BASE_API = 'http://192.168.1.56:48082' # VUE_APP_BASE_API = 'http://192.168.4.159:48080' +# VUE_APP_BASE_API = 'http://192.168.1.64:48082' +VUE_APP_BASE_API = 'http://192.168.1.99:48082' + + # 积木报表指向地址 VUE_APP_JIMU_API = 'http://192.168.0.33:48082' diff --git a/src/api/base/orderGroup.js b/src/api/base/orderGroup.js new file mode 100644 index 00000000..5751107f --- /dev/null +++ b/src/api/base/orderGroup.js @@ -0,0 +1,72 @@ +import request from '@/utils/request' +// 获得集团订单分页 +export function getOrderGroupPage(query) { + return request({ + url: '/base/order-group/page', + method: 'get', + params: query + }) +} + +// 获得集团订单 +export function getOrderGroup(query) { + return request({ + url: '/base/order-group/get', + method: 'get', + params: query + }) +} + +// 更新集团订单 +export function updateOrderGroup(data) { + return request({ + url: '/base/order-group/update', + method: 'put', + data: data + }) +} + +// 创建集团订单 +export function createOrderGroup(data) { + return request({ + url: '/base/order-group/create', + method: 'post', + data: data + }) +} + +// 修改集团订单状态,结束-终止-作废用 +export function groupOrderStatusSet(data) { + return request({ + url: '/base/order-group/groupOrderStatusSet', + method: 'put', + data: data + }) +} + +// 获得集团订单详情 +export function orderGroupDetail(query) { + return request({ + url: '/base/order-group/getDetail', + method: 'get', + params: query + }) +} + +// 创建集团订单与厂务订单表关联表 一对多 +export function orderConGroupOrder(data) { + return request({ + url: '/base/order-con-group-order/create', + method: 'post', + data: data + }) +} + +// 订单监控 +export function orderGroupMonitor(query) { + return request({ + url: '/base/order-group/orderGroupMonitor', + method: 'get', + params: query + }) +} diff --git a/src/api/base/orderManage.js b/src/api/base/orderManage.js index 9933c9b7..61e8c222 100644 --- a/src/api/base/orderManage.js +++ b/src/api/base/orderManage.js @@ -125,7 +125,7 @@ export function orderAssignmentList(query) { // 获得所有客户列表 export function customerList() { return request({ - url: '/base/core-customer/listAll', + url: 'base/core-customer/listAll', method: 'get' }) } @@ -155,4 +155,13 @@ export function orderFinish(query) { method: 'post', params: query }) -} \ No newline at end of file +} + +// 作废订单 +export function orderVoid(data) { + return request({ + url: 'base/order/invalid', + method: 'put', + data + }) +} diff --git a/src/api/equipment/base/inspection/items.js b/src/api/equipment/base/inspection/items.js new file mode 100644 index 00000000..da183b67 --- /dev/null +++ b/src/api/equipment/base/inspection/items.js @@ -0,0 +1,61 @@ +/* + * @Author: zhp + * @Date: 2024-07-23 13:44:00 + * @LastEditTime: 2024-07-31 09:34:17 + * @LastEditors: zhp + * @Description: + */ +/* + * @Author: zhp + * @Date: 2024-07-12 15:31:41 + * @LastEditTime: 2024-07-22 09:33:20 + * @LastEditors: zhp + * @Description: + */ +import request from '@/utils/request' + + +export function deleteData(id) { + return request({ + url: '/base/equipment-check-program/delete?id=' + id, + method: 'delete' + }) +} + +export function getItemPageData(data) { + return request({ + url: '/base/equipment-check-program/page', + method: 'get', + data + }) +} + +export function getItemData(id) { + return request({ + url: 'base/equipment-check-program/get?id=' + id, + method: 'get' + }) +} + +export function updateItemData(data) { + return request({ + url: 'base/equipment-check-program/update', + method: 'put', + data + }) +} + +export function createItemData(data) { + return request({ + url: 'base/equipment-check-program/create', + method: 'post', + data + }) +} + +export function deleteProgramTypeData(id) { + return request({ + url: 'base/equipment-check-program-type/delete?id=' + id, + method: 'delete' + }) +} diff --git a/src/api/equipment/base/inspection/record.js b/src/api/equipment/base/inspection/record.js index 31bb481e..c89e2152 100644 --- a/src/api/equipment/base/inspection/record.js +++ b/src/api/equipment/base/inspection/record.js @@ -1,7 +1,7 @@ /* * @Author: Do not edit * @Date: 2023-11-08 15:56:52 - * @LastEditTime: 2023-11-16 20:15:02 + * @LastEditTime: 2024-02-28 18:16:56 * @LastEditors: DY * @Description: */ @@ -52,6 +52,17 @@ export function exportCheckLogExcel(query) { }) } +// 导出设备巡检单记录 +export function exportCheckOrderExcel(query) { + return request({ + url: '/base/equipment-check-order/export-excel', + method: 'get', + params: query, + responseType: 'blob' + }) +} + + // 根据设备获得所有巡检配置列表 export function getcheckConfigByEqList(query) { return request({ @@ -68,3 +79,55 @@ export function deleteEqCheckLog(id) { method: 'delete' }) } + +// 获得设备巡检单详情分页 +export function getCheckOrderDetPage(query) { + return request({ + url: '/base/equipment-check-order-det/page', + method: 'get', + params: query + }) +} + +// 创建设备巡检单详情 +export function createCheckOrderDet(data) { + return request({ + url: '/base/equipment-check-order-det/create', + method: 'post', + data: data + }) +} + +// 更新设备巡检单详情 +export function updateCheckOrderDet(data) { + return request({ + url: '/base/equipment-check-order-det/update', + method: 'put', + data: data + }) +} + +// 删除设备巡检单详情 +export function deleteCheckOrderDet(id) { + return request({ + url: '/base/equipment-check-order-det/delete?id=' + id, + method: 'delete' + }) +} + +// 获得设备巡检计划单 +export function getEqCheckOrder(id) { + return request({ + url: '/base/equipment-check-order/get?id=' + id, + method: 'get' + }) +} + +// 获得设备巡检单分页 +export function getCheckOrderPage(query) { + return request({ + url: '/base/equipment-check-order/page', + method: 'get', + params: query + }) +} diff --git a/src/api/equipment/base/inspection/settings.js b/src/api/equipment/base/inspection/settings.js index 5f637a22..c4d798d6 100644 --- a/src/api/equipment/base/inspection/settings.js +++ b/src/api/equipment/base/inspection/settings.js @@ -1,7 +1,7 @@ /* * @Author: Do not edit * @Date: 2023-11-08 15:56:52 - * @LastEditTime: 2023-11-25 16:22:49 + * @LastEditTime: 2024-02-25 22:23:54 * @LastEditors: DY * @Description: */ @@ -100,3 +100,63 @@ export function updateCheckConfig(data) { data: data }) } + +// 创建巡检单 +export function createCheckOrder(data) { + return request({ + url: '/base/equipment-check-order/create', + method: 'post', + data: data + }) +} + +// 更新巡检单 +export function updateCheckOrder(data) { + return request({ + url: '/base/equipment-check-order/update', + method: 'put', + data: data + }) +} + +// 获得设备巡检单code +export function getOrderCode() { + return request({ + url: '/base/equipment-check-order/getCode', + method: 'get' + }) +} + +// 获得巡检单 +export function getCheckOrder(id) { + return request({ + url: '/base/equipment-check-order/get?id=' + id, + method: 'get' + }) +} + +// 获得巡检单详细 +export function getCheckOrderDet(id) { + return request({ + url: '/base/equipment-check-order-det/get?id=' + id, + method: 'get' + }) +} + +// 创建巡检单详情 +export function createCheckOrderDet(data) { + return request({ + url: '/base/equipment-check-order-det/create', + method: 'post', + data: data + }) +} + +// 更新巡检单详情 +export function updateCheckOrderDet(data) { + return request({ + url: '/base/equipment-check-order-det/update', + method: 'put', + data: data + }) +} diff --git a/src/api/equipment/base/maintain/confirm.js b/src/api/equipment/base/maintain/confirm.js new file mode 100644 index 00000000..abf924f6 --- /dev/null +++ b/src/api/equipment/base/maintain/confirm.js @@ -0,0 +1,26 @@ +/* + * @Author: Do not edit + * @Date: 2024-02-26 15:01:48 + * @LastEditTime: 2024-02-26 18:09:39 + * @LastEditors: DY + * @Description: + */ +import request from '@/utils/request' + +// 获得设备保养记录分页 +export function getLogDetPage(query) { + return request({ + url: '/base/equipment-maintain-log-det/page', + method: 'get', + params: query + }) +} + +// 获得设备巡检单 +export function getCheckOrder(query) { + return request({ + url: '/base/equipment-check-order/get', + method: 'get', + params: query + }) +} diff --git a/src/api/equipment/base/maintain/items.js b/src/api/equipment/base/maintain/items.js new file mode 100644 index 00000000..e4cd33b8 --- /dev/null +++ b/src/api/equipment/base/maintain/items.js @@ -0,0 +1,54 @@ +/* + * @Author: zhp + * @Date: 2024-07-12 15:31:41 + * @LastEditTime: 2024-07-30 16:44:47 + * @LastEditors: zhp + * @Description: + */ +import request from '@/utils/request' + +// 删除设备保养记录 +export function deleteData(id) { + return request({ + url: '/base/equipment-maintain-program/delete?id=' + id, + method: 'delete' + }) +} + +export function getItemPageData(data) { + return request({ + url: '/base/equipment-maintain-program/page', + method: 'get', + params:data + }) +} + +export function getItemData(id) { + return request({ + url: 'base/equipment-maintain-program/get?id=' + id, + method: 'get' + }) +} + +export function updateItemData(data) { + return request({ + url: 'base/equipment-maintain-program/update', + method: 'put', + data + }) +} + +export function createItemData(data) { + return request({ + url: 'base/equipment-maintain-program/create', + method: 'post', + data + }) +} + +export function deleteProgramTypeData(id) { + return request({ + url: 'base/equipment-maintain-program-type/delete?id=' + id, + method: 'delete' + }) +} diff --git a/src/api/equipment/base/maintain/logConfig.js b/src/api/equipment/base/maintain/logConfig.js new file mode 100644 index 00000000..a636174e --- /dev/null +++ b/src/api/equipment/base/maintain/logConfig.js @@ -0,0 +1,104 @@ +/* + * @Author: zhp + * @Date: 2024-07-30 15:46:23 + * @LastEditTime: 2024-07-31 09:18:25 + * @LastEditors: zhp + * @Description: + */ +import request from '@/utils/request' + +// 获得设备保养计划配置分页 +export function getLogPage(query) { + return request({ + url: '/base/equipment-maintain-log/page', + method: 'get', + params: query + }) +} + +// 创建设备保养计划 +export function createLog(data) { + return request({ + url: '/base/equipment-maintain-log/create', + method: 'post', + data: data + }) +} + +// 更新设备保养计划 +export function updateLog(data) { + return request({ + url: '/base/equipment-maintain-log/update', + method: 'put', + data: data + }) +} + +// 获得计划code +export function getCode() { + return request({ + url: '/base/equipment-maintain-log/getCode', + method: 'get' + }) +} + +// 获得计划 +export function getLog(query) { + return request({ + url: '/base/equipment-maintain-log/get', + method: 'get', + params: query + }) +} + +// 获得设备保养计划配置详情分页 +export function getLogDetPage(query) { + return request({ + url: '/base/equipment-maintain-log-det/page', + method: 'get', + params: query + }) +} + +// 创建设备保养计划详情 +export function createLogDet(data) { + return request({ + url: '/base/equipment-maintain-log-det/create', + method: 'post', + data: data + }) +} + +// 更新设备保养计划详情 +export function updateLogDet(data) { + return request({ + url: '/base/equipment-maintain-log-det/update', + method: 'put', + data: data + }) +} + +// 获得计划详情 +export function getLogDet(query) { + return request({ + url: '/base/equipment-maintain-log-det/get', + method: 'get', + params: query + }) +} + +// 删除设备保养计划 +export function deleteLog(id) { + return request({ + url: '/base/equipment-maintain-log/delete?id=' + id, + method: 'delete' + }) +} + +// 删除设备保养计划详情 +export function deleteLogDet(id) { + return request({ + url: '/base/equipment-maintain-log-det/delete?id=' + id, + method: 'delete' + }) +} diff --git a/src/api/equipment/base/maintain/planconfig.js b/src/api/equipment/base/maintain/planconfig.js new file mode 100644 index 00000000..60fa4e32 --- /dev/null +++ b/src/api/equipment/base/maintain/planconfig.js @@ -0,0 +1,104 @@ +/* + * @Author: Do not edit + * @Date: 2024-02-22 15:14:19 + * @LastEditTime: 2024-02-23 19:18:22 + * @LastEditors: DY + * @Description: + */ +import request from '@/utils/request' + +// 获得设备保养计划配置分页 +export function getPlanPage(query) { + return request({ + url: '/base/equipment-maintain-plan/page', + method: 'get', + params: query + }) +} + +// 创建设备保养计划 +export function createPlan(data) { + return request({ + url: '/base/equipment-maintain-plan/create', + method: 'post', + data: data + }) +} + +// 更新设备保养计划 +export function updatePlan(data) { + return request({ + url: '/base/equipment-maintain-plan/update', + method: 'put', + data: data + }) +} + +// 获得计划code +export function getCode() { + return request({ + url: '/base/equipment-maintain-plan/getCode', + method: 'get' + }) +} + +// 获得计划 +export function getPlan(query) { + return request({ + url: '/base/equipment-maintain-plan/get', + method: 'get', + params: query + }) +} + +// 获得设备保养计划配置详情分页 +export function getPlanDetPage(query) { + return request({ + url: '/base/equipment-maintain-plan-det/page', + method: 'get', + params: query + }) +} + +// 创建设备保养计划详情 +export function createPlanDet(data) { + return request({ + url: '/base/equipment-maintain-plan-det/create', + method: 'post', + data: data + }) +} + +// 更新设备保养计划详情 +export function updatePlanDet(data) { + return request({ + url: '/base/equipment-maintain-plan-det/update', + method: 'put', + data: data + }) +} + +// 获得计划详情 +export function getPlanDet(query) { + return request({ + url: '/base/equipment-maintain-plan-det/get', + method: 'get', + params: query + }) +} + +// 删除设备保养计划 +export function deletePlan(id) { + return request({ + url: '/base/equipment-maintain-plan/delete?id=' + id, + method: 'delete' + }) +} + +// 删除设备保养计划详情 +export function deletePlanDet(id) { + return request({ + url: '/base/equipment-maintain-plan-det/delete?id=' + id, + method: 'delete' + }) +} diff --git a/src/api/equipment/base/maintain/record.js b/src/api/equipment/base/maintain/record.js index 8ca6f36f..012239bf 100644 --- a/src/api/equipment/base/maintain/record.js +++ b/src/api/equipment/base/maintain/record.js @@ -1,7 +1,7 @@ /* * @Author: Do not edit * @Date: 2023-11-08 15:56:52 - * @LastEditTime: 2023-11-23 19:10:07 + * @LastEditTime: 2024-02-26 17:02:53 * @LastEditors: DY * @Description: */ @@ -42,3 +42,39 @@ export function exportMaintainLogExcel(query) { responseType: 'blob' }) } + +// 导出巡检单 +export function exportCheckOrderExcel(query) { + return request({ + url: '/base/equipment-check-order/export-excel', + method: 'get', + params: query, + responseType: 'blob' + }) +} + +// 获得保养记录 +export function getLog(query) { + return request({ + url: '/base/equipment-maintain-log/get', + method: 'get', + params: query + }) +} + +// 获得设备保养记录详情分页 +export function getLogDetPage(query) { + return request({ + url: '/base/equipment-maintain-log-det/page', + method: 'get', + params: query + }) +} + +// 删除设备保养记录详情 +export function deleteLogDet(id) { + return request({ + url: '/base/equipment-maintain-log-det/delete?id=' + id, + method: 'delete' + }) +} diff --git a/src/components/DialogForm/index.vue b/src/components/DialogForm/index.vue index c780edba..b4fb077e 100644 --- a/src/components/DialogForm/index.vue +++ b/src/components/DialogForm/index.vue @@ -1,4 +1,4 @@ - + + diff --git a/src/views/equipment/base/alarm/Record/index.vue b/src/views/equipment/base/alarm/Record/index.vue index a9b41c91..53da57d8 100644 --- a/src/views/equipment/base/alarm/Record/index.vue +++ b/src/views/equipment/base/alarm/Record/index.vue @@ -12,7 +12,8 @@ :page="queryParams.pageNo" :limit="queryParams.pageSize" :table-data="list" - @emitFun="handleEmitFun"> + @emitFun="handleEmitFun" + :max-height="tableH"> moment(val).format('yyyy-MM-DD HH:mm:ss'); const btn = { @@ -89,7 +92,7 @@ const btn = { export default { name: 'Record', components: { AddOrUpdate }, - mixins: [basicPageMixin], + mixins: [basicPageMixin, tableHeightMixin], data() { return { readOnly: false, @@ -116,19 +119,31 @@ export default { // : undefined, ].filter((v) => v), tableProps: [ - { prop: 'productionLine', label: '产线' }, - { prop: 'workshopSection', label: '工段' }, - { prop: 'equipment', label: '设备名称' }, + { prop: 'productionLine', label: '产线', width: 120, showOverflowtooltip: true }, + { prop: 'workshopSection', label: '工段', width: 120, showOverflowtooltip: true }, + { prop: 'equipment', label: '设备名称', width: 120, showOverflowtooltip: true }, { prop: 'alarmGrade', label: '报警级别', filter: publicFormatter(this.DICT_TYPE.EQU_ALARM_LEVEL), }, - { prop: 'createTime', label: '报警时间', filter: timeFilter }, - { prop: 'alarmCode', label: '设备报警码' }, - { prop: 'alarmContent', label: '报警内容' }, - { prop: 'opt1', label: '处理记录', name: '查看', subcomponent: btn }, - { prop: 'opt2', label: '处理', name: '报警处理', subcomponent: btn }, + { prop: 'createTime', label: '报警时间', filter: timeFilter, width: 150, showOverflowtooltip: true }, + { prop: 'alarmCode', label: '设备报警码', width: 180, showOverflowtooltip: true }, + { prop: 'alarmContent', label: '报警内容', width: 150, showOverflowtooltip: true }, + this.$auth.hasPermiAnd([ + 'monitoring:equipment-alarm-log:query', + 'base:equipment-alarm-hand:query' + ]) ? + { prop: 'opt1', label: '处理记录', name: '查看', subcomponent: btn } : undefined, + this.$auth.hasPermiAnd([ + 'monitoring:equipment-alarm-log:query', + 'base:equipment-alarm-hand:query', + // 'base:core-worker:query', + 'base:equipment-alarm-hand:create', + 'base:equipment-alarm-hand:update', + 'monitoring:equipment-alarm-log:update' + ]) ? + { prop: 'opt2', label: '处理', name: '报警处理', subcomponent: btn } : undefined, // { prop: 'remark', label: '备注' }, ], searchBarFormConfig: [ @@ -203,7 +218,7 @@ export default { // 查询参数 queryParams: { pageNo: 1, - pageSize: 10, + pageSize: 20, lineId: null, equipmentId: null, recordTime: [], diff --git a/src/views/equipment/base/config/AlarmGroup/components/dialogForm.vue b/src/views/equipment/base/config/AlarmGroup/components/dialogForm.vue index cab8b8fd..000ae901 100644 --- a/src/views/equipment/base/config/AlarmGroup/components/dialogForm.vue +++ b/src/views/equipment/base/config/AlarmGroup/components/dialogForm.vue @@ -1,4 +1,4 @@ - + + diff --git a/src/views/equipment/base/inspection/Confirm/WaitingListTable.vue b/src/views/equipment/base/inspection/Confirm/WaitingListTable.vue new file mode 100644 index 00000000..fccfce40 --- /dev/null +++ b/src/views/equipment/base/inspection/Confirm/WaitingListTable.vue @@ -0,0 +1,287 @@ + + + + + + + + diff --git a/src/views/equipment/base/inspection/Confirm/add-or-updata.vue b/src/views/equipment/base/inspection/Confirm/add-or-updata.vue new file mode 100644 index 00000000..2d5c764e --- /dev/null +++ b/src/views/equipment/base/inspection/Confirm/add-or-updata.vue @@ -0,0 +1,563 @@ + + + + + diff --git a/src/views/equipment/base/inspection/Confirm/attr-add.vue b/src/views/equipment/base/inspection/Confirm/attr-add.vue new file mode 100644 index 00000000..b4d9a01d --- /dev/null +++ b/src/views/equipment/base/inspection/Confirm/attr-add.vue @@ -0,0 +1,178 @@ + + + + + diff --git a/src/views/equipment/base/inspection/Confirm/iconfont/demo.css b/src/views/equipment/base/inspection/Confirm/iconfont/demo.css new file mode 100644 index 00000000..a67054a0 --- /dev/null +++ b/src/views/equipment/base/inspection/Confirm/iconfont/demo.css @@ -0,0 +1,539 @@ +/* Logo 字体 */ +@font-face { + font-family: "iconfont logo"; + src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834'); + src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg'); +} + +.logo { + font-family: "iconfont logo"; + font-size: 160px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* tabs */ +.nav-tabs { + position: relative; +} + +.nav-tabs .nav-more { + position: absolute; + right: 0; + bottom: 0; + height: 42px; + line-height: 42px; + color: #666; +} + +#tabs { + border-bottom: 1px solid #eee; +} + +#tabs li { + cursor: pointer; + width: 100px; + height: 40px; + line-height: 40px; + text-align: center; + font-size: 16px; + border-bottom: 2px solid transparent; + position: relative; + z-index: 1; + margin-bottom: -1px; + color: #666; +} + + +#tabs .active { + border-bottom-color: #f00; + color: #222; +} + +.tab-container .content { + display: none; +} + +/* 页面布局 */ +.main { + padding: 30px 100px; + width: 960px; + margin: 0 auto; +} + +.main .logo { + color: #333; + text-align: left; + margin-bottom: 30px; + line-height: 1; + height: 110px; + margin-top: -50px; + overflow: hidden; + *zoom: 1; +} + +.main .logo a { + font-size: 160px; + color: #333; +} + +.helps { + margin-top: 40px; +} + +.helps pre { + padding: 20px; + margin: 10px 0; + border: solid 1px #e7e1cd; + background-color: #fffdef; + overflow: auto; +} + +.icon_lists { + width: 100% !important; + overflow: hidden; + *zoom: 1; +} + +.icon_lists li { + width: 100px; + margin-bottom: 10px; + margin-right: 20px; + text-align: center; + list-style: none !important; + cursor: default; +} + +.icon_lists li .code-name { + line-height: 1.2; +} + +.icon_lists .icon { + display: block; + height: 100px; + line-height: 100px; + font-size: 42px; + margin: 10px auto; + color: #333; + -webkit-transition: font-size 0.25s linear, width 0.25s linear; + -moz-transition: font-size 0.25s linear, width 0.25s linear; + transition: font-size 0.25s linear, width 0.25s linear; +} + +.icon_lists .icon:hover { + font-size: 100px; +} + +.icon_lists .svg-icon { + /* 通过设置 font-size 来改变图标大小 */ + width: 1em; + /* 图标和文字相邻时,垂直对齐 */ + vertical-align: -0.15em; + /* 通过设置 color 来改变 SVG 的颜色/fill */ + fill: currentColor; + /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示 + normalize.css 中也包含这行 */ + overflow: hidden; +} + +.icon_lists li .name, +.icon_lists li .code-name { + color: #666; +} + +/* markdown 样式 */ +.markdown { + color: #666; + font-size: 14px; + line-height: 1.8; +} + +.highlight { + line-height: 1.5; +} + +.markdown img { + vertical-align: middle; + max-width: 100%; +} + +.markdown h1 { + color: #404040; + font-weight: 500; + line-height: 40px; + margin-bottom: 24px; +} + +.markdown h2, +.markdown h3, +.markdown h4, +.markdown h5, +.markdown h6 { + color: #404040; + margin: 1.6em 0 0.6em 0; + font-weight: 500; + clear: both; +} + +.markdown h1 { + font-size: 28px; +} + +.markdown h2 { + font-size: 22px; +} + +.markdown h3 { + font-size: 16px; +} + +.markdown h4 { + font-size: 14px; +} + +.markdown h5 { + font-size: 12px; +} + +.markdown h6 { + font-size: 12px; +} + +.markdown hr { + height: 1px; + border: 0; + background: #e9e9e9; + margin: 16px 0; + clear: both; +} + +.markdown p { + margin: 1em 0; +} + +.markdown>p, +.markdown>blockquote, +.markdown>.highlight, +.markdown>ol, +.markdown>ul { + width: 80%; +} + +.markdown ul>li { + list-style: circle; +} + +.markdown>ul li, +.markdown blockquote ul>li { + margin-left: 20px; + padding-left: 4px; +} + +.markdown>ul li p, +.markdown>ol li p { + margin: 0.6em 0; +} + +.markdown ol>li { + list-style: decimal; +} + +.markdown>ol li, +.markdown blockquote ol>li { + margin-left: 20px; + padding-left: 4px; +} + +.markdown code { + margin: 0 3px; + padding: 0 5px; + background: #eee; + border-radius: 3px; +} + +.markdown strong, +.markdown b { + font-weight: 600; +} + +.markdown>table { + border-collapse: collapse; + border-spacing: 0px; + empty-cells: show; + border: 1px solid #e9e9e9; + width: 95%; + margin-bottom: 24px; +} + +.markdown>table th { + white-space: nowrap; + color: #333; + font-weight: 600; +} + +.markdown>table th, +.markdown>table td { + border: 1px solid #e9e9e9; + padding: 8px 16px; + text-align: left; +} + +.markdown>table th { + background: #F7F7F7; +} + +.markdown blockquote { + font-size: 90%; + color: #999; + border-left: 4px solid #e9e9e9; + padding-left: 0.8em; + margin: 1em 0; +} + +.markdown blockquote p { + margin: 0; +} + +.markdown .anchor { + opacity: 0; + transition: opacity 0.3s ease; + margin-left: 8px; +} + +.markdown .waiting { + color: #ccc; +} + +.markdown h1:hover .anchor, +.markdown h2:hover .anchor, +.markdown h3:hover .anchor, +.markdown h4:hover .anchor, +.markdown h5:hover .anchor, +.markdown h6:hover .anchor { + opacity: 1; + display: inline-block; +} + +.markdown>br, +.markdown>p>br { + clear: both; +} + + +.hljs { + display: block; + background: white; + padding: 0.5em; + color: #333333; + overflow-x: auto; +} + +.hljs-comment, +.hljs-meta { + color: #969896; +} + +.hljs-string, +.hljs-variable, +.hljs-template-variable, +.hljs-strong, +.hljs-emphasis, +.hljs-quote { + color: #df5000; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-type { + color: #a71d5d; +} + +.hljs-literal, +.hljs-symbol, +.hljs-bullet, +.hljs-attribute { + color: #0086b3; +} + +.hljs-section, +.hljs-name { + color: #63a35c; +} + +.hljs-tag { + color: #333333; +} + +.hljs-title, +.hljs-attr, +.hljs-selector-id, +.hljs-selector-class, +.hljs-selector-attr, +.hljs-selector-pseudo { + color: #795da3; +} + +.hljs-addition { + color: #55a532; + background-color: #eaffea; +} + +.hljs-deletion { + color: #bd2c00; + background-color: #ffecec; +} + +.hljs-link { + text-decoration: underline; +} + +/* 代码高亮 */ +/* PrismJS 1.15.0 +https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */ +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ +code[class*="language-"], +pre[class*="language-"] { + color: black; + background: none; + text-shadow: 0 1px white; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre[class*="language-"]::-moz-selection, +pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, +code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} + +pre[class*="language-"]::selection, +pre[class*="language-"] ::selection, +code[class*="language-"]::selection, +code[class*="language-"] ::selection { + text-shadow: none; + background: #b3d4fc; +} + +@media print { + + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; +} + +:not(pre)>code[class*="language-"], +pre[class*="language-"] { + background: #f5f2f0; +} + +/* Inline code */ +:not(pre)>code[class*="language-"] { + padding: .1em; + border-radius: .3em; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} + +.token.punctuation { + color: #999; +} + +.namespace { + opacity: .7; +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #9a6e3a; + background: hsla(0, 0%, 100%, .5); +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} + +.token.function, +.token.class-name { + color: #DD4A68; +} + +.token.regex, +.token.important, +.token.variable { + color: #e90; +} + +.token.important, +.token.bold { + font-weight: bold; +} + +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} diff --git a/src/views/equipment/base/inspection/Confirm/iconfont/iconfont.css b/src/views/equipment/base/inspection/Confirm/iconfont/iconfont.css new file mode 100644 index 00000000..da3d1f0f --- /dev/null +++ b/src/views/equipment/base/inspection/Confirm/iconfont/iconfont.css @@ -0,0 +1,38 @@ +@font-face { + font-family: "iconfont"; /* Project id 3821755 */ + src: url('iconfont.eot?t=1689233106339'); /* IE9 */ + src: url('iconfont.eot?t=1689233106339#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAARgAAsAAAAACcAAAAQUAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGYACDKAqGSIUsATYCJAMYCw4ABCAFhGcHVBtUCMiuMG7hiaIkox1FaBhxvd1fpwAN4YKo1v7tWTr8hBRkBQgO7yqKUJKPUKzDjkixjn7/q0vlANCkEHCJtsMvx2eQn04h5rHEE8593TK2y1SC5nbvNG5gqgZBNEWTqFUQLGVFNnVu1TjyMm3SafEsC3y0myW12KdEh2x+deP/zzHTJeG3AVBm4lrnAxpQN0US7s3ijuSE6Jbh1UGv08cgQEivMg5z6m49Qj77TVxDEZww6gXicNkviSbkxgswNeGCj+CgMw1yFRpAnUNegSv+8+UfU/igsBpjnRV3rRV9+Su8Fk1Agv6CW4eAeyvAAhronJlI1tcrVnIMHZ0cCcsUTrRTnQ0CP50B4KfgEub9Lw80BougQBwGI8bYJU4LPwUbBw0/HXAw8NORUM90wsT9JeIMFACux9QckHyQ9FDYTobcGi+FLSjwMxDe3L5s+w9THFYeEs8H303FWMnZ1JuBWFgNPh3bd5wOvJmKI9aTqXeD8eJ66HnfnV1dJPE8cy4EgqT+s/SbdSWbp9Pn24NbZ1MnGw7CDbvT6+lL1CXVh++hcH56umDT9vOviL/grQ6srHjE57uLHdQn+dtO9x2v94WN6+eXm0HWlZOzta3tUDp1JWjymsiD8r0ViWGkC+n4GeH5aODSM+9COnilpdfdZsRIvMerLmS0uICTplrOnb99LT3NkJNeajPfpDznblq6bXH8efBjlPIUxhQcX+U0qEdt4bjxy6rMdOkbEn0/3mlvrXZL60ysxdwcn/qKLJ/82pnzGS61z5rBeGmrxf33ZXN/IBWUvb8KSvnttbwwq+YTkweZHue0M0+c0ssZGY/Rs+aVF8+3GaW07CkvLC/KcBvP8c2uGpsdm0THlazwlPE22Kdi9ZK4Hdsmtw9eHVQwPjG0p33Q7tGMJ6TUJ2VK1MMw6ftI6qPPtruCvEPmLZqiHcj1Aw3Rup/sdzj+lt/w3f5TrAHgx++nD7A+8xaD4CL8m60Q+KWYO7CgUY3gTFl+OwUBHKteh00BoWmGDIYm301frAJwKAg+BTEoPCpA41OPNNh2sET0g8NnCkI61M6PKKBzREwANBtGIOS6BEU2D0CT6xvSYP+Apdg/cOT6DyErI68W0RzbqhmYOFixuRNLFqoRi839Zh+A2KqYWJH1CTC7hM04My0j664HDVgXY+xtYhbnBBNGVVzH7geKQrHOqA0sPK2Fc70oPZ2UPSTNQlVUjQEmHLDCzDphEgtKQ9zCPP16DwBRK4UJAyKfyBg7jaeaxzKlyQAg6xkaKO9M2tu1EWXhOEL3IxhKhdWpMqCYDgrTy7vZAAsuTUsLm65IOlWIQBlp47PUS9wAhBgHOFGixYgVJx7+dtqutZuY1eXTvXYncJOkOF1Wicd+CnBACA==') format('woff2'), + url('iconfont.woff?t=1689233106339') format('woff'), + url('iconfont.ttf?t=1689233106339') format('truetype'), + url('iconfont.svg?t=1689233106339#iconfont') format('svg'); +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-downward:before { + content: "\e604"; +} + +.icon-upward:before { + content: "\e605"; +} + +.icon-detail:before { + content: "\e601"; +} + +.icon-edit:before { + content: "\e602"; +} + +.icon-delete:before { + content: "\e603"; +} + diff --git a/src/views/equipment/base/inspection/Confirm/iconfont/iconfont.eot b/src/views/equipment/base/inspection/Confirm/iconfont/iconfont.eot new file mode 100644 index 00000000..e746725c Binary files /dev/null and b/src/views/equipment/base/inspection/Confirm/iconfont/iconfont.eot differ diff --git a/src/views/equipment/base/inspection/Confirm/iconfont/iconfont.js b/src/views/equipment/base/inspection/Confirm/iconfont/iconfont.js new file mode 100644 index 00000000..1520f0ab --- /dev/null +++ b/src/views/equipment/base/inspection/Confirm/iconfont/iconfont.js @@ -0,0 +1 @@ +window._iconfont_svg_string_3821755='',function(a){var t=(t=document.getElementsByTagName("script"))[t.length-1],e=t.getAttribute("data-injectcss"),t=t.getAttribute("data-disable-injectsvg");if(!t){var n,i,o,c,l,d=function(t,e){e.parentNode.insertBefore(t,e)};if(e&&!a.__iconfont__svg__cssinject__){a.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(t){console&&console.log(t)}}n=function(){var t,e=document.createElement("div");e.innerHTML=a._iconfont_svg_string_3821755,(e=e.getElementsByTagName("svg")[0])&&(e.setAttribute("aria-hidden","true"),e.style.position="absolute",e.style.width=0,e.style.height=0,e.style.overflow="hidden",e=e,(t=document.body).firstChild?d(e,t.firstChild):t.appendChild(e))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(n,0):(i=function(){document.removeEventListener("DOMContentLoaded",i,!1),n()},document.addEventListener("DOMContentLoaded",i,!1)):document.attachEvent&&(o=n,c=a.document,l=!1,v(),c.onreadystatechange=function(){"complete"==c.readyState&&(c.onreadystatechange=null,s())})}function s(){l||(l=!0,o())}function v(){try{c.documentElement.doScroll("left")}catch(t){return void setTimeout(v,50)}s()}}(window); \ No newline at end of file diff --git a/src/views/equipment/base/inspection/Confirm/iconfont/iconfont.json b/src/views/equipment/base/inspection/Confirm/iconfont/iconfont.json new file mode 100644 index 00000000..fd0f1b78 --- /dev/null +++ b/src/views/equipment/base/inspection/Confirm/iconfont/iconfont.json @@ -0,0 +1,44 @@ +{ + "id": "3821755", + "name": "component", + "font_family": "iconfont", + "css_prefix_text": "icon-", + "description": "封装的组件中的icon", + "glyphs": [ + { + "icon_id": "36426261", + "name": "downward", + "font_class": "downward", + "unicode": "e604", + "unicode_decimal": 58884 + }, + { + "icon_id": "36426301", + "name": "upward", + "font_class": "upward", + "unicode": "e605", + "unicode_decimal": 58885 + }, + { + "icon_id": "33347867", + "name": "detail", + "font_class": "detail", + "unicode": "e601", + "unicode_decimal": 58881 + }, + { + "icon_id": "33347918", + "name": "edit", + "font_class": "edit", + "unicode": "e602", + "unicode_decimal": 58882 + }, + { + "icon_id": "33347930", + "name": "delete", + "font_class": "delete", + "unicode": "e603", + "unicode_decimal": 58883 + } + ] +} diff --git a/src/views/equipment/base/inspection/Confirm/iconfont/iconfont.svg b/src/views/equipment/base/inspection/Confirm/iconfont/iconfont.svg new file mode 100644 index 00000000..647e5515 --- /dev/null +++ b/src/views/equipment/base/inspection/Confirm/iconfont/iconfont.svg @@ -0,0 +1,29 @@ + + + + Created by iconfont + + + + + + + + + + + + + + + + + + diff --git a/src/views/equipment/base/inspection/Confirm/iconfont/iconfont.ttf b/src/views/equipment/base/inspection/Confirm/iconfont/iconfont.ttf new file mode 100644 index 00000000..014c3da9 Binary files /dev/null and b/src/views/equipment/base/inspection/Confirm/iconfont/iconfont.ttf differ diff --git a/src/views/equipment/base/inspection/Confirm/iconfont/iconfont.woff b/src/views/equipment/base/inspection/Confirm/iconfont/iconfont.woff new file mode 100644 index 00000000..d25f7534 Binary files /dev/null and b/src/views/equipment/base/inspection/Confirm/iconfont/iconfont.woff differ diff --git a/src/views/equipment/base/inspection/Confirm/iconfont/iconfont.woff2 b/src/views/equipment/base/inspection/Confirm/iconfont/iconfont.woff2 new file mode 100644 index 00000000..28c92805 Binary files /dev/null and b/src/views/equipment/base/inspection/Confirm/iconfont/iconfont.woff2 differ diff --git a/src/views/equipment/base/inspection/Confirm/index.vue b/src/views/equipment/base/inspection/Confirm/index.vue new file mode 100644 index 00000000..b3fce78b --- /dev/null +++ b/src/views/equipment/base/inspection/Confirm/index.vue @@ -0,0 +1,553 @@ + + + + + diff --git a/src/views/equipment/base/inspection/Record/addContent.vue b/src/views/equipment/base/inspection/Record/addContent.vue new file mode 100644 index 00000000..f520287c --- /dev/null +++ b/src/views/equipment/base/inspection/Record/addContent.vue @@ -0,0 +1,312 @@ + + + + + diff --git a/src/views/equipment/base/inspection/Record/addRecord.vue b/src/views/equipment/base/inspection/Record/addRecord.vue index f420896b..961fda3e 100644 --- a/src/views/equipment/base/inspection/Record/addRecord.vue +++ b/src/views/equipment/base/inspection/Record/addRecord.vue @@ -1,8 +1,8 @@ - @@ -59,82 +64,113 @@ import moment from 'moment'; import basicPageMixin from '@/mixins/lb/basicPageMixin'; import Editor from '@/components/Editor'; import { deleteEqMaintainLog, exportMaintainLogExcel } from '@/api/equipment/base/maintain/record'; +import AddContent from './addContent.vue'; +import { parseTime } from '../../../../core/mixins/code-filter'; +import tableHeightMixin from '@/mixins/tableHeightMixin'; -const timeFilter = (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'); +// const timeFilter = (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'); + +const btn = { + name: 'tableBtn', + props: ['injectData'], + data() { + return {}; + }, + methods: { + handleClick() { + this.$emit('emitData', { action: this.injectData.label, value: this.injectData }); + }, + }, + render: function (h) { + return ( + + {this.injectData.name} + + ); + }, +}; export default { name: 'EquipmentMaintainRecord', - components: {}, - mixins: [basicPageMixin], + components: { AddContent }, + mixins: [basicPageMixin, tableHeightMixin], data() { return { + addContent: false, searchBarKeys: [ 'maintainPlanId', 'startTime', - 'relatePlan', - 'equipmentId', + 'logType', ], tableBtn: [ - this.$auth.hasPermi('equipment:maintain-record:update') - ? { - type: 'detail', - btnName: '详情', - } - : undefined, - this.$auth.hasPermi('equipment:maintain-record:update') - ? { - type: 'edit', - btnName: '修改', - } - : undefined, - this.$auth.hasPermi('equipment:maintain-record:delete') - ? { - type: 'delete', - btnName: '删除', - } - : undefined, + // this.$auth.hasPermi('equipment:maintain-record:update') + // ? { + // type: 'detail', + // btnName: '详情', + // } + // : undefined, + // this.$auth.hasPermi('equipment:maintain-record:update') + // ? { + // type: 'edit', + // btnName: '修改', + // } + // : undefined, + // this.$auth.hasPermi('equipment:maintain-record:delete') + // ? { + // type: 'delete', + // btnName: '删除', + // } + // : undefined, ].filter((v) => v), tableProps: [ - { - prop: 'createTime', - label: '添加时间', - fixed: true, - width: 150, - filter: timeFilter, - }, - { prop: 'maintainOrderNumber', label: '设备保养单号', width: 110, showOverflowtooltip: true }, - { prop: 'startTime', label: '开始时间', filter: timeFilter, minWidth: 150, showOverflowtooltip: true }, - { prop: 'endTime', label: '结束时间', filter: timeFilter, minWidth: 150, showOverflowtooltip: true }, - { prop: 'equipmentName', label: '设备名称', minWidth: 100, showOverflowtooltip: true }, - { prop: 'maintainWorker', label: '保养人员', minWidth: 100, showOverflowtooltip: true }, + // { + // prop: 'createTime', + // label: '添加时间', + // fixed: true, + // width: 180, + // filter: timeFilter, + // }, + { prop: 'maintainOrderNumber', label: '设备保养单号', minWidth: 170, showOverflowtooltip: true }, + { prop: 'planName', label: '保养计划名称', minWidth: 150, showOverflowtooltip: true }, + { prop: 'departmentName', label: '部门', minWidth: 120, showOverflowtooltip: true }, + { prop: 'lineName', label: '产线名', minWidth: 120, showOverflowtooltip: true }, + { prop: 'planStartTime', label: '计划开始时间', filter: parseTime, minWidth: 150, showOverflowtooltip: true }, + { prop: 'planEndTime', label: '计划结束时间', filter: parseTime, minWidth: 150, showOverflowtooltip: true }, + { prop: 'startTime', label: '实际开始时间', filter: parseTime, minWidth: 150, showOverflowtooltip: true }, + { prop: 'endTime', label: '实际结束时间', filter: parseTime, minWidth: 150, showOverflowtooltip: true }, + // { prop: 'equipmentName', label: '设备名称' }, + // { prop: 'maintainWorker', label: '保养人员' }, { prop: 'relatePlan', - label: '是否计划保养', - width: 120, - filter: (v) => (v != null ? ['', '是', '否'][v] : ''), + label: '保养计划类型', + filter: (v) => (v != null ? ['', '计划型', '非计划型'][v] : ''), + minWidth: 170, + showOverflowtooltip: true }, - { prop: 'planName', label: '保养计划名称', minWidth: 120, showOverflowtooltip: true }, - { prop: 'maintainDuration', label: '计划保养用时(h)', minWidth: 130, showOverflowtooltip: true }, - { prop: 'timeUsed', label: '实际保养用时(h)', minWidth: 130 }, - { prop: 'remark', label: '备注', minWidth: 100, showOverflowtooltip: true }, + this.$auth.hasPermi('equipment:maintain-record:query') ? + { prop: 'opt', label: '详情', name: '详情', subcomponent: btn } : undefined + // { prop: 'maintainDuration', label: '计划保养用时(h)' }, + // { prop: 'timeUsed', label: '实际保养用时(h)' }, + // { prop: 'remark', label: '备注' }, ], searchBarFormConfig: [ + // { + // type: 'select', + // label: '设备', + // placeholder: '请选择设备', + // param: 'equipmentId', + // }, { type: 'select', - label: '设备', - placeholder: '请选择设备', - param: 'equipmentId', - }, - { - type: 'select', - label: '计划名称', + label: '保养计划名称', placeholder: '请选择计划名称', param: 'maintainPlanId', + filterable: true }, // 开始结束时间 { type: 'datePicker', - label: '保养开始时间', + label: '实际开始时间', dateType: 'daterange', // datetimerange format: 'yyyy-MM-dd', valueFormat: 'yyyy-MM-dd HH:mm:ss', @@ -143,16 +179,18 @@ export default { endPlaceholder: '结束日期', defaultTime: ['00:00:00', '23:59:59'], param: 'startTime', + defaultSelect: [] // width: 350, }, { type: 'select', - label: '是否计划保养', + label: '记录类型', selectOptions: [ - { name: '是', id: 1 }, - { name: '否', id: 2 }, + { name: '正常', id: 0 }, + { name: '异常,保养确认超时', id: 1 }, + { name: '其他异常', id: 2 }, ], - param: 'relatePlan', + param: 'logType', }, { type: 'button', @@ -161,7 +199,8 @@ export default { color: 'primary', }, { - type: 'separate', + type: this.$auth.hasPermi('equipment:maintain-record:export') + ? 'separate' : '', }, { type: this.$auth.hasPermi('equipment:maintain-record:export') @@ -170,17 +209,25 @@ export default { btnName: '导出', name: 'export', plain: true, - color: 'warning', - }, - { - type: this.$auth.hasPermi('equipment:maintain-record:create') - ? 'button' - : '', - btnName: '新增', - name: 'add', - plain: true, - color: 'success', - }, + color: 'primary', + } + // { + // type: this.$auth.hasPermi('equipment:maintain-record:create') + // ? 'button' + // : '', + // btnName: '新增', + // name: 'add', + // plain: true, + // color: 'success', + // }, + // { + // type: this.$auth.hasPermi('equipment:maintain-record:export') + // ? 'button' + // : '', + // btnName: '导出', + // name: 'export', + // color: 'warning', + // }, ], rows: [ [ @@ -188,7 +235,8 @@ export default { select: true, label: '保养设备', prop: 'equipmentId', - url: '/base/core-equipment/listAll', + // url: '/base/core-equipment/listAll', + url: '/base/core-equipment/page?special=false&pageNo=1&pageSize=99', bind: { filterable: true, clearable: true, @@ -215,29 +263,17 @@ export default { }, ], [ - // { - // switch: true, - // label: '是否计划保养', - // prop: 'relatePlan', - // bind: { - // 'active-value': 1, - // 'inactive-value': 2, - // }, - // rules: [{ required: true, message: '是否计划保养不能为空', trigger: 'blur' }], - // }, { - select: true, - options: [ - { label: '是', value: 1 }, - { label: '否', value: 2 } - ], + switch: true, label: '是否计划保养', prop: 'relatePlan', bind: { - clearable: true, filterable: true + 'active-value': 1, + 'inactive-value': 2, }, rules: [{ required: true, message: '是否计划保养不能为空', trigger: 'blur' }], }, + {}, { select: true, label: '所属计划', @@ -248,11 +284,6 @@ export default { clearable: true, }, }, - { - input: true, - label: '保养用时', - prop: 'timeUsed', - }, ], [ { @@ -279,7 +310,11 @@ export default { clearable: true, }, }, - {} + { + input: true, + label: '保养用时', + prop: 'timeUsed', + }, ], [ @@ -306,12 +341,14 @@ export default { // 查询参数 queryParams: { pageNo: 1, - pageSize: 10, + pageSize: 20, + special: false, maintainPlanId: null, maintainPlanId: null, startTime: null, relatePlan: null, equipmentId: null, + confirmed: true }, // 表单参数 form: {}, @@ -320,46 +357,68 @@ export default { }; }, created() { + let end = moment().format('YYYY-MM-DD 08:00:00') + const current = new Date() + let start = parseTime(new Date(current.getFullYear(), current.getMonth(), current.getDate() - 3, 8, 0, 0)) + this.searchBarFormConfig[1].defaultSelect = [start, end] + this.queryParams.startTime = [start, end] this.initSearchBar(); - if (this.$route.query) { - this.queryParams.equipmentId = - this.$route.query?.equipmentId ?? undefined; - this.queryParams.maintainPlanId = - this.$route.query?.maintainPlanId ?? undefined; - this.queryParams.relatePlan = this.$route.query?.relatePlan ?? undefined; - this.queryParams.startTime = this.$route.query?.createTime ?? undefined; - this.searchBarFormConfig[0].defaultSelect = - this.$route.query.equipmentId ?? undefined; - this.searchBarFormConfig[1].defaultSelect = - this.$route.query.maintainPlanId ?? undefined; - this.searchBarFormConfig[2].defaultSelect = - this.$route.query?.createTime ?? undefined; - this.searchBarFormConfig[3].defaultSelect = - Number(this.$route.query.relatePlan) ?? undefined; - } + // if (this.$route.query) { + // // this.queryParams.equipmentId = + // // this.$route.query?.equipmentId ?? undefined; + // this.queryParams.maintainPlanId = + // this.$route.query?.maintainPlanId ?? undefined; + // // this.queryParams.relatePlan = this.$route.query?.relatePlan ?? undefined; + // this.queryParams.startTime = this.$route.query?.createTime ?? undefined; + // // this.searchBarFormConfig[0].defaultSelect = + // // this.$route.query.equipmentId ?? undefined; + // this.searchBarFormConfig[0].defaultSelect = + // this.$route.query.maintainPlanId ?? undefined; + // this.searchBarFormConfig[1].defaultSelect = + // this.$route.query?.createTime ?? undefined; + // // this.searchBarFormConfig[3].defaultSelect = + // // Number(this.$route.query.relatePlan) ?? undefined; + // } this.getList(); if (this.$route.query.addRecord) { this.handleAdd() } }, methods: { + handleEmitFun({action, value}) { + switch (action) { + // 查看详情 + case '详情': + // this.handleDetail({ id: value.id }) + this.addContent = true; + this.$nextTick(() => { + this.$refs.addContent.init(value.id, true); + }); + break; + } + }, initSearchBar() { - this.http('/base/core-equipment/listAll', 'get').then(({ data }) => { - this.$set( - this.searchBarFormConfig[0], - 'selectOptions', - data.map((item) => ({ - name: item.name, - id: item.id, - })) - ); - }); + // this.http('/base/core-equipment/page', 'get', { + // special: false, + // pageNo: 1, + // pageSize: 99 + // }).then(({ data }) => { + // this.$set( + // this.searchBarFormConfig[0], + // 'selectOptions', + // (data?.list || []).map((item) => ({ + // name: item.name, + // id: item.id, + // })) + // ); + // }); this.http('/base/equipment-maintain-plan/page', 'get', { pageNo: 1, pageSize: 100, + special: false }).then(({ data }) => { this.$set( - this.searchBarFormConfig[1], + this.searchBarFormConfig[0], 'selectOptions', (data?.list || []).map((item) => ({ name: item.name, @@ -501,6 +560,7 @@ export default { let params = { ...this.queryParams }; params.pageNo = undefined; params.pageSize = undefined; + params.confirmed = true; this.$modal .confirm('是否确认导出所有保养记录?') .then(() => { diff --git a/src/views/equipment/base/maintain/items/components/InputArea.vue b/src/views/equipment/base/maintain/items/components/InputArea.vue new file mode 100644 index 00000000..6b31d36e --- /dev/null +++ b/src/views/equipment/base/maintain/items/components/InputArea.vue @@ -0,0 +1,46 @@ + + + + diff --git a/src/views/equipment/base/maintain/items/components/add-or-updata.vue b/src/views/equipment/base/maintain/items/components/add-or-updata.vue new file mode 100644 index 00000000..90fda1c9 --- /dev/null +++ b/src/views/equipment/base/maintain/items/components/add-or-updata.vue @@ -0,0 +1,141 @@ + + + + diff --git a/src/views/equipment/base/maintain/items/components/basic-add.js b/src/views/equipment/base/maintain/items/components/basic-add.js new file mode 100644 index 00000000..c8f7e43e --- /dev/null +++ b/src/views/equipment/base/maintain/items/components/basic-add.js @@ -0,0 +1,112 @@ +/* + * @Author: zwq + * @Date: 2022-08-24 11:19:43 + * @LastEditors: zhp + * @LastEditTime: 2024-07-19 14:47:02 + * @Description: + */ +export default { + data() { + /* eslint-disable */ + return { + urlOptions: { + createURL: '', + updateURL: '', + infoURL: '', + codeURL: '', + getOption: false, + isGetCode: false, + optionArrUrl: [], + optionArr: {} + }, + visible: false, + setData: false + } + }, + created() { + }, + activated() { + }, + methods: { + init(obj) { + console.log(obj); + this.dataForm.id = obj.id || ""; + this.dataForm.equipmentTypeId = obj.equipmentTypeId || ""; + this.visible = true; + if (this.urlOptions.getOption) { + this.getArr() + } + this.$nextTick(() => { + this.$refs["dataForm"].resetFields(); + if (this.dataForm.id) { + this.urlOptions.infoURL(this.dataForm.id).then(res => { + this.dataForm.id = res.data.id + this.dataForm.program = res.data.program + this.dataForm.resultType = res.data.resultType + // console.log(this.dataForm.maintainResult.search('~')) + if (res.data.resultType === 2 || res.data.maintainResult.search('~') != -1) { + this.dataForm.minValue = res.data.maintainResult.substring(0, res.data.maintainResult.search('~')) + this.dataForm.maxValue = res.data.maintainResult.substring(res.data.maintainResult.search('~') + 1, res.data.maintainResult.length) + this.dataForm.maintainResult = undefined + // = this.dataForm.minValue + '-' + this.dataForm.maxValue + } else { + this.dataForm.minValue = undefined + this.dataForm.maxValue = undefined + this.dataForm.maintainResult = res.data.maintainResult + } + console.log(this.dataForm); + }); + } + }); + }, + getCode() { + this.urlOptions.codeURL() + .then(({ data: res }) => { + this.dataForm.code = res; + }) + .catch(() => {}); + }, + getArr() { + const params = { + pageSize: 100, + pageNo: 1, + } + this.urlOptions.optionArrUrl.forEach((item, index) => { + item(params).then(({ data: res }) => { + this.$set(this.urlOptions.optionArr, `arr${index}`, res.list) + }) + .catch(() => { + }); + }); + }, + // 表单提交 + dataFormSubmit() { + this.$refs["dataForm"].validate((valid) => { + if (this.dataForm.resultType === 2) { + this.dataForm.maintainResult = this.dataForm.minValue + '~' + this.dataForm.maxValue + } + if (!valid) { + return false; + } + // 修改的提交 + if (this.dataForm.id) { + this.urlOptions.updateURL(this.dataForm).then(response => { + this.$modal.msgSuccess("修改成功"); + this.visible = false; + this.$emit("refreshDataList"); + }); + return; + } + // 添加的提交 + this.urlOptions.createURL(this.dataForm).then(response => { + this.$modal.msgSuccess("新增成功"); + this.visible = false; + this.$emit("refreshDataList"); + }); + }); + }, + formClear() { + this.$refs.dataForm.resetFields() + } + } +} diff --git a/src/views/equipment/base/maintain/items/components/basic-page.js b/src/views/equipment/base/maintain/items/components/basic-page.js new file mode 100644 index 00000000..d4aab025 --- /dev/null +++ b/src/views/equipment/base/maintain/items/components/basic-page.js @@ -0,0 +1,172 @@ +/* + * @Author: zhp + * @Date: 2024-07-19 09:49:22 + * @LastEditTime: 2024-07-22 09:17:31 + * @LastEditors: zhp + * @Description: + */ +export default { + data() { + /* eslint-disable */ + return { + urlOptions: { + getDataListURL: '', + deleteURL: '', + statusUrl: '', + exportURL: '' + }, + tableData: [], + listQuery: { + pageSize: 10, + pageNo: 1, + total: 1, + }, + exportLoading: false, + dataListLoading: false, + addOrEditTitle: '', + addOrUpdateVisible: false, + } + }, + created() { + }, + mounted() { + this.getDataList() + }, + methods: { + // 获取数据列表 + getDataList() { + this.dataListLoading = true; + this.urlOptions.getDataListURL(this.listQuery).then(response => { + this.tableData = response.data.list; + this.listQuery.total = response.data.total; + this.dataListLoading = false; + }); + }, + // 每页数 + sizeChangeHandle(val) { + this.listQuery.pageSize = val; + this.listQuery.pageNo = 1; + this.getDataList(); + }, + // 当前页 + currentChangeHandle(val) { + this.listQuery.pageNo = val; + this.getDataList(); + }, + // 新增 / 修改 + addOrUpdateHandle(id) { + this.addOrUpdateVisible = true; + this.$nextTick(() => { + this.$refs.addOrUpdate.init(id); + }); + }, + cancel(id) { + this.$refs["popover-" + id].showPopper = false; + }, + //改变状态 + changeStatus(id) { + this.$http + .post(this.urlOptions.statusUrl, { id }) + .then(({ data: res }) => { + if (res.code !== 0) { + return this.$message.error(res.msg); + } + this.$refs["popover-" + id].showPopper = false; + this.$message({ + message: this.$t("prompt.success"), + type: "success", + duration: 500, + onClose: () => { + this.getDataList(); + }, + }); + }) + .catch(() => { }); + }, + //tableBtn点击 + handleClick(val) { + if (val.type === "edit") { + this.addOrUpdateVisible = true; + this.addOrEditTitle = "编辑" + let obj = { + id: val.data.id, + equipmentTypeId:val.data.equipmentTypeId + } + this.$nextTick(() => { + this.$refs.addOrUpdate.init(obj); + }); + } else if (val.type === "delete") { + this.deleteHandle(val.data.id, val.data.program, val.data._pageIndex) + } else if (val.type === "change") { + this.changeStatus(val.data.id) + } else { + this.otherMethods(val) + } + }, + // 删除 + deleteHandle(id, name, index) { + this.$modal.delConfirm(`确定要删除${name}?`, "提示", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning", + }) + .then(() => { + this.urlOptions.deleteURL(id).then(({ data }) => { + this.$message({ + message: "操作成功", + type: "success", + duration: 1500, + onClose: () => { + this.getDataList(); + }, + }); + }); + }) + .catch(() => { }); + }, + //search-bar点击 + buttonClick(val) { + switch (val.btnName) { + case "search": + this.listQuery.xm1 = val.xm1; + this.listQuery.xm2 = val.xm2; + this.listQuery.pageNo = 1; + this.getDataList(); + break; + case "add": + this.addOrEditTitle = '新增' + this.addOrUpdateVisible = true; + this.addOrUpdateHandle() + break; + default: + console.log(val) + } + }, + handleCancel() { + this.$refs.addOrUpdate.formClear() + this.addOrUpdateVisible = false + this.addOrEditTitle = '' + }, + handleConfirm() { + this.$refs.addOrUpdate.dataFormSubmit() + }, + successSubmit() { + this.handleCancel() + this.getDataList() + }, + /** 导出按钮操作 */ + handleExport() { + // 处理查询参数 + let params = { ...this.queryParams }; + params.pageNo = undefined; + params.pageSize = undefined; + this.$modal.confirm('是否确认导出所有数据项?').then(() => { + this.exportLoading = true; + return this.urlOptions.exportURL(params); + }).then(response => { + this.$download.excel(response, '工厂.xls'); + this.exportLoading = false; + }).catch(() => { }); + } + } +} diff --git a/src/views/equipment/base/maintain/items/index.vue b/src/views/equipment/base/maintain/items/index.vue new file mode 100644 index 00000000..e1af2a5a --- /dev/null +++ b/src/views/equipment/base/maintain/items/index.vue @@ -0,0 +1,263 @@ + + + diff --git a/src/views/equipment/base/maintain/items/showDetail.vue b/src/views/equipment/base/maintain/items/showDetail.vue new file mode 100644 index 00000000..f14b95e0 --- /dev/null +++ b/src/views/equipment/base/maintain/items/showDetail.vue @@ -0,0 +1,135 @@ + + + + + + diff --git a/src/views/equipment/base/repair/CustomDialogForm.vue b/src/views/equipment/base/repair/CustomDialogForm.vue index 664c4ebe..a7b23222 100644 --- a/src/views/equipment/base/repair/CustomDialogForm.vue +++ b/src/views/equipment/base/repair/CustomDialogForm.vue @@ -1,288 +1,336 @@ - diff --git a/src/views/equipment/base/repair/Repair--add.vue b/src/views/equipment/base/repair/Repair--add.vue new file mode 100644 index 00000000..16f96e9a --- /dev/null +++ b/src/views/equipment/base/repair/Repair--add.vue @@ -0,0 +1,706 @@ + + + + + + + diff --git a/src/views/equipment/base/repair/htmls.vue b/src/views/equipment/base/repair/htmls.vue new file mode 100644 index 00000000..356f2400 --- /dev/null +++ b/src/views/equipment/base/repair/htmls.vue @@ -0,0 +1,35 @@ + + + + diff --git a/src/views/equipment/base/repair/index.vue b/src/views/equipment/base/repair/index.vue index a96bc900..a3a08c97 100644 --- a/src/views/equipment/base/repair/index.vue +++ b/src/views/equipment/base/repair/index.vue @@ -12,12 +12,13 @@ :page="queryParams.pageNo" :limit="queryParams.pageSize" :table-data="list" - @emitFun="handleEmitFun"> + @emitFun="handleEmitFun" + :max-height="tableH"> @@ -41,15 +42,12 @@ v-if="open" ref="form" v-model="form" - :disabled="mode == 'detail'" - :has-files="true" - :rows="rows" /> + :disabled="mode == 'detail'" /> + @refreshDataList="getList" /> @@ -59,29 +57,32 @@ import basicPageMixin from '@/mixins/lb/basicPageMixin'; import CustomDialogForm from './CustomDialogForm.vue'; import { deleteRepair, exportRepairLogExcel } from '@/api/equipment/base/repair' import { parseTime } from '@/utils/ruoyi' +import htmls from './htmls.vue' +import DialogForm from './Repair--add.vue'; +import tableHeightMixin from '@/mixins/tableHeightMixin'; // const timeFilter = (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'); export default { name: 'EquipmentRepair', - components: { CustomDialogForm }, - mixins: [basicPageMixin], + components: { CustomDialogForm, DialogForm }, + mixins: [basicPageMixin, tableHeightMixin], data() { return { addOrUpdateVisible: false, - searchBarKeys: ['maintenanceStatus', 'createTime', 'equipmentId'], + searchBarKeys: ['maintenanceResult', 'createTime', 'equipmentId'], tableBtn: [ - this.$auth.hasPermi('equipment:repair:finish') - ? { - type: 'finish', - btnName: '完成', - } - : undefined, - this.$auth.hasPermi('equipment:repair:update') + this.$auth.hasPermi('equipment:repair:query') ? { type: 'detail', btnName: '详情', } : undefined, + // this.$auth.hasPermi('equipment:repair:finish') + // ? { + // type: 'finish', + // btnName: '完成', + // } + // : undefined, // this.$auth.hasPermi('equipment:repair:update') // ? { // type: 'edit', @@ -96,35 +97,42 @@ export default { : undefined, ].filter((v) => v), tableProps: [ + // { + // prop: 'createTime', + // label: '添加时间', + // fixed: true, + // width: 180, + // filter: parseTime, + // }, + { prop: 'repairOrderNumber', label: '维修单号', width: 180, showOverflowtooltip: true }, + { prop: 'lineName', label: '产线名', width: 120, showOverflowtooltip: true }, + { prop: 'sectionName', label: '工段名', width: 120, showOverflowtooltip: true }, + { prop: 'equipmentName', label: '设备名称', minWidth: 100, showOverflowtooltip: true }, + { prop: 'faultDetail', label: '故障明细', subcomponent: htmls, width: 180, showOverflowtooltip: true }, + // { prop: 'maintenanceDetail', label: '维修明细', subcomponent: htmls, minWidth: 100, showOverflowtooltip: true }, { - prop: 'createTime', - label: '添加时间', - fixed: true, + prop: 'maintenanceStartTime', + label: '维修开始时间', width: 150, filter: parseTime, }, - { prop: 'repairOrderNumber', label: '设备维修单号', minWidth: 100, showOverflowtooltip: true }, - { prop: 'maintenanceStartTime', label: '开始时间', filter: parseTime, minWidth: 150, showOverflowtooltip: true }, { prop: 'maintenanceFinishTime', - label: '结束时间', + label: '维修结束时间', + width: 150, filter: parseTime, - minWidth: 150, - showOverflowtooltip: true }, + // { prop: 'maintenanceStartTime', label: '开始时间', filter: parseTime }, { - prop: 'maintenanceStatus', - label: '维修状态', - filter: (v) => (v != null ? ['未完成', '完成', '进行中'][v] : ''), + prop: 'maintenanceResult', + label: '维修结果', + filter: (v) => (v != null ? ['成功', '失败'][v] : ''), }, - { prop: 'maintenanceDuration', label: '维修时长(h)', width: 110 }, - { prop: 'lineName', label: '产线' }, - { prop: 'sectionName', label: '工段' }, - { prop: 'equipmentName', label: '设备名称', minWidth: 100, showOverflowtooltip: true }, - { prop: 'maintenanceDetail', label: '维修明细', minWidth: 100, showOverflowtooltip: true }, - { prop: 'repairman', label: '维修工', minWidth: 100, showOverflowtooltip: true }, - { prop: 'repairmanPhone', label: '联系方式', minWidth: 100, showOverflowtooltip: true }, - { prop: 'remark', label: '备注', minWidth: 120, showOverflowtooltip: true }, + // { prop: 'maintenanceDuration', label: '维修时长(h)' }, + { prop: 'maintenanceDetail', label: '维修描述', subcomponent: htmls }, // 没有参数 + // { prop: 'repairman', label: '维修工', minWidth: 100, showOverflowtooltip: true }, + // { prop: 'repairmanPhone', label: '联系方式', minWidth: 100, showOverflowtooltip: true }, + { prop: 'remark', label: '备注', minWidth: 90, showOverflowtooltip: true } ], searchBarFormConfig: [ { @@ -136,13 +144,12 @@ export default { }, { type: 'select', - label: '状态', + label: '维修结果', placeholder: '请选择状态', - param: 'maintenanceStatus', + param: 'maintenanceResult', selectOptions: [ - { name: '未完成', id: '0' }, - { name: '完成', id: '1' }, - { name: '进行中', id: '2' }, + { name: '成功', id: '0' }, + { name: '失败', id: '1' } ], }, // 时间段 @@ -166,96 +173,43 @@ export default { color: 'primary', }, { - type: 'separate', - }, - { - type: this.$auth.hasPermi('equipment:repair:create') ? 'button' : '', - btnName: '新增', - name: 'add', - plain: true, - color: 'success', + type: (this.$auth.hasPermi('equipment:repair:export') || + this.$auth.hasPermiAnd([ + 'equipment:repair:create', + 'base:core-worker:query', + 'system:user:list' + ])) ? 'separate' : '', }, { type: this.$auth.hasPermi('equipment:repair:export') ? 'button' : '', btnName: '导出', name: 'export', plain: true, - color: 'warning', + color: 'primary', + }, + { + type: this.$auth.hasPermiAnd([ + 'equipment:repair:create', + 'base:core-worker:query', + 'system:user:list' + ]) ? 'button' : '', + btnName: '新增', + name: 'add', + plain: true, + color: 'success', }, - ], - rows: [ - [ - { - input: true, - label: '维修单号', - prop: 'repairOrderNumber', - rules: [{ required: true, message: '维修单号不能为空', trigger: 'blur' }], - }, - { - select: true, - label: '设备名称', - prop: 'equipmentId', - url: '/base/core-equipment/listAll', - bind: { - filterable: true, - clearable: true, - }, - rules: [{ required: true, message: '设备名称不能为空', trigger: 'blur' }], - }, - ], - [ - { - // TODO: 和班组联动 - // select: true, - input: true, - label: '维修工', - prop: 'repairman', - // url: '/base/core-worker/listAll', - // valueKey: 'name', - bind: { - filterable: true, - clearable: true, - // multiple: true, - }, - // options: [{ label: 'test', value: 'test' }], - rules: [{ required: true, message: '维修工不能为空', trigger: 'blur' }], - }, - { - input: true, - label: '联系方式', - prop: 'repairmanPhone', - }, - ], - [ - { - datetime: true, - label: '故障发生时间', - prop: 'faultTime', - rules: [{ required: true, message: '故障发生时间不能为空', trigger: 'blur' }], - bind: { - format: 'yyyy-MM-dd HH:mm:ss', - 'value-format': 'timestamp', - // 'value-format': 'yyyy-MM-dd HH:mm:ss', - clearable: true, - }, - }, - { - select: true, - label: '故障级别', - prop: 'faultLevel', // 数据字典 - options: this.getDictDatas(this.DICT_TYPE.FAULT_LEVEL), - }, - ], ], // 是否显示弹出层 open: false, // 查询参数 queryParams: { pageNo: 1, - pageSize: 10, - maintenanceStatus: null, + pageSize: 20, + special: false, + maintenanceResult: null, createTime: null, equipmentId: null, + special: false }, // 表单参数 form: {}, @@ -269,11 +223,15 @@ export default { }, methods: { initSearchBar() { - this.http('/base/core-equipment/listAll', 'get').then(({ data }) => { + this.http('/base/core-equipment/page', 'get', { + special: false, + pageNo: 1, + pageSize: 999, + }).then(({ data }) => { this.$set( this.searchBarFormConfig[0], 'selectOptions', - data.map((item) => ({ + (data?.list || []).map((item) => ({ name: item.name, id: item.id, })) @@ -377,7 +335,10 @@ export default { // } // 修改的提交 if (this.form.id != null) { - this.put(this.form).then((response) => { + this.put({ + ...this.form, + repairman: this.form.repairman.join(',') + }).then((response) => { this.$modal.msgSuccess('修改成功'); this.open = false; this.getList(); @@ -385,7 +346,10 @@ export default { return; } // 添加的提交 - this.post(this.form).then((response) => { + this.post({ + ...this.form, + repairman: this.form.repairman.join(',') + }).then((response) => { this.$modal.msgSuccess('新增成功'); this.open = false; this.getList(); diff --git a/src/views/equipment/base/spareParts/Monitor/addSparts.vue b/src/views/equipment/base/spareParts/Monitor/addSparts.vue index 24f68db2..72ad2b79 100644 --- a/src/views/equipment/base/spareParts/Monitor/addSparts.vue +++ b/src/views/equipment/base/spareParts/Monitor/addSparts.vue @@ -252,7 +252,7 @@ export default { type: 'button', btnName: '导出', name: 'export', - color: 'warning', + color: 'primary', plain: true }, ], diff --git a/src/views/equipment/monitor/SearchBar.vue b/src/views/equipment/monitor/SearchBar.vue index 1cc50e7c..1c95e6d4 100644 --- a/src/views/equipment/monitor/SearchBar.vue +++ b/src/views/equipment/monitor/SearchBar.vue @@ -92,23 +92,34 @@ export default { }); if (code == 0) { this.listLine = data; - return; + } else { + this.listLine.splice(0); } - this.listLine.splice(0); - }, - async getEquipmentByLineId(id) { - const { data, code } = await this.$axios({ - url: '/base/core-equipment/listByLine', - params: { - id, - }, + // 获得全部设备 + const res = await this.$axios({ + url: '/base/core-equipment/listAll', }); - if (code == 0) { - this.listEq = data; + if (res.code == 0) { + this.listEq = res.data; return; } this.listEq.splice(0); }, + async getEquipmentByLineId(id) { + if (id) { + const { data, code } = await this.$axios({ + url: '/base/core-equipment/listByLine', + params: { + id, + }, + }); + if (code == 0) { + this.listEq = data; + return; + } + this.listEq.splice(0); + } + }, handleSearch() { this.$emit('action', { action: 'search', diff --git a/src/views/equipment/monitor/StatusAndParams/index.vue b/src/views/equipment/monitor/StatusAndParams/index.vue index e3f0fe1d..ac3c6fd1 100644 --- a/src/views/equipment/monitor/StatusAndParams/index.vue +++ b/src/views/equipment/monitor/StatusAndParams/index.vue @@ -83,33 +83,41 @@ export default { data() { return { tableProps: [ - { prop: 'equipmentName', label: '设备名称' }, - { prop: 'equipmentCode', label: '设备编码' }, - { prop: 'inQuantity', label: '投入数' }, - { prop: 'outQuantity', label: '产出数' }, + { prop: 'equipmentName', label: '设备名称', minWidth: 100, showOverflowtooltip: true }, + { prop: 'equipmentCode', label: '设备编码', minWidth: 150, showOverflowtooltip: true }, + { prop: 'inQuantity', label: '投入数', minWidth: 80, showOverflowtooltip: true }, + { prop: 'outQuantity', label: '产出数', minWidth: 80, showOverflowtooltip: true }, { prop: 'run', label: '是否运行', filter: (val) => (val != null ? (val ? '是' : '否') : ''), + minWidth: 100, + showOverflowtooltip: true }, { prop: 'status', label: '状态', filter: (val) => val != null ? ['正常', '计划停机', '故障'][val] : '', + minWidth: 90, + showOverflowtooltip: true }, { prop: 'error', label: '是否故障', filter: (val) => (val != null ? (val ? '是' : '否') : ''), + minWidth: 100, + showOverflowtooltip: true }, { prop: 'quantityRecordTime', label: '生产量记录时间', filter: parseTime, + minWidth: 150, + showOverflowtooltip: true }, - { prop: 'statusRecordTime', label: '状态记录时间', filter: parseTime }, - { prop: 'opt1', label: '状态可视化', name: '查看', subcomponent: btn }, + { prop: 'statusRecordTime', label: '状态记录时间', filter: parseTime, minWidth: 150, showOverflowtooltip: true }, + // { prop: 'opt1', label: '状态可视化', name: '查看', subcomponent: btn }, { prop: 'opt2', label: '参数监控', name: '查看', subcomponent: btn }, ], searchBarForm: { diff --git a/src/views/oldOrder/base/orderManage/index.vue b/src/views/oldOrder/base/orderManage/index.vue index b398b76e..ed5d0547 100644 --- a/src/views/oldOrder/base/orderManage/index.vue +++ b/src/views/oldOrder/base/orderManage/index.vue @@ -467,4 +467,4 @@ export default { // } } } - \ No newline at end of file + diff --git a/src/views/order/base/orderManage/index.vue b/src/views/order/base/orderManage/index.vue index b398b76e..ed5d0547 100644 --- a/src/views/order/base/orderManage/index.vue +++ b/src/views/order/base/orderManage/index.vue @@ -467,4 +467,4 @@ export default { // } } } - \ No newline at end of file + diff --git a/src/views/produce/order/base/orderManage/components/addWorkOrder.vue b/src/views/produce/order/base/orderManage/components/addWorkOrder.vue new file mode 100644 index 00000000..55740bc2 --- /dev/null +++ b/src/views/produce/order/base/orderManage/components/addWorkOrder.vue @@ -0,0 +1,304 @@ + + diff --git a/src/views/produce/order/base/orderManage/components/orderAdd.vue b/src/views/produce/order/base/orderManage/components/orderAdd.vue new file mode 100644 index 00000000..10c2abd2 --- /dev/null +++ b/src/views/produce/order/base/orderManage/components/orderAdd.vue @@ -0,0 +1,223 @@ + + diff --git a/src/views/produce/order/base/orderManage/components/orderSplit.vue b/src/views/produce/order/base/orderManage/components/orderSplit.vue new file mode 100644 index 00000000..08d9cc13 --- /dev/null +++ b/src/views/produce/order/base/orderManage/components/orderSplit.vue @@ -0,0 +1,167 @@ + + + diff --git a/src/views/produce/order/base/orderManage/index.vue b/src/views/produce/order/base/orderManage/index.vue new file mode 100644 index 00000000..72c6ac5d --- /dev/null +++ b/src/views/produce/order/base/orderManage/index.vue @@ -0,0 +1,491 @@ + + diff --git a/src/views/produce/order/base/orderManage/orderDetailData.vue b/src/views/produce/order/base/orderManage/orderDetailData.vue new file mode 100644 index 00000000..cffafbe2 --- /dev/null +++ b/src/views/produce/order/base/orderManage/orderDetailData.vue @@ -0,0 +1,343 @@ + + + \ No newline at end of file diff --git a/src/views/produce/order/monitoring/components/monitoringRingCharts.vue b/src/views/produce/order/monitoring/components/monitoringRingCharts.vue new file mode 100644 index 00000000..54a55a19 --- /dev/null +++ b/src/views/produce/order/monitoring/components/monitoringRingCharts.vue @@ -0,0 +1,168 @@ + + + \ No newline at end of file diff --git a/src/views/produce/order/monitoring/orderCompletionMonitoring/index.vue b/src/views/produce/order/monitoring/orderCompletionMonitoring/index.vue new file mode 100644 index 00000000..b2a469cd --- /dev/null +++ b/src/views/produce/order/monitoring/orderCompletionMonitoring/index.vue @@ -0,0 +1,371 @@ + + + \ No newline at end of file diff --git a/src/views/produce/workOrder/index.vue b/src/views/produce/workOrder/index.vue index f03890b6..a8e242c3 100644 --- a/src/views/produce/workOrder/index.vue +++ b/src/views/produce/workOrder/index.vue @@ -375,7 +375,7 @@ export default { }); } else if (val.type === 'detail') { this.$router.push({ - path: '/core/core-work-order-detail', + path: '/produce/core-work-order-detail', query:{ id: val.data.id }