采购订单代码提交

prod
郑明梁 2 years ago
parent 08b7785b35
commit 61c3ee22f0

@ -1,416 +1,470 @@
<template> <template>
<div> <div>
<el-card class="el-card"> <el-card class="el-card">
<el-form :model="filterQuery" class="query-form" label-width="100px" v-show="showSearch"> <el-form :model="filterQuery" class="query-form" label-width="100px" v-show="showSearch">
<el-row> <el-row>
<el-col :span="6"> <el-col :span="10">
<el-form-item label="单据号:"> <el-form-item label="采购订单单号">
<el-input v-model="filterQuery.billNo" style="width: 90%" placeholder="单据号" clearable></el-input> <el-input v-model="filterQuery.billNo" style="width: 90%" placeholder="请输入单据号" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="10">
<el-form-item label="单据日期:"> <el-form-item label="采购部门">
<el-date-picker <el-select v-model="filterQuery.deptCode" placeholder="请选择采购仓库" style="width: 90%">
:picker-options="pickerOptions" <el-option
v-model="actDateRange" v-for="item in deptList"
type="daterange" :key="item.code"
style="width: 90%" :label="item.name"
format="yyyy 年 MM 月 dd 日" :value="item.code"
value-format="yyyy-MM-dd" >
range-separator="至" <span style="float: left">{{ item.name }}</span>
start-placeholder="开始日期" </el-option>
end-placeholder="结束日期" </el-select>
> </el-form-item>
</el-date-picker> </el-col>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="top-right-btn"> </el-row>
<el-button-group style="display:flex;">
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="onSubmitFind"></el-button>
<el-button type="primary" icon="el-icon-plus" @click="newDistributionForm()" :loading="loading">新增采购订单</el-button>
</el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row @current-change="handleDetail"> <el-row>
<el-table-column label="序号" type="index" width="60"></el-table-column> <el-col :span="10">
<el-table-column label="单据号" prop="billNo"></el-table-column> <el-form-item label="采购仓库">
<el-table-column label="采购日期" prop="billDate"> <el-select v-model="filterQuery.invCode" style="width: 90%" placeholder="请选择所属仓库">
<template slot-scope="scope"> <el-option
<span>{{ parseTime(scope.row.billDate, '{y}-{m}-{d}') }}</span> v-for="item in invList"
</template> :key="item.name"
</el-table-column> :label="item.name"
<el-table-column label="采购员" prop="createUser"></el-table-column> :value="item.code">
<el-table-column label="采购部门" prop="deptName"></el-table-column> <span style="float: left">{{ item.name }}</span>
<el-table-column label="采购仓库" prop="invName"></el-table-column> </el-option>
<el-table-column label="采购说明" prop="remark"></el-table-column> </el-select>
<el-table-column label="状态" prop="status"> </el-form-item>
<template slot-scope="scope"> </el-col>
<el-tag :type="(scope.row.status) | statusFilterType"> <el-col :span="10">
{{ statusMap[scope.row.status] }} <el-form-item label="创建时间:">
</el-tag> <el-date-picker
</template> :picker-options="pickerOptions"
</el-table-column> v-model="actDateRange"
type="daterange"
format="yyyy 年 MM 月 dd 日"
style="width: 90%"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="top-right-btn">
<el-button-group style="display:flex;">
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="onSubmitFind"></el-button>
<el-button type="primary" icon="el-icon-plus" @click="newDistributionForm()" :loading="loading">新增采购订单
</el-button>
</el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table-column label="操作" width="120"> <el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row
<template slot-scope="scope"> @current-change="handleDetail">
<el-button type="text" size="small" @click.native="newDistributionForm(scope.$index, scope.row)">编辑</el-button> <el-table-column label="序号" type="index" width="60"></el-table-column>
<el-button type="text" size="small" @click.native.stop="deleteDialog(scope.row)">删除</el-button> <el-table-column label="采购订单单号" prop="billNo"></el-table-column>
</template> <el-table-column label="创建时间" prop="createTime"></el-table-column>
</el-table-column> <el-table-column label="采购部门" prop="deptName"></el-table-column>
</el-table> <el-table-column label="采购仓库" prop="invName"></el-table-column>
<el-table-column label="紧急程度" prop="emergency">
<template slot-scope="scope">
{{ emergencyMap[scope.row.emergency] }}
</template>
</el-table-column>
<el-table-column label="到货时间" prop="arrivalTime"></el-table-column>
<el-table-column label="采购说明" prop="remark"></el-table-column>
<el-table-column label="状态" prop="status">
<template slot-scope="scope">
<el-tag :type="(scope.row.status) | statusFilterType">
{{ statusMap[scope.row.status] }}
</el-tag>
</template>
</el-table-column>
<pagination <el-table-column label="操作" width="120">
v-show="total>0" <template slot-scope="scope">
:total="total" <el-button type="text" size="small" @click.native="newDistributionForm(scope.$index, scope.row)">编辑
:page.sync="filterQuery.page" </el-button>
:limit.sync="filterQuery.limit" <el-button type="text" size="small" @click.native.stop="deleteDialog(scope.row)">删除</el-button>
@pagination="handleCurrentChange" </template>
</el-table-column>
</el-table>
></pagination>
</el-card>
<el-card class="el-card">
<el-table v-loading="loading" :data="detailList" style="width: 100%" border highlight-current-row>
<el-table-column label="序号" type="index" width="120"></el-table-column>
<!-- <el-table-column label="产品编码" prop="productId"></el-table-column> -->
<el-table-column label="产品通用名" prop="productName" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="规格型号" prop="spec" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="申购数量" prop="count"></el-table-column>
<el-table-column label="注册/备案凭证号" prop="zczbhhzbapzbh" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="生产企业" prop="manufactory" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="医疗器械注册人" prop="ylqxzcrbarmc" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="供应商" prop="supName" show-overflow-tooltip="true"></el-table-column>
</el-table>
</el-card>
<el-dialog <pagination
:title="formMap[formName]" v-show="total>0"
:visible.sync="newSpDistributionVisible" :total="total"
width="80%" :page.sync="filterQuery.page"
v-if="newSpDistributionVisible" :limit.sync="filterQuery.limit"
@close='closeDialog' @pagination="handleCurrentChange"
:close-on-click-modal="false"
:close-on-press-escape="false" ></pagination>
:before-close ="handleClose" </el-card>
> <el-card class="el-card">
<purPlanEdit <el-table v-loading="loading" :data="detailList" style="width: 100%" border highlight-current-row>
:isChang="isChang" <el-table-column label="序号" type="index" width="120"></el-table-column>
:closeDialog="closeDialog" <el-table-column label="物资名称" prop="productName" show-overflow-tooltip="true"></el-table-column>
v-on:cancelDialog="getId" <el-table-column label="规格型号" prop="spec" show-overflow-tooltip="true"></el-table-column>
:idQuery="idQuery" <el-table-column label="采购数量" prop="count"></el-table-column>
></purPlanEdit> <el-table-column label="计量单位" prop="measname"></el-table-column>
</el-dialog> <el-table-column label="供应商" prop="supName" show-overflow-tooltip="true"></el-table-column>
</div> <el-table-column label="生产企业" prop="manufactory" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="注册/备案号" prop="zczbhhzbapzbh" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="注册/备案人" prop="ylqxzcrbarmc" show-overflow-tooltip="true"></el-table-column>
</el-table>
</el-card>
<el-dialog
:title="formMap[formName]"
:visible.sync="newSpDistributionVisible"
width="80%"
v-if="newSpDistributionVisible"
@close='closeDialog'
:close-on-click-modal="false"
:close-on-press-escape="false"
:before-close="handleClose"
>
<purPlanEdit
:isChang="isChang"
:closeDialog="closeDialog"
v-on:cancelDialog="getId"
:idQuery="idQuery"
></purPlanEdit>
</el-dialog>
</div>
</template> </template>
<script> <script>
import purPlanEdit from "./purOrderEditDialog"; import purPlanEdit from "./purOrderEditDialog";
import {inserThrOrderWeb, listOrderDetail, delOrderDetailAll, listOrder} from "@/api/purchase/purOrder"; import {inserThrOrderWeb, listOrderDetail, delOrderDetailAll, listOrder} from "@/api/purchase/purOrder";
import {getInvListByUser} from '@/api/system/invWarehouse'
import {getDeptListByUser} from '@/api/auth/authDept'
export default { export default {
data() { data() {
return { return {
showSearch: true, showSearch: true,
pId:null, pId: null,
isChang:false, isChang: false,
filterQuery: { filterQuery: {
billAction: null, billAction: null,
billNo: "", billNo: "",
originType: null, originType: null,
thirdSysFk: "", thirdSysFk: "",
page: 1, page: 1,
limit: 10, limit: 10,
corpName: null, corpName: null,
type: 1, type: 1,
editStatus: 1, editStatus: 1,
}, },
formName: null, formName: null,
formMap: { formMap: {
add: "新增采购计划", add: "新增采购计划",
update: "编辑采购计划", update: "编辑采购计划",
},
statusMap: {
1: "草稿",
2: "未审核",
3: "已审核",
4: "已拒绝"
},
emergencyMap: {
1: "普通",
2: "紧急",
3: "不紧急",
},
invList: {},
deptList: {},
idQuery: {},
total: 0,
thirdSys: [],
thirdSysDetail: null,
busTypes: [],
originTypes: [],
list: [],
detailList: [],
loading: false,
actDateRange: [],
newSpDistributionVisible: false,
pickerOptions: {
shortcuts: [
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
}, },
statusMap: { },
1: "草稿", {
2: "未审核", text: "最近一个月",
3: "已审核", onClick(picker) {
4: "已拒绝" const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
}, },
idQuery: {}, },
total: 0, {
thirdSys: [], text: "最近三个月",
thirdSysDetail: null, onClick(picker) {
busTypes: [], const end = new Date();
originTypes: [], const start = new Date();
list: [], start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
detailList: [], picker.$emit("pick", [start, end]);
loading: false,
actDateRange: [],
newSpDistributionVisible: false,
pickerOptions: {
shortcuts: [
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
},
],
}, },
}; },
}, ],
},
};
},
methods: { methods: {
onReset() { onReset() {
this.$router.push({ this.$router.push({
path: "", path: "",
}); });
this.filterQuery = { this.filterQuery = {
billNo: "", billNo: "",
thirdSysFk: "", thirdSysFk: "",
billFlag: null, billFlag: null,
billAction: null, billAction: null,
startDate: null, startDate: null,
endDate: null, endDate: null,
page: 1, page: 1,
limit: 10, limit: 10,
corpName: null, corpName: null,
type: 1, type: 1,
editStatus: 1, editStatus: 1,
}; };
this.actDateRange = []; this.actDateRange = [];
this.getList(); this.getList();
}, },
handleClose(){ handleClose() {
if( this.formName=='add'){ if (this.formName == 'add') {
this.isChang=!this.isChang this.isChang = !this.isChang
}else{ } else {
this.newSpDistributionVisible=false this.newSpDistributionVisible = false
}
},
getId(id) {
if (this.formName == 'add' && id != null) {
var data = {
id: id
} }
}, this.pId = id;
getId(id){ //
if( this.formName=='add' && id!=null){ delOrderDetailAll(data).then((response) => {
var data={ if (response.code == 20000) {
id:id this.newSpDistributionVisible = false
} }
this.pId=id; });
// }else{
delOrderDetailAll(data).then((response)=>{ this.newSpDistributionVisible = false
if(response.code==20000){ }
this.newSpDistributionVisible=false
}
});
}
}, },
onSubmitFind() { onSubmitFind() {
this.filterQuery.page = 1; this.filterQuery.page = 1;
this.getList(); this.getList();
}, },
hideSearch() { hideSearch() {
this.showSearch = !this.showSearch; this.showSearch = !this.showSearch;
}, },
getList() { getList() {
if (this.actDateRange != null) { if (this.actDateRange != null) {
this.filterQuery.startDate = this.actDateRange[0]; this.filterQuery.startDate = this.actDateRange[0];
this.filterQuery.endDate = this.actDateRange[1]; this.filterQuery.endDate = this.actDateRange[1];
} else { } else {
this.filterQuery.startDate = null; this.filterQuery.startDate = null;
this.filterQuery.endDate = null; this.filterQuery.endDate = null;
} }
this.loading = true; this.loading = true;
listOrder(this.filterQuery) listOrder(this.filterQuery)
.then((response) => { .then((response) => {
if (response.code == 20000) { if (response.code == 20000) {
this.list = response.data.list || []; this.list = response.data.list || [];
this.total = response.data.total || 0; this.total = response.data.total || 0;
} else { } else {
this.$message.error(response.message); this.$message.error(response.message);
} }
this.loading = false; this.loading = false;
}) })
.catch(() => { .catch(() => {
this.loading = false; this.loading = false;
this.list = []; this.list = [];
this.total = 0; this.total = 0;
}); });
}, },
handleDetail(row) { handleDetail(row) {
let query = {orderIdFk: row.id}; let query = {orderIdFk: row.id};
this.loading = true; this.loading = true;
listOrderDetail(query) // listOrderDetail(query) //
.then((response) => { .then((response) => {
this.detailList = response.data.list || []; this.detailList = response.data.list || [];
this.loading = false; this.loading = false;
}) })
.catch(() => { .catch(() => {
this.loading = false; this.loading = false;
this.detailList = []; this.detailList = [];
this.total = 0; this.total = 0;
}); });
}, },
submitOrder(row) { submitOrder(row) {
this.$confirm("是否确定提交审核?", "提示", { this.$confirm("是否确定提交审核?", "提示", {
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
type: "warning", type: "warning",
})
.then(() => {
this.loading = true;
let tQuery = {
editStatus: 2,
purPlanEntity: row,
}
inserThrOrderWeb(tQuery)
.then(response => {
this.loading = false;
if (response.code === 20000) {
this.$message.success("提交成功!");
this.getList();
} else {
this.$message.error(response.message);
}
}) })
.then(() => { .catch(() => {
this.loading = true; this.loading = false;
let tQuery = {
editStatus: 2,
purPlanEntity: row,
}
inserThrOrderWeb(tQuery)
.then(response => {
this.loading = false;
if (response.code === 20000) {
this.$message.success("提交成功!");
this.getList();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
})
})
.catch(() => {
});
},
deleteDialog(row) {
this.$confirm("此操作将永久删除该单据, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}) })
.then(() => { })
delOrderDetailAll({id:row.id}) .catch(() => {
.then((response) => { });
this.loading = false; },
if (response.code == 20000) { deleteDialog(row) {
this.$message.success("删除成功"); this.$confirm("此操作将永久删除该单据, 是否继续?", "提示", {
this.getList(); confirmButtonText: "确定",
this.detailList=null; cancelButtonText: "取消",
} else { type: "warning",
this.$message.error(response.message); })
} .then(() => {
}) delOrderDetailAll({id: row.id})
.catch(() => { .then((response) => {
this.loading = false; this.loading = false;
}); if (response.code == 20000) {
this.$message.success("删除成功");
}) this.getList();
.catch(() => { this.detailList = null;
}); } else {
}, this.$message.error(response.message);
handleCurrentChange(val) { }
this.filterQuery.page = val.page; })
this.getList(); .catch(() => {
}, this.loading = false;
});
closeDialog() { })
this.newSpDistributionVisible = false; .catch(() => {
this.getList(); });
this.detailList = []; },
}, handleCurrentChange(val) {
this.filterQuery.page = val.page;
this.getList();
},
closeDialog() {
this.newSpDistributionVisible = false;
this.getList();
this.detailList = [];
},
getInvList() {
getInvListByUser().then((res) => {
this.invList = res.data || [];
this.getBusType();
})
},
getDeptList() {
getDeptListByUser().then((res) => {
this.deptList = res.data || [];
});
},
newDistributionForm(index, row) { newDistributionForm(index, row) {
this.idQuery.id = ''; this.idQuery.id = '';
if (this.$isNotBlank(row) && this.$isNotBlank(row.id)) { if (this.$isNotBlank(row) && this.$isNotBlank(row.id)) {
this.idQuery.id = row.id; this.idQuery.id = row.id;
this.idQuery.formData = row; this.idQuery.formData = row;
this.formName = "update"; this.formName = "update";
} else } else
this.formName = "add"; this.formName = "add";
this.newSpDistributionVisible = true; this.newSpDistributionVisible = true;
}, },
}
,
components: {
purPlanEdit,
}
,
filters: {
statusFilterType(status) {
const statusMap = {
1: "warning",
2: "success",
};
return statusMap[status];
} }
, ,
components: { }
purPlanEdit, ,
} mounted() {
, }
filters: { ,
statusFilterType(status) { created() {
const statusMap = { this.getList();
1: "warning", this.getInvList();
2: "success", this.getDeptList();
}; }
return statusMap[status]; ,
}
,
}
,
mounted() {
}
,
created() {
let end = new Date();
let start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
this.actDateRange = [start, end];
this.getList();
}
,
} }
; ;
</script> </script>
<style scoped> <style scoped>
.itemTag { .itemTag {
float: left; float: left;
text-align: left; text-align: left;
margin-top: 10px; margin-top: 10px;
width: 25%; width: 25%;
} }
.text { .text {
font-size: 13px; font-size: 13px;
font-family: "Microsoft YaHei"; font-family: "Microsoft YaHei";
} }
.query-form-item { .query-form-item {
display: block !important; display: block !important;
margin-right: 10px; margin-right: 10px;
margin-bottom: 5px; margin-bottom: 5px;
} }
.el-row { .el-row {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
} }
.el-col { .el-col {
border-radius: 4px; border-radius: 4px;
flex-wrap: wrap; flex-wrap: wrap;
} }
</style> </style>

@ -1,362 +1,412 @@
<template> <template>
<div> <div>
<el-card class="el-card"> <el-card class="el-card">
<el-form :model="filterQuery" class="query-form" label-width="100px" v-show="showSearch"> <el-form :model="filterQuery" class="query-form" label-width="100px" v-show="showSearch">
<el-row> <el-row>
<el-col :span="6"> <el-col :span="10">
<el-form-item label="单据号:"> <el-form-item label="采购订单单号">
<el-input v-model="filterQuery.billNo" style="width: 90%" placeholder="单据号" clearable></el-input> <el-input v-model="filterQuery.billNo" style="width: 90%" placeholder="请输入单据号" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="10">
<el-form-item label="单据日期:"> <el-form-item label="采购部门">
<el-date-picker <el-select v-model="filterQuery.deptCode" placeholder="请选择采购仓库" style="width: 90%">
:picker-options="pickerOptions" <el-option
v-model="actDateRange" v-for="item in deptList"
type="daterange" :key="item.code"
style="width: 90%" :label="item.name"
format="yyyy 年 MM 月 dd 日" :value="item.code"
value-format="yyyy-MM-dd" >
range-separator="至" <span style="float: left">{{ item.name }}</span>
start-placeholder="开始日期" </el-option>
end-placeholder="结束日期" </el-select>
> </el-form-item>
</el-date-picker> </el-col>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="top-right-btn"> </el-row>
<el-button-group style="display:flex;">
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="onSubmitFind"></el-button>
</el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row @current-change="handleDetail"> <el-row>
<el-table-column label="序号" type="index" width="60"></el-table-column> <el-col :span="10">
<el-table-column label="单据号" prop="billNo"></el-table-column> <el-form-item label="采购仓库">
<el-table-column label="采购日期" prop="billDate"> <el-select v-model="filterQuery.invCode" style="width: 90%" placeholder="请选择所属仓库">
<template slot-scope="scope"> <el-option
<span>{{ parseTime(scope.row.billDate, '{y}-{m}-{d}') }}</span> v-for="item in invList"
</template> :key="item.name"
</el-table-column> :label="item.name"
<el-table-column label="创建人" prop="createUserName"></el-table-column> :value="item.code">
<el-table-column label="审核人" prop="auditUserName"></el-table-column> <span style="float: left">{{ item.name }}</span>
<el-table-column label="采购部门" prop="deptName"></el-table-column> </el-option>
<el-table-column label="采购仓库" prop="invName"></el-table-column> </el-select>
<el-table-column label="采购说明" prop="remark"></el-table-column> </el-form-item>
<el-table-column label="状态" prop="status"> </el-col>
<template slot-scope="scope"> <el-col :span="10">
<el-tag :type="(scope.row.status) | statusFilterType"> <el-form-item label="创建时间:">
{{ statusMap[scope.row.status] }} <el-date-picker
</el-tag> :picker-options="pickerOptions"
</template> v-model="actDateRange"
</el-table-column> type="daterange"
format="yyyy 年 MM 月 dd 日"
style="width: 90%"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="top-right-btn">
<el-button-group style="display:flex;">
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="onSubmitFind"></el-button>
</el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table-column label="操作" width="60px"> <el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row
<template slot-scope="scope"> @current-change="handleDetail">
<el-button type="text" :disabled="scope.row.status!=2" @click.native="newDistributionForm(scope.$index, scope.row)">审核</el-button> <el-table-column label="序号" type="index" width="60"></el-table-column>
</template> <el-table-column label="采购订单单号" prop="billNo"></el-table-column>
</el-table-column> <el-table-column label="创建时间" prop="createTime"></el-table-column>
</el-table> <el-table-column label="采购部门" prop="deptName"></el-table-column>
<el-table-column label="采购仓库" prop="invName"></el-table-column>
<el-table-column label="紧急程度" prop="emergency">
<template slot-scope="scope">
{{ emergencyMap[scope.row.emergency] }}
</template>
</el-table-column>
<el-table-column label="到货时间" prop="arrivalTime"></el-table-column>
<el-table-column label="采购说明" prop="remark"></el-table-column>
<el-table-column label="状态" prop="status">
<template slot-scope="scope">
<el-tag :type="(scope.row.status) | statusFilterType">
{{ statusMap[scope.row.status] }}
</el-tag>
</template>
</el-table-column>
<pagination
v-show="total>0"
:total="total"
:page.sync="filterQuery.page"
:limit.sync="filterQuery.limit"
@pagination="handleCurrentChange"
></pagination> <el-table-column label="操作" width="60px">
<template slot-scope="scope">
<el-button type="text" :disabled="scope.row.status!=2"
@click.native="newDistributionForm(scope.$index, scope.row)">审核
</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="filterQuery.page"
:limit.sync="filterQuery.limit"
@pagination="handleCurrentChange"
></pagination>
</el-card>
<el-card class="el-card">
<el-table v-loading="loading" :data="detailList" style="width: 100%" border highlight-current-row>
<el-table-column label="序号" type="index" width="120"></el-table-column>
<!-- <el-table-column label="产品编码" prop="productId"></el-table-column> -->
<el-table-column label="产品通用名" prop="productName" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="规格型号" prop="spec" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="申购数量" prop="count"></el-table-column>
<el-table-column label="注册/备案凭证号" prop="zczbhhzbapzbh" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="生产企业" prop="manufactory" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="医疗器械注册人" prop="ylqxzcrbarmc" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="供应商" prop="supName" show-overflow-tooltip="true"></el-table-column>
</el-table>
</el-card>
<el-dialog </el-card>
:title="formMap[formName]" <el-card class="el-card">
:visible.sync="newSpDistributionVisible" <el-table v-loading="loading" :data="detailList" style="width: 100%" border highlight-current-row>
width="80%" <el-table-column label="序号" type="index" width="120"></el-table-column>
v-if="newSpDistributionVisible" <el-table-column label="物资名称" prop="productName" show-overflow-tooltip="true"></el-table-column>
@close='closeDialog' <el-table-column label="规格型号" prop="spec" show-overflow-tooltip="true"></el-table-column>
:close-on-click-modal="false" <el-table-column label="采购数量" prop="count"></el-table-column>
:close-on-press-escape="false" <el-table-column label="计量单位" prop="measname"></el-table-column>
> <el-table-column label="供应商" prop="supName" show-overflow-tooltip="true"></el-table-column>
<purPlanEdit <el-table-column label="生产企业" prop="manufactory" show-overflow-tooltip="true"></el-table-column>
:closeDialog="closeDialog" <el-table-column label="注册/备案号" prop="zczbhhzbapzbh" show-overflow-tooltip="true"></el-table-column>
:idQuery="idQuery" <el-table-column label="注册/备案人" prop="ylqxzcrbarmc" show-overflow-tooltip="true"></el-table-column>
:editType="editType" </el-table>
></purPlanEdit> </el-card>
</el-dialog>
</div> <el-dialog
:title="formMap[formName]"
:visible.sync="newSpDistributionVisible"
width="80%"
v-if="newSpDistributionVisible"
@close='closeDialog'
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<purPlanEdit
:closeDialog="closeDialog"
:idQuery="idQuery"
:editType="editType"
></purPlanEdit>
</el-dialog>
</div>
</template> </template>
<script> <script>
import purPlanEdit from "./purOrderDetailDialog"; import purPlanEdit from "./purOrderDetailDialog";
import {delOrder, auditListOrder, listOrderDetail} from "@/api/purchase/purOrder"; import {delOrder, auditListOrder, listOrderDetail} from "@/api/purchase/purOrder";
import {getInvListByUser} from '@/api/system/invWarehouse'
import {getDeptListByUser} from '@/api/auth/authDept'
export default { export default {
data() { data() {
return { return {
showSearch: true, showSearch: true,
filterQuery: { filterQuery: {
billAction: null, billAction: null,
billNo: "", billNo: "",
originType: null, originType: null,
thirdSysFk: "", thirdSysFk: "",
page: 1, page: 1,
limit: 10, limit: 10,
corpName: null, corpName: null,
type: 1, type: 1,
editStatus: 1, editStatus: 1,
}, },
formName: null, formName: null,
formMap: { formMap: {
add: "新增采购计划", add: "新增采购计划",
update: "采购计划审核", update: "采购计划审核",
},
statusMap: {
1: "草稿",
2: "未审核",
3: "已审核",
4: "已拒绝"
},
emergencyMap: {
1: "普通",
2: "紧急",
3: "不紧急",
},
invList: {},
deptList: {},
idQuery: {},
editType: 1,
total: 0,
thirdSys: [],
thirdSysDetail: null,
busTypes: [],
originTypes: [],
list: [],
detailList: [],
loading: false,
actDateRange: [],
newSpDistributionVisible: false,
pickerOptions: {
shortcuts: [
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
}, },
statusMap: { },
1: "草稿", {
2: "未审核", text: "最近一个月",
3: "已审核", onClick(picker) {
4: "已拒绝" const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
}, },
idQuery: {}, },
editType: 1, {
total: 0, text: "最近三个月",
thirdSys: [], onClick(picker) {
thirdSysDetail: null, const end = new Date();
busTypes: [], const start = new Date();
originTypes: [], start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
list: [], picker.$emit("pick", [start, end]);
detailList: [],
loading: false,
actDateRange: [],
newSpDistributionVisible: false,
pickerOptions: {
shortcuts: [
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
},
],
}, },
}; },
}, ],
},
};
},
methods: { methods: {
onReset() { onReset() {
this.$router.push({ this.$router.push({
path: "", path: "",
}); });
this.filterQuery = { this.filterQuery = {
billNo: "", billNo: "",
thirdSysFk: "", thirdSysFk: "",
billFlag: null, billFlag: null,
billAction: null, billAction: null,
startDate: null, startDate: null,
endDate: null, endDate: null,
page: 1, page: 1,
limit: 10, limit: 10,
corpName: null, corpName: null,
type: 1, type: 1,
editStatus: 1, editStatus: 1,
}; };
this.actDateRange = []; this.actDateRange = [];
this.getList(); this.getList();
}, },
onSubmitFind() { onSubmitFind() {
this.filterQuery.page = 1; this.filterQuery.page = 1;
this.getList(); this.getList();
}, },
hideSearch() { hideSearch() {
this.showSearch = !this.showSearch; this.showSearch = !this.showSearch;
}, },
getList() { getList() {
if (this.actDateRange != null) { if (this.actDateRange != null) {
this.filterQuery.startDate = this.actDateRange[0]; this.filterQuery.startDate = this.actDateRange[0];
this.filterQuery.endDate = this.actDateRange[1]; this.filterQuery.endDate = this.actDateRange[1];
} else { } else {
this.filterQuery.startDate = null; this.filterQuery.startDate = null;
this.filterQuery.endDate = null; this.filterQuery.endDate = null;
} }
this.loading = true; this.loading = true;
auditListOrder(this.filterQuery) auditListOrder(this.filterQuery)
.then((response) => { .then((response) => {
if (response.code == 20000) { if (response.code == 20000) {
this.list = response.data.list || []; this.list = response.data.list || [];
this.total = response.data.total || 0; this.total = response.data.total || 0;
} else { } else {
this.$message.error(response.message); this.$message.error(response.message);
} }
this.loading = false; this.loading = false;
}) })
.catch(() => { .catch(() => {
this.loading = false; this.loading = false;
this.list = []; this.list = [];
this.total = 0; this.total = 0;
}); });
}, },
handleDetail(row) { handleDetail(row) {
let query = {orderIdFk: row.id}; let query = {orderIdFk: row.id};
this.loading = true; this.loading = true;
listOrderDetail(query) // listOrderDetail(query) //
.then((response) => { .then((response) => {
this.detailList = response.data.list || []; this.detailList = response.data.list || [];
this.loading = false; this.loading = false;
}) })
.catch(() => { .catch(() => {
this.loading = false; this.loading = false;
this.detailList = []; this.detailList = [];
}); });
}, },
deleteDialog(row) { deleteDialog(row) {
this.$confirm("此操作将永久删除该单据, 是否继续?", "提示", { this.$confirm("此操作将永久删除该单据, 是否继续?", "提示", {
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
type: "warning", type: "warning",
})
.then(() => {
delOrder(row.id)
.then((response) => {
this.loading = false;
if (response.code == 20000) {
this.$message.success("删除成功");
this.getList();
} else {
this.$message.error(response.message);
}
}) })
.then(() => { .catch(() => {
delOrder(row.id) this.loading = false;
.then((response) => { });
this.loading = false;
if (response.code == 20000) {
this.$message.success("删除成功");
this.getList();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
});
})
.catch(() => {
});
},
handleCurrentChange(val) {
this.filterQuery.page = val.page;
this.getList();
},
closeDialog() { })
this.newSpDistributionVisible = false; .catch(() => {
this.getList(); });
this.detailList = []; },
}, handleCurrentChange(val) {
this.filterQuery.page = val.page;
this.getList();
},
closeDialog() {
this.newSpDistributionVisible = false;
this.getList();
this.detailList = [];
},
getInvList() {
getInvListByUser().then((res) => {
this.invList = res.data || [];
this.getBusType();
})
},
getDeptList() {
getDeptListByUser().then((res) => {
this.deptList = res.data || [];
});
},
newDistributionForm(index, row) { newDistributionForm(index, row) {
this.idQuery.id = ''; this.idQuery.id = '';
if (this.$isNotBlank(row) && this.$isNotBlank(row.id)) { if (this.$isNotBlank(row) && this.$isNotBlank(row.id)) {
this.idQuery.id = row.id; this.idQuery.id = row.id;
this.idQuery.formData = row; this.idQuery.formData = row;
this.formName = "update"; this.formName = "update";
} else } else
this.formName = "add"; this.formName = "add";
this.newSpDistributionVisible = true; this.newSpDistributionVisible = true;
}, },
} }
, ,
components: { components: {
purPlanEdit, purPlanEdit,
} }
, ,
filters: { filters: {
statusFilterType(status) { statusFilterType(status) {
const statusMap = { const statusMap = {
2: "warning", 2: "warning",
3: "success", 3: "success",
4: "danger", 4: "danger",
}; };
return statusMap[status]; return statusMap[status];
}, },
} }
, ,
mounted() { mounted() {
} }
, ,
created() { created() {
let end = new Date(); this.getList();
let start = new Date(); this.getInvList();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); this.getDeptList();
this.actDateRange = [start, end]; }
this.getList(); ,
}
,
} }
; ;
</script> </script>
<style scoped> <style scoped>
.itemTag { .itemTag {
float: left; float: left;
text-align: left; text-align: left;
margin-top: 10px; margin-top: 10px;
width: 25%; width: 25%;
} }
.text { .text {
font-size: 13px; font-size: 13px;
font-family: "Microsoft YaHei"; font-family: "Microsoft YaHei";
} }
.query-form-item { .query-form-item {
display: block !important; display: block !important;
margin-right: 10px; margin-right: 10px;
margin-bottom: 5px; margin-bottom: 5px;
} }
.el-row { .el-row {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
} }
.el-col { .el-col {
border-radius: 4px; border-radius: 4px;
flex-wrap: wrap; flex-wrap: wrap;
} }
</style> </style>

