diff --git a/.env.production b/.env.production index a35c8e44..55c83dbf 100644 --- a/.env.production +++ b/.env.production @@ -23,7 +23,7 @@ ENV = 'production' # VUE_APP_BASE_API = 'http://192.168.0.153:9150/UDI_WMS_MC/' # 文明东2 -# VUE_APP_BASE_API = 'http://192.168.0.61:9150/UDI_WMS_MC/' + #VUE_APP_BASE_API = 'http://192.168.0.61:9150/UDI_WMS_MC/' # 东旭 # VUE_APP_BASE_API = 'http://192.168.0.153:9150/UDI_WMS_MC/' @@ -31,7 +31,7 @@ ENV = 'production' # VUE_APP_BASE_API = 'http://192.168.0.54:9150/UDI_WMS_MC/' # 平潭正式 -VUE_APP_BASE_API = 'http://55.55.0.62:9150/UDI_WMS_MC/' +#VUE_APP_BASE_API = 'http://55.55.0.62:9150/UDI_WMS_MC/' # 吴总测试服务器 # VUE_APP_BASE_API = 'http://116.204.106.103:9150/UDI_WMS_MC/' @@ -40,7 +40,7 @@ VUE_APP_BASE_API = 'http://55.55.0.62:9150/UDI_WMS_MC/' # VUE_APP_BASE_API = 'http://192.168.240.119:9150/UDI_WMS_MC/' # 片仔癀诊断 -# VUE_APP_BASE_API = 'http://192.168.0.100:9160/UDI_WMS_MC/' + VUE_APP_BASE_API = 'http://192.168.0.100:9160/UDI_WMS_MC/' # 应用访问路径 例如使用前缀 /admin/ diff --git a/src/api/inventory/deviceProjectSet.js b/src/api/inventory/deviceProjectSet.js new file mode 100644 index 00000000..15e0ed71 --- /dev/null +++ b/src/api/inventory/deviceProjectSet.js @@ -0,0 +1,40 @@ +import axios from "../../utils/request"; + + +export function getprojectSetList(params) { + return axios({ + url: "/udiwms/inv/device/project/set/filter", + method: "get", + params: params + }); +} + +export function insertDevprojectSet(params) { + return axios({ + url: "/udiwms/inv/device/project/set/insertDevprojectSet", + method: "post", + data: params + }); +} + +export function updateDevprojectSet(params) { + return axios({ + url: "/udiwms/inv/device/project/set/updateDevprojectSet", + method: "post", + data: params + }); +} + + +export function deleteDevprojectSet(params) { + return axios({ + url: "/udiwms/inv/device/project/set/deleteDevprojectSet", + method: "get", + params: params + }); +} + + + + + diff --git a/src/api/inventory/deviceRepairOrder.js b/src/api/inventory/deviceRepairOrder.js index f0d29ecb..5030d80b 100644 --- a/src/api/inventory/deviceRepairOrder.js +++ b/src/api/inventory/deviceRepairOrder.js @@ -33,6 +33,24 @@ export function updateStatus(params) { }); } +//开始任务 +export function updateStatusAndTime(params) { + return axios({ + url: "/udiwms/inv/device/repair/order/updateStatusAndTime", + method: "post", + data: params + }); +} + +//结束任务 +export function updateStatusAndImg(params) { + return axios({ + url: "/udiwms/inv/device/repair/order/updateStatusAndImg", + method: "post", + data: params + }); +} + export function deleteRepairOrder(params) { return axios({ url: "/udiwms/inv/device/repair/order/deleteRepairOrder", diff --git a/src/utils/request.js b/src/utils/request.js index 7cad61ea..05fed3a8 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -76,7 +76,7 @@ service.interceptors.request.use(config => { }) // 响应拦截器 -service.interceptors.response.use(res => { +service.interceptors.response.use((res) => { // 未设置状态码则默认成功状态 const code = res.data.code || 200; // 获取错误信息 diff --git a/src/views/inventory/DeviceProjectSet.vue b/src/views/inventory/DeviceProjectSet.vue new file mode 100644 index 00000000..cf8a4c74 --- /dev/null +++ b/src/views/inventory/DeviceProjectSet.vue @@ -0,0 +1,331 @@ + + + + + + diff --git a/src/views/inventory/DeviceProjectSetDialog.vue b/src/views/inventory/DeviceProjectSetDialog.vue new file mode 100644 index 00000000..fde46947 --- /dev/null +++ b/src/views/inventory/DeviceProjectSetDialog.vue @@ -0,0 +1,143 @@ + + + + + diff --git a/src/views/inventory/DeviceRepairOrderAudit.vue b/src/views/inventory/DeviceRepairOrderAudit.vue index 73caafd3..a7471d9d 100644 --- a/src/views/inventory/DeviceRepairOrderAudit.vue +++ b/src/views/inventory/DeviceRepairOrderAudit.vue @@ -65,22 +65,22 @@ - - - - - - - - - + + + + + + + + + - - + + @@ -115,7 +129,7 @@ import {getDeptListByUser} from "@/api/auth/authDept"; import {findInvByUser} from "@/api/system/invSubWarehouse"; import {getRepairList, updateStatus, deleteRepairOrder} from "@/api/inventory/deviceRepairOrder"; - +import DeviceRepairOrderAduitModify from "@/views/inventory/DeviceRepairOrderAuditModify"; export default { name: "DeviceRepairOrderAudit", data() { @@ -135,16 +149,12 @@ export default { loading: false, formVisible: false, codeTableLoading: false, + deviceRepairOrder:{}, statusMap: { 0: "草稿", 1: "未审核", 2: "已审核" }, - formName: null, - formMap: { - add: "新增设备报修单", - edit: "编辑设备报修单" - }, showSearch: true }; }, @@ -236,52 +246,58 @@ export default { }); }, auditOrder(row) { - this.$confirm('请选择审核意见', '提示', { - confirmButtonText: '通过', - cancelButtonText: '驳回', - type: 'warning', - center: true, - closeOnPressEscape: false,//按下 ESC 键关闭弹窗 - closeOnClickModal: false,//点击遮罩关闭弹窗 - distinguishCancelAndClose: true,//区分取消与关闭 - }).then(() => { - let params = { - orderId: row.orderId, - status: 2 - }; - updateStatus(params).then((res) => { - if (res.code === 20000) { - this.$message.success("审核通过!"); - this.getList(); - } else { - this.$message.error(res.message); - } - }).catch((error) => { - this.$message.error(error.message); - }) - }).catch((action) => { - if (action === "cancel") { - let params = { - orderId: row.orderId, - status: 0 - }; - updateStatus(params).then((res) => { - if (res.code === 20000) { - this.$message.success("已驳回!") - this.getList(); - } else { - this.$message.error(res.message); - } - }).catch((error) => { - this.$message.error(error.message); - }); - } else { - return; - } - }); + this.formVisible = true; + this.deviceRepairOrder = row; + // this.$confirm('请选择审核意见', '提示', { + // confirmButtonText: '通过', + // cancelButtonText: '驳回', + // type: 'warning', + // center: true, + // closeOnPressEscape: false,//按下 ESC 键关闭弹窗 + // closeOnClickModal: false,//点击遮罩关闭弹窗 + // distinguishCancelAndClose: true,//区分取消与关闭 + // }).then(() => { + // let params = { + // orderId: row.orderId, + // status: 2 + // }; + // updateStatus(params).then((res) => { + // if (res.code === 20000) { + // this.$message.success("审核通过!"); + // this.getList(); + // } else { + // this.$message.error(res.message); + // } + // }).catch((error) => { + // this.$message.error(error.message); + // }) + // }).catch((action) => { + // if (action === "cancel") { + // let params = { + // orderId: row.orderId, + // status: 0 + // }; + // updateStatus(params).then((res) => { + // if (res.code === 20000) { + // this.$message.success("已驳回!") + // this.getList(); + // } else { + // this.$message.error(res.message); + // } + // }).catch((error) => { + // this.$message.error(error.message); + // }); + // } else { + // return; + // } + // }); + }, + closeDialog() { + this.formVisible = false; + this.getList(); }, }, - components: {}, + components: {DeviceRepairOrderAduitModify}, mounted() { document.body.ondrop = function (event) { event.preventDefault(); diff --git a/src/views/inventory/DeviceRepairOrderAuditModify.vue b/src/views/inventory/DeviceRepairOrderAuditModify.vue new file mode 100644 index 00000000..f1ec5658 --- /dev/null +++ b/src/views/inventory/DeviceRepairOrderAuditModify.vue @@ -0,0 +1,544 @@ + + + + + diff --git a/src/views/inventory/DeviceRepairOrderCompleted.vue b/src/views/inventory/DeviceRepairOrderCompleted.vue index f87e50a7..58f473c2 100644 --- a/src/views/inventory/DeviceRepairOrderCompleted.vue +++ b/src/views/inventory/DeviceRepairOrderCompleted.vue @@ -50,6 +50,42 @@ clearable="true"> + + + + + + {{ item.employeeName }} + + + + + + + + + + + + + + + + +
@@ -65,23 +101,51 @@ - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + +
@@ -99,16 +180,24 @@ import {getDeptListByUser} from "@/api/auth/authDept"; import {findInvByUser} from "@/api/system/invSubWarehouse"; import {getRepairList, updateStatus, deleteRepairOrder} from "@/api/inventory/deviceRepairOrder"; +import {warehouseUserList} from "@/api/system/invWarehouse"; +import {previewImage} from "@/api/purchase/supCompany"; +import ElImageViewer from "element-ui/packages/image/src/image-viewer"; +import DeviceRepairOrderDetails from "@/views/inventory/DeviceRepairOrderDetails"; + export default { name: "DeviceRepairOrderAudit", data() { return { + BASE_URL: process.env.VUE_APP_BASE_API, + imgViewerVisible: false, + imgList: [], filterQuery: { orderId: null, deptCode: this.$store.getters.locDeptCode, invCode: null, - status: 2, + // status: 2, page: 1, limit: 20 }, @@ -122,10 +211,15 @@ export default { statusMap: { 0: "草稿", 1: "未审核", - 2: "已审核" + 2: "已审核", + 3: "未处理", + 4: "维修中", + 5: "已处理" }, formName: null, - showSearch: true + showSearch: true, + userList: [], + deviceRepairOrder: {}, }; }, methods: { @@ -140,7 +234,6 @@ export default { orderId: null, deptCode: this.$store.getters.locDeptCode, invCode: null, - status: 2, page: 1, limit: 20 }; @@ -178,7 +271,7 @@ export default { getDeptListByUser().then((res) => { this.deptList = res.data || []; this.getInvList(); - this.getList(); + // this.getList(); }); }, invChange() { @@ -194,8 +287,77 @@ export default { .catch(() => { }); }, + getuserList() { + let param = {code: this.$store.getters.locInvCode} + warehouseUserList(param).then((res) => { + this.userList = res.data.list || []; + }) + }, + deleteDialog(rowId) { + this.$confirm('此操作将永久删除, 是否继续?', '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + let params = {id: rowId}; + this.loading = true; + deleteRepairOrder(params).then((res) => { + this.loading = false; + if (res.code === 20000) { + this.$message.success("删除成功!"); + this.getList(); + } else { + this.$message.error(res.message); + } + }).catch(() => { + this.loading = false; + }); + }); + }, + showImgViewer(row) { + if (row.substr(-1) == ',') { + row = row.slice(0, row.length - 1); + } + this.certFileUrl = this.BASE_URL + "/udiwms/image/register/file/getImage?type=image2&name="; + console.log(this.certFileUrl + "========"); + this.imgList = []; + previewImage({imageUrl: row, certFileUrl: this.certFileUrl}).then(response => { + if (response.code === 20000) { + this.imgList = response.data; + } + console.log(this.imgList) + this.imgViewerVisible = true; + }); + const m = (e) => { + e.preventDefault() + }; + document.body.style.overflow = 'hidden'; + document.addEventListener("touchmove", m, false); // 禁止页面滑动 + + }, + + closeImgViewer() { + this.imgViewerVisible = false; + const m = (e) => { + e.preventDefault() + }; + document.body.style.overflow = 'auto'; + document.removeEventListener("touchmove", m, true); + }, + + startOrder(row) { + this.formVisible = true; + this.deviceRepairOrder = row; + + }, + closeDialog() { + this.formVisible = false; + this.getList(); + }, + + }, - components: {}, + components: {DeviceRepairOrderDetails, ElImageViewer}, mounted() { document.body.ondrop = function (event) { event.preventDefault(); @@ -204,6 +366,7 @@ export default { }, created() { this.getDeptList(); + this.getuserList(); }, }; diff --git a/src/views/inventory/DeviceRepairOrderDetails.vue b/src/views/inventory/DeviceRepairOrderDetails.vue new file mode 100644 index 00000000..fe5f283c --- /dev/null +++ b/src/views/inventory/DeviceRepairOrderDetails.vue @@ -0,0 +1,394 @@ + + + + + diff --git a/src/views/inventory/DeviceRepairOrderModify.vue b/src/views/inventory/DeviceRepairOrderModify.vue index 867d3788..9d8b12e9 100644 --- a/src/views/inventory/DeviceRepairOrderModify.vue +++ b/src/views/inventory/DeviceRepairOrderModify.vue @@ -69,16 +69,79 @@ + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + {{ choiceFile }} + +
只能上传 jpg,png,pdf,doc 文件,且不超过 10 MB
+
+
+
+ +
@@ -148,6 +211,7 @@ import {getDeptListByUser} from "@/api/auth/authDept"; import {getInvListByUser} from "@/api/system/invWarehouse"; import {saveDeviceRepairOrder} from "@/api/inventory/deviceRepairOrder"; import {getDeptDeviceList} from "@/api/inventory/deptDevice"; +import store from "@/store"; export default { @@ -179,7 +243,12 @@ export default { deviceTotal: 0, deptName: null, invName: null, - selectRow: null + selectRow: null, + choiceFile:"选取报修", + uploadUrl: "", + BASE_URL: process.env.VUE_APP_BASE_API, + headers: {}, + fileList: [], }; }, methods: { @@ -286,8 +355,73 @@ export default { this.repairOrder.code = this.selectRow.code; this.repairOrder.deviceName = this.selectRow.deviceName; }, + uploadHandlePreview(file) {}, + uploadHandleRemove(file, fileList) { + this.repairOrder.uploadImage = null; + console.log(file, fileList); + }, + uploadHandleExceed(files, fileList) { + this.$message.warning( + `当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${ + files.length + fileList.length + } 个文件` + ); + }, + uploadOnchange(file, fileList) { + let fileName = file.name; + let uid = file.uid; + let pos = fileName.lastIndexOf("."); + let lastName = fileName.substring(pos, fileName.length); + if ( + lastName.toLowerCase() !== ".jpg" && + lastName.toLowerCase() !== ".png" && + lastName.toLowerCase() !== ".doc" && + lastName.toLowerCase() !== ".pdf" + ) { + this.$message.error("上传文件只能是 jpg,png,doc,pdf 格式"); + for (let i = 0; i < fileList.length; i++) { + //从list删除 + if (fileList[i].uid === uid) { + fileList.splice(i, 1); + } + } + return; + } + // 限制上传文件的大小 + const isLt = file.size / 1024 / 1024 / 30 <= 1; + if (!isLt) { + this.$message.error("上传文件大小不能超过 30MB"); + for (let i = 0; i < fileList.length; i++) { + if (fileList[i].uid === uid) { + fileList.splice(i, 1); + } + } + } + return isLt; + }, + uploadHandleSuccess(response, file, fileList) { + if (response.code === 20000) { + if(this.repairOrder.uploadImage == null){ + this.repairOrder.uploadImage = response.data.name+","; + }else{ + this.repairOrder.uploadImage += response.data.name+","; + } + } else { + this.$message.error("文件上传失败:" + response.message); + } + console.log(this.repairOrder.uploadImage) + }, + uploadHandleError() { + }, + }, created() { + this.uploadUrl = this.BASE_URL + "/udiwms/upload/register/file"; + this.headers = { + ADMIN_ID: store.getters.adminId, + ADMIN_TOKEN: store.getters.token, + }; + this.repairOrder.uploadImage = null; this.getDeptList(); }, } diff --git a/src/views/inventory/DeviceRepairOrderNew.vue b/src/views/inventory/DeviceRepairOrderNew.vue index a26110f5..5caad3d9 100644 --- a/src/views/inventory/DeviceRepairOrderNew.vue +++ b/src/views/inventory/DeviceRepairOrderNew.vue @@ -66,22 +66,42 @@ - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - + @@ -138,6 +162,9 @@ import {getDeptListByUser} from "@/api/auth/authDept"; import {findInvByUser} from "@/api/system/invSubWarehouse"; import {getRepairList, submitAudit, deleteRepairOrder} from "@/api/inventory/deviceRepairOrder"; import deviceRepairOrderModify from "@/views/inventory/DeviceRepairOrderModify.vue"; +import ElImageViewer from "element-ui/packages/image/src/image-viewer"; +import {previewImage} from "@/api/purchase/supCompany"; + export default { name: "DeviceRepairOrderNew", @@ -163,6 +190,18 @@ export default { 1: "未审核", 2: "已审核" }, + repairType:{ + 1:"自行维修", + 2:"外部维修" + }, + urgencyType:{ + 1:"正常", + 2:"较急", + 3:"特急" + }, + BASE_URL: process.env.VUE_APP_BASE_API, + imgViewerVisible:false, + imgList: [], formName: null, formMap: { add: "新增设备报修单", @@ -263,16 +302,22 @@ export default { this.deviceRepairOrder = row; }, submitAudit(row) { - let params = {orderId: row.orderId}; - submitAudit(params).then((res) => { - if (res.code === 20000) { - this.$message.success("提交成功!"); - this.getList(); - } else { - this.$message.error(res.message); - } - }).catch((error) => { - this.$message.error(error.message); + this.$confirm('是否提交审核?', '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + let params = {orderId: row.orderId}; + submitAudit(params).then((res) => { + if (res.code === 20000) { + this.$message.success("提交成功!"); + this.getList(); + } else { + this.$message.error(res.message); + } + }).catch((error) => { + this.$message.error(error.message); + }); }); }, deleteDialog(rowId) { @@ -300,9 +345,49 @@ export default { this.formVisible = false; this.getList(); }, + showImgViewer(row){ + if(row.uploadImage.substr(-1) == ','){ + row.uploadImage=row.uploadImage.slice(0, row.uploadImage.length-1); + } + this.certFileUrl = this.BASE_URL +"/udiwms/image/register/file/getImage?type=image2&name="; + console.log(this.certFileUrl + "========"); + this.imgList = []; + previewImage({imageUrl: row.uploadImage, certFileUrl: this.certFileUrl}).then(response => { + if (response.code === 20000) { + this.imgList = response.data; + } + console.log(this.imgList) + this.imgViewerVisible = true; + }); + const m = (e) => { + e.preventDefault() + }; + document.body.style.overflow = 'hidden'; + document.addEventListener("touchmove", m, false); // 禁止页面滑动 + + }, + closeImgViewer() { + this.imgViewerVisible = false; + const m = (e) => { + e.preventDefault() + }; + document.body.style.overflow = 'auto'; + document.removeEventListener("touchmove", m, true); + }, + }, components: { - deviceRepairOrderModify + deviceRepairOrderModify,ElImageViewer + }, + filters: { + statusFilterType(status) { + const statusMap = { + 2: "warning", + 3: "success", + 4: "danger", + }; + return statusMap[status]; + }, }, mounted() { document.body.ondrop = function (event) { diff --git a/src/views/inventory/DeviceRepairOrderStart.vue b/src/views/inventory/DeviceRepairOrderStart.vue new file mode 100644 index 00000000..730b98ce --- /dev/null +++ b/src/views/inventory/DeviceRepairOrderStart.vue @@ -0,0 +1,498 @@ + + + + + diff --git a/src/views/inventory/DeviceRepairOrderhandle.vue b/src/views/inventory/DeviceRepairOrderhandle.vue new file mode 100644 index 00000000..f148dd7a --- /dev/null +++ b/src/views/inventory/DeviceRepairOrderhandle.vue @@ -0,0 +1,356 @@ + + + + + +