diff --git a/src/api/inventory/deptDevice.js b/src/api/inventory/deptDevice.js index 592dac1c..479297e6 100644 --- a/src/api/inventory/deptDevice.js +++ b/src/api/inventory/deptDevice.js @@ -26,7 +26,7 @@ export function deleteDeptDevice(data) { export function verifyTemplateFile(data) { return axios({ - url: "/device/receive/order/verifyTemplateFile", + url: "/udiwms/inv/deptDevice/verifyTemplateFile", method: "post", data: data }); @@ -34,7 +34,7 @@ export function verifyTemplateFile(data) { export function printOrder(data) { return axios({ - url: "/device/receive/order/printOrder", + url: "/udiwms/inv/deptDevice/printOrder", method: "post", data: data, headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}, diff --git a/src/api/inventory/deviceReceiveOrder.js b/src/api/inventory/deviceReceiveOrder.js index d7cff2c8..44c9feeb 100644 --- a/src/api/inventory/deviceReceiveOrder.js +++ b/src/api/inventory/deviceReceiveOrder.js @@ -112,5 +112,23 @@ export function selectProduct(data) { }); } +export function verifyTemplateFile(data) { + return axios({ + url: "/device/receive/order/verifyTemplateFile", + method: "post", + data: data + }); +} + +export function printOrder(data) { + return axios({ + url: "/device/receive/order/printOrder", + method: "post", + data: data, + headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}, + responseType: 'arraybuffer', //一定要设置响应类型,否则页面会是空白pdf + }); +} + diff --git a/src/views/inventory/DeptDeviceDetail.vue b/src/views/inventory/DeptDeviceDetail.vue index 0942a162..ac59cc19 100644 --- a/src/views/inventory/DeptDeviceDetail.vue +++ b/src/views/inventory/DeptDeviceDetail.vue @@ -165,6 +165,10 @@ <el-tabs type="border-card" style="margin: 15px"> <el-tab-pane label="基本信息"> + <DeviceModelDetail + :rowData="selectedRowData" + v-if="isInformation" + ></DeviceModelDetail> </el-tab-pane> <el-tab-pane label="设备资质"> <checkResultPanel @@ -223,6 +227,7 @@ import {getInvListByUser} from "@/api/system/invWarehouse"; import {getDeptListByUser} from "@/api/auth/authDept"; import {getDeptDeviceList, deleteDeptDevice, printOrder, verifyTemplateFile} from "@/api/inventory/deptDevice"; import deptDeviceModifyDialog from "@/views/inventory/deptDeviceModifyDialog.vue"; +import DeviceModelDetail from "@/views/inventory/DeviceModelDetail.vue"; import inspectSetModifyDialog from "@/views/inventory/InspectSetModifyDialog.vue"; import checkResultPanel from "@/views/inventory/invDeviceEditDialog.vue"; import technical from "@/views/inventory/invTechniclDialog.vue"; @@ -248,6 +253,7 @@ export default { total: 0, deptList: [], invList: [], + isInformation:false, loading: false, fromOptions: [], formData: { @@ -322,15 +328,13 @@ export default { }, methods: { listClick(row) { - // this.selectedRowData = null - // // 处理行点击事件 异步操作,nexgtTick是先让selectedRow更新完在做的执行操作 - // this.$nextTick(res=>{ this.selectedRowData = row // 将选中的行数据保存到 selectedRow 变量中 - // this.selectedRowData.editType=1; - console.log("1111") - console.log(this.selectedRowData) - // - // }) + this.isInformation = false + this.$nextTick(() => { + //重新加载组件 + this.isInformation = true + }); + }, keyup_submit(event) { this.filterQuery.page = 1; @@ -527,7 +531,8 @@ export default { checkResultPanel, technical, deptDeviceModifyDialog, - inspectSetModifyDialog + inspectSetModifyDialog, + DeviceModelDetail }, created() { this.getDeptList(); diff --git a/src/views/inventory/DeviceModelDetail.vue b/src/views/inventory/DeviceModelDetail.vue new file mode 100644 index 00000000..a5519cff --- /dev/null +++ b/src/views/inventory/DeviceModelDetail.vue @@ -0,0 +1,146 @@ +<template> + <div> + <el-card> + <el-form :model="formData" class="query-form" label-width="100px"> + <el-button-group style="display: flex;margin: 0px 0 10px 90%; height: 35px"> + <el-button type="primary" @click.native="submit()">保存</el-button> + </el-button-group> + <el-row> + <el-col :span="18"> + <el-form-item class="query-form-item" prop="originCode" label="UDI码:"> + <el-input v-model="formData.originCode" disabled style="width: 90%" clearable></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="8"> + <el-form-item class="query-form-item" prop="deviceName" label="产品通用名称:"> + <el-input v-model="formData.deviceName" disabled style="width: 90%" clearable></el-input> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item class="query-form-item" prop="code" label="资产编码:"> + <el-input v-model="formData.code" disabled style="width: 90%" clearable></el-input> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item class="query-form-item" prop="nameCode" label="DI/物资编码:"> + <el-input v-model="formData.nameCode" disabled style="width: 90%" clearable></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="8"> + <el-form-item class="query-form-item" prop="cplb" label="设备类别:"> + <el-input v-model="formData.cplb" disabled style="width: 90%" clearable></el-input> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item class="query-form-item" prop="deptName" label="所属部门:"> + <el-input v-model="formData.deptName" disabled style="width: 90%" clearable></el-input> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item class="query-form-item" prop="manager" label="负责人:"> + <el-input v-model="formData.manager" disabled style="width: 90%" clearable></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="8"> + <el-form-item class="query-form-item" prop="ggxh" label="规格型号:"> + <el-input v-model="formData.ggxh" disabled style="width: 90%" clearable></el-input> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item class="query-form-item" prop="batchNo" label="批次号:"> + <el-input v-model="formData.batchNo" disabled style="width: 90%" clearable></el-input> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item class="query-form-item" prop="productionDate" label="生产日期:"> + <el-input v-model="formData.productionDate" disabled style="width: 90%" clearable></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="8"> + <el-form-item class="query-form-item" prop="expireDate" label="失效日期:"> + <el-input v-model="formData.expireDate" disabled style="width: 90%" clearable></el-input> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item class="query-form-item" prop="serialNo" label="序列号:"> + <el-input v-model="formData.serialNo" disabled style="width: 90%" clearable></el-input> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item class="query-form-item" prop="manufactory" label="生产企业:"> + <el-input v-model="formData.manufactory" disabled style="width: 90%" clearable></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="8"> + <el-form-item class="query-form-item" prop="supName" label="供应商:"> + <el-input v-model="formData.supName" disabled style="width: 90%" clearable></el-input> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item class="query-form-item" prop="curUser" label="使用人:"> + <el-input v-model="formData.curUser" disabled style="width: 90%" clearable></el-input> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item class="query-form-item" prop="location" label="设备位置:"> + <el-input v-model="formData.location" style="width: 90%" clearable></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item class="query-form-item" prop="detailLocation" label="设备详情位置:"> + <el-input v-model="formData.detailLocation" style="width: 97%" clearable></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item class="query-form-item" prop="remark" label="设备备注:"> + <el-input v-model="formData.remark" style="width: 97%" clearable></el-input> + </el-form-item> + </el-col> + </el-row> + </el-form> + </el-card> + </div> +</template> + +<script> +export default { + name: "deptDeviceModelDetail", + props:{ + rowData: { + type: Object, + required: true + }, + }, + data() { + return { + formData:{ + + } + }; + }, + methods: { + + }, + created() { + this.formData = this.rowData; + } +} +</script> + +<style scoped> + +</style> diff --git a/src/views/inventory/DeviceReceiveOrderNew.vue b/src/views/inventory/DeviceReceiveOrderNew.vue index b7f4f69f..76b63164 100644 --- a/src/views/inventory/DeviceReceiveOrderNew.vue +++ b/src/views/inventory/DeviceReceiveOrderNew.vue @@ -78,20 +78,9 @@ </el-table-column> <el-table-column label="操作"> <template slot-scope="scope"> - <el-button - type="text" - size="small" - @click.native.stop="editOrder(scope.row)" - >编辑 - </el-button - > - <el-button - type="text" - size="small" - @click.native.stop="deleteDialog(scope.row.id)" - >删除 - </el-button - > + <el-button type="text" size="small" @click.native.stop="editOrder(scope.row)">编辑</el-button> + <el-button type="text" size="small" @click.native.stop="deleteDialog(scope.row.id)">删除</el-button> + <el-button type="text" size="small" @click.native.stop="printOrder(scope.row)">打印</el-button> </template> </el-table-column> </el-table> @@ -127,19 +116,19 @@ <el-table-column label="生产日期" prop="productionDate" width="150"></el-table-column> <el-table-column label="失效日期" prop="expireDate" width="150"></el-table-column> <el-table-column label="生产企业" prop="ylqxzcrbarmc" width="300" show-overflow-tooltip></el-table-column> - <el-table-column label="注册/备案号" prop="zczbhhzbapzbh" width="300" show-overflow-tooltip></el-table-column> - <el-table-column label="供应商" prop="supName"width="300" show-overflow-tooltip></el-table-column> -<!-- <el-table-column label="操作" width="100">--> -<!-- <template slot-scope="scope">--> -<!-- <el-button--> -<!-- type="text"--> -<!-- size="small"--> -<!-- @click.native.stop="datailSelect(scope.row)"--> -<!-- >详情--> -<!-- </el-button--> -<!-- >--> -<!-- </template>--> -<!-- </el-table-column>--> + <el-table-column label="注册/备案号" prop="zczbhhzbapzbh" width="300" show-overflow-tooltip></el-table-column> + <el-table-column label="供应商" prop="supName" width="300" show-overflow-tooltip></el-table-column> + <!-- <el-table-column label="操作" width="100">--> + <!-- <template slot-scope="scope">--> + <!-- <el-button--> + <!-- type="text"--> + <!-- size="small"--> + <!-- @click.native.stop="datailSelect(scope.row)"--> + <!-- >详情--> + <!-- </el-button--> + <!-- >--> + <!-- </template>--> + <!-- </el-table-column>--> </el-table> <pagination v-show="detailTotal>0" @@ -162,11 +151,12 @@ import { submitAudit, deleteDeviceReceiveOrder, getDeviceReceiveOrderList, - getConfig, getDeviceReceiveOrderDetailList + getConfig, getDeviceReceiveOrderDetailList, printOrder, verifyTemplateFile } from "@/api/inventory/deviceReceiveOrder"; import {isBlank} from "@/utils/strUtil"; import {filterByorderIdFk} from "@/api/inventory/deviceRepairOrderDetail"; + export default { name: "DeviceReceiveOrderNew", data() { @@ -177,7 +167,7 @@ export default { fromInvCode: null, receiveUserName: null, fromInvSpaceCode: null, - status: 0, + statusList: [0, 1, 3], page: 1, limit: 20, }, @@ -256,7 +246,7 @@ export default { fromDeptCode: this.$store.getters.locDeptCode, fromInvCode: null, fromInvSpaceCode: null, - status: 0, + statusList: [0, 1, 3], page: 1, limit: 20, }; @@ -327,98 +317,134 @@ export default { this.getList(); }) }, - addReceiveOrder() { - this.formVisible = true; - this.formName = 'add'; - this.deviceReceiveOrder = {}; - }, - editOrder(row) { - this.formVisible = true; - this.formName = 'edit'; - this.deviceReceiveOrder = row; - }, - submitAudit(row) { - let params = {id: row.id}; - submitAudit(params).then((res) => { + printOrder(row) { + let query = {id: 5}; + this.loading = true; + verifyTemplateFile(query).then((res) => { if (res.code === 20000) { - this.$message.success("提交成功!"); - this.getList(); + let printParams = { + templateId: res.data, + id: row.id + }; + printOrder(printParams).then((response) => { + //将pdf文件转换为url。 + const binaryData = []; + binaryData.push(response); + //获取blob链接。 + let url = window.URL.createObjectURL( + new Blob(binaryData, {type: "application/pdf"}) + ); + this.loading = false; + window.open(url);//打开新标签页,预览pdf。 + }) } else { + this.loading = false; this.$message.error(res.message); } }).catch((error) => { + this.loading = false; this.$message.error(error.message); - }); - }, - deleteDialog(rowId) { - this.$confirm('此操作将永久删除该领用记录, 是否继续?', '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning' - }).then(() => { - let params = {id: rowId}; - this.loading = true; - deleteDeviceReceiveOrder(params).then((res) => { - this.loading = false; - if (res.code === 20000) { - this.$message.success("删除成功!"); - this.getList(); - this.detailList = [] - } else { - this.$message.error(res.message); - } - }).catch(() => { - this.loading = false; - }); - }); - }, - closeDialog() { - this.formVisible = false; - this.getList(); - }, - datailSelect(row) { - this.detailQuery = row - this.deviceProjectSelectVisible = true - }, - handleChange(row) { - this.detailQuery.orderIdFk = row.orderId; - this.detailQuery.page = 1; - this.getDetailList(); + }) }, - getDetailList() { - getDeviceReceiveOrderDetailList(this.detailQuery).then((res) => { + addReceiveOrder() { + this.formVisible = true; + this.formName = 'add'; + this.deviceReceiveOrder = {}; + }, + editOrder(row) { + this.formVisible = true; + this.formName = 'edit'; + this.deviceReceiveOrder = row; + }, + submitAudit(row) { + let params = {id: row.id}; + 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) { + this.$confirm('此操作将永久删除该领用记录, 是否继续?', '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + let params = {id: rowId}; + this.loading = true; + deleteDeviceReceiveOrder(params).then((res) => { + this.loading = false; if (res.code === 20000) { - this.detailList = res.data.list || []; - this.detailTotal = res.data.total || 0; + this.$message.success("删除成功!"); + this.getList(); + this.detailList = [] } else { - this.detailList = []; - this.detailTotal = 0; + this.$message.error(res.message); } }).catch(() => { - this.detailList = []; - this.detailTotal = 0; + this.loading = false; }); - }, + }); }, - components: { - deviceReceiveOrderModify + closeDialog() { + this.formVisible = false; + this.getList(); }, - mounted() { - document.body.ondrop = function (event) { - event.preventDefault(); - event.stopPropagation(); - }; + datailSelect(row) { + this.detailQuery = row + this.deviceProjectSelectVisible = true }, - created() { - //查询配置项 - getConfig().then((res) => { - if (res.code == 20000 && !isBlank(res.data.paramValue)) { - this.paramValue = res.data.paramValue + handleChange(row) { + this.detailQuery.orderIdFk = row.orderId; + this.detailQuery.page = 1; + this.getDetailList(); + }, + getDetailList() { + getDeviceReceiveOrderDetailList(this.detailQuery).then((res) => { + if (res.code === 20000) { + this.detailList = res.data.list || []; + this.detailTotal = res.data.total || 0; + } else { + this.detailList = []; + this.detailTotal = 0; } - }) - this.getDeptList(); + }).catch(() => { + this.detailList = []; + this.detailTotal = 0; + }); }, -}; +} +, +components: { + deviceReceiveOrderModify +} +, +mounted() +{ + document.body.ondrop = function (event) { + event.preventDefault(); + event.stopPropagation(); + }; +} +, +created() +{ + //查询配置项 + getConfig().then((res) => { + if (res.code == 20000 && !isBlank(res.data.paramValue)) { + this.paramValue = res.data.paramValue + } + }) + this.getDeptList(); +} +, +} +; </script> <style type="text/scss" lang="scss">