@ -30,7 +30,31 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row style="margin-top: -10px">
<el-col :span="11">
<el-form-item label="紧急程度:" prop="emergency">
<el-select v-model="formData.emergency" :disabled="true" placeholder="请选择紧急程度" style="width: 90%" clearable>
<el-option label="普通" :value=1></el-option>
<el-option label="紧急" :value=2></el-option>
<el-option label="不紧急" :value=3></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="到货时间:" prop="arrivalTime">
<el-date-picker
:disabled="true"
v-model="formData.arrivalTime"
type="datetime"
placeholder="选择日期"
style="width: 90%"
:clearable="false"
value-format="yyyy-MM-dd HH:mm:ss"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row> <el-row>
<el-col :span="11"> <el-col :span="11">
<el-form-item label="采购仓库:" prop="locStorageCode"> <el-form-item label="采购仓库:" prop="locStorageCode">

@ -1,140 +1,171 @@
<template> <template>
<div> <div>
<el-form :model="formData" :rules="formRules" ref="dataForm" label-width="120px"> <el-form :model="formData" :rules="formRules" ref="dataForm" label-width="120px">
<el-row type="flex" justify="end"> <el-row type="flex" justify="end">
<el-button-group style="display: flex;margin-bottom: 15px; margin-right: 50px"> <el-button-group style="display: flex;margin-bottom: 15px; margin-right: 50px">
<el-button type="primary" @click.native="saveOrder('1')" :loading="loading">草稿保存</el-button> <el-button type="primary" @click.native="saveOrder('1')" :loading="loading">草稿保存</el-button>
<el-button type="primary" @click.native="saveOrder('2')" :loading="loading">提交单据</el-button> <el-button type="primary" @click.native="saveOrder('2')" :loading="loading">提交单据</el-button>
</el-button-group> </el-button-group>
</el-row> </el-row>
<el-card style="margin-top: -5px;"> <el-card style="margin-top: -5px;">
<el-row> <el-row>
<el-col :span="11"> <el-col :span="11">
<el-form-item label="单据号:" prop="billNo"> <el-form-item label="单据号:" prop="billNo">
<el-input v-model="formData.billNo" auto-complete="off" :disabled="true"></el-input> <el-input v-model="formData.billNo" auto-complete="off" :disabled="true"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="11"> <el-col :span="11">
<el-form-item label="单据时间:" prop="billdate"> <el-form-item label="单据时间:" prop="billdate">
<el-date-picker <el-date-picker
v-model="formData.billDate" v-model="formData.billDate"
type="datetime" type="datetime"
placeholder="选择日期" placeholder="选择日期"
style="width: 100%" style="width: 100%"
:clearable="false" :clearable="false"
value-format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
> >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row > <el-row>
<el-col :span="11"> <el-col :span="11">
<el-form-item label="采购仓库:" prop="invCode"> <el-form-item label="采购仓库:" prop="invCode">
<el-select v-model="formData.invCode" @change="setDeptCode" placeholder="采购仓库信息" style="width: 100%" <el-select v-model="formData.invCode" @change="setDeptCode" placeholder="采购仓库信息" style="width: 100%"
clearable> clearable>
<el-option <el-option
v-for="item in invCodeList" v-for="item in invCodeList"
:key="item.name" :key="item.name"
:label="item.name" :label="item.name"
:value="item.code"> :value="item.code">
<span style="float: left">{{ item.name }}</span> <span style="float: left">{{ item.name }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.warehouseName }}</span> <span style="float: right; color: #8492a6; font-size: 13px">{{ item.warehouseName }}</span>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="11"> <el-col :span="11">
<el-form-item label="采购说明:" prop="billNo"> <el-form-item label="采购说明:" prop="billNo">
<el-input v-model="formData.remark" auto-complete="off" type="textarea" autosize></el-input> <el-input v-model="formData.remark" auto-complete="off" type="textarea" autosize></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row style="margin-top: -10px">
<el-col :span="11" v-show="formData.status==4"> <el-col :span="11">
<el-form-item label="拒绝原因:"> <el-form-item label="紧急程度:" prop="emergency">
<el-input v-model="formData.auditRemark" auto-complete="off" :disabled="true"></el-input> <el-select v-model="formData.emergency" placeholder="请选择紧急程度" style="width: 100%" clearable>
</el-form-item> <el-option label="普通" :value=1></el-option>
</el-col> <el-option label="紧急" :value=2></el-option>
<el-option label="不紧急" :value=3></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="到货时间:" prop="arrivalTime">
<el-date-picker
v-model="formData.arrivalTime"
type="datetime"
placeholder="选择日期"
style="width: 100%"
:clearable="false"
value-format="yyyy-MM-dd HH:mm:ss"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-row> <el-row>
</el-card> <el-col :span="11" v-show="formData.status==4">
<el-form-item label="拒绝原因:">
<el-input v-model="formData.auditRemark" auto-complete="off" :disabled="true"></el-input>
</el-form-item>
</el-col>
<el-card> </el-row>
<el-row type="flex" justify="end"> </el-card>
<el-button-group style="display: flex">
<el-button-group style="display: flex;margin-bottom: 15px; margin-right: 50px">
<el-button type="primary" @click.native.stop="selectProductFunction()" :loading="loading">产品录入</el-button>
<el-button type="primary" :loading="loading" @click.native.stop="selectApply()">选入采购单</el-button>
</el-button-group>
<el-card>
<el-row type="flex" justify="end">
<el-button-group style="display: flex">
<el-button-group style="display: flex;margin-bottom: 15px; margin-right: 50px">
<el-button type="primary" @click.native.stop="selectProductFunction()" :loading="loading">产品录入
</el-button>
<el-button type="primary" :loading="loading" @click.native.stop="selectApply()">选入采购单</el-button>
</el-button-group>
</el-button-group>
</el-row>
<el-table v-loading="loading" :data="codeArray" style="width: 100%;" :row-class-name="tableRowClassName" border highlight-current-row max-height="300" height="300" ref="multipleTable">
<el-table-column label="序号" type="index" width="50"></el-table-column>
<el-table-column label="产品通用名" prop="productName" show-overflow-tooltip></el-table-column>
<el-table-column label="规格型号" prop="spec" show-overflow-tooltip></el-table-column>
<el-table-column width="150" label="申购数量">
<template slot-scope="scope">
<el-input size="small" v-model="scope.row.count"
placeholder="请输入数量" style="width: 80%"
type='number'
@change="tableCountChange(scope.row)"
:disabled="scope.row.index !== selectedIndex"
oninput="value=value.replace(/[^\d]/g,'')"></el-input>
</template>
</el-table-column>
<el-table-column label="供应商" prop="supName" show-overflow-tooltip></el-table-column>
<el-table-column label="注册/备案凭证号" prop="zczbhhzbapzbh" show-overflow-tooltip></el-table-column>
<el-table-column label="生产厂家" prop="manufactory" show-overflow-tooltip></el-table-column>
<el-table-column label="医疗器械注册人" prop="ylqxzcrbarmc" show-overflow-tooltip></el-table-column>
<el-table-column label="操作" width="120">
<template slot-scope="scope">
<el-button type="text" size="small" :disabled="scope.row.index === selectedIndex" @click.stop="true" @click.native="rowChange(scope.row)">编辑</el-button>
<el-button type="text" size="small" @click.stop="true" @click.native="deleteCodeArray(scope.$index, scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
</el-form>
<el-dialog </el-button-group>
title="产品录入" </el-row>
:visible.sync="selectProductVisible" <el-table v-loading="loading" :data="codeArray" style="width: 100%;" :row-class-name="tableRowClassName" border
:close-on-click-modal="false" highlight-current-row max-height="300" height="300" ref="multipleTable">
:close-on-press-escape="false" <el-table-column label="序号" type="index" width="50"></el-table-column>
width="80%" <el-table-column label="产品通用名" prop="productName" show-overflow-tooltip></el-table-column>
v-if="selectProductVisible" <el-table-column label="规格型号" prop="spec" show-overflow-tooltip></el-table-column>
:append-to-body='true' <el-table-column width="150" label="申购数量">
> <template slot-scope="scope">
<purOrderProducts <el-input size="small" v-model="scope.row.count"
:closeDialog="closeDialogC2" placeholder="请输入数量" style="width: 80%"
:purType="1" type='number'
:pId="pId" @change="tableCountChange(scope.row)"
:data="thisData" :disabled="scope.row.index !== selectedIndex"
></purOrderProducts> oninput="value=value.replace(/[^\d]/g,'')"></el-input>
</el-dialog> </template>
</el-table-column>
<el-table-column label="供应商" prop="supName" show-overflow-tooltip></el-table-column>
<el-table-column label="注册/备案凭证号" prop="zczbhhzbapzbh" show-overflow-tooltip></el-table-column>
<el-table-column label="生产厂家" prop="manufactory" show-overflow-tooltip></el-table-column>
<el-table-column label="医疗器械注册人" prop="ylqxzcrbarmc" show-overflow-tooltip></el-table-column>
<el-table-column label="操作" width="120">
<template slot-scope="scope">
<el-button type="text" size="small" :disabled="scope.row.index === selectedIndex" @click.stop="true"
@click.native="rowChange(scope.row)">编辑
</el-button>
<el-button type="text" size="small" @click.stop="true"
@click.native="deleteCodeArray(scope.$index, scope.row)">删除
</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
</el-form>
<el-dialog <el-dialog
title="采购计划单据选入" title="产品录入"
:visible.sync="selectApplyVisible" :visible.sync="selectProductVisible"
:close-on-click-modal="false" :close-on-click-modal="false"
:close-on-press-escape="false" :close-on-press-escape="false"
width="80%" width="80%"
append-to-body v-if="selectProductVisible"
v-if="selectApplyVisible" :append-to-body='true'
> >
<select-plan-list-dialog <purOrderProducts
:data="thisData" :closeDialog="closeDialogC2"
:pId="pId" :purType="1"
:closeDialog="closeDialogC2" :pId="pId"
></select-plan-list-dialog> :data="thisData"
</el-dialog> ></purOrderProducts>
</div> </el-dialog>
<el-dialog
title="采购计划单据选入"
:visible.sync="selectApplyVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="80%"
append-to-body
v-if="selectApplyVisible"
>
<select-plan-list-dialog
:data="thisData"
:pId="pId"
:closeDialog="closeDialogC2"
></select-plan-list-dialog>
</el-dialog>
</div>
</template> </template>
<script> <script>
@ -152,338 +183,342 @@ import {filterSubByInv} from "@/api/system/invSubWarehouse";
import SelectPlanListDialog from "@/views/purchase/purPlan/selectPlanListDialog"; import SelectPlanListDialog from "@/views/purchase/purPlan/selectPlanListDialog";
export default { export default {
name: "idQuery", name: "idQuery",
props: { props: {
closeDialog: { closeDialog: {
type: Function, type: Function,
required: true, required: true,
},
idQuery: {
type: Object,
required: true,
},
isChang: {
type: Boolean,
required: true,
},
}, },
data() { idQuery: {
return { type: Object,
code: "", required: true,
query: {
orderIdFk: "",
page: 1,
limit: 10,
},
formData: {
id: null,
billNo: null,
billDate: "",
remark: "",
deptCode: null,
locStorageCode: null,
invWarehouseCode: null,
},
pId:null,
formRules: {},
codeArray: [],
total: 0,
loading: false,
index: null,
formLoading: false,
formVisible: false,
deleteLoading: false,
orderNo: null,
statusMap: {
1: "草稿",
2: "未审核",
3: "已审核",
},
typeMap: {
1: "预入库",
2: "普通采购",
},
orderEditor: true,
sOptions: [],
sValue: [],
sList: [],
sLoading: false,
busTypes: [],
currentRow: {},
selectedIndex: "",
selectProductVisible: false,
thisData: {},
storageList: [],
invCodeList: [],
invQueryData: {},
selectApplyVisible: false
};
}, },
watch: { isChang: {
isChang: function () { type: Boolean,
this.$emit("cancelDialog", this.pId); required: true,
},
}, },
components: { },
draggable, data() {
purOrderProducts, return {
SelectPlanListDialog code: "",
query: {
orderIdFk: "",
page: 1,
limit: 10,
},
formData: {
id: null,
billNo: null,
billDate: "",
remark: "",
deptCode: null,
locStorageCode: null,
invWarehouseCode: null,
},
pId: null,
formRules: {},
codeArray: [],
total: 0,
loading: false,
index: null,
formLoading: false,
formVisible: false,
deleteLoading: false,
orderNo: null,
statusMap: {
1: "草稿",
2: "未审核",
3: "已审核",
},
typeMap: {
1: "预入库",
2: "普通采购",
},
orderEditor: true,
sOptions: [],
sValue: [],
sList: [],
sLoading: false,
busTypes: [],
currentRow: {},
selectedIndex: "",
selectProductVisible: false,
thisData: {},
storageList: [],
invCodeList: [],
invQueryData: {},
selectApplyVisible: false
};
},
watch: {
isChang: function () {
this.$emit("cancelDialog", this.pId);
}, },
methods: { },
saveOrder(status) { components: {
draggable,
this.$refs["dataForm"].validate(valid => { purOrderProducts,
if (valid) { SelectPlanListDialog
if (this.codeArray.length < 1) { },
this.$message.warning('未添加产品'); methods: {
return; saveOrder(status) {
}
if (status === '2') {
if (this.formData.billDate == "" || this.formData.billDate == null) { this.$refs["dataForm"].validate(valid => {
return this.$message.error("单据日期不能为空!"); if (valid) {
} if (this.codeArray.length < 1) {
// if (this.formData.billType == "" || this.formData.billType == null) { this.$message.warning('未添加产品');
// return this.$message.error(""); return;
// } }
if (this.formData.invCode == "" || this.formData.invCode == null) { if (status === '2') {
return this.$message.error("采购仓库不能为空!");
}
for (let i = 0; i < this.codeArray.length; i++) { if (this.formData.billDate == "" || this.formData.billDate == null) {
if (this.$isBlank(this.codeArray[i].count) || this.codeArray[i].count == "0") { return this.$message.error("单据日期不能为空!");
return this.$message.error('单据数量不能为0'); }
} // if (this.formData.billType == "" || this.formData.billType == null) {
} // return this.$message.error("");
} // }
if (status == "1") { if (this.formData.invCode == "" || this.formData.invCode == null) {
this.submitFunction(status); return this.$message.error("采购仓库不能为空!");
} else { }
let tip = "是否确定提交订单?"; if(this.formData.emergency=="" || this.formData.emergency==null){
this.$confirm(tip, "提示", { return this.$message.error("紧急程度不能为空!");
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
this.submitFunction(status);
}).catch(() => {
this.loading = false;
});
}
}
});
},
submitFunction(status) {
let tMessage = status === '1' ? '保存' : '提交';
this.loading = true;
this.formData.id=this.pId;
let tQuery = {
editStatus: status,
purOrderEntity: this.formData,
subErpOrders: this.codeArray,
type:1,
} }
inserThrOrderWeb(tQuery) if(this.formData.arrivalTime=="" || this.formData.arrivalTime==null){
.then(response => { return this.$message.error("到货时间不能为空!");
this.loading = false; }
if (response.code === 20000) { for (let i = 0; i < this.codeArray.length; i++) {
this.$message.success(tMessage + "成功"); if (this.$isBlank(this.codeArray[i].count) || this.codeArray[i].count == "0") {
this.closeDialog(true); return this.$message.error('单据数量不能为0');
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
})
},
selectProductFunction() {
this.selectProductVisible = true;
//idid
if(this.pId==null){
addOrderId().then(response => {
if (response.code === 20000) {
this.pId=response.data
} }
}
}
if (status == "1") {
this.submitFunction(status);
} else {
let tip = "是否确定提交订单?";
this.$confirm(tip, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
this.submitFunction(status);
}).catch(() => { }).catch(() => {
this.loading = false; this.loading = false;
})
}
this.thisData.stockOrderLists = this.codeArray;
},
setDeptCode(obj){
this.formData.deptCode= this.invCodeList.find(item => item.code == obj).parentId;
},
closeDialogC2() {
this.selectProductVisible = false;
this.selectApplyVisible = false;
this.query={
orderIdFk:this.pId
}
selectOrderDetail(this.query) //
.then((response) => {
console.log(response)
this.codeArray = response.data.list || [];
this.total = response.data.total || 0;
this.loading = false;
})
.catch(() => {
this.loading = false;
this.list = [];
this.total = 0;
}); });
},
rowChange(val) {
this.currentRow = val;
this.selectedIndex = val.index;
},
tableCountChange(row) {
if (this.$isNotBlank(row)) {
updateDetail(this.currentRow);
} }
}, }
tableRowClassName({row, rowIndex}) { });
row.index = rowIndex; },
}, submitFunction(status) {
let tMessage = status === '1' ? '保存' : '提交';
this.loading = true;
this.formData.id = this.pId;
let tQuery = {
editStatus: status,
purOrderEntity: this.formData,
subErpOrders: this.codeArray,
type: 1,
}
inserThrOrderWeb(tQuery)
.then(response => {
this.loading = false;
if (response.code === 20000) {
this.$message.success(tMessage + "成功");
this.closeDialog(true);
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
})
},
selectProductFunction() {
this.selectProductVisible = true;
//idid
if (this.pId == null) {
addOrderId().then(response => {
if (response.code === 20000) {
this.pId = response.data
}
}).catch(() => {
this.loading = false;
})
}
this.thisData.stockOrderLists = this.codeArray;
},
setDeptCode(obj) {
this.formData.deptCode = this.invCodeList.find(item => item.code == obj).parentId;
},
closeDialogC2() {
this.selectProductVisible = false;
this.selectApplyVisible = false;
this.query = {
orderIdFk: this.pId
}
selectOrderDetail(this.query) //
.then((response) => {
console.log(response)
this.codeArray = response.data.list || [];
this.total = response.data.total || 0;
this.loading = false;
})
.catch(() => {
this.loading = false;
this.list = [];
this.total = 0;
});
},
rowChange(val) {
this.currentRow = val;
this.selectedIndex = val.index;
},
tableCountChange(row) {
if (this.$isNotBlank(row)) {
updateDetail(this.currentRow);
}
},
tableRowClassName({row, rowIndex}) {
row.index = rowIndex;
},
//
resetForm() {
if (this.$refs["dataForm"]) {
//
this.$refs["dataForm"].clearValidate();
// //
resetForm() { this.$refs["dataForm"].resetFields();
if (this.$refs["dataForm"]) { this.getList();
// }
this.$refs["dataForm"].clearValidate(); },
// deleteCodeArray(index, row) {
this.$refs["dataForm"].resetFields(); this.$confirm("此操作将永久删除该数据, 是否继续?", "提示", {
this.getList(); confirmButtonText: "确定",
} cancelButtonText: "取消",
}, type: "warning",
deleteCodeArray(index, row) { }).then(() => {
this.$confirm("此操作将永久删除该数据, 是否继续?", "提示", { this.$refs.multipleTable.setCurrentRow();
confirmButtonText: "确定", this.currentRow = {};
cancelButtonText: "取消", this.selectedIndex = "";
type: "warning",
}).then(() => {
this.$refs.multipleTable.setCurrentRow();
this.currentRow = {};
this.selectedIndex = "";
if (this.orderEditor) { if (this.orderEditor) {
this.detailLoading = true; this.detailLoading = true;
if (this.$isNotBlank(row.id)) { if (this.$isNotBlank(row.id)) {
let delIds = []; let delIds = [];
delIds.push(row.id) delIds.push(row.id)
delOrderDetail(delIds) delOrderDetail(delIds)
.then(response => { .then(response => {
this.detailLoading = false; this.detailLoading = false;
if (response.code === 20000) { if (response.code === 20000) {
this.$message.success(response.data); this.$message.success(response.data);
// this.getStockOrderDetailList(); // this.getStockOrderDetailList();
this.codeArray.splice(index, 1); this.codeArray.splice(index, 1);
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.detailLoading = false;
})
} else {
this.$message.success('删除成功');
this.codeArray.splice(index, 1);
}
} else { } else {
this.$message.success('删除成功'); this.$message.error(response.message);
this.codeArray.splice(index, 1);
} }
}).catch(() => { })
.catch(() => {
this.detailLoading = false;
})
} else {
this.$message.success('删除成功');
this.codeArray.splice(index, 1);
}
} else {
this.$message.success('删除成功');
this.codeArray.splice(index, 1);
}
}).catch(() => {
}); });
}, },
getStockOrderDetailList() { getStockOrderDetailList() {
this.loading = true; this.loading = true;
listOrderDetail(this.query) // listOrderDetail(this.query) //
.then((response) => { .then((response) => {
console.log(response) console.log(response)
this.codeArray = response.data.list || []; this.codeArray = response.data.list || [];
this.total = response.data.total || 0; this.total = response.data.total || 0;
this.loading = false; this.loading = false;
}) })
.catch(() => { .catch(() => {
this.loading = false; this.loading = false;
this.list = []; this.list = [];
this.total = 0; this.total = 0;
}); });
}, },
findSubInvs() { findSubInvs() {
this.invCodeList = []; this.invCodeList = [];
let query = { let query = {
filter:3 filter: 3
}; };
filterSubByInv(query) filterSubByInv(query)
.then((response) => { .then((response) => {
this.invCodeList = response.data || []; this.invCodeList = response.data || [];
if (this.invCodeList != null && this.invCodeList.length == 1) { if (this.invCodeList != null && this.invCodeList.length == 1) {
this.formData.invCode = this.invCodeList[0].code; this.formData.invCode = this.invCodeList[0].code;
}
})
.catch(() => {
});
},
selectApply() {
this.selectApplyVisible = true;
//idid
if(this.pId==null){
addOrderId().then(response => {
if (response.code === 20000) {
this.pId=response.data
}
}).catch(() => {
this.loading = false;
})
} }
}, })
.catch(() => {
});
}, },
filters: {}, selectApply() {
mounted() { this.selectApplyVisible = true;
document.body.ondrop = function (event) { //idid
event.preventDefault(); if (this.pId == null) {
event.stopPropagation(); addOrderId().then(response => {
}; if (response.code === 20000) {
this.pId = response.data
}
}).catch(() => {
this.loading = false;
})
}
}, },
created() { },
filters: {},
mounted() {
document.body.ondrop = function (event) {
event.preventDefault();
event.stopPropagation();
};
},
created() {
if (this.$isNotBlank(this.idQuery.id)) { if (this.$isNotBlank(this.idQuery.id)) {
this.query.limit = 100; this.query.limit = 100;
this.pId=this.idQuery.id; this.pId = this.idQuery.id;
this.query.orderIdFk = this.idQuery.id; this.query.orderIdFk = this.idQuery.id;
this.formData = this.idQuery.formData; this.formData = this.idQuery.formData;
this.orderEditor = true; this.orderEditor = true;
this.sValue = this.formData.corpName; this.sValue = this.formData.corpName;
this.getStockOrderDetailList(); this.getStockOrderDetailList();
} else { } else {
this.formData = { this.formData = {
id: null, id: null,
billNo: null, billNo: null,
billDate: "", billDate: "",
remark: "", remark: "",
deptCode: null, deptCode: null,
incCode: null, incCode: null,
}; };
this.orderEditor = false; this.orderEditor = false;
} }
this.findSubInvs(); this.findSubInvs();
this.codeArray = []; this.codeArray = [];
}, },
}; };
</script> </script>
<style> <style>
.ao-text { .ao-text {
width: 100%; width: 100%;
font-size: 13px; font-size: 13px;
font-family: "Microsoft YaHei"; font-family: "Microsoft YaHei";
float: right; float: right;
text-align: right; text-align: right;
margin-top: 10px; margin-top: 10px;
} }
</style> </style>

@ -1,332 +1,443 @@
<template> <template>
<div> <div>
<el-card> <el-card>
<el-form :model="filterQuery" class="query-form" label-width="100px" size="mini"> <el-form :model="filterQuery" class="query-form" label-width="100px" size="mini" v-show="showSearch">
<el-row> <el-row>
<el-col :span="6"> <el-col :span="8">
<el-form-item label="单据号"> <el-form-item label="采购订单单号">
<el-input v-model="filterQuery.billNo" style="width: 90%" placeholder="请输入单据号" clearable></el-input> <el-input v-model="filterQuery.billNo" style="width: 90%" placeholder="请输入单据号" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="8">
<el-form-item label="单据日期"> <el-form-item label="采购部门">
<el-date-picker <el-select v-model="filterQuery.deptCode" placeholder="请选择采购仓库" style="width: 90%">
:picker-options="pickerOptions" <el-option
v-model="actDateRange" v-for="item in deptList"
type="daterange" :key="item.code"
style="width: 90%" :label="item.name"
format="yyyy 年 MM 月 dd 日" :value="item.code"
value-format="yyyy-MM-dd" >
range-separator="至" <span style="float: left">{{ item.name }}</span>
start-placeholder="开始日期" </el-option>
end-placeholder="结束日期" </el-select>
> </el-form-item>
</el-date-picker> </el-col>
</el-form-item> <el-col :span="8">
</el-col> <el-form-item label="采购仓库">
<el-form-item> <el-select v-model="filterQuery.invCode" style="width: 90%" placeholder="请选择所属仓库">
<el-button-group style="display:flex;"> <el-option
<el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button> v-for="item in invList"
<el-button type="primary" icon="search" @click="onSubmitFind"></el-button> :key="item.name"
</el-button-group> :label="item.name"
</el-form-item> :value="item.code">
</el-row> <span style="float: left">{{ item.name }}</span>
</el-form> </el-option>
<el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row="true" </el-select>
@current-change="handleDetail"> </el-form-item>
<el-table-column label="序号" type="index" width="60"></el-table-column> </el-col>
<el-table-column label="单据号" prop="billNo"></el-table-column> </el-row>
<el-table-column label="采购日期" prop="billDate">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.billDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="创建人" prop="createUserName"></el-table-column>
<el-table-column label="审核人" prop="auditUserName"></el-table-column>
<el-table-column label="采购仓库" prop="invName"></el-table-column>
<!--<el-table-column label="采购分库" prop="subInvName"></el-table-column>-->
<el-table-column label="采购说明" prop="remark"></el-table-column>
<el-table-column label="状态" prop="status">
<template slot-scope="scope">
<el-tag :type="(scope.row.status) | statusFilterType">
{{ statusMap[scope.row.status] }}
</el-tag>
</template>
</el-table-column>
<el-row>
<el-col :span="8">
<el-form-item label="创建时间:">
<el-date-picker
:picker-options="pickerOptions"
v-model="actDateRange"
type="daterange"
format="yyyy 年 MM 月 dd 日"
style="width: 90%"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="审核时间:">
<el-date-picker
:picker-options="pickerAuditOptions"
v-model="actAuditDateRange"
type="daterange"
format="yyyy 年 MM 月 dd 日"
style="width: 90%"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-table-column label="操作" > <div class="top-right-btn">
<template slot-scope="scope"> <el-button-group style="display:flex;">
<el-button type="text" size="small" @click.native.stop="deleteDialog(scope.row)" <el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
>删除 <el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button>
</el-button> <el-button type="primary" icon="el-icon-search" @click="onSubmitFind"></el-button>
</template> </el-button-group>
</el-table-column> </div>
</el-table> <el-divider style="margin: 15px"></el-divider>
<pagination <el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row="true"
v-show="total>0" @current-change="handleDetail">
:total="total" <el-table-column label="序号" type="index" width="60"></el-table-column>
:page.sync="filterQuery.page" <el-table-column label="采购订单单号" prop="billNo"></el-table-column>
:limit.sync="filterQuery.limit" <el-table-column label="创建时间" prop="createTime"></el-table-column>
@pagination="handleCurrentChange" <el-table-column label="采购部门" prop="deptName"></el-table-column>
<el-table-column label="采购仓库" prop="invName"></el-table-column>
<el-table-column label="紧急程度" prop="emergency">
<template slot-scope="scope">
{{ emergencyMap[scope.row.emergency] }}
</template>
</el-table-column>
<el-table-column label="到货时间" prop="arrivalTime"></el-table-column>
<el-table-column label="采购说明" prop="remark"></el-table-column>
<el-table-column label="审核时间" prop="auditTime"></el-table-column>
<el-table-column label="状态" prop="status">
<template slot-scope="scope">
<el-tag :type="(scope.row.status) | statusFilterType">
{{ statusMap[scope.row.status] }}
</el-tag>
</template>
</el-table-column>
></pagination>
</el-card> <el-table-column label="操作">
<el-card class="el-card"> <template slot-scope="scope">
<el-table v-loading="loading" :data="detailList" style="width: 100%" border highlight-current-row="true"> <el-button type="text" size="small" @click.native.stop="deleteDialog(scope.row)"
<el-table-column label="序号" type="index" width="120"></el-table-column> >删除
<!-- <el-table-column label="产品编码" prop="productId"></el-table-column> --> </el-button>
<el-table-column label="产品通用名" prop="productName" show-overflow-tooltip="true"></el-table-column> </template>
<el-table-column label="规格型号" prop="spec" show-overflow-tooltip="true"></el-table-column> </el-table-column>
<el-table-column label="申购数量" prop="count"></el-table-column> </el-table>
<el-table-column label="注册/备案凭证号" prop="zczbhhzbapzbh" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="生产企业" prop="manufactory" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="医疗器械注册人" prop="ylqxzcrbarmc" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="供应商" prop="supName" show-overflow-tooltip="true"></el-table-column>
</el-table>
</el-card>
<el-dialog
:title="formMap[formName]"
:visible.sync="newSpDistributionVisible"
width="80%"
v-if="newSpDistributionVisible"
@close='closeDialog'
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<purPlanEdit
:closeDialog="closeDialog"
:idQuery="idQuery"
:editType="editType"
></purPlanEdit>
<pagination
v-show="total>0"
:total="total"
:page.sync="filterQuery.page"
:limit.sync="filterQuery.limit"
@pagination="handleCurrentChange"
</el-dialog> ></pagination>
</div>
</el-card>
<el-card class="el-card">
<el-table v-loading="loading" :data="detailList" style="width: 100%" border highlight-current-row="true">
<el-table-column label="序号" type="index" width="120"></el-table-column>
<el-table-column label="物资名称" prop="productName" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="规格型号" prop="spec" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="采购数量" prop="count"></el-table-column>
<el-table-column label="计量单位" prop="measname"></el-table-column>
<el-table-column label="供应商" prop="supName" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="生产企业" prop="manufactory" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="注册/备案号" prop="zczbhhzbapzbh" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="注册/备案人" prop="ylqxzcrbarmc" show-overflow-tooltip="true"></el-table-column>
</el-table>
</el-card>
<el-dialog
:title="formMap[formName]"
:visible.sync="newSpDistributionVisible"
width="80%"
v-if="newSpDistributionVisible"
@close='closeDialog'
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<purPlanEdit
:closeDialog="closeDialog"
:idQuery="idQuery"
:editType="editType"
></purPlanEdit>
</el-dialog>
</div>
</template> </template>
<script> <script>
import purPlanEdit from "./purOrderDetailDialog"; import purPlanEdit from "./purOrderDetailDialog";
import {delApply, listOrder, listOrderDetail, delOrderDetailAll} from "@/api/purchase/purOrder"; import {delApply, listOrder, listOrderDetail, delOrderDetailAll} from "@/api/purchase/purOrder";
import {getInvListByUser} from '@/api/system/invWarehouse'
import {getDeptListByUser} from '@/api/auth/authDept'
export default { export default {
data() { data() {
return { return {
filterQuery: { filterQuery: {
billAction: null, billAction: null,
billNo: "", billNo: "",
originType: null, originType: null,
thirdSysFk: "", thirdSysFk: "",
page: 1, page: 1,
limit: 10, limit: 10,
corpName: null, corpName: null,
type: 1, type: 1,
editStatus: 1, editStatus: 1,
},
formName: null,
formMap: {
add: "新增采购计划",
update: "采购计划审核",
},
statusMap: {
1: "草稿",
2: "未审核",
3: "已审核",
4: "已拒绝"
},
emergencyMap: {
1: "普通",
2: "紧急",
3: "不紧急",
},
invList: {},
deptList: {},
showSearch: true,
idQuery: {},
editType: 1,
total: 0,
thirdSys: [],
thirdSysDetail: null,
busTypes: [],
originTypes: [],
list: [],
detailList: [],
loading: false,
actDateRange: [],
actAuditDateRange: [],
newSpDistributionVisible: false,
pickerOptions: {
shortcuts: [
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
}, },
formName: null, },
formMap: { {
add: "新增采购计划", text: "最近一个月",
update: "采购计划审核", onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
}, },
statusMap: { },
1: "草稿", {
2: "未审核", text: "最近三个月",
3: "已审核", onClick(picker) {
4: "已拒绝" const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
}, },
idQuery: {}, },
editType: 1, ],
total: 0, },
thirdSys: [], pickerAuditOptions: {
thirdSysDetail: null, shortcuts: [
busTypes: [], {
originTypes: [], text: "最近一周",
list: [], onClick(picker) {
detailList: [], const end = new Date();
loading: false, const start = new Date();
actDateRange: [], start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
newSpDistributionVisible: false, picker.$emit("pick", [start, end]);
pickerOptions: {
shortcuts: [
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
},
],
}, },
}; },
}, {
text: "最近一个月",
methods: { onClick(picker) {
onReset() { const end = new Date();
this.$router.push({ const start = new Date();
path: "", start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
}); picker.$emit("pick", [start, end]);
this.filterQuery = { },
billNo: "", },
thirdSysFk: "", {
billFlag: null, text: "最近三个月",
billAction: null, onClick(picker) {
startDate: null, const end = new Date();
endDate: null, const start = new Date();
page: 1, start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
limit: 10, picker.$emit("pick", [start, end]);
corpName: null, },
type: 1, },
editStatus: 1, ],
}; },
this.actDateRange = []; };
this.getList(); },
},
onSubmitFind() { methods: {
this.filterQuery.page = 1; onReset() {
this.getList(); this.$router.push({
}, path: "",
});
this.filterQuery = {
billNo: "",
thirdSysFk: "",
billFlag: null,
billAction: null,
startDate: null,
endDate: null,
page: 1,
limit: 10,
corpName: null,
type: 1,
editStatus: 1,
};
this.actDateRange = [];
this.getList();
},
getList() { onSubmitFind() {
if (this.actDateRange != null) { this.filterQuery.page = 1;
this.filterQuery.startDate = this.actDateRange[0]; this.getList();
this.filterQuery.endDate = this.actDateRange[1]; },
} else { hideSearch() {
this.filterQuery.startDate = null; this.showSearch = !this.showSearch;
this.filterQuery.endDate = null; },
} getList() {
this.loading = true; if (this.actDateRange != null) {
this.filterQuery.status = 3; this.filterQuery.startDate = this.actDateRange[0];
listOrder(this.filterQuery) this.filterQuery.endDate = this.actDateRange[1];
.then((response) => { } else {
if (response.code == 20000) { this.filterQuery.startDate = null;
this.list = response.data.list || []; this.filterQuery.endDate = null;
this.total = response.data.total || 0; }
} else { if (this.actAuditDateRange != null) {
this.$message.error(response.message); this.filterQuery.starAuditDate = this.actAuditDateRange[0];
} this.filterQuery.endAuditDate = this.actAuditDateRange[1];
this.loading = false; } else {
}) this.filterQuery.starAuditDate = null;
.catch(() => { this.filterQuery.endAuditDate = null;
this.loading = false; }
this.list = []; this.loading = true;
this.total = 0; this.filterQuery.status = 3;
}); listOrder(this.filterQuery)
}, .then((response) => {
handleDetail(row) { if (response.code == 20000) {
let query = {orderIdFk: row.id}; this.list = response.data.list || [];
this.loading = true; this.total = response.data.total || 0;
listOrderDetail(query) // } else {
.then((response) => { this.$message.error(response.message);
this.detailList = response.data.list || []; }
this.loading = false; this.loading = false;
}) })
.catch(() => { .catch(() => {
this.loading = false; this.loading = false;
this.detailList = []; this.list = [];
this.total = 0; this.total = 0;
}); });
}, },
deleteDialog(row) { handleDetail(row) {
this.$confirm("此操作将永久删除该单据, 是否继续?", "提示", { let query = {orderIdFk: row.id};
confirmButtonText: "确定", this.loading = true;
cancelButtonText: "取消", listOrderDetail(query) //
type: "warning", .then((response) => {
this.detailList = response.data.list || [];
this.loading = false;
})
.catch(() => {
this.loading = false;
this.detailList = [];
this.total = 0;
});
},
deleteDialog(row) {
this.$confirm("此操作将永久删除该单据, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
delOrderDetailAll(row)
.then((response) => {
this.loading = false;
if (response.code == 20000) {
this.$message.success("删除成功");
this.getList();
} else {
this.$message.error(response.message);
}
}) })
.then(() => { .catch(() => {
delOrderDetailAll(row) this.loading = false;
.then((response) => { });
this.loading = false;
if (response.code == 20000) {
this.$message.success("删除成功");
this.getList();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
});
})
.catch(() => {
});
},
handleCurrentChange(val) {
this.filterQuery.page = val.page;
this.getList();
},
closeDialog() { })
this.newSpDistributionVisible = false; .catch(() => {
this.getList(); });
this.detailList = []; },
}, handleCurrentChange(val) {
this.filterQuery.page = val.page;
this.getList();
},
closeDialog() {
this.newSpDistributionVisible = false;
this.getList();
this.detailList = [];
},
newDistributionForm(index, row) { getInvList() {
this.idQuery.id = ''; getInvListByUser().then((res) => {
if (this.$isNotBlank(row) && this.$isNotBlank(row.id)) { this.invList = res.data || [];
this.idQuery.id = row.id; this.getBusType();
this.idQuery.formData = row; })
this.formName = "update"; },
} else getDeptList() {
this.formName = "add"; getDeptListByUser().then((res) => {
this.newSpDistributionVisible = true; this.deptList = res.data || [];
}, });
},
newDistributionForm(index, row) {
this.idQuery.id = '';
if (this.$isNotBlank(row) && this.$isNotBlank(row.id)) {
this.idQuery.id = row.id;
this.idQuery.formData = row;
this.formName = "update";
} else
this.formName = "add";
this.newSpDistributionVisible = true;
},
}
,
components: {
purPlanEdit,
}
,
filters: {
statusFilterType(status) {
const statusMap = {
2: "warning",
3: "success",
4: "danger",
};
return statusMap[status];
} }
, ,
components: { }
purPlanEdit, ,
} mounted() {
, }
filters: { ,
statusFilterType(status) { created() {
const statusMap = { this.getList();
2: "warning", this.getInvList();
3: "success", this.getDeptList();
4: "danger", }
}; ,
return statusMap[status];
}
,
}
,
mounted() {
}
,
created() {
let end = new Date();
let start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
this.actDateRange = [start, end];
this.getList();
}
,
} }
; ;
</script> </script>

@ -30,7 +30,31 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row style="margin-top: -10px">
<el-col :span="11">
<el-form-item label="紧急程度:" prop="emergency">
<el-select v-model="formData.emergency" :disabled="true" placeholder="请选择紧急程度" style="width: 90%" clearable>
<el-option label="普通" :value=1></el-option>
<el-option label="紧急" :value=2></el-option>
<el-option label="不紧急" :value=3></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="到货时间:" prop="arrivalTime">
<el-date-picker
:disabled="true"
v-model="formData.arrivalTime"
type="datetime"
placeholder="选择日期"
style="width: 90%"
:clearable="false"
value-format="yyyy-MM-dd HH:mm:ss"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row> <el-row>
<el-col :span="11"> <el-col :span="11">
<el-form-item label="采购仓库:" prop="locStorageCode"> <el-form-item label="采购仓库:" prop="locStorageCode">
@ -53,6 +77,8 @@
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="11"> <el-col :span="11">
<el-form-item label="采购说明:" prop="billNo"> <el-form-item label="采购说明:" prop="billNo">

Loading…
Cancel
Save