From 119efc91fd3374131c31b8c5f8f5f7cb8f6731cf Mon Sep 17 00:00:00 2001
From: zuozhengqing <a13193816592@163.com>
Date: 星期五, 17 十一月 2023 09:34:59 +0800
Subject: [PATCH] 将出入库明细拆分为出库明细和入库明细
---
src/router/product/index.js | 13
src/router/report/index.js | 2
src/views/reportForm/inboundOutboundDetail/index.vue | 55 +-
src/components/layout/components/appsidebar/index.vue | 3
src/views/reportForm/locationReport/index.vue | 6
src/router/index.js | 2
src/views/reportForm/outboundDetail/index.vue | 265 ++++++++++++
src/views/reportForm/outboundDetail/AddOutboundDetailDialog.vue | 881 +++++++++++++++++++++++++++++++++++++++++
8 files changed, 1,189 insertions(+), 38 deletions(-)
diff --git a/src/components/layout/components/appsidebar/index.vue b/src/components/layout/components/appsidebar/index.vue
index e28de9b..06522e8 100644
--- a/src/components/layout/components/appsidebar/index.vue
+++ b/src/components/layout/components/appsidebar/index.vue
@@ -61,7 +61,8 @@
<el-menu-item index="/reportForm/inventoryReport">搴撳瓨鎶ヨ〃</el-menu-item>
<el-menu-item index="/reportForm/locationReport">浣嶇疆鎶ヨ〃</el-menu-item>
<!-- <el-menu-item index="/warehouseManage/bussinessType">鏌愭棩搴撳瓨</el-menu-item> -->
- <el-menu-item index="/reportForm/inboundOutboundDetail">鍑哄叆搴撴槑缁嗘姤琛�</el-menu-item>
+ <el-menu-item index="/reportForm/inboundOutboundDetail">鍏ュ簱鏄庣粏鎶ヨ〃</el-menu-item>
+ <el-menu-item index="/reportForm/outboundDetail">鍑哄簱鏄庣粏鎶ヨ〃</el-menu-item>
</el-submenu>
</el-menu>
</div>
diff --git a/src/router/index.js b/src/router/index.js
index 013fdc1..dffb3c5 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -115,7 +115,7 @@
to.meta.title = to.params.name
// document.title = to.meta.title
} else if (to.name === "inboundOutboundDetail") {
- to.meta.title = "鍑哄叆搴撴槑缁�"
+ to.meta.title = "鍏ュ簱鏄庣粏鎶ヨ〃"
// document.title = to.meta.title
}
})
diff --git a/src/router/product/index.js b/src/router/product/index.js
index 6fbf969..61dafed 100644
--- a/src/router/product/index.js
+++ b/src/router/product/index.js
@@ -1,7 +1,8 @@
// const type from '@/router/deployCode'
const product = (resolve) => require(["@/views/productManage/product/index"], resolve) // 浜у搧
-const inboundOutboundDetail = (resolve) => require(["@/views/reportForm/inboundOutboundDetail/index"], resolve) // 鍑哄叆搴撴槑缁�
+const inboundOutboundDetail = (resolve) => require(["@/views/reportForm/inboundOutboundDetail/index"], resolve) // 鍏ュ簱鏄庣粏鎶ヨ〃
+const outboundDetail = (resolve) => require(["@/views/reportForm/outboundDetail/index"], resolve) // 鍏ュ簱鏄庣粏鎶ヨ〃
const productCategory = (resolve) => require(["@/views/productManage/productCategory/index"], resolve) // 浜у搧绫诲埆
const productList = (resolve) => require(["@/views/productManage/productCategory/ProductList"], resolve) // 浜у搧绫诲埆-浜у搧
const overviewList = (resolve) => require(["@/views/overview/OverviewListView"], resolve) // 姒傝堪-浜у搧鍒楄〃
@@ -29,7 +30,15 @@
name: "inboundOutboundDetail",
component: inboundOutboundDetail,
meta: {
- title: "鍑哄叆搴撴槑缁�"
+ title: "鍏ュ簱鏄庣粏鎶ヨ〃"
+ }
+ },
+ {
+ path: "/reportForm/outboundDetail",
+ name: "outboundDetail",
+ component: outboundDetail,
+ meta: {
+ title: "鍑哄簱鏄庣粏鎶ヨ〃"
}
},
{
diff --git a/src/router/report/index.js b/src/router/report/index.js
index 32a54ff..668db2e 100644
--- a/src/router/report/index.js
+++ b/src/router/report/index.js
@@ -26,7 +26,7 @@
name: "inboundOutboundDetail",
component: inboundOutboundDetail,
meta: {
- title: "鍑哄叆搴撴槑缁�"
+ title: "鍏ュ簱鏄庣粏鎶ヨ〃"
}
}
]
diff --git a/src/views/reportForm/inboundOutboundDetail/index.vue b/src/views/reportForm/inboundOutboundDetail/index.vue
index c354af5..b7f5122 100644
--- a/src/views/reportForm/inboundOutboundDetail/index.vue
+++ b/src/views/reportForm/inboundOutboundDetail/index.vue
@@ -104,7 +104,7 @@
prop: "date",
isShowColumn: true,
default: true,
- date: true
+ // date: true
},
{
label: "鍗曞彿",
@@ -115,6 +115,12 @@
{
label: "浜у搧",
prop: "productName",
+ isShowColumn: true,
+ default: true
+ },
+ {
+ label: "浜у搧缂栫爜",
+ prop: "productId",
isShowColumn: true,
default: true
},
@@ -147,6 +153,12 @@
{
label: "鍗曚綅",
prop: "unit",
+ isShowColumn: true,
+ default: true
+ },
+ {
+ label: "閲嶉噺",
+ prop: "weight",
isShowColumn: true,
default: true
},
@@ -196,36 +208,28 @@
pageSize: this.pagerOptions.pageSize
}).then((res) => {
if (res.code === 200) {
+ res.data.map((item)=>{
+ let dateObject = new Date(item.date);
+ let formattedDateString = dateObject.toISOString().split('T')[0];
+ item.date=formattedDateString
+ })
this.tableList.tableInfomation = res.data
this.pagerOptions.totalCount = res.total
}
})
} else {
- // await getProductOperatonList({
- // productId: this.params.id,
- // page: this.pagerOptions.currPage,
- // pageSize: this.pagerOptions.pageSize
- // }).then((res) => {
- // if (res.code === 200) {
- // const list = res.data.map((item) => {
- // return {
- // ...item,
- // fromLocation: item.fromLocation.name,
- // toLocation: item.toLocation.name,
- // productName: this.params.name,
- // amount: item.details[0].product.amount,
- // unit: item.details[0].product.unit
- // }
- // })
- // this.tableList.tableInfomation = list || []
- // this.pagerOptions.totalCount = res.total
- // }
- // })
await getHistory({
+ baseOperationType:1,
+ keyWord:this.params.keyWord,
page: this.pagerOptions.currPage,
pageSize: this.pagerOptions.pageSize
}).then((res) => {
if (res.code === 200) {
+ res.data.map((item)=>{
+ let dateObject = new Date(item.date);
+ let formattedDateString = dateObject.toISOString().split('T')[0];
+ item.date=formattedDateString
+ })
this.tableList.tableInfomation = res.data?res.data:[]
this.pagerOptions.totalCount = res.total
}
@@ -236,15 +240,6 @@
getList(val) {
this.params.keyWord=val;
this.getData()
- // getHistory({
- // page: this.pagerOptions.currPage,
- // pageSize: this.pagerOptions.pageSize
- // }).then((res) => {
- // if (res.code === 200) {
- // this.tableList.tableInfomation = res.data
- // this.pagerOptions.totalCount = res.total
- // }
- // })
},
// 琛岀偣鍑�
tableRowClick(row) {
diff --git a/src/views/reportForm/locationReport/index.vue b/src/views/reportForm/locationReport/index.vue
index 3832e68..4c2bc2a 100644
--- a/src/views/reportForm/locationReport/index.vue
+++ b/src/views/reportForm/locationReport/index.vue
@@ -60,7 +60,7 @@
data() {
return {
tableList: {},
- showcol: [ "浜у搧绫诲埆", "棰勭暀鏁伴噺", "浠峰��"],
+ showcol: [ "浜у搧绫诲埆", "浠峰��"],
// countcol: [
// { label: "鍦ㄥ簱鏁伴噺", unit: "" },
// { label: "棰勭暀鏁伴噺", unit: "" },
@@ -172,8 +172,8 @@
{
label: "棰勭暀鏁伴噺",
prop: "availableStore",
- isShowColumn: true,
- default: true,
+ default: false,
+ isShowColumn: showcol.includes("棰勭暀鏁伴噺"),
unit: "",
textAlign:"right"
},
diff --git a/src/views/reportForm/outboundDetail/AddOutboundDetailDialog.vue b/src/views/reportForm/outboundDetail/AddOutboundDetailDialog.vue
new file mode 100644
index 0000000..2097ac0
--- /dev/null
+++ b/src/views/reportForm/outboundDetail/AddOutboundDetailDialog.vue
@@ -0,0 +1,881 @@
+<template>
+ <div class="add-common">
+ <el-dialog
+ :title="editCommonConfig.title + '閲囪喘鍏ュ簱'"
+ :visible.sync="editConfig.visible"
+ :width="dialogWidth"
+ :before-close="handleClose"
+ >
+ <!-- 澶� -->
+ <div slot="title" class="dialog-header">
+ <span>{{ editCommonConfig.title === "鏌ョ湅" ? editCommonConfig.title : editCommonConfig.title + addName }}</span>
+ <div class="header_btns">
+ <span class="btn">
+ <i class="el-icon-printer"></i>
+ <span>鎵撳嵃</span>
+ </span>
+ <span class="btn" style="margin-left: 15px">
+ <i class="el-icon-s-tools"></i>
+ <span>鍔ㄤ綔</span>
+ </span>
+ <el-button v-if="showEdit" plain size="mini" style="margin-left: 15px" @click="editClick">缂栬緫</el-button>
+ </div>
+ </div>
+ <!-- 鍐呭 -->
+ <el-form
+ ref="form"
+ :model="editConfig.infomation"
+ :rules="rules"
+ label-position="right"
+ label-width="120px"
+ size="mini"
+ >
+ <div>
+ <!-- <div>aaa</div> -->
+ <StatusCommonView
+ :showButton="showButton"
+ :isValidateClick="isValidateClick"
+ :isDelClick="isDelClick"
+ :list="list"
+ :showCancel="showCancel"
+ @delClick="delClick"
+ @validateClick="validateClick"
+ @btnCancel="btnCancel"
+ />
+ </div>
+ <div class="basic-info">
+ <div class="basic-info-view">
+ <el-row>
+ <el-col :span="12">
+ <el-form-item prop="companyName">
+ <span slot="label">{{ workType === 1 ? "渚涘簲鍟�" : workType === 2 ? "瀹㈡埛" : "鑱旂郴浜�" }}</span>
+ <el-select
+ v-model="editConfig.infomation.companyName"
+ placeholder="璇烽�夋嫨"
+ size="mini"
+ style="width: 90%"
+ :disabled="!showFooter"
+ @change="companyChange"
+ >
+ <el-option
+ v-for="item in companyOptions"
+ :key="item.id"
+ :label="item.name"
+ :value="{ value: item.id, label: item.name }"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <!-- <el-col :span="12">
+ <el-form-item v-if="workType === 3" label="鑱旂郴浜�" prop="contacterName">
+ <el-select
+ v-model="editConfig.infomation.contacterName"
+ placeholder="璇烽�夋嫨"
+ size="mini"
+ style="width: 90%"
+ :disabled="!showFooter"
+ >
+ <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item v-if="workType === 2" label="閫佽揣鍦板潃" prop="client_name">
+ <el-select
+ v-model="editConfig.infomation.memberId"
+ placeholder="璇烽�夋嫨"
+ size="mini"
+ style="width: 90%"
+ :disabled="!showFooter"
+ >
+ <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col> -->
+ <el-col :span="12">
+ <el-form-item label="鏃ユ湡" prop="operationDate">
+ <el-date-picker
+ v-model="editConfig.infomation.operationDate"
+ value-format="yyyy-MM-dd"
+ type="date"
+ placeholder="閫夋嫨鏃ユ湡"
+ style="width: 90%"
+ :disabled="!showFooter"
+ >
+ </el-date-picker>
+ </el-form-item>
+ </el-col>
+ <el-col v-if="showOperationType" :span="12">
+ <el-form-item label="鍏ュ簱绫诲瀷" prop="operationTypeId">
+ <el-select
+ v-model="editConfig.infomation.operationTypeId"
+ placeholder="璇烽�夋嫨"
+ size="mini"
+ style="width: 90%"
+ :disabled="!showFooter"
+ >
+ <el-option v-for="item in operationTypeOptions" :key="item.id" :label="item.name" :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col v-else :span="12">
+ <el-form-item label="鍏ュ簱绫诲瀷">
+ <el-input v-model="receiptType" disabled style="width: 90%"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鏉ユ簮鍗曟嵁" prop="sourceNumber">
+ <el-input
+ v-model="editConfig.infomation.sourceNumber"
+ placeholder="渚嬪:PO0032"
+ style="width: 90%"
+ :disabled="!showFooter"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item v-if="workType !== 1" label="婧愪綅缃�" prop="fromLocationId">
+ <el-select
+ v-model="editConfig.infomation.fromLocationId"
+ placeholder="璇烽�夋嫨"
+ size="mini"
+ style="width: 90%"
+ :disabled="!showFooter"
+ >
+ <el-option
+ v-for="item in toLocationOptions"
+ :key="item.id"
+ :label="item.jointName"
+ :value="item.id"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item v-if="workType !== 2" label="浠撳簱浣嶇疆" prop="toLocationId">
+ <el-select
+ v-model="editConfig.infomation.toLocationId"
+ placeholder="璇烽�夋嫨"
+ size="mini"
+ style="width: 90%"
+ :disabled="!showFooter"
+ >
+ <el-option
+ v-for="item in toLocationOptions"
+ :key="item.id"
+ :label="item.jointName"
+ :value="item.id"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="璐熻矗浜�" prop="contacterName">
+ <el-select
+ v-model="editConfig.infomation.contacterName"
+ placeholder="璇烽�夋嫨"
+ size="mini"
+ style="width: 90%"
+ :disabled="!showFooter"
+ @change="contacterChange"
+ >
+ <el-option
+ v-for="item in memberOptions"
+ :key="item.id"
+ :label="item.name"
+ :value="{ value: item.id, label: item.name }"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <!-- <el-col :span="12">
+ <el-form-item v-if="workType !== 1" label="閫佽揣绛栫暐" prop="client_name">
+ <el-select
+ v-model="editConfig.infomation.memberId"
+ placeholder="璇烽�夋嫨"
+ size="mini"
+ style="width: 90%"
+ :disabled="!showFooter"
+ >
+ <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col> -->
+ <el-col :span="24">
+ <el-form-item label="澶囨敞" prop="comment">
+ <el-input
+ v-model.trim="editConfig.infomation.comment"
+ size="mini"
+ type="textarea"
+ style="width: 96%"
+ :autosize="{ minRows: 3 }"
+ :disabled="!showFooter"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </div>
+ <div class="bottom">
+ <el-tabs v-model="activeName" type="card">
+ <!-- <el-tab-pane v-if="workType !== 1" label="璇︽儏" name="detail"> </el-tab-pane> -->
+ <el-tab-pane label="浜у搧" name="first"> </el-tab-pane>
+ <el-tab-pane label="鍙戣揣淇℃伅" name="two"></el-tab-pane>
+ </el-tabs>
+ <!-- 鎿嶄綔 -->
+ <div v-if="activeName === 'first'">
+ <CommonFormTableView
+ :product-table-list="productTableList"
+ :detail-enter="!showFooter"
+ @inputContent="inputContent"
+ @addProductClick="addProductClick('鎿嶄綔')"
+ >
+ <template v-if="showFooter" slot="tableButton">
+ <el-table-column label="鎿嶄綔" width="60" fixed="right" align="center">
+ <template slot-scope="scope">
+ <div @click="handleDelClick(scope, '鎿嶄綔')">
+ <i class="el-icon-delete"></i>
+ </div>
+ </template>
+ </el-table-column>
+ </template>
+ </CommonFormTableView>
+ </div>
+ <!-- 鍙戣揣淇℃伅 -->
+ <div v-if="activeName==='two'">
+ <el-form label-position="left" label-width="80px" :model="shipmentsInfo">
+ <el-form-item label="鎵胯繍鍟�" style="width: 50%;">
+ <el-select :disabled="!showFooter" v-model="editConfig.infomation.logisticCompanyId" placeholder="璇烽�夋嫨" style="width: 100%;">
+ <el-option
+ v-for="item in shipmentsInfo.carrier"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="杩愬崟鍙�" style="width: 50%;">
+ <el-input :disabled="!showFooter" v-model="editConfig.infomation.waybillNumber"></el-input>
+ </el-form-item>
+ <el-form-item label="閲嶉噺" style="width: 50%;">
+ <el-input :disabled="!showFooter" v-model="editConfig.infomation.weight"></el-input>
+ </el-form-item>
+ <el-form-item label="鐗╂祦閲嶉噺" style="width: 50%;">
+ <el-input :disabled="!showFooter" v-model="editConfig.infomation.logisticWeight"></el-input>
+ </el-form-item>
+ </el-form>
+ </div>
+ <!-- 璇︽儏 -->
+ <!-- <div v-if="activeName === 'detail'">
+ <CommonFormTableView
+ :product-table-list="detailTableList"
+ :detail-enter="!showFooter"
+ @inputContent="inputDetail"
+ @addProductClick="addProductClick('璇︽儏')"
+ >
+ <template v-if="showFooter" slot="tableButton">
+ <el-table-column label="鎿嶄綔" width="60" fixed="right" align="center">
+ <template slot-scope="scope">
+ <div @click="handleDelClick(scope, '璇︽儏')">
+ <i class="el-icon-delete"></i>
+ </div>
+ </template>
+ </el-table-column>
+ </template>
+ </CommonFormTableView>
+ </div> -->
+ </div>
+ </div>
+ </el-form>
+ <!-- 灏� -->
+ <div slot="footer" class="dialog-footer">
+ <!-- <el-button type="primary" size="small" @click="editConfig.visible = false">淇濆苟鎻愪氦瀹℃壒</el-button> -->
+ <el-button type="primary" size="small" @click="saveClick('form')" :disabled="!showFooter">淇濆瓨</el-button>
+ <el-button size="small" @click="editConfig.visible = false">鍙栨秷</el-button>
+ </div>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import CommonFormTableView from "@/components/makepager/CommonFormTableView"
+import {
+ getLocationList,
+ addOperation,
+ updateOperation,
+ updateStatus,
+ stateCancel,
+ deleteOperation,
+ getListTransfer,
+ getLogisticCompanyList
+} from "@/api/overview/overview"
+import { getCompanyList } from "@/api/common/other"
+export default {
+ name: "AddOverviewDialog",
+ props: {
+ editCommonConfig: {
+ type: Object,
+ default: () => {
+ return {
+ visible: false,
+ title: "鏂板缓",
+ operationTypeId: 0,
+ infomation: {}
+ }
+ }
+ },
+ workType: {
+ type: Number,
+ default: 1
+ },
+ addName: {
+ type: String,
+ default: "璋冩嫧"
+ },
+ showOperationType: {
+ type: Boolean,
+ default: false
+ }
+ },
+ components: { CommonFormTableView },
+ computed: {},
+ data() {
+ return {
+ dialogWidth: "50%",
+ editConfig: this.editCommonConfig,
+ rules: {
+ sourceNumber: [{ required: true, message: "璇疯緭鍏ユ潵婧愬崟鎹�", trigger: "blur" }],
+ operationDate: [{ required: true, message: "璇烽�夋嫨鏃ユ湡", trigger: "change" }],
+ toLocationId: [{ required: true, message: "璇烽�夋嫨浠撳簱浣嶇疆", trigger: "change" }],
+ fromLocationId: [{ required: true, message: "璇烽�夋嫨婧愪綅缃�", trigger: "change" }],
+ operationTypeId: [{ required: true, message: "璇烽�夋嫨鍏ュ簱绫诲瀷", trigger: "change" }]
+ },
+ companyOptions: [], // 鍏徃
+ memberOptions: [{ id: 1, name: "绠$悊鍛�" }],
+ toLocationOptions: [], // 婧愪綅缃� 浠撳簱浣嶇疆
+ list: [
+ { label: "鑽夌", status: "todo", value: 1 },
+ { label: "姝e湪绛夊緟", status: "todo", value: 2 },
+ { label: "灏辩华", status: "todo", value: 3 },
+ { label: "瀹屾垚", status: "todo", value: 4 },
+ { label: "宸插彇娑�", status: "todo", value: 5 }
+ ],
+ showButton: true,
+ activeName: "first",
+ productTableList: {},
+ tableData: [],
+ countId: 0,
+ isNoProduct: true, // 娣诲姞鏄庣粏琛屾椂鏄惁鏈変骇鍝佹湭閫夋嫨
+ showEdit: false, // 鏄惁鏄剧ず缂栬緫鎸夐挳
+ isDelClick: false, // 鍒犻櫎鎸夐挳鏄惁鍙偣鍑�
+ showFooter: false, // 鏄惁鏄剧ず鍙栨秷淇濆瓨
+ currentState: "todo", // 褰撳墠鐘舵��
+ detailTableList: {},
+ detailTableData: [{ name: "ssss" }],
+ detailId: 0,
+ isNoDetail: false, // 娣诲姞璇︽儏鏄庣粏琛屾椂鏄惁鏈�夋嫨
+ tableColumn: [],
+ receiptType: "", // 鍏ュ簱绫诲瀷
+ companyObj: {},
+ contacterObj: {},
+ isValidateClick: false, // 楠岃瘉鏄惁鏄剧ず
+ operationTypeOptions: [], // 鍏ュ簱绫诲瀷鍒楄〃
+ shipmentsInfo: {
+ carrier:[],
+ waybillNumber:'',
+ weight:0,
+ logisticWeight:0,
+ },
+ showCancel:false, // 鍙栨秷鏄惁鍙互鏄剧ず
+ }
+ },
+ created() {
+ this.setTableForm()
+ this.setBottonView()
+ this.setDetailTableForm()
+ this.getCompanyList()
+ this.getLocationList()
+ this.receiptType = this.editConfig.title === "鏌ョ湅" ? this.editConfig.infomation.operationTypeName : this.addName
+ if (this.showOperationType) {
+ this.getListTransfer()
+ }
+ this.getLogisticCompanyList()
+ },
+ methods: {
+ // 鑾峰彇鍏徃鍒楄〃
+ async getCompanyList() {
+ await getCompanyList().then((res) => {
+ console.log(res)
+ if (res.code === 200) {
+ this.companyOptions = res.data
+ }
+ })
+ },
+ // 鑾峰彇浠撳簱浣嶇疆鍒楄〃
+ async getLocationList() {
+ await getLocationList({
+ keyWord: "",
+ jointName: this.editConfig.code,
+ page: 0,
+ pageSize: 0
+ }).then((res) => {
+ console.log(res)
+ if (res.code === 200) {
+ this.toLocationOptions = res.data
+ }
+ })
+ },
+ // 鑾峰彇浠撳簱绫诲瀷
+ async getListTransfer() {
+ await getListTransfer({
+ keyword: "",
+ page: 0,
+ pageSize: 0
+ }).then((res) => {
+ console.log(res.data)
+ if (res.code === 200) {
+ const list = res.data.map((item) => {
+ return {
+ name: item.name,
+ id: item.id
+ }
+ })
+ this.operationTypeOptions = list || []
+ }
+ })
+ },
+ // 璁剧疆鍒犻櫎/鎵撳嵃/缂栬緫鏄惁鏄剧ず
+ setBottonView() {
+ console.log(this.editConfig.infomation.status)
+ if (this.editConfig.title === "鏂板缓") {
+ this.showButton = false
+ this.showEdit = false
+ this.showFooter = true
+ this.isValidateClick = false
+ } else if (this.editConfig.title === "缂栬緫") {
+ this.showButton = true
+ this.showEdit = false
+ this.isDelClick = true
+ this.showFooter = true
+ } else if (this.editConfig.title === "鏌ョ湅" && this.editConfig.infomation.status !== 4) {
+ this.showButton = true
+ this.showEdit = true
+ this.isDelClick = true
+ this.showFooter = false
+ if (this.editConfig.infomation.status === "瀹屾垚") {
+ this.isValidateClick = false
+ }else if(this.editConfig.infomation.status === 3){
+ this.isValidateClick = true
+ this.showCancel=true
+ }else{
+ this.isValidateClick = true
+
+ }
+ } else if (this.editConfig.infomation.status === 4 || this.editConfig.infomation.status === "瀹屾垚") {
+ this.showButton = true
+ this.showEdit = false
+ this.isDelClick = true
+ this.showFooter = false
+ this.isValidateClick = false
+ } else if (this.editConfig.infomation.status === 5) {
+ this.showButton = true
+ this.showEdit = false
+ this.showFooter = false
+ this.isValidateClick = false
+ } else {
+ // 灏辩华---
+ this.showButton = true
+ this.showEdit = true
+ this.showFooter = false
+ this.isValidateClick = true
+ this.showCancel=true
+ }
+ if (this.editConfig.title === "鏂板缓") {
+ this.list[0].status = "active"
+ } else {
+ this.list.map((item) => {
+ console.log(item, this.editConfig.infomation.status, "鎵撳嵃淇℃伅")
+ if (item.value === this.editConfig.infomation.status || item.label === this.editConfig.infomation.status) {
+ item.status = "active"
+ } else {
+ item.status = "todo"
+ }
+ })
+ }
+ },
+ // 鍏抽棴
+ handleClose() {
+ this.editConfig.visible = false
+ },
+ // 缂栬緫
+ editClick() {
+ this.showEdit = false
+ this.showButton = false
+ this.showFooter = true
+ this.setTableForm()
+ },
+ async getLogisticCompanyList(){
+ await getLogisticCompanyList().then((res) => {
+ if(res.code===200){
+ this.shipmentsInfo.carrier=res.data
+ }
+ })
+ },
+ // 淇濆瓨
+ saveClick(formName) {
+ this.$refs[formName].validate((valid) => {
+ if (valid) {
+ for (let i = 0; i < this.tableData.length; i++) {
+ if (this.tableData[i].productName.length === 0) {
+ this.isNoProduct = true
+ break
+ } else {
+ this.isNoProduct = false
+ }
+ }
+ if (this.isNoProduct) {
+ this.$message.error("璇锋坊鍔犳槑缁嗚鎴栭�夋嫨浜у搧涓嶈兘涓虹┖")
+ } else {
+ let requestUrl = this.editConfig.title === "鏂板缓" ? addOperation : updateOperation
+ let params = this.saveParams()
+ requestUrl({
+ ...params
+ }).then((res) => {
+ console.log(res)
+ this.editConfig.visible = false
+ if (res.code === 200) {
+ this.$message.success("娣诲姞鎴愬姛")
+ this.$parent.getData()
+ }
+ })
+ }
+ }
+ })
+ },
+ saveParams() {
+ let data = this.editConfig.infomation
+ let companyID = 0
+ let companyName = ""
+ let contacterID = 0
+ let contacterName = ""
+ if (this.editConfig.title === "鏂板缓") {
+ companyID = Object.keys(this.companyObj).length === 0 ? 0 : this.companyObj.value
+ companyName = Object.keys(this.companyObj).length === 0 ? "" : this.companyObj.label
+ contacterID = Object.keys(this.contacterObj).length === 0 ? 0 : this.contacterObj.value
+ contacterName = Object.keys(this.contacterObj).length === 0 ? "" : this.contacterObj.label
+ } else {
+ companyID = Object.keys(this.companyObj).length === 0 ? data.companyID : this.companyObj.value
+ companyName = Object.keys(this.companyObj).length === 0 ? data.companyName : this.companyObj.label
+ contacterID = Object.keys(this.contacterObj).length === 0 ? data.contacterID : this.contacterObj.value
+ contacterName = Object.keys(this.contacterObj).length === 0 ? data.contacterName : this.contacterObj.label
+ }
+ let params = {
+ baseOperationType: data.baseOperationType,
+ comment: data.comment || "",
+ companyID: companyID,
+ companyName: companyName,
+ contacterID: contacterID,
+ contacterName: contacterName,
+ details: this.tableData,
+ fromLocationId: data.fromLocationId || 0,
+ id: data.id,
+ number: data.number || "",
+ operationDate: data.operationDate || "",
+ operationTypeId: this.showOperationType ? data.operationTypeId : this.editConfig.operationTypeId,
+ operationTypeName: this.receiptType,
+ sourceNumber: data.sourceNumber || "",
+ status: 3,
+ toLocationId: data.toLocationId || 0,
+ waybillNumber:data.waybillNumber||'',
+ weight:data.weight||0,
+ logisticWeight:data.logisticWeight||0,
+ logisticCompanyId:data.logisticCompanyId,
+ }
+ return params
+ },
+ // 鍒犻櫎
+ async delClick() {
+ await deleteOperation(this.editConfig.infomation.id).then((res) => {
+ console.log(res)
+ this.editConfig.visible = false
+ if (res.code === 200) {
+ this.$message.success("鍒犻櫎鎴愬姛")
+ this.$parent.getData()
+ }
+ })
+ },
+ // 鎿嶄綔鍒楄〃
+ setTableForm() {
+ if (
+ this.editConfig.title !== "鏂板缓" &&
+ this.editConfig.infomation.details &&
+ this.editConfig.infomation.details.length > 0
+ ) {
+ const list = this.editConfig.infomation.details.map((item) => {
+ return {
+ ...item,
+ productName: item.product.name,
+ unit: item.product.unit
+ }
+ })
+ this.tableData = list
+ } else {
+ this.tableData = []
+ }
+ // this.tableData = this.editConfig.title !== "鏂板缓" ? list : []
+ this.productTableList = {
+ tableData: this.tableData,
+ tableColumn: [
+ { label: "浜у搧", prop: "productName", productName: true, isRequird: true },
+ // { label: "璇存槑", prop: "number", input: true },
+ // { label: "鏃ユ湡", prop: "amount", date: true, isRequird: true },
+ // { label: "鎴鏃ユ湡", prop: "price", date: true },
+ { label: "鏁伴噺", prop: "amount", inputFloat: true },
+ { label: "璁¢噺鍗曚綅", prop: "unit" }
+ ]
+ }
+ },
+ // 鎿嶄綔杈撳叆
+ inputContent(val, prop, row) {
+ this.countId = row.countId
+ this.tableData.map((item) => {
+ if (item.countId === row.countId) {
+ item[prop] = val
+ }
+ })
+ },
+ // 鏂板
+ addProductClick(value) {
+ console.log(value)
+ if (value === "鎿嶄綔") {
+ console.log(this.tableData)
+ for (let i = 0; i < this.tableData.length; i++) {
+ if (this.tableData[i].productName.length === 0) {
+ this.isNoProduct = false
+ break
+ } else {
+ this.isNoProduct = true
+ }
+ }
+ if (this.isNoProduct) {
+ this.countId++
+ this.tableData.push({
+ countId: this.countId,
+ productId: "",
+ amount: 0,
+ unit: "",
+ productName: ""
+ })
+ }
+ } else {
+ console.log(this.detailTableData)
+ for (let i = 0; i < this.detailTableData.length; i++) {
+ if (this.detailTableData[i].name.length === 0) {
+ this.isNoDetail = true
+ break
+ } else {
+ this.isNoDetail = false
+ }
+ }
+ if (!this.isNoDetail) {
+ this.detailId++
+ this.detailTableData.push({
+ detailId: this.detailId,
+ id: 0,
+ amount: 0,
+ desc: "",
+ name: "",
+ number: "",
+ price: 0,
+ total: 0
+ })
+ }
+ }
+ },
+ // 鍒犻櫎
+ handleDelClick(scope, value) {
+ console.log(scope)
+ if (value === "鎿嶄綔") {
+ this.tableData.splice(scope.$index, 1)
+ } else {
+ this.detailTableData.splice(scope.$index, 1)
+ }
+ },
+ // 璇︽儏鍒楄〃
+ setDetailTableForm() {
+ this.setTableColumn()
+ this.detailTableList = {
+ tableData: this.detailTableData,
+ tableColumn: this.tableColumn
+ }
+ },
+ setTableColumn() {
+ if (this.workType === "鍐呴儴璋冩嫧") {
+ this.tableColumn = [
+ { label: "浜у搧", prop: "name", productName: true, isRequird: true },
+ { label: "浠�", prop: "number", select: true },
+ { label: "鑷�", prop: "amount", select: true },
+ { label: "瀹屾垚", prop: "total", inputFloat: true },
+ { label: "璁¢噺鍗曚綅", prop: "total", select: true }
+ ]
+ } else {
+ this.tableColumn = [
+ { label: "浜у搧", prop: "name", productName: true, isRequird: true },
+ { label: "浠�", prop: "number", select: true },
+ { label: "瀹屾垚", prop: "total", inputFloat: true },
+ { label: "璁¢噺鍗曚綅", prop: "total", select: true }
+ ]
+ }
+ },
+ // 璇︽儏杈撳叆
+ inputDetail(val, prop, row) {
+ this.detailId = row.detailId
+ this.detailTableData.map((item) => {
+ if (item.detailId === row.detailId) {
+ item[prop] = val
+ }
+ })
+ },
+ // 瀹㈡埛閫夋嫨
+ companyChange(val) {
+ console.log(val)
+ this.companyObj = val
+ },
+ // 璐熻矗浜洪�夋嫨
+ contacterChange(val) {
+ this.contacterObj = val
+ },
+ // 楠岃瘉
+ async validateClick() {
+ await updateStatus(this.editConfig.infomation.id).then((res) => {
+ console.log(res)
+ this.editConfig.visible = false
+ if (res.code === 200) {
+ this.$message.success("楠岃瘉鎴愬姛")
+ this.$parent.getData()
+ }
+ })
+ },
+
+ // 鍙栨秷
+ btnCancel(){
+ this.$confirm('纭畾鍙栨秷鍚楋紵', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ stateCancel(this.editConfig.infomation.id).then((res) => {
+ console.log(res)
+ this.editConfig.visible = false
+ if (res.code === 200) {
+ this.$message.success("鍙栨秷璋冩嫧")
+ this.$parent.getData()
+ }
+ })
+ this.list.map((item) => {
+ if (item.label==="宸插彇娑�") {
+ item.status = "active"
+ } else {
+ item.status = "todo"
+ }
+ })
+ }).catch(() => {
+ });
+ }
+ }
+}
+</script>
+
+<!-- Add "scoped" attribute to limit CSS to this component only -->
+<style lang="scss" scoped>
+.dialog-header {
+ display: flex;
+ align-items: center;
+ font-size: 14px;
+ color: #333;
+ .header_btns {
+ margin-left: auto;
+ margin-right: 60px;
+ .btn {
+ cursor: no-drop;
+ }
+ }
+}
+.content-status {
+ display: flex;
+}
+.basic-info {
+ height: calc(100% - 80px);
+ overflow: auto;
+ margin: 20px;
+ // border: 1px solid #dcdfe6;
+ // box-shadow: inset 0 0 2px #dee2e6;
+ // -moz-box-shadow: inset 0 0 2px #dee2e6;
+ // -webkit-box-shadow: inset 0 0 2px #dee2e6;
+ // .basic-info-view {
+ // margin-top: 20px;
+ // }
+}
+.purchase-view {
+ display: flex;
+ .left {
+ width: 50%;
+ }
+ .right {
+ width: 50%;
+ }
+}
+.second-label {
+ margin-left: 20px;
+ border-bottom: 1px solid #d9d9d9;
+ margin-bottom: 10px;
+}
+::v-deep {
+ .el-dialog__headerbtn {
+ position: absolute;
+ top: 15px;
+ }
+ .el-button {
+ &:hover {
+ border: 1px solid #dcdfe6;
+ color: #333;
+ }
+ }
+ .el-tabs--card > .el-tabs__header {
+ border-bottom: none;
+ }
+ // .el-tabs__item.is-active {
+ // color: #333;
+ // background: #f1f3f8;
+ // }
+ .el-tabs__item {
+ height: 30px;
+ line-height: 30px;
+ font-size: 13px;
+ background: #f3f3f3;
+ }
+ .el-tabs__header {
+ margin: 0 0 1px;
+ }
+ .bottom{
+ .el-form{
+ // border-top: 1px solid #EBEEF5;
+ }
+ .el-form-item{
+ height: 28px;
+ .el-input {
+ input{
+ height: 28px;
+ }
+ }
+ }
+ }
+}
+</style>
diff --git a/src/views/reportForm/outboundDetail/index.vue b/src/views/reportForm/outboundDetail/index.vue
new file mode 100644
index 0000000..02183b3
--- /dev/null
+++ b/src/views/reportForm/outboundDetail/index.vue
@@ -0,0 +1,265 @@
+<template>
+ <div class="rightContent">
+ <div class="top">
+ <SearchCommonView
+ :add-title="'鏂板缓'"
+ :showAdd="false"
+ :placeholder="'璇锋牴鎹崟鍙枫�佷骇鍝併�佷笟鍔$被鍨嬭繘琛屾悳绱�'"
+ :amount-view="false"
+ @addCommonClick="addBtnClick"
+ @searchClick="getList"
+ />
+ </div>
+ <div class="list-view">
+ <div class="table">
+ <TableCommonView
+ ref="tableListRef"
+ :table-list="tableList"
+ @selTableCol="selTableCol"
+ @tableRowClick="tableRowClick"
+ ></TableCommonView>
+ </div>
+ <div class="btn-pager">
+ <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" />
+ </div>
+ </div>
+ <!-- 缂栬緫 -->
+ <AddOverviewDialog v-if="editConfig.visible" :edit-common-config="editConfig" :add-name="this.$route.params.name" />
+ </div>
+</template>
+
+<script>
+import pageMixin from "@/components/makepager/pager/mixin/pageMixin"
+import { getHistory } from "@/api/reportForm/inventoryRwport"
+// import { getProductOperatonList } from "@/api/product/product"
+
+import AddOverviewDialog from "@/views/reportForm/outboundDetail/AddOutboundDetailDialog.vue"
+import { getDataByType } from "@/api/data"
+export default {
+ name: "outboundDetail",
+ props: {},
+ components: { AddOverviewDialog },
+ mixins: [pageMixin],
+ computed: {},
+ data() {
+ return {
+ tableList: {},
+ showcol: ["鐘舵��"],
+ searchOptions: [],
+ commonDetail: {
+ visible: false,
+ title: "鏂板缓",
+ infomation: {}
+ },
+ editConfig: {
+ visible: false,
+ title: "鏂板缓",
+ infomation: {}
+ },
+ params: {},
+ baseOperationTypeList:getDataByType("baseOperationTypeTwo"),
+ }
+ },
+ created() {
+ this.setTable()
+ console.log(this.$route.params)
+ var paramsList = sessionStorage.getItem("paramsList")
+ let params = {}
+ if (paramsList) {
+ params = JSON.parse(sessionStorage.getItem("paramsList"))
+ } else {
+ params = this.$route.params
+ sessionStorage.setItem("paramsList", JSON.stringify(params))
+ }
+ this.params = params
+ console.log(this.params,'====111')
+ this.getData()
+ },
+ // 椤甸潰閿�姣佷箣鍓�
+ beforeDestroy() {
+ sessionStorage.removeItem("paramsList")
+ },
+ methods: {
+ setTable() {
+ this.tableList = {
+ tableInfomation: [],
+ selectBox: true,
+ showcol: this.showcol,
+ allcol: [],
+ tableColumn: this.setTableColumn(this.showcol)
+ }
+ let allcol = []
+ for (let i = 0; i < this.tableList.tableColumn.length; i++) {
+ if (!this.tableList.tableColumn[i].default) {
+ const label = this.tableList.tableColumn[i].label
+ allcol.push(label)
+ }
+ }
+ this.tableList.allcol = allcol
+ },
+ setTableColumn(showcol) {
+ let tableColumn = [
+ {
+ label: "鏃ユ湡",
+ prop: "date",
+ isShowColumn: true,
+ default: true,
+ // date: true
+ },
+ {
+ label: "鍗曞彿",
+ prop: "number",
+ isShowColumn: true,
+ default: true
+ },
+ {
+ label: "浜у搧",
+ prop: "productName",
+ isShowColumn: true,
+ default: true
+ },
+ {
+ label: "浜у搧缂栫爜",
+ prop: "productId",
+ isShowColumn: true,
+ default: true
+ },
+ {
+ label: "涓氬姟绫诲瀷",
+ prop: "baseOperationType",
+ isShowColumn: true,
+ default: true,
+ conversion: true,
+ getStatus: this.getBaseOperationTypeList
+ },
+ {
+ label: "浠�",
+ prop: "fromLocation",
+ isShowColumn: true,
+ default: true
+ },
+ {
+ label: "鑷�",
+ prop: "toLocation",
+ isShowColumn: true,
+ default: true
+ },
+ {
+ label: "鏁伴噺",
+ prop: "amount",
+ isShowColumn: true,
+ default: true
+ },
+ {
+ label: "鍗曚綅",
+ prop: "unit",
+ isShowColumn: true,
+ default: true
+ },
+ {
+ label: "閲嶉噺",
+ prop: "weight",
+ isShowColumn: true,
+ default: true
+ },
+ {
+ label: "鐘舵��",
+ prop: "status",
+ width: 120,
+ isShowColumn: showcol.includes("鐘舵��"),
+ default: false,
+ status: true,
+ isCallMethod: true,
+ getCallMethod: this.getStatus
+ },
+ {
+ label: "瀹屾垚鑰�",
+ prop: "contactedName",
+ isShowColumn: showcol.includes("瀹屾垚鑰�"),
+ default: false
+ }
+ ]
+ return tableColumn
+ },
+ selTableCol(val) {
+ this.showcol = val
+ this.tableList.tableColumn = this.setTableColumn(val)
+ },
+ getBaseOperationTypeList(val){
+ let string = "--"
+ if (val) {
+ for (let i in this.baseOperationTypeList) {
+ if (this.baseOperationTypeList[i].id == val) {
+ return this.baseOperationTypeList[i].name
+ }
+ }
+ }
+ return string
+ },
+ // 搴撳瓨鎶ヨ〃璺宠浆璇锋眰鏁版嵁
+ async getData() {
+ if (this.params.name === "鎶ヨ〃") {
+ await getHistory({
+ keyWord:this.params.keyWord,
+ produceId:this.params.produceId,
+ unit:this.params.unit,
+ productName:this.params.productName,
+ page: this.pagerOptions.currPage,
+ pageSize: this.pagerOptions.pageSize
+ }).then((res) => {
+ if (res.code === 200) {
+ res.data.map((item)=>{
+ let dateObject = new Date(item.date);
+ let formattedDateString = dateObject.toISOString().split('T')[0];
+ item.date=formattedDateString
+ })
+ this.tableList.tableInfomation = res.data
+ this.pagerOptions.totalCount = res.total
+ }
+ })
+ } else {
+ await getHistory({
+ keyWord:this.params.keyWord,
+ baseOperationType:2,
+ page: this.pagerOptions.currPage,
+ pageSize: this.pagerOptions.pageSize
+ }).then((res) => {
+ if (res.code === 200) {
+ res.data.map((item)=>{
+ let dateObject = new Date(item.date);
+ let formattedDateString = dateObject.toISOString().split('T')[0];
+ item.date=formattedDateString
+ })
+ this.tableList.tableInfomation = res.data?res.data:[]
+ this.pagerOptions.totalCount = res.total
+ }
+ })
+ }
+ },
+ // 鎼滅储
+ getList(val) {
+ this.params.keyWord=val;
+ this.getData()
+ },
+ // 琛岀偣鍑�
+ tableRowClick(row) {
+ console.log(row,"鐪嬬湅row")
+ this.editConfig.visible = true
+ this.editConfig.title = "鏌ョ湅"
+ this.editConfig.infomation = { ...row }
+ },
+ // 鏂板缓
+ addBtnClick() {
+ // this.editConfig.visible = true
+ this.editConfig.title = "鏂板缓"
+ },
+ // 鐘舵��
+ getStatus(val) {
+ return val === 1 ? "鑽夌" : val === 3 ? "灏辩华" : "瀹屾垚"
+ }
+ }
+}
+</script>
+
+<!-- Add "scoped" attribute to limit CSS to this component only -->
+<style lang="scss" scoped></style>
--
Gitblit v1.8.0