Merge remote-tracking branch 'origin/master'

master
schry 2 years ago
commit b4cf299f8c

@ -5,9 +5,9 @@ VUE_APP_TITLE = UDI管理系统
ENV = 'development' ENV = 'development'
# 开发环境 # 开发环境
VUE_APP_BASE_API = 'http://127.0.0.1:9991' VUE_APP_BASE_API = 'http://192.168.0.166:9991'
VUE_APP_SYNC_API ="http://127.0.0.1:10001" VUE_APP_SYNC_API ="http://192.168.0.166:10001"
# 应用访问路径 例如使用前缀 /admin/ # 应用访问路径 例如使用前缀 /admin/
VUE_APP_CONTEXT_PATH = '/' VUE_APP_CONTEXT_PATH = '/'

@ -8,7 +8,7 @@ ENV = 'production'
#林纪裕cd #林纪裕cd
# VUE_APP_BASE_API = 'http://r.jiyuudims.cloud:81/UDI_WMS_MC/' VUE_APP_BASE_API = 'http://r.jiyuudims.cloud:81/UDI_WMS_MC/'
# VUE_APP_BASE_API = 'http://127.0.0.1:9150/UDI_WMS_MC/' # VUE_APP_BASE_API = 'http://127.0.0.1:9150/UDI_WMS_MC/'
@ -31,7 +31,10 @@ ENV = 'production'
# VUE_APP_BASE_API = 'http://116.204.106.103:9150/UDI_WMS_MC/' # VUE_APP_BASE_API = 'http://116.204.106.103:9150/UDI_WMS_MC/'
# 漳州中医院 # 漳州中医院
VUE_APP_BASE_API = 'http://192.168.240.119:9150/UDI_WMS_MC/' # VUE_APP_BASE_API = 'http://192.168.240.119:9150/UDI_WMS_MC/'
# 片仔癀诊断
# VUE_APP_BASE_API = 'http://192.168.0.100:9160/UDI_WMS_MC/'
# 应用访问路径 例如使用前缀 /admin/ # 应用访问路径 例如使用前缀 /admin/

@ -2,7 +2,7 @@ import axios from "@/utils/request";
export function filterDepts(query) { export function filterDepts(query) {
return axios({ return axios({
url: "/udi/auth/dept/filter", url: "/spms/inv/warehouse/filterAll",
method: "get", method: "get",
params: query params: query
}); });
@ -39,3 +39,8 @@ export function getDeptListByUser(params) {
params: params params: params
}); });
} }

@ -180,10 +180,10 @@
<el-col :span="6"> <el-col :span="6">
<el-form-item class="query-form-item" label="是否在用:"> <el-form-item class="query-form-item" label="是否在用:">
<el-select <el-select
v-model="filterQuery.isDisable" v-model="filterQuery.isDisable"
placeholder="请选择是否在用" placeholder="请选择是否在用"
clearable clearable
style="width: 90%" style="width: 90%"
> >
<el-option label="在用" value="false"></el-option> <el-option label="在用" value="false"></el-option>
<el-option label="停用" value="true"></el-option> <el-option label="停用" value="true"></el-option>
@ -307,56 +307,56 @@
show-overflow-tooltip show-overflow-tooltip
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="备注字段1" :label="productRemarkSet.remarkTitle1"
prop="basicPrductRemak1" prop="basicPrductRemak1"
width="180" width="180"
show-overflow-tooltip show-overflow-tooltip
v-if="$auth.hasPermi('basic:basicPrductRemak1')" v-if="$auth.hasPermi('basic:basicPrductRemak1')"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="备注字段2" :label="productRemarkSet.remarkTitle2"
prop="basicPrductRemak2" prop="basicPrductRemak2"
width="180" width="180"
show-overflow-tooltip show-overflow-tooltip
v-if="$auth.hasPermi('basic:basicPrductRemak2')" v-if="$auth.hasPermi('basic:basicPrductRemak2')"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="备注字段3" :label="productRemarkSet.remarkTitle3"
prop="basicPrductRemak3" prop="basicPrductRemak3"
width="180" width="180"
show-overflow-tooltip show-overflow-tooltip
v-if="$auth.hasPermi('basic:basicPrductRemak3')" v-if="$auth.hasPermi('basic:basicPrductRemak3')"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="备注字段4" :label="productRemarkSet.remarkTitle4"
prop="basicPrductRemak4" prop="basicPrductRemak4"
width="180" width="180"
show-overflow-tooltip show-overflow-tooltip
v-if="$auth.hasPermi('basic:basicPrductRemak4')" v-if="$auth.hasPermi('basic:basicPrductRemak4')"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="备注字段5" :label="productRemarkSet.remarkTitle5"
prop="basicPrductRemak5" prop="basicPrductRemak5"
width="180" width="180"
show-overflow-tooltip show-overflow-tooltip
v-if="$auth.hasPermi('basic:basicPrductRemak5')" v-if="$auth.hasPermi('basic:basicPrductRemak5')"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="备注字段6" :label="productRemarkSet.remarkTitle6"
prop="basicPrductRemak6" prop="basicPrductRemak6"
width="180" width="180"
show-overflow-tooltip show-overflow-tooltip
v-if="$auth.hasPermi('basic:basicPrductRemak6')" v-if="$auth.hasPermi('basic:basicPrductRemak6')"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="备注字段7" :label="productRemarkSet.remarkTitle7"
prop="basicPrductRemak7" prop="basicPrductRemak7"
width="180" width="180"
show-overflow-tooltip show-overflow-tooltip
v-if="$auth.hasPermi('basic:basicPrductRemak7')" v-if="$auth.hasPermi('basic:basicPrductRemak7')"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="备注字段8" :label="productRemarkSet.remarkTitle8"
prop="basicPrductRemak8" prop="basicPrductRemak8"
width="180" width="180"
show-overflow-tooltip show-overflow-tooltip
@ -364,10 +364,10 @@
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="是否在用" label="是否在用"
prop="isDisable" prop="isDisable"
width="180" width="180"
show-overflow-tooltip show-overflow-tooltip
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag :type="scope.row.isDisable | isDisableFilterType"> <el-tag :type="scope.row.isDisable | isDisableFilterType">
@ -401,6 +401,7 @@
</el-tag> </el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column width="180" label="操作" fixed="right"> <el-table-column width="180" label="操作" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@ -1644,7 +1645,16 @@ export default {
false: "不可配送", false: "不可配送",
}, },
pId: 0, pId: 0,
productRemarkSet: {}, productRemarkSet: {
remarkTitle1: "备注字段1",
remarkTitle2: "备注字段2",
remarkTitle3: "备注字段3",
remarkTitle4: "备注字段4",
remarkTitle5: "备注字段5",
remarkTitle6: "备注字段6",
remarkTitle7: "备注字段7",
remarkTitle8: "备注字段8",
},
relevanceEdit: { relevanceEdit: {
id: null, id: null,
thirdId: "", thirdId: "",
@ -2148,50 +2158,6 @@ export default {
} }
}); });
}, },
// selectSysParam() {
// let query = {
// paramKey: "smp_isUploadProuct",
// };
// spcombie().then((response) => {
// if (response.code == 20000) {
// if (response.data.paramValue == "1") {
// this.isSpCombine = true;
// } else {
// this.isSpCombine = false;
// }
// }
// });
//
// selectSysParamByKey(query).then((response) => {
// if (response.code == 20000) {
// if (response.data.paramValue == "1") {
// this.isUploadSmp = true;
// } else {
// this.isUploadSmp = false;
// }
// }
// });
// let query1 = {
// paramKey: "upload_pi_file_enabled",
// };
// selectSysParamByKey(query1).then((response) => {
// if (response.code == 20000) {
// if (response.data.paramValue == "1") {
// this.isImportFile = true;
// }
// }
// });
// let query2 = {
// paramKey: "upload_pi_file_url",
// };
// selectSysParamByKey(query2).then((response) => {
// if (response.code == 20000) {
// this.uploadFileUrl = response.data.paramValue;
// }
// });
// },
editUdiType() { editUdiType() {
this.selectUdiTypeVisible = true; this.selectUdiTypeVisible = true;
}, },

