Compare commits

...

2 Commits

Author SHA1 Message Date
87afb058c5 Merge remote-tracking branch 'origin/master' 2024-07-18 16:57:55 +08:00
7c592c0825 备品备件管理优化 2024-07-18 16:57:44 +08:00
11 changed files with 388 additions and 11 deletions

View File

@ -102,6 +102,11 @@ public class IpcSparePartsInbound extends BaseEntity implements DeptId {
*/ */
private Long deptId; private Long deptId;
/**
* 入库单类型
*/
private String inboundType;
/** /**
* 所属部门 * 所属部门
*/ */
@ -122,6 +127,13 @@ public class IpcSparePartsInbound extends BaseEntity implements DeptId {
this.ipcSparePartsInboundDetailList = ipcSparePartsInboundDetailList; this.ipcSparePartsInboundDetailList = ipcSparePartsInboundDetailList;
} }
public String getInboundType() {
return inboundType;
}
public void setInboundType(String inboundType) {
this.inboundType = inboundType;
}
public void setId(String id) { public void setId(String id) {
this.id = id; this.id = id;

View File

@ -112,6 +112,12 @@ public class IpcSparePartsOutbound extends BaseEntity implements DeptId {
*/ */
private Long deptId; private Long deptId;
/**
* 出库单类型
*/
private String outboundType;
/** /**
* 所属部门 * 所属部门
*/ */
@ -132,6 +138,14 @@ public class IpcSparePartsOutbound extends BaseEntity implements DeptId {
this.ipcSparePartsOutboundDetailList = ipcSparePartsOutboundDetailList; this.ipcSparePartsOutboundDetailList = ipcSparePartsOutboundDetailList;
} }
public String getOutboundType() {
return outboundType;
}
public void setOutboundType(String outboundType) {
this.outboundType = outboundType;
}
public void setId(String id) { public void setId(String id) {
this.id = id; this.id = id;
} }

View File

@ -21,6 +21,7 @@
<result property="dept" column="dept"/> <result property="dept" column="dept"/>
<result property="submitTime" column="submit_time"/> <result property="submitTime" column="submit_time"/>
<result property="auditTime" column="audit_time"/> <result property="auditTime" column="audit_time"/>
<result property="inboundType" column="inbound_type"/>
<collection property="ipcSparePartsInboundDetailList" <collection property="ipcSparePartsInboundDetailList"
ofType="com.inspur.spareparts.domain.IpcSparePartsInboundDetail"> ofType="com.inspur.spareparts.domain.IpcSparePartsInboundDetail">
<result property="id" column="sub_id"/> <result property="id" column="sub_id"/>
@ -52,6 +53,7 @@
i.dept_id, i.dept_id,
i.submit_time, i.submit_time,
i.audit_time, i.audit_time,
i.inbound_type,
id.inbound_quantity sub_inbound_quantity, id.inbound_quantity sub_inbound_quantity,
id.spare_parts_id sub_spare_parts_id, id.spare_parts_id sub_spare_parts_id,
id.order_num sub_order_num, id.order_num sub_order_num,
@ -83,7 +85,8 @@
i.dept_id, i.dept_id,
d.dept_name dept, d.dept_name dept,
i.submit_time, i.submit_time,
i.audit_time i.audit_time,
i.inbound_type
FROM ipc_spare_parts_inbound i FROM ipc_spare_parts_inbound i
LEFT JOIN sys_user o on i.operator_id = o.user_id LEFT JOIN sys_user o on i.operator_id = o.user_id
LEFT JOIN sys_user a on i.auditor_id = a.user_id LEFT JOIN sys_user a on i.auditor_id = a.user_id
@ -96,6 +99,7 @@
<if test="auditorId != null ">and i.auditor_id = #{auditorId}</if> <if test="auditorId != null ">and i.auditor_id = #{auditorId}</if>
<if test="status != null ">and i.status = #{status}</if> <if test="status != null ">and i.status = #{status}</if>
<if test="deptId != null ">and (d.dept_id = #{deptId} or find_in_set( #{deptId} , d.ancestors ))</if> <if test="deptId != null ">and (d.dept_id = #{deptId} or find_in_set( #{deptId} , d.ancestors ))</if>
<if test="inboundType != null ">and i.inbound_type = #{inboundType}</if>
<if test="params != null and params.starttime != null">and i.inbound_time >= #{params.starttime}</if> <if test="params != null and params.starttime != null">and i.inbound_time >= #{params.starttime}</if>
<if test="params != null and params.endtime != null">and i.inbound_time &lt;= #{params.endtime}</if> <if test="params != null and params.endtime != null">and i.inbound_time &lt;= #{params.endtime}</if>
</where> </where>
@ -120,6 +124,7 @@
<if test="auditorId != null ">and i.auditor_id = #{auditorId}</if> <if test="auditorId != null ">and i.auditor_id = #{auditorId}</if>
<if test="status != null ">and i.status = #{status}</if> <if test="status != null ">and i.status = #{status}</if>
<if test="deptId != null ">and (d.dept_id = #{deptId} or find_in_set( #{deptId} , d.ancestors ))</if> <if test="deptId != null ">and (d.dept_id = #{deptId} or find_in_set( #{deptId} , d.ancestors ))</if>
<if test="inboundType != null ">and i.inbound_type = #{inboundType}</if>
<if test="params != null and params.starttime != null">and i.inbound_time >= #{params.starttime}</if> <if test="params != null and params.starttime != null">and i.inbound_time >= #{params.starttime}</if>
<if test="params != null and params.endtime != null">and i.inbound_time &lt;= #{params.endtime}</if> <if test="params != null and params.endtime != null">and i.inbound_time &lt;= #{params.endtime}</if>
</where> </where>
@ -148,6 +153,7 @@
<if test="deptId != null">dept_id,</if> <if test="deptId != null">dept_id,</if>
<if test="submitTime != null">submit_time,</if> <if test="submitTime != null">submit_time,</if>
<if test="auditTime != null">audit_time,</if> <if test="auditTime != null">audit_time,</if>
<if test="inboundType != null">inbound_type,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if> <if test="id != null">#{id},</if>
@ -163,6 +169,7 @@
<if test="deptId != null">#{deptId},</if> <if test="deptId != null">#{deptId},</if>
<if test="submitTime != null">#{submitTime},</if> <if test="submitTime != null">#{submitTime},</if>
<if test="auditTime != null">#{auditTime},</if> <if test="auditTime != null">#{auditTime},</if>
<if test="inboundType != null">#{inboundType},</if>
</trim> </trim>
</insert> </insert>
@ -180,6 +187,7 @@
<if test="status != null">status = #{status},</if> <if test="status != null">status = #{status},</if>
<if test="deptId != null">dept_id = #{deptId},</if> <if test="deptId != null">dept_id = #{deptId},</if>
<if test="submitTime != null">submit_time = #{submitTime},</if> <if test="submitTime != null">submit_time = #{submitTime},</if>
<if test="inboundType != null">inbound_type = #{inboundType},</if>
audit_time = #{auditTime}, audit_time = #{auditTime},
</trim> </trim>
where id = #{id} where id = #{id}

View File

@ -161,6 +161,9 @@
<select id="selectInconsistentList" parameterType="String" resultMap="IpcSparePartsInventoryDetailResult"> <select id="selectInconsistentList" parameterType="String" resultMap="IpcSparePartsInventoryDetailResult">
<include refid="selectIpcSparePartsInventoryDetailVo"/> <include refid="selectIpcSparePartsInventoryDetailVo"/>
where d.inventory_id = #{inventoryId} and d.variance_quantity != 0 where d.inventory_id = #{inventoryId} and d.variance_quantity > 0
union
<include refid="selectIpcSparePartsInventoryDetailVo"/>
where d.inventory_id = #{inventoryId} and d.variance_quantity &lt; 0
</select> </select>
</mapper> </mapper>

View File

@ -23,6 +23,7 @@
<result property="submitTime" column="submit_time"/> <result property="submitTime" column="submit_time"/>
<result property="auditTime" column="audit_time"/> <result property="auditTime" column="audit_time"/>
<result property="status" column="status"/> <result property="status" column="status"/>
<result property="outboundType" column="outbound_type"/>
<collection property="ipcSparePartsOutboundDetailList" <collection property="ipcSparePartsOutboundDetailList"
ofType="com.inspur.spareparts.domain.IpcSparePartsOutboundDetail"> ofType="com.inspur.spareparts.domain.IpcSparePartsOutboundDetail">
<result property="id" column="sub_id"/> <result property="id" column="sub_id"/>
@ -59,7 +60,8 @@
s.parts_num sub_parts_num, s.parts_num sub_parts_num,
s.parts_name sub_parts_name, s.parts_name sub_parts_name,
s.parts_specifications sub_parts_specifications, s.parts_specifications sub_parts_specifications,
st.quantity sub_stock_quantity st.quantity sub_stock_quantity,
o.outbound_type
from ipc_spare_parts_outbound o from ipc_spare_parts_outbound o
LEFT JOIN ipc_spare_parts_outbound_detail od ON o.id = od.spare_parts_outbound_id LEFT JOIN ipc_spare_parts_outbound_detail od ON o.id = od.spare_parts_outbound_id
LEFT JOIN ipc_spare_parts_info s ON od.spare_parts_id = s.id LEFT JOIN ipc_spare_parts_info s ON od.spare_parts_id = s.id
@ -87,7 +89,8 @@
o.result, o.result,
o.submit_time, o.submit_time,
o.audit_time, o.audit_time,
o.status o.status,
o.outbound_type
from ipc_spare_parts_outbound o from ipc_spare_parts_outbound o
LEFT JOIN sys_user op on o.operator_id = op.user_id LEFT JOIN sys_user op on o.operator_id = op.user_id
LEFT JOIN sys_user a on o.auditor_id = a.user_id LEFT JOIN sys_user a on o.auditor_id = a.user_id
@ -107,6 +110,7 @@
<if test="auditorId != null ">and o.auditor_id = #{auditorId}</if> <if test="auditorId != null ">and o.auditor_id = #{auditorId}</if>
<if test="status != null ">and o.status = #{status}</if> <if test="status != null ">and o.status = #{status}</if>
<if test="deptId != null ">and (d.dept_id = #{deptId} or find_in_set( #{deptId} , d.ancestors ))</if> <if test="deptId != null ">and (d.dept_id = #{deptId} or find_in_set( #{deptId} , d.ancestors ))</if>
<if test="outboundType != null ">and o.outbound_type = #{outboundType}</if>
<if test="params != null and params.starttime != null">and o.outbound_time >= #{params.starttime}</if> <if test="params != null and params.starttime != null">and o.outbound_time >= #{params.starttime}</if>
<if test="params != null and params.endtime != null">and o.outbound_time &lt;= #{params.endtime}</if> <if test="params != null and params.endtime != null">and o.outbound_time &lt;= #{params.endtime}</if>
</where> </where>
@ -138,6 +142,7 @@
<if test="auditorId != null ">and o.auditor_id = #{auditorId}</if> <if test="auditorId != null ">and o.auditor_id = #{auditorId}</if>
<if test="status != null ">and o.status = #{status}</if> <if test="status != null ">and o.status = #{status}</if>
<if test="deptId != null ">and (d.dept_id = #{deptId} or find_in_set( #{deptId} , d.ancestors ))</if> <if test="deptId != null ">and (d.dept_id = #{deptId} or find_in_set( #{deptId} , d.ancestors ))</if>
<if test="outboundType != null ">and o.outbound_type = #{outboundType}</if>
<if test="params != null and params.starttime != null">and o.outbound_time >= #{params.starttime}</if> <if test="params != null and params.starttime != null">and o.outbound_time >= #{params.starttime}</if>
<if test="params != null and params.endtime != null">and o.outbound_time &lt;= #{params.endtime}</if> <if test="params != null and params.endtime != null">and o.outbound_time &lt;= #{params.endtime}</if>
</where> </where>
@ -168,6 +173,7 @@
<if test="submitTime != null">submit_time,</if> <if test="submitTime != null">submit_time,</if>
<if test="auditTime != null">audit_time,</if> <if test="auditTime != null">audit_time,</if>
<if test="status != null">status,</if> <if test="status != null">status,</if>
<if test="outboundType != null">outbound_type,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if> <if test="id != null">#{id},</if>
@ -184,6 +190,7 @@
<if test="submitTime != null">#{submitTime},</if> <if test="submitTime != null">#{submitTime},</if>
<if test="auditTime != null">#{auditTime},</if> <if test="auditTime != null">#{auditTime},</if>
<if test="status != null">#{status},</if> <if test="status != null">#{status},</if>
<if test="outboundType != null">#{outboundType},</if>
</trim> </trim>
</insert> </insert>
@ -203,6 +210,7 @@
<if test="submitTime != null">submit_time = #{submitTime},</if> <if test="submitTime != null">submit_time = #{submitTime},</if>
audit_time = #{auditTime}, audit_time = #{auditTime},
<if test="status != null">status = #{status},</if> <if test="status != null">status = #{status},</if>
<if test="outboundType != null">outbound_type = #{outboundType},</if>
</trim> </trim>
where id = #{id} where id = #{id}
</update> </update>

View File

@ -66,6 +66,23 @@
> >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item
label="入库单类型"
prop="inboundType"
>
<el-select
v-model="queryParams.inboundType"
placeholder="请选择入库单类型"
clearable
>
<el-option
v-for="dict in dict.type.inbound_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item <el-form-item
label="状态" label="状态"
prop="status" prop="status"
@ -178,6 +195,19 @@
prop="auditor" prop="auditor"
show-overflow-tooltip show-overflow-tooltip
/> />
<el-table-column
label="入库单类型"
align="center"
prop="inboundType"
show-overflow-tooltip
>
<template slot-scope="scope">
<dict-tag
:options="dict.type.inbound_type"
:value="scope.row.inboundType"
/>
</template>
</el-table-column>
<el-table-column <el-table-column
label="状态" label="状态"
align="center" align="center"
@ -308,7 +338,32 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row>
<el-col :span="12">
<el-form-item
label="入库单类型"
prop="inboundType"
>
<el-select
v-if="!isView"
v-model="form.inboundType"
placeholder="请选择入库单类型"
clearable
>
<el-option
v-for="dict in dict.type.inbound_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
<span v-else><dict-tag
:options="dict.type.inbound_type"
:value="form.inboundType"
/></span>
</el-form-item>
</el-col>
</el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item <el-form-item
@ -754,7 +809,12 @@ import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css"; import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default { export default {
name: "Inbound", name: "Inbound",
dicts: ["in_out_bound_status", "spare_parts_type", "spare_parts_status"], dicts: [
"in_out_bound_status",
"spare_parts_type",
"spare_parts_status",
"inbound_type",
],
components: { Treeselect }, components: { Treeselect },
data() { data() {
return { return {
@ -833,6 +893,9 @@ export default {
inboundTime: [ inboundTime: [
{ required: true, message: "请选择入库日期", trigger: "blur" }, { required: true, message: "请选择入库日期", trigger: "blur" },
], ],
inboundType: [
{ required: true, message: "请选择入库单类型", trigger: "blur" },
],
sparePartsId: [ sparePartsId: [
{ {
required: true, required: true,

View File

@ -66,6 +66,23 @@
> >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item
label="入库单类型"
prop="inboundType"
>
<el-select
v-model="queryParams.inboundType"
placeholder="请选择入库单类型"
clearable
>
<el-option
v-for="dict in dict.type.inbound_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item <el-form-item
label="状态" label="状态"
prop="status" prop="status"
@ -155,6 +172,19 @@
prop="auditor" prop="auditor"
show-overflow-tooltip show-overflow-tooltip
/> />
<el-table-column
label="入库单类型"
align="center"
prop="inboundType"
show-overflow-tooltip
>
<template slot-scope="scope">
<dict-tag
:options="dict.type.inbound_type"
:value="scope.row.inboundType"
/>
</template>
</el-table-column>
<el-table-column <el-table-column
label="状态" label="状态"
align="center" align="center"
@ -252,7 +282,19 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row>
<el-col :span="12">
<el-form-item
label="入库单类型"
prop="inboundType"
>
<span><dict-tag
:options="dict.type.inbound_type"
:value="form.inboundType"
/></span>
</el-form-item>
</el-col>
</el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item <el-form-item
@ -420,7 +462,7 @@ import { deptTreeSelect } from "@/api/system/user";
import "@riophae/vue-treeselect/dist/vue-treeselect.css"; import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default { export default {
name: "InboundAudit", name: "InboundAudit",
dicts: ["in_out_bound_audit_status"], dicts: ["in_out_bound_audit_status", "inbound_type"],
data() { data() {
return { return {
defaultProps: { defaultProps: {

View File

@ -409,6 +409,18 @@
prop="varianceQuantity" prop="varianceQuantity"
show-overflow-tooltip show-overflow-tooltip
/> />
<el-table-column
label="盘盈盘亏"
align="center"
prop="varianceQuantity"
>
<template slot-scope="scope">
<dict-tag
:options="dict.type.inventory_result_type"
:value="scope.row.varianceQuantity>0?1:0"
/>
</template>
</el-table-column>
</el-table> </el-table>
</el-col> </el-col>
</el-row> </el-row>
@ -449,7 +461,12 @@ import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css"; import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default { export default {
name: "Inventory", name: "Inventory",
dicts: ["inventory_status", "spare_parts_type", "spare_parts_status"], dicts: [
"inventory_status",
"spare_parts_type",
"spare_parts_status",
"inventory_result_type",
],
components: { Treeselect }, components: { Treeselect },
data() { data() {
return { return {

View File

@ -426,6 +426,18 @@
prop="varianceQuantity" prop="varianceQuantity"
show-overflow-tooltip show-overflow-tooltip
/> />
<el-table-column
label="盘盈盘亏"
align="center"
prop="varianceQuantity"
>
<template slot-scope="scope">
<dict-tag
:options="dict.type.inventory_result_type"
:value="scope.row.varianceQuantity>0?1:0"
/>
</template>
</el-table-column>
</el-table> </el-table>
</el-col> </el-col>
</el-row> </el-row>
@ -434,6 +446,11 @@
slot="footer" slot="footer"
class="dialog-footer" class="dialog-footer"
> >
<el-button
v-if="!isView && form.status == 1"
type="primary"
@click="bookSmoothing"
>账面抹平</el-button>
<el-button <el-button
v-if="!isView" v-if="!isView"
type="primary" type="primary"
@ -459,12 +476,19 @@ import {
updateInventory, updateInventory,
getInconformityInventory, getInconformityInventory,
} from "@/api/spareparts/inventory"; } from "@/api/spareparts/inventory";
import { addInbound } from "@/api/spareparts/inbound";
import { addOutbound } from "@/api/spareparts/outbound";
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
import { deptTreeSelect } from "@/api/system/user"; import { deptTreeSelect } from "@/api/system/user";
import "@riophae/vue-treeselect/dist/vue-treeselect.css"; import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default { export default {
name: "Inventory", name: "Inventory",
dicts: ["inventory_status", "spare_parts_type", "spare_parts_status"], dicts: [
"inventory_status",
"spare_parts_type",
"spare_parts_status",
"inventory_result_type",
],
data() { data() {
return { return {
defaultProps: { defaultProps: {
@ -765,6 +789,84 @@ export default {
`inventoryData_${new Date().getTime()}.xlsx` `inventoryData_${new Date().getTime()}.xlsx`
); );
}, },
/** 账面抹平 */
bookSmoothing() {
const list = this.inconformityInventoryList;
const today = this.getTodayDate();
this.$modal
.confirm("是否确认账面抹平?")
.then(function () {
//
const inboundData = list.filter((item) => item.varianceQuantity > 0);
//
if (inboundData.length > 0) {
const inboundForm = {
inboundType: "0",
invoiceNumber: "无",
transportNumber: "无",
status: 1,
inboundTime: today,
ipcSparePartsInboundDetailList: [],
};
for (let i = 0; i < inboundData.length; i++) {
inboundForm.ipcSparePartsInboundDetailList.push({
inboundQuantity: Math.abs(inboundData[i].varianceQuantity),
index: i + 1,
orderNum: i,
partsName: inboundData[i].partsName,
partsNum: inboundData[i].partsNum,
partsSpecifications: inboundData[i].partsSpecifications,
sparePartsId: inboundData[i].sparePartsId,
});
}
addInbound(inboundForm);
}
//
const outboundData = list.filter((item) => item.varianceQuantity < 0);
//
if (outboundData.length > 0) {
const outboundForm = {
outboundReason: "盘亏出库",
outboundTime: today,
outboundType: "0",
recipient: "盘亏出库",
recipientDept: "盘亏出库",
status: 1,
ipcSparePartsOutboundDetailList: [],
};
for (let i = 0; i < outboundData.length; i++) {
outboundForm.ipcSparePartsOutboundDetailList.push({
outboundQuantity: Math.abs(outboundData[i].varianceQuantity),
index: i + 1,
orderNum: i,
partsName: outboundData[i].partsName,
partsNum: outboundData[i].partsNum,
partsSpecifications: outboundData[i].partsSpecifications,
sparePartsId: outboundData[i].sparePartsId,
});
}
addOutbound(outboundForm);
}
})
.then(() => {
this.$modal.msgSuccess("已生成盘盈入库单和盘亏出库单");
})
.catch(() => {});
},
/** 获取当前日期 */
getTodayDate() {
const today = new Date();
let year = today.getFullYear();
let month = today.getMonth() + 1; // 01
let day = today.getDate();
//
year = ("0000" + year).slice(-4);
month = ("0" + month).slice(-2);
day = ("0" + day).slice(-2);
return year + "-" + month + "-" + day;
},
}, },
}; };
</script> </script>

View File

@ -86,6 +86,23 @@
clearable clearable
/> />
</el-form-item> </el-form-item>
<el-form-item
label="出库单类型"
prop="outboundType"
>
<el-select
v-model="queryParams.outboundType"
placeholder="请选择出库单类型"
clearable
>
<el-option
v-for="dict in dict.type.outbound_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item <el-form-item
label="状态" label="状态"
prop="status" prop="status"
@ -198,6 +215,19 @@
prop="auditor" prop="auditor"
show-overflow-tooltip show-overflow-tooltip
/> />
<el-table-column
label="出库单类型"
align="center"
prop="outboundType"
show-overflow-tooltip
>
<template slot-scope="scope">
<dict-tag
:options="dict.type.outbound_type"
:value="scope.row.outboundType"
/>
</template>
</el-table-column>
<el-table-column <el-table-column
label="状态" label="状态"
align="center" align="center"
@ -343,6 +373,32 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row>
<el-col :span="12">
<el-form-item
label="出库单类型"
prop="outboundType"
>
<el-select
v-if="!isView"
v-model="form.outboundType"
placeholder="请选择出库单类型"
clearable
>
<el-option
v-for="dict in dict.type.outbound_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
<span v-else><dict-tag
:options="dict.type.outbound_type"
:value="form.outboundType"
/></span>
</el-form-item>
</el-col>
</el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item <el-form-item
@ -794,7 +850,12 @@ import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css"; import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default { export default {
name: "Outbound", name: "Outbound",
dicts: ["in_out_bound_status", "spare_parts_type", "spare_parts_status"], dicts: [
"in_out_bound_status",
"spare_parts_type",
"spare_parts_status",
"outbound_type",
],
components: { Treeselect }, components: { Treeselect },
data() { data() {
return { return {
@ -872,6 +933,9 @@ export default {
outboundTime: [ outboundTime: [
{ required: true, message: "请选择出库日期", trigger: "blur" }, { required: true, message: "请选择出库日期", trigger: "blur" },
], ],
outboundType: [
{ required: true, message: "请选择出库单类型", trigger: "blur" },
],
sparePartsId: [ sparePartsId: [
{ {
required: true, required: true,

View File

@ -86,6 +86,23 @@
clearable clearable
/> />
</el-form-item> </el-form-item>
<el-form-item
label="出库单类型"
prop="outboundType"
>
<el-select
v-model="queryParams.outboundType"
placeholder="请选择出库单类型"
clearable
>
<el-option
v-for="dict in dict.type.outbound_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item <el-form-item
label="状态" label="状态"
prop="status" prop="status"
@ -176,6 +193,19 @@
prop="auditor" prop="auditor"
show-overflow-tooltip show-overflow-tooltip
/> />
<el-table-column
label="出库单类型"
align="center"
prop="outboundType"
show-overflow-tooltip
>
<template slot-scope="scope">
<dict-tag
:options="dict.type.outbound_type"
:value="scope.row.outboundType"
/>
</template>
</el-table-column>
<el-table-column <el-table-column
label="状态" label="状态"
align="center" align="center"
@ -272,6 +302,19 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row>
<el-col :span="12">
<el-form-item
label="出库单类型"
prop="outboundType"
>
<span><dict-tag
:options="dict.type.outbound_type"
:value="form.outboundType"
/></span>
</el-form-item>
</el-col>
</el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item <el-form-item
@ -472,6 +515,7 @@ export default {
"in_out_bound_audit_status", "in_out_bound_audit_status",
"spare_parts_type", "spare_parts_type",
"spare_parts_status", "spare_parts_status",
"outbound_type",
], ],
data() { data() {
return { return {