@ -1,513 +1,521 @@
<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="8"> <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="8"> <el-col :span="8">
<el-form-item label="申购部门"> <el-form-item label="申购部门">
<el-select v-model="filterQuery.targetDeptCode" placeholder="请选择申购部门" @change="getInvList" style="width: 90%"> <el-select v-model="filterQuery.targetDeptCode" placeholder="请选择申购部门" @change="getInvList"
<el-option style="width: 90%">
v-for="item in deptList" <el-option
:key="item.code" v-for="item in deptList"
:label="item.name" :key="item.code"
:value="item.code" :label="item.name"
> :value="item.code"
<span style="float: left">{{ item.name }}</span> >
</el-option> <span style="float: left">{{ item.name }}</span>
</el-select> </el-option>
</el-form-item> </el-select>
</el-col> </el-form-item>
</el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="申购仓库"> <el-form-item label="申购仓库">
<el-select v-model="filterQuery.targetInvCode" style="width: 90%" clearable placeholder="请选择所属仓库"> <el-select v-model="filterQuery.targetInvCode" style="width: 90%" clearable placeholder="请选择所属仓库">
<el-option <el-option
v-for="item in invList" v-for="item in invList"
: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>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="紧急程度:" prop="emergency"> <el-form-item label="紧急程度:" prop="emergency">
<el-select v-model="filterQuery.emergency" placeholder="请选择紧急程度" style="width: 90%" clearable> <el-select v-model="filterQuery.emergency" placeholder="请选择紧急程度" style="width: 90%" clearable>
<el-option label="正常" :value=1></el-option> <el-option label="正常" :value=1></el-option>
<el-option label="较急" :value=2></el-option> <el-option label="较急" :value=2></el-option>
<el-option label="特急" :value=3></el-option> <el-option label="特急" :value=3></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="创建时间:"> <el-form-item label="创建时间:">
<el-date-picker <el-date-picker
:picker-options="pickerOptions" :picker-options="pickerOptions"
v-model="actDateRange" v-model="actDateRange"
type="daterange" type="daterange"
format="yyyy 年 MM 月 dd 日" format="yyyy 年 MM 月 dd 日"
style="width: 90%" style="width: 90%"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
> >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<div class="top-right-btn"> <div class="top-right-btn">
<el-button-group style="display:flex;"> <el-button-group style="display:flex;">
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button> <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-refresh" @click="onReset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="onSubmitFind"></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 type="primary" icon="el-icon-plus" @click="newDistributionForm()" :loading="loading">新增单据
</el-button-group> </el-button>
</div> </el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider> <el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%" @current-change="handleDetail" border highlight-current-row <el-table v-loading="loading" :data="list" style="width: 100%" @current-change="handleDetail" border
:default-sort="defaultSort" @sort-change="handleSortChange"> highlight-current-row
<el-table-column label="序号" type="index" width="60"></el-table-column> :default-sort="defaultSort" @sort-change="handleSortChange">
<el-table-column label="申购单号" prop="billNo"></el-table-column> <el-table-column label="序号" type="index" width="60"></el-table-column>
<el-table-column label="申购部门" prop="targetDeptName"></el-table-column> <el-table-column label="申购单号" prop="billNo"></el-table-column>
<el-table-column label="申购仓库" prop="targetInvName"></el-table-column> <el-table-column label="申购部门" prop="targetDeptName"></el-table-column>
<el-table-column label="紧急程度" prop="emergency" > <el-table-column label="申购仓库" prop="targetInvName"></el-table-column>
<template slot-scope="scope"> <el-table-column label="紧急程度" prop="emergency">
{{ emergencyMap[scope.row.emergency] }} <template slot-scope="scope">
</template> {{ emergencyMap[scope.row.emergency] }}
</el-table-column> </template>
<el-table-column label="到货截止" prop="arrivalTime" ></el-table-column> </el-table-column>
<el-table-column label="单据状态" prop="status"> <el-table-column label="到货截止" prop="arrivalTime"></el-table-column>
<template slot-scope="scope"> <el-table-column label="单据状态" prop="status">
<el-tag :type="(scope.row.status) | statusFilterType"> <template slot-scope="scope">
{{ statusMap[scope.row.status] }} <el-tag :type="(scope.row.status) | statusFilterType">
</el-tag> {{ statusMap[scope.row.status] }}
</template> </el-tag>
</el-table-column> </template>
<el-table-column label="备注" prop="remark"></el-table-column> </el-table-column>
<el-table-column label="创建时间" prop="createTime" <el-table-column label="备注" prop="remark"></el-table-column>
sortable="custom" :sort-orders="['ascending', 'descending']"></el-table-column> <el-table-column label="创建时间" prop="createTime"
<el-table-column label="操作" width="120px"> sortable="custom" :sort-orders="['ascending', 'descending']"></el-table-column>
<template slot-scope="scope"> <el-table-column label="操作" width="120px">
<el-button type="text" size="small" @click.native="newDistributionForm(scope.$index, scope.row)">编辑</el-button> <template slot-scope="scope">
<el-button type="text" size="small" @click.native.stop="deleteDialog(scope.row)">删除</el-button> <el-button type="text" size="small" @click.native="newDistributionForm(scope.$index, scope.row)">编辑
</template> </el-button>
</el-table-column> <el-button type="text" size="small" @click.native.stop="deleteDialog(scope.row)">删除</el-button>
</el-table> </template>
</el-table-column>
</el-table>
<pagination <pagination
v-show="total>0" v-show="total>0"
:total="total" :total="total"
:page.sync="filterQuery.page" :page.sync="filterQuery.page"
:limit.sync="filterQuery.limit" :limit.sync="filterQuery.limit"
@pagination="handleCurrentChange" @pagination="handleCurrentChange"
></pagination> ></pagination>
</el-card> </el-card>
<el-card class="el-card"> <el-card class="el-card">
<el-table v-loading="loading" :data="detailList" style="width: 100%" border highlight-current-row> <el-table v-loading="loading" :data="detailList" style="width: 100%" border highlight-current-row>
<el-table-column label="序号" type="index" width="60"></el-table-column> <el-table-column label="序号" type="index" width="60"></el-table-column>
<el-table-column label="DI/物资编码" prop="nameCode"></el-table-column> <el-table-column label="DI/物资编码" prop="nameCode"></el-table-column>
<el-table-column label="物资名称" prop="productName" show-overflow-tooltip="true"></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="spec" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="计量单位" prop="measname" show-overflow-tooltip="true" width="100"></el-table-column> <el-table-column label="计量单位" prop="measname" show-overflow-tooltip="true" width="100"></el-table-column>
<el-table-column label="申购数量" prop="count"></el-table-column> <el-table-column label="申购数量" prop="count"></el-table-column>
<el-table-column label="注册/备案号" prop="zczbhhzbapzbh"></el-table-column> <el-table-column label="注册/备案号" prop="zczbhhzbapzbh"></el-table-column>
<el-table-column label="生产厂家" prop="manufactory"></el-table-column> <el-table-column label="生产厂家" prop="manufactory"></el-table-column>
<el-table-column label="供应商" prop="supName"></el-table-column> <el-table-column label="供应商" prop="supName"></el-table-column>
</el-table> </el-table>
</el-card> </el-card>
<el-dialog <el-dialog
:title="formMap[formName]" :title="formMap[formName]"
:visible.sync="newSpDistributionVisible" :visible.sync="newSpDistributionVisible"
width="80%" width="80%"
v-if="newSpDistributionVisible" v-if="newSpDistributionVisible"
@close='closeDialog' @close='closeDialog'
:close-on-click-modal="false" :close-on-click-modal="false"
:close-on-press-escape="false" :close-on-press-escape="false"
:before-close ="handleClose" :before-close="handleClose"
> >
<pureApplyEdit <pureApplyEdit
:closeDialog="closeDialog" :closeDialog="closeDialog"
:idQuery="idQuery" :idQuery="idQuery"
v-on:cancelDialog="getId" v-on:cancelDialog="getId"
:isChang="isChang" :isChang="isChang"
></pureApplyEdit> ></pureApplyEdit>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import pureApplyEdit from "./purApplyEditDiaolog"; import pureApplyEdit from "./purApplyEditDiaolog";
import {delApply, delApplyDetailAll, inserThrOrderWeb, listApply, listApplyDetail} from "@/api/purchase/purApply"; import {delApply, delApplyDetailAll, inserThrOrderWeb, listApply, listApplyDetail} from "@/api/purchase/purApply";
import { getInvListByUser } from '@/api/system/invWarehouse' import {getInvListByUser} from '@/api/system/invWarehouse'
import { getDeptListByUser } from '@/api/auth/authDept' import {filterDepts, getDeptListByUser} from '@/api/auth/authDept'
import {filterSubAll} from "@/api/system/invSubWarehouse"; import {filterGroupBySpuse, filterSubAll} from "@/api/system/invSubWarehouse";
export default { export default {
data() { data() {
return { return {
defaultSort: {prop: 'createTime', order: 'desc'}, defaultSort: {prop: 'createTime', order: 'desc'},
showSearch: true, showSearch: true,
pId:null, pId: null,
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,
emergency:'', emergency: '',
targetDeptCode:'', targetDeptCode: '',
targetInvCode:null targetInvCode: null
}, },
isChang:false, isChang: false,
formName: null, formName: null,
formMap: { formMap: {
add: "新增申购单据", add: "新增申购单据",
update: "编辑申购单据", update: "编辑申购单据",
}, },
statusMap: { statusMap: {
1: "草稿", 1: "草稿",
2: "未审核", 2: "未审核",
3: "已审核", 3: "已审核",
4: "已拒绝" 4: "已拒绝"
},
emergencyMap: {
1: "正常",
2: "较急",
3: "特急",
},
idQuery: {},
total: 0,
thirdSys: [],
invList: {},
invCodebe: null,
deptList: {},
thirdSysDetail: null,
busTypes: [],
originTypes: [],
list: [],
createTimes: null,
detailLoading: false,
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]);
}, },
emergencyMap:{ },
1: "正常", {
2: "较急", text: "最近一个月",
3: "特急", onClick(picker) {
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: "最近三个月",
invList:{}, onClick(picker) {
invCodebe:null, const end = new Date();
deptList:{}, const start = new Date();
thirdSysDetail: null, start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
busTypes: [], picker.$emit("pick", [start, end]);
originTypes: [],
list: [],
createTimes:null,
detailLoading: false,
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: "",
}); });
let deptCode = this.filterQuery.targetDeptCode let deptCode = this.filterQuery.targetDeptCode
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,
targetDeptCode: this.invCodebe, targetDeptCode: this.invCodebe,
targetInvCode:null targetInvCode: null
}; };
this.initActDateRange() this.initActDateRange()
if(deptCode!=this.invCodebe){ if (deptCode != this.invCodebe) {
this.getInvList() this.getInvList()
} }
this.actDateRange = []; this.actDateRange = [];
this.getList(); this.getList();
}, },
getId(id){ getId(id) {
if( this.formName=='add' && id!=null){ if (this.formName == 'add' && id != null) {
var data={ var data = {
id:id id: id
}
this.pId=id
//
delApplyDetailAll(data).then((response)=>{
if(response.code==20000){
this.newSpDistributionVisible=false
}
});
}else{
this.newSpDistributionVisible=false
} }
this.pId = id
//
delApplyDetailAll(data).then((response) => {
if (response.code == 20000) {
this.newSpDistributionVisible = false
}
});
} else {
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;
}, },
handleSortChange(column, prop, order) { handleSortChange(column, prop, order) {
if (column.order === 'descending') { if (column.order === 'descending') {
this.filterQuery.sort = 'desc' this.filterQuery.sort = 'desc'
} else { } else {
this.filterQuery.sort = 'asc' this.filterQuery.sort = 'asc'
} }
this.filterQuery.orderBy = column.prop; this.filterQuery.orderBy = column.prop;
this.getList(); this.getList();
}, },
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;
console.log(this.filterQuery) console.log(this.filterQuery)
listApply(this.filterQuery) listApply(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;
this.detailList=[] this.detailList = []
} else { } else {
this.$message.error(response.message); this.$message.error(response.message);
}
this.loading = false;
})
.catch(() => {
this.loading = false;
this.list = [];
this.total = 0;
});
},
handleDetail(row) {
let query = {orderIdFk: row.id};
this.detailLoading = true;
listApplyDetail(query) //
.then((response) => {
this.detailList = response.data.list || [];
this.detailLoading = false;
})
.catch(() => {
this.detailLoading = false;
this.detailList = [];
});
},
handleClose(){
if( this.formName=='add'){
this.isChang=!this.isChang
}else{
this.newSpDistributionVisible=false
} }
}, this.loading = false;
submitOrder(row) { })
this.loading = true; .catch(() => {
let tQuery = { this.loading = false;
editStatus: 2, this.list = [];
purApplyEntity: row, this.total = 0;
} });
inserThrOrderWeb(tQuery) },
.then(response => { handleDetail(row) {
this.loading = false; let query = {orderIdFk: row.id};
if (response.code === 20000) { this.detailLoading = true;
this.$message.success("提交成功!"); listApplyDetail(query) //
this.getList(); .then((response) => {
} else { this.detailList = response.data.list || [];
this.$message.error(response.message); this.detailLoading = false;
} })
}) .catch(() => {
.catch(() => { this.detailLoading = false;
this.loading = false; this.detailList = [];
}) });
}, },
deleteDialog(row) { handleClose() {
this.$confirm("此操作将永久删除该单据, 是否继续?", "提示", { if (this.formName == 'add') {
confirmButtonText: "确定", this.isChang = !this.isChang
cancelButtonText: "取消", } else {
type: "warning", this.newSpDistributionVisible = false
}) }
.then(() => { },
delApply(row.id) submitOrder(row) {
.then((response) => { this.loading = true;
this.loading = false; let tQuery = {
if (response.code == 20000) { editStatus: 2,
this.$message.success("删除成功"); purApplyEntity: row,
this.getList(); }
} else { inserThrOrderWeb(tQuery)
this.$message.error(response.message); .then(response => {
} this.loading = false;
}) if (response.code === 20000) {
.catch(() => { this.$message.success("提交成功!");
this.loading = false;
});
})
.catch(() => {
});
},
handleCurrentChange(val) {
this.filterQuery.page = val.page;
this.getList(); this.getList();
}, } else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
})
},
deleteDialog(row) {
this.$confirm("此操作将永久删除该单据, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
delApply(row.id)
.then((response) => {
this.loading = false;
if (response.code == 20000) {
this.$message.success("删除成功");
this.getList();
} else {
this.$message.error(response.message);
}
})
.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 = [];
},
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;
},
getInvList() {
var query={
parentId:this.filterQuery.targetDeptCode
}
this.filterQuery.targetInvCode = null
this.$forceUpdate()
filterSubAll(query).then((res) => {
this.invList = res.data || [];
})
},
getDeptList() {
getDeptListByUser().then((res) => {
this.deptList = res.data || [];
if(this.deptList.length>0){
this.filterQuery.targetDeptCode=this.deptList[0].code
this.invCodebe=this.filterQuery.targetDeptCode
}
this.getList();
this. getInvList();
});
},
initActDateRange(){
let end = new Date(); newDistributionForm(index, row) {
let start = new Date(); this.idQuery.id = '';
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); if (this.$isNotBlank(row) && this.$isNotBlank(row.id)) {
this.actDateRange = [start, end]; this.idQuery.id = row.id;
this.idQuery.formData = row;
this.formName = "update";
} else
this.formName = "add";
this.newSpDistributionVisible = true;
},
getInvList() {
var query = {
parentId: this.filterQuery.targetDeptCode,
spUse: true,
}
this.filterQuery.targetInvCode = null
this.$forceUpdate()
filterGroupBySpuse(query).then((res) => {
this.invList = res.data || [];
})
},
getDeptList() {
let query = {
spUse: true,
};
filterDepts(query).then((res) => {
this.deptList = res.data || [];
if (this.deptList.length > 0) {
this.filterQuery.targetDeptCode = this.deptList[0].code
this.invCodebe = this.filterQuery.targetDeptCode
} }
this.getList();
this.getInvList();
});
},
initActDateRange() {
let end = new Date();
let start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
this.actDateRange = [start, end];
} }
,
components: { }
pureApplyEdit, ,
} components: {
, pureApplyEdit,
filters: { }
statusFilterType(status) { ,
const statusMap = { filters: {
1: "warning", statusFilterType(status) {
2: "success", const statusMap = {
}; 1: "warning",
return statusMap[status]; 2: "success",
} };
, return statusMap[status];
}
,
mounted() {
}
,
created() {
this.initActDateRange()
this.getDeptList();
} }
, ,
}
,
mounted() {
}
,
created() {
this.initActDateRange()
this.getDeptList();
}
,
} }
; ;
</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,152 +1,156 @@
<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="8"> <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="8"> <el-col :span="8">
<el-form-item label="申购部门"> <el-form-item label="申购部门">
<el-select v-model="filterQuery.targetDeptCode" placeholder="请选择申购部门" style="width: 90%" <el-select v-model="filterQuery.deptCode" placeholder="请选择申购部门" style="width: 90%"
@change="getInvList" @change="getInvList"
> >
<el-option <el-option
v-for="item in deptList" v-for="item in deptList"
:key="item.code" :key="item.code"
: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>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="申购仓库"> <el-form-item label="申购仓库">
<el-select v-model="filterQuery.targetInvCode" @change="getList" style="width: 90%" clearable placeholder="请选择所属仓库"> <el-select v-model="filterQuery.invCode" @change="getList" style="width: 90%" clearable
<el-option placeholder="请选择所属仓库">
v-for="item in invList" <el-option
:key="item.name" v-for="item in invList"
:label="item.name" :key="item.name"
:value="item.code"> :label="item.name"
<span style="float: left">{{ item.name }}</span> :value="item.code">
</el-option> <span style="float: left">{{ item.name }}</span>
</el-select> </el-option>
</el-form-item> </el-select>
</el-col> </el-form-item>
</el-row> </el-col>
</el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="紧急程度:" prop="emergency"> <el-form-item label="紧急程度:" prop="emergency">
<el-select v-model="filterQuery.emergency" placeholder="请选择紧急程度" style="width: 90%" clearable> <el-select v-model="filterQuery.emergency" placeholder="请选择紧急程度" style="width: 90%" clearable>
<el-option label="正常" :value=1></el-option> <el-option label="正常" :value=1></el-option>
<el-option label="较急" :value=2></el-option> <el-option label="较急" :value=2></el-option>
<el-option label="特急" :value=3></el-option> <el-option label="特急" :value=3></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="创建时间:"> <el-form-item label="创建时间:">
<el-date-picker <el-date-picker
:picker-options="pickerOptions" :picker-options="pickerOptions"
v-model="actDateRange" v-model="actDateRange"
type="daterange" type="daterange"
format="yyyy 年 MM 月 dd 日" format="yyyy 年 MM 月 dd 日"
style="width: 90%" style="width: 90%"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
> >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<div class="top-right-btn"> <div class="top-right-btn">
<el-button-group style="display:flex;"> <el-button-group style="display:flex;">
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button> <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-refresh" @click="onReset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="onSubmitFind"></el-button> <el-button type="primary" icon="el-icon-search" @click="onSubmitFind"></el-button>
</el-button-group> </el-button-group>
</div> </div>
<el-divider style="margin: 15px"></el-divider> <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-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row
:default-sort="defaultSort" @sort-change="handleSortChange"> @current-change="handleDetail"
<el-table-column label="序号" type="index" width="60"></el-table-column> :default-sort="defaultSort" @sort-change="handleSortChange">
<el-table-column label="申购单号" prop="billNo"></el-table-column> <el-table-column label="序号" type="index" width="60"></el-table-column>
<el-table-column label="申购部门" prop="targetDeptName"></el-table-column> <el-table-column label="申购单号" prop="billNo"></el-table-column>
<el-table-column label="申购仓库" prop="targetInvName"></el-table-column> <el-table-column label="申购部门" prop="deptName"></el-table-column>
<el-table-column label="紧急程度" prop="emergency" > <el-table-column label="申购仓库" prop="invName"></el-table-column>
<template slot-scope="scope"> <el-table-column label="紧急程度" prop="emergency">
{{ emergencyMap[scope.row.emergency] }} <template slot-scope="scope">
</template> {{ emergencyMap[scope.row.emergency] }}
</el-table-column> </template>
<el-table-column label="到货截止" prop="arrivalTime" ></el-table-column> </el-table-column>
<el-table-column label="单据状态" prop="status"> <el-table-column label="到货截止" prop="arrivalTime"></el-table-column>
<template slot-scope="scope"> <el-table-column label="单据状态" prop="status">
<el-tag :type="(scope.row.status) | statusFilterType"> <template slot-scope="scope">
{{ statusMap[scope.row.status] }} <el-tag :type="(scope.row.status) | statusFilterType">
</el-tag> {{ statusMap[scope.row.status] }}
</template> </el-tag>
</el-table-column> </template>
<el-table-column label="创建时间" prop="createTime" </el-table-column>
sortable="custom" :sort-orders="['ascending', 'descending']"></el-table-column> <el-table-column label="创建时间" prop="createTime"
<el-table-column label="操作" width="60px"> sortable="custom" :sort-orders="['ascending', 'descending']"></el-table-column>
<template slot-scope="scope"> <el-table-column label="操作" width="60px">
<el-button type="text" :disabled="scope.row.status!=2" @click.native="newDistributionForm(scope.$index, scope.row)">审核</el-button> <template slot-scope="scope">
</template> <el-button type="text" :disabled="scope.row.status!=2"
</el-table-column> @click.native="newDistributionForm(scope.$index, scope.row)">审核
</el-table> </el-button>
</template>
</el-table-column>
</el-table>
<pagination <pagination
v-show="total>0" v-show="total>0"
:total="total" :total="total"
:page.sync="filterQuery.page" :page.sync="filterQuery.page"
:limit.sync="filterQuery.limit" :limit.sync="filterQuery.limit"
@pagination="handleCurrentChange" @pagination="handleCurrentChange"
></pagination> ></pagination>
</el-card> </el-card>
<el-card class="el-card"> <el-card class="el-card">
<el-table v-loading="loading" :data="detailList" style="width: 100%" border highlight-current-row> <el-table v-loading="loading" :data="detailList" style="width: 100%" border highlight-current-row>
<el-table-column label="序号" type="index" width="60"></el-table-column> <el-table-column label="序号" type="index" width="60"></el-table-column>
<el-table-column label="DI/物资编码" prop="nameCode"></el-table-column> <el-table-column label="DI/物资编码" prop="nameCode"></el-table-column>
<el-table-column label="物资名称" prop="productName" show-overflow-tooltip="true"></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="spec" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="计量单位" prop="measname" show-overflow-tooltip="true" width="100"></el-table-column> <el-table-column label="计量单位" prop="measname" show-overflow-tooltip="true" width="100"></el-table-column>
<el-table-column label="申购数量" prop="count"></el-table-column> <el-table-column label="申购数量" prop="count"></el-table-column>
<el-table-column label="注册/备案号" prop="zczbhhzbapzbh"></el-table-column> <el-table-column label="注册/备案号" prop="zczbhhzbapzbh"></el-table-column>
<el-table-column label="生产厂家" prop="manufactory"></el-table-column> <el-table-column label="生产厂家" prop="manufactory"></el-table-column>
<el-table-column label="供应商" prop="supName"></el-table-column> <el-table-column label="供应商" prop="supName"></el-table-column>
</el-table> </el-table>
</el-card> </el-card>
<el-dialog <el-dialog
:title="formMap[formName]" :title="formMap[formName]"
:visible.sync="newSpDistributionVisible" :visible.sync="newSpDistributionVisible"
width="80%" width="80%"
v-if="newSpDistributionVisible" v-if="newSpDistributionVisible"
@close='closeDialog' @close='closeDialog'
:close-on-click-modal="false" :close-on-click-modal="false"
:close-on-press-escape="false" :close-on-press-escape="false"
> >
<pureApplyDetail <pureApplyDetail
:closeDialog="closeDialog" :closeDialog="closeDialog"
:idQuery="idQuery" :idQuery="idQuery"
:editType="editType" :editType="editType"
></pureApplyDetail> ></pureApplyDetail>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import pureApplyDetail from "./pureApplyDetailDialog"; import pureApplyDetail from "./pureApplyDetailDialog";
@ -156,321 +160,323 @@ import {getDeptListByUser} from "@/api/auth/authDept";
import {filterSubAll} from "@/api/system/invSubWarehouse"; import {filterSubAll} from "@/api/system/invSubWarehouse";
export default { export default {
data() { data() {
return { return {
defaultSort: {prop: 'createTime', order: 'desc'}, defaultSort: {prop: 'createTime', order: 'desc'},
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,
emergency:'', emergency: '',
targetDeptCode:'', targetDeptCode: '',
targetInvCode: null targetInvCode: null,
}, deptCode: null,
formName: null, invCode: null,
formMap: { },
add: "新增申购单据", formName: null,
update: "审核申购单据", formMap: {
}, add: "新增申购单据",
statusMap: { update: "审核申购单据",
1: "草稿", },
2: "未审核", statusMap: {
3: "已审核", 1: "草稿",
4: "已拒绝" 2: "未审核",
3: "已审核",
4: "已拒绝"
},
emergencyMap: {
1: "正常",
2: "较急",
3: "特急",
},
idQuery: {},
editType: 1,
total: 0,
thirdSys: [],
invCodebe: null,
thirdSysDetail: null,
busTypes: [],
originTypes: [],
invList: {},
deptList: {},
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]);
}, },
emergencyMap:{ },
1: "正常", {
2: "较急", text: "最近一个月",
3: "特急", onClick(picker) {
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) {
invCodebe:null, const end = new Date();
thirdSysDetail: null, const start = new Date();
busTypes: [], start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
originTypes: [], picker.$emit("pick", [start, end]);
invList:{},
deptList:{},
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]);
},
},
{
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: "",
}); });
let deptCode = this.filterQuery.targetDeptCode let deptCode = this.filterQuery.targetDeptCode
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,
targetDeptCode: this.invCodebe, targetDeptCode: this.invCodebe,
targetInvCode: null targetInvCode: null
}; };
if(deptCode!=this.invCodebe){ if (deptCode != this.invCodebe) {
this.getInvList() this.getInvList()
} }
this.actDateRange = []; this.actDateRange = [];
this.getList(); this.getList();
}, },
hideSearch() { hideSearch() {
this.showSearch = !this.showSearch; this.showSearch = !this.showSearch;
}, },
onSubmitFind() { onSubmitFind() {
this.filterQuery.page = 1; this.filterQuery.page = 1;
this.getList(); this.getList();
}, },
handleSortChange(column, prop, order) { handleSortChange(column, prop, order) {
if (column.order === 'descending') { if (column.order === 'descending') {
this.filterQuery.sort = 'desc' this.filterQuery.sort = 'desc'
} else { } else {
this.filterQuery.sort = 'asc' this.filterQuery.sort = 'asc'
} }
this.filterQuery.orderBy = column.prop; this.filterQuery.orderBy = column.prop;
this.getList(); this.getList();
}, },
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;
auditListApply(this.filterQuery) auditListApply(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;
this.detailList=[] this.detailList = []
} 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;
listApplyDetail(query) // listApplyDetail(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.loading = true; this.loading = true;
let tQuery = { let tQuery = {
editStatus: 2, editStatus: 2,
purApplyEntity: row, purApplyEntity: row,
} }
auditOrder(tQuery) auditOrder(tQuery)
.then(response => { .then(response => {
this.loading = false; this.loading = false;
if (response.code === 20000) { if (response.code === 20000) {
this.$message.success("提交成功!"); this.$message.success("提交成功!");
this.getList(); this.getList();
} else { } else {
this.$message.error(response.message); this.$message.error(response.message);
} }
}) })
.catch(() => { .catch(() => {
this.loading = false; this.loading = false;
}) })
}, },
deleteDialog(row) { deleteDialog(row) {
this.$confirm("此操作将永久删除该单据, 是否继续?", "提示", { this.$confirm("此操作将永久删除该单据, 是否继续?", "提示", {
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
type: "warning", type: "warning",
})
.then(() => {
delApply(row.id)
.then((response) => {
this.loading = false;
if (response.code == 20000) {
this.$message.success("删除成功");
this.getList();
} else {
this.$message.error(response.message);
}
}) })
.then(() => { .catch(() => {
delApply(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(() => { .catch(() => {
}); });
}, },
handleCurrentChange(val) { handleCurrentChange(val) {
this.filterQuery.page = val.page; this.filterQuery.page = val.page;
this.getList(); this.getList();
}, },
closeDialog() { closeDialog() {
this.newSpDistributionVisible = false; this.newSpDistributionVisible = false;
this.getList(); this.getList();
this.detailList = []; this.detailList = [];
}, },
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;
}, },
deptChange(){ deptChange() {
this. getInvList(); this.getInvList();
this.getList(); this.getList();
}, },
getInvList() { getInvList() {
var query={ var query = {
parentId:this.filterQuery.targetDeptCode parentId: this.filterQuery.targetDeptCode
} }
this.filterQuery.targetInvCode = null this.filterQuery.targetInvCode = null
filterSubAll(query).then((res) => { filterSubAll(query).then((res) => {
this.invList = res.data || []; this.invList = res.data || [];
}) })
}, },
getDeptList() { getDeptList() {
filterAll().then((res) => { filterAll().then((res) => {
this.deptList = res.data || []; this.deptList = res.data || [];
this. getInvList(); this.getInvList();
this.getList(); this.getList();
}); });
}, },
} }
, ,
components: { components: {
pureApplyDetail, pureApplyDetail,
} }
, ,
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() {
}
,
created() {
let end = new Date();
let start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
this.actDateRange = [start, end];
this.getDeptList();
} }
, ,
}
,
mounted() {
}
,
created() {
let end = new Date();
let start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
this.actDateRange = [start, end];
this.getDeptList();
}
,
} }
; ;
</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>

@ -104,18 +104,13 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="到货截止" prop="arrivalTime" ></el-table-column> <el-table-column label="到货截止" prop="arrivalTime" ></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-table-column label="创建时间" prop="createTime" <el-table-column label="创建时间" prop="createTime"
sortable="custom" :sort-orders="['ascending', 'descending']" ></el-table-column> sortable="custom" :sort-orders="['ascending', 'descending']" ></el-table-column>
<el-table-column label="审核时间" prop="auditTime" <el-table-column label="审核时间" prop="auditTime"
sortable="custom" :sort-orders="['ascending', 'descending']" ></el-table-column> sortable="custom" :sort-orders="['ascending', 'descending']" ></el-table-column>
<el-table-column label="状态" prop="status"> <el-table-column label="审核人" prop="auditByName"></el-table-column>
<el-table-column label="审核状态" prop="status">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag :type="(scope.row.status) | statusFilterType"> <el-tag :type="(scope.row.status) | statusFilterType">
{{ statusMap[scope.row.status] }} {{ statusMap[scope.row.status] }}

@ -81,18 +81,19 @@
<el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row <el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row
@current-change="handleDetail" :default-sort="defaultSort" @sort-change="handleSortChange"> @current-change="handleDetail" :default-sort="defaultSort" @sort-change="handleSortChange">
<el-table-column label="序号" type="index" width="60"></el-table-column> <el-table-column label="序号" type="index" width="60"></el-table-column>
<el-table-column label="采购单号" prop="billNo"></el-table-column> <el-table-column label="采购单号" prop="billNo" width="160"></el-table-column>
<el-table-column label="采购部门" prop="deptName"></el-table-column> <el-table-column label="采购部门" prop="deptName" width="120"></el-table-column>
<el-table-column label="采购仓库" prop="invName"></el-table-column> <el-table-column label="采购仓库" prop="invName" width="120"></el-table-column>
<el-table-column label="申购人" prop="applyCreateBy"></el-table-column> <el-table-column label="申购仓库" prop="applyInvName" width="120"></el-table-column>
<el-table-column label="供应商" prop="supName"></el-table-column> <el-table-column label="申购人" prop="applyCreateBy" width="120"></el-table-column>
<el-table-column label="紧急程度" prop="emergency"> <el-table-column label="供应商" prop="supName" width="180"></el-table-column>
<el-table-column label="紧急程度" prop="emergency" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
{{ emergencyMap[scope.row.emergency] }} {{ emergencyMap[scope.row.emergency] }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="到货截止" prop="arrivalTime"></el-table-column> <el-table-column label="到货截止" prop="arrivalTime" width="160"></el-table-column>
<el-table-column label="单据状态" prop="status"> <el-table-column label="单据状态" prop="status" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag :type="(scope.row.status) | statusFilterType"> <el-tag :type="(scope.row.status) | statusFilterType">
{{ statusMap[scope.row.status] }} {{ statusMap[scope.row.status] }}
@ -100,10 +101,10 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建时间" prop="createTime" <el-table-column label="创建时间" prop="createTime"
sortable="custom" :sort-orders="['ascending', 'descending']"></el-table-column> sortable="custom" :sort-orders="['ascending', 'descending']" width="160"></el-table-column>
<el-table-column label="操作" width="120"> <el-table-column label="操作" width="120" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" size="small" @click.native="newDistributionForm(scope.$index, scope.row)">编辑 <el-button type="text" size="small" @click.native="newDistributionForm(scope.$index, scope.row)">编辑
</el-button> </el-button>

@ -11,7 +11,7 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="采购部门"> <el-form-item label="采购部门">
<el-select v-model="filterQuery.deptCode" @change="getInvList" placeholder="请选择采购部门" style="width: 90%"> <el-select v-model="filterQuery.deptCode" @change="getInvList" placeholder="请选择采购部门" style="width: 90%">
<el-option <el-option
v-for="item in deptList" v-for="item in deptList"
:key="item.code" :key="item.code"
@ -26,7 +26,7 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="采购仓库"> <el-form-item label="采购仓库">
<el-select v-model="filterQuery.invCode" clearable style="width: 90%" placeholder="请选择所属仓库"> <el-select v-model="filterQuery.invCode" clearable style="width: 90%" placeholder="请选择所属仓库">
<el-option <el-option
v-for="item in invList" v-for="item in invList"
:key="item.name" :key="item.name"
@ -78,20 +78,22 @@
<el-divider style="margin: 15px"></el-divider> <el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row <el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row
@current-change="handleDetail" :default-sort="defaultSort" @sort-change="handleSortChange"> @current-change="handleDetail" :default-sort="defaultSort" @sort-change="handleSortChange">
<el-table-column label="序号" type="index" width="60"></el-table-column> <el-table-column label="序号" type="index" width="60"></el-table-column>
<el-table-column label="采购单号" prop="billNo"></el-table-column> <el-table-column label="采购单号" prop="billNo" width="160"></el-table-column>
<el-table-column label="采购部门" prop="deptName"></el-table-column> <el-table-column label="采购部门" prop="deptName" width="120"></el-table-column>
<el-table-column label="采购仓库" prop="invName"></el-table-column> <el-table-column label="采购仓库" prop="invName" width="120"></el-table-column>
<el-table-column label="申购人" prop="applyCreateBy"></el-table-column> <el-table-column label="申购仓库" prop="applyInvName" width="120"></el-table-column>
<el-table-column label="供应商" prop="supName"></el-table-column> <el-table-column label="申购人" prop="applyCreateBy" width="120"></el-table-column>
<el-table-column label="紧急程度" prop="emergency"> <el-table-column label="审核人" prop="auditUserName"></el-table-column>
<el-table-column label="供应商" prop="supName" width="180"></el-table-column>
<el-table-column label="紧急程度" prop="emergency" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
{{ emergencyMap[scope.row.emergency] }} {{ emergencyMap[scope.row.emergency] }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="到货截止" prop="arrivalTime"></el-table-column> <el-table-column label="到货截止" prop="arrivalTime" width="160"></el-table-column>
<el-table-column label="单据状态" prop="status"> <el-table-column label="单据状态" prop="status" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag :type="(scope.row.status) | statusFilterType"> <el-tag :type="(scope.row.status) | statusFilterType">
{{ statusMap[scope.row.status] }} {{ statusMap[scope.row.status] }}
@ -99,8 +101,8 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建时间" prop="createTime" <el-table-column label="创建时间" prop="createTime"
sortable="custom" :sort-orders="['ascending', 'descending']"></el-table-column> sortable="custom" :sort-orders="['ascending', 'descending']" width="160"></el-table-column>
<el-table-column label="操作" width="60px"> <el-table-column label="操作" width="60px" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" :disabled="scope.row.status!=2" <el-button type="text" :disabled="scope.row.status!=2"
@click.native="newDistributionForm(scope.$index, scope.row)">审核 @click.native="newDistributionForm(scope.$index, scope.row)">审核
@ -174,11 +176,11 @@ export default {
corpName: null, corpName: null,
type: 1, type: 1,
editStatus: 1, editStatus: 1,
emergency:'', emergency: '',
deptCode:'', deptCode: '',
}, },
formName: null, formName: null,
invCodebe:null, invCodebe: null,
formMap: { formMap: {
add: "新增采购计划", add: "新增采购计划",
update: "采购计划审核", update: "采购计划审核",
@ -189,7 +191,7 @@ export default {
3: "已审核", 3: "已审核",
4: "已拒绝" 4: "已拒绝"
}, },
emergencyMap:{ emergencyMap: {
1: "正常", 1: "正常",
2: "较急", 2: "较急",
3: "特急", 3: "特急",
@ -298,7 +300,7 @@ export default {
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;
this.detailList=[] this.detailList = []
} else { } else {
this.$message.error(response.message); this.$message.error(response.message);
} }
@ -359,8 +361,8 @@ export default {
this.detailList = []; this.detailList = [];
}, },
getInvList() { getInvList() {
var query={ var query = {
parentId:this.filterQuery.deptCode parentId: this.filterQuery.deptCode
} }
filterSubAll(query).then((res) => { filterSubAll(query).then((res) => {
this.invList = res.data || []; this.invList = res.data || [];
@ -369,12 +371,12 @@ export default {
getDeptList() { getDeptList() {
getDeptListByUser().then((res) => { getDeptListByUser().then((res) => {
this.deptList = res.data || []; this.deptList = res.data || [];
if(this.deptList.length>0){ if (this.deptList.length > 0) {
this.filterQuery.deptCode=this.deptList[0].code this.filterQuery.deptCode = this.deptList[0].code
this.invCodebe=this.filterQuery.deptCode this.invCodebe = this.filterQuery.deptCode
} }
this.getList(); this.getList();
this. getInvList(); this.getInvList();
}); });
}, },

@ -94,20 +94,22 @@
<el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row="true" <el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row="true"
@current-change="handleDetail" :default-sort="defaultSort" @sort-change="handleSortChange" > @current-change="handleDetail" :default-sort="defaultSort" @sort-change="handleSortChange">
<el-table-column label="序号" type="index" width="60"></el-table-column> <el-table-column label="序号" type="index" width="60"></el-table-column>
<el-table-column label="采购单号" prop="billNo"></el-table-column> <el-table-column label="采购单号" prop="billNo" width="160"></el-table-column>
<el-table-column label="采购部门" prop="deptName"></el-table-column> <el-table-column label="采购部门" prop="deptName" width="120"></el-table-column>
<el-table-column label="采购仓库" prop="invName"></el-table-column> <el-table-column label="采购仓库" prop="invName" width="120"></el-table-column>
<el-table-column label="申购人" prop="applyCreateBy"></el-table-column> <el-table-column label="申购仓库" prop="applyInvName" width="120"></el-table-column>
<el-table-column label="供应商" prop="supName"></el-table-column> <el-table-column label="申购人" prop="applyCreateBy" width="120"></el-table-column>
<el-table-column label="紧急程度" prop="emergency"> <el-table-column label="审核人" prop="auditUserName"></el-table-column>
<el-table-column label="供应商" prop="supName" width="180"></el-table-column>
<el-table-column label="紧急程度" prop="emergency" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
{{ emergencyMap[scope.row.emergency] }} {{ emergencyMap[scope.row.emergency] }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="到货截止" prop="arrivalTime"></el-table-column> <el-table-column label="到货截止" prop="arrivalTime" width="160"></el-table-column>
<el-table-column label="状态" prop="status"> <el-table-column label="单据状态" prop="status" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag :type="(scope.row.status) | statusFilterType"> <el-tag :type="(scope.row.status) | statusFilterType">
{{ statusMap[scope.row.status] }} {{ statusMap[scope.row.status] }}
@ -115,12 +117,12 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建时间" prop="createTime" <el-table-column label="创建时间" prop="createTime"
sortable="custom" :sort-orders="['ascending', 'descending']"></el-table-column> sortable="custom" :sort-orders="['ascending', 'descending']" width="160"></el-table-column>
<el-table-column label="审核时间" prop="auditTime" <el-table-column label="审核时间" prop="auditTime"
sortable="custom" :sort-orders="['ascending', 'descending']"></el-table-column> sortable="custom" :sort-orders="['ascending', 'descending']" width="160"></el-table-column>
<el-table-column label="操作"> <el-table-column label="操作" width="60px" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" size="small" @click.native.stop="deleteDialog(scope.row)" <el-button type="text" size="small" @click.native.stop="deleteDialog(scope.row)"
>删除 >删除

@ -102,7 +102,8 @@
<el-row type="flex"> <el-row type="flex">
<el-col :span="11" type="flex"> <el-col :span="11" type="flex">
<el-form-item label="用户账号" prop="userName"> <el-form-item label="用户账号" prop="userName">
<el-input v-model="formData.userName" size="small" style="width: 90%" :disabled="formData.id == 1"></el-input> <el-input v-model="formData.userName" size="small" style="width: 90%"
:disabled="formData.id == 1"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="11" class="el-col"> <el-col :span="11" class="el-col">
@ -206,7 +207,7 @@
<el-row :gutter="20" type="flex"> <el-row :gutter="20" type="flex">
<el-col :span="11" type="flex"> <el-col :span="11" type="flex">
<el-form-item label="角色" prop="roles"> <el-form-item label="角色" prop="roles">
<el-checkbox-group v-model="formData.roles" :disabled="formData.id == 1" > <el-checkbox-group v-model="formData.roles" :disabled="formData.id == 1">
<el-checkbox <el-checkbox
v-for="item in roles" v-for="item in roles"
:key="item.roleId" :key="item.roleId"
@ -258,7 +259,7 @@ import {findConfig} from "@/api/sync/spsSyncStatus";
import {isBlank} from "@/utils/strUtil"; import {isBlank} from "@/utils/strUtil";
import {listRole} from "@/api/system/role"; import {listRole} from "@/api/system/role";
import {selectSysParamByKey} from "@/api/system/systemParamConfig"; import {selectSysParamByKey} from "@/api/system/systemParamConfig";
import {filterList, selectInvById,getDeptById} from '@/api/system/invWarehouse' import {filterList, selectInvById, getDeptById} from '@/api/system/invWarehouse'
const formJson = { const formJson = {
id: "", id: "",
@ -384,7 +385,7 @@ export default {
this.query.page = 1; this.query.page = 1;
this.getList(); this.getList();
}, },
change(){ change() {
this.$forceUpdate(); this.$forceUpdate();
}, },
findInv(val) { findInv(val) {
@ -403,7 +404,7 @@ export default {
}, },
getList() { getList() {
this.loading = true; this.loading = true;
this.query.key='key'; this.query.key = 'key';
authAdminList(this.query) authAdminList(this.query)
.then(response => { .then(response => {
this.loading = false; this.loading = false;
@ -465,7 +466,7 @@ export default {
roles: row.roles, roles: row.roles,
depts: row.depts, depts: row.depts,
dept: row.dept, dept: row.dept,
locInvCode:row.locInvCode locInvCode: row.locInvCode
}; };
} }
this.formName = "add"; this.formName = "add";
@ -570,10 +571,10 @@ export default {
}; };
filterList(query) filterList(query)
.then((response) => { .then((response) => {
var deptList=[]; var deptList = [];
this.loading = false; this.loading = false;
for(var i=0;i<response.data.list.length;i++){ for (var i = 0; i < response.data.list.length; i++) {
if(response.data.list[i].id!=1){ if (response.data.list[i].id != 1) {
deptList.push(response.data.list[i]); deptList.push(response.data.list[i]);
} }
} }

Loading…
Cancel
Save