|
@@ -1,13 +1,10 @@
|
|
|
<template>
|
|
|
<div class="outOrderTable">
|
|
|
- <!-- {{wsend_num}}--{{powers.some((i) => i == '051')}} -->
|
|
|
- <!-- v-if="wsend_num && powers.some((i) => i == '051')" -->
|
|
|
<el-table
|
|
|
ref="addrForm"
|
|
|
:data="tableData"
|
|
|
border
|
|
|
:size="'mini'"
|
|
|
- max-height="300px"
|
|
|
style="width: 100%"
|
|
|
row-key="key"
|
|
|
>
|
|
@@ -15,25 +12,17 @@
|
|
|
show-overflow-tooltip
|
|
|
prop="outCode"
|
|
|
label="发货申请单号"
|
|
|
- width="155"
|
|
|
+ width="160"
|
|
|
/>
|
|
|
|
|
|
- <el-table-column
|
|
|
- show-overflow-tooltip
|
|
|
- prop="send_status"
|
|
|
- label="状态"
|
|
|
- width="105"
|
|
|
- >
|
|
|
+ <el-table-column show-overflow-tooltip prop="send_status" label="状态" width="105">
|
|
|
<template slot-scope="scope">
|
|
|
<el-tag
|
|
|
:size="tablebtnSize"
|
|
|
- :type="scope.row.send_status == '0' ? 'warning' : ''"
|
|
|
+ :type="scope.row.status == '0' ? 'warning' : ''"
|
|
|
v-text="
|
|
|
- (
|
|
|
- statusOptions.find(
|
|
|
- (item) => item.id == scope.row.send_status
|
|
|
- ) || {}
|
|
|
- ).label || '--'
|
|
|
+ (statusOptions.find((item) => item.id == scope.row.status) || {}).label ||
|
|
|
+ '--'
|
|
|
"
|
|
|
></el-tag>
|
|
|
</template>
|
|
@@ -41,28 +30,13 @@
|
|
|
|
|
|
<el-table-column
|
|
|
show-overflow-tooltip
|
|
|
- prop="receipt_quantity"
|
|
|
+ prop="send_num"
|
|
|
label="发货数量"
|
|
|
width="80"
|
|
|
/>
|
|
|
- <el-table-column
|
|
|
- show-overflow-tooltip
|
|
|
- prop="contactor"
|
|
|
- label="联系人"
|
|
|
- width="80"
|
|
|
- />
|
|
|
- <el-table-column
|
|
|
- show-overflow-tooltip
|
|
|
- prop="mobile"
|
|
|
- label="联系电话"
|
|
|
- width="110"
|
|
|
- />
|
|
|
- <el-table-column
|
|
|
- show-overflow-tooltip
|
|
|
- prop="addr"
|
|
|
- label="收货地址"
|
|
|
- min-width="170"
|
|
|
- >
|
|
|
+ <el-table-column show-overflow-tooltip prop="contactor" label="联系人" width="80" />
|
|
|
+ <el-table-column show-overflow-tooltip prop="mobile" label="联系电话" width="110" />
|
|
|
+ <el-table-column show-overflow-tooltip prop="addr" label="收货地址" min-width="170">
|
|
|
<template slot-scope="scope">
|
|
|
{{ scope.row.addr_info }}{{ scope.row.addr }}
|
|
|
</template>
|
|
@@ -71,7 +45,7 @@
|
|
|
show-overflow-tooltip
|
|
|
prop="post_name"
|
|
|
label="物流公司"
|
|
|
- min-width="110"
|
|
|
+ width="160"
|
|
|
/>
|
|
|
<el-table-column
|
|
|
show-overflow-tooltip
|
|
@@ -85,18 +59,14 @@
|
|
|
label="发货时间"
|
|
|
width="145"
|
|
|
/>
|
|
|
- <el-table-column fixed="right" width="150">
|
|
|
+ <el-table-column fixed="right" width="120">
|
|
|
<template slot="header" slot-scope="scope">
|
|
|
- <span>操作</span>
|
|
|
+ <span v-if="addr_res + '' === '0'">操作</span>
|
|
|
<el-tooltip
|
|
|
style="margin: 3px 0 0 8px"
|
|
|
effect="dark"
|
|
|
class="fr"
|
|
|
- v-if="
|
|
|
- (status === '0' || status === '1') &&
|
|
|
- powers.some((i) => i == '048') &&
|
|
|
- sitem.send_type !== '1'
|
|
|
- "
|
|
|
+ v-if="addr_res + '' !== '0' && powers.some((i) => i == '048')"
|
|
|
content="添加"
|
|
|
placement="top"
|
|
|
>
|
|
@@ -110,11 +80,7 @@
|
|
|
class="fr"
|
|
|
style="margin: 3px 0 0 8px"
|
|
|
effect="dark"
|
|
|
- v-if="
|
|
|
- (status === '0' || status === '1') &&
|
|
|
- powers.some((i) => i == '048') &&
|
|
|
- sitem.send_type !== '1'
|
|
|
- "
|
|
|
+ v-if="addr_res + '' !== '0' && powers.some((i) => i == '048')"
|
|
|
content="导入收货地址"
|
|
|
placement="top"
|
|
|
>
|
|
@@ -128,19 +94,12 @@
|
|
|
class="fr"
|
|
|
style="margin: 3px 0 0 8px"
|
|
|
effect="dark"
|
|
|
- v-if="
|
|
|
- (status === '0' || status === '1') &&
|
|
|
- powers.some((i) => i == '048') &&
|
|
|
- sitem.send_type !== '1'
|
|
|
- "
|
|
|
+ v-if="addr_res + '' !== '0' && powers.some((i) => i == '048')"
|
|
|
content="下载收货地址模板"
|
|
|
placement="top"
|
|
|
>
|
|
|
<a class="downloadAddr" href="./static/收货地址模板.xlsx">
|
|
|
- <i
|
|
|
- class="el-icon-download tb-icon"
|
|
|
- style="color: #63cbe7; margin: 0"
|
|
|
- ></i>
|
|
|
+ <i class="el-icon-download tb-icon" style="color: #63cbe7; margin: 0"></i>
|
|
|
</a>
|
|
|
</el-tooltip>
|
|
|
|
|
@@ -149,17 +108,13 @@
|
|
|
effect="dark"
|
|
|
content="退货"
|
|
|
class="fr"
|
|
|
- v-if="
|
|
|
- wsend_num &&
|
|
|
- wsend_num !== '0' &&
|
|
|
- powers.some((i) => i == '051')
|
|
|
- "
|
|
|
+ v-if="addr_res + '' !== '0' && powers.some((i) => i == '051')"
|
|
|
placement="top"
|
|
|
>
|
|
|
<i
|
|
|
class="el-icon-delete tb-icon"
|
|
|
style="color: #63cbe7; magin: 0 0 0 10px"
|
|
|
- @click="openModal()"
|
|
|
+ @click="openModal(0)"
|
|
|
></i>
|
|
|
</el-tooltip>
|
|
|
</template>
|
|
@@ -173,14 +128,39 @@
|
|
|
>
|
|
|
<i
|
|
|
class="el-icon-view tb-icon"
|
|
|
- @click="
|
|
|
- routeGoto('sellOutOrderDetail', { id: scope.row.outCode })
|
|
|
- "
|
|
|
+ @click="routeGoto('sellOutOrderDetail', { id: scope.row.outCode })"
|
|
|
></i>
|
|
|
</el-tooltip>
|
|
|
+ <el-tooltip
|
|
|
+ effect="dark"
|
|
|
+ content="退货"
|
|
|
+ v-if="
|
|
|
+ (scope.row.status == '0' || scope.row.status == '1') &&
|
|
|
+ powers.some((i) => i == '051')
|
|
|
+ "
|
|
|
+ placement="top"
|
|
|
+ >
|
|
|
+ <i class="el-icon-delete tb-icon" @click="openModal(scope.row)"></i>
|
|
|
+ </el-tooltip>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
+ <div
|
|
|
+ v-if="tableData && tableData.length > 0"
|
|
|
+ class="Pagination"
|
|
|
+ style="text-align: right; margin-top: 10px"
|
|
|
+ >
|
|
|
+ <el-pagination
|
|
|
+ :current-page="parmValue.page"
|
|
|
+ :page-size="parmValue.size"
|
|
|
+ :size="'mini'"
|
|
|
+ layout="total, prev, pager, next, jumper"
|
|
|
+ :total="pageInfo.total"
|
|
|
+ @size-change="page_size_change"
|
|
|
+ @current-change="page_curr_change"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+
|
|
|
<out-order-add-model
|
|
|
:showModel="modelShowModel"
|
|
|
:id="modelId"
|
|
@@ -213,7 +193,7 @@
|
|
|
/> -->
|
|
|
</div>
|
|
|
</template>
|
|
|
- <script>
|
|
|
+<script>
|
|
|
import mixinPage from "@/mixins/elPaginationHandle";
|
|
|
import resToken from "@/mixins/resToken";
|
|
|
import asyncRequest from "@/apis/service/sellOut/salesOrder/detail";
|
|
@@ -251,7 +231,7 @@ export default {
|
|
|
return {
|
|
|
orderCode: "",
|
|
|
outCode: "",
|
|
|
- is_all: false,
|
|
|
+ addr_res: 0,
|
|
|
addrmodel: false,
|
|
|
// 状态
|
|
|
statusOptions: [
|
|
@@ -275,6 +255,30 @@ export default {
|
|
|
returnItem: null,
|
|
|
returnModel: false,
|
|
|
wsend_num: "",
|
|
|
+ orderCode: "",
|
|
|
+ parmValue: {
|
|
|
+ order_type: "",
|
|
|
+ orderCode: "",
|
|
|
+ apply_name: "", //申请人名称
|
|
|
+ cgdNo: "",
|
|
|
+ start: "",
|
|
|
+ end: "",
|
|
|
+ // supplierNo: "",
|
|
|
+ companyNo: "",
|
|
|
+ good_code: "",
|
|
|
+ good_name: "",
|
|
|
+ outCode: "",
|
|
|
+ status: "",
|
|
|
+ company_name: "", //申请人部门
|
|
|
+ page: 1, // 页码
|
|
|
+ size: 15, // 每页显示条数
|
|
|
+ },
|
|
|
+ pageInfo: {
|
|
|
+ size: 15,
|
|
|
+ curr: 1,
|
|
|
+ total: 0,
|
|
|
+ },
|
|
|
+ resModel: null,
|
|
|
};
|
|
|
},
|
|
|
mounted() {
|
|
@@ -296,68 +300,45 @@ export default {
|
|
|
// this.rulesThis = this.rules;
|
|
|
this.resetForm();
|
|
|
},
|
|
|
- getNewTime() {
|
|
|
- this.newTime = new Date().valueOf();
|
|
|
- },
|
|
|
async resetForm() {
|
|
|
// 重置
|
|
|
- await this.$nextTick(() => {
|
|
|
+ await this.$nextTick(async () => {
|
|
|
this.wsend_num = true;
|
|
|
- const { addrs, status, wsend_num } = this.sitem;
|
|
|
+ const { orderCode, status, good_num, addr_sum } = this.sitem;
|
|
|
this.status = status;
|
|
|
- this.wsend_num = wsend_num || "";
|
|
|
+ this.orderCode = orderCode || "";
|
|
|
+ this.addr_res = parseInt(good_num) - parseInt(addr_sum);
|
|
|
+ if (this.addr_res < 0) {
|
|
|
+ this.addr_res = "0";
|
|
|
+ }
|
|
|
// console.log(this.status);
|
|
|
- this.tableData = JSON.parse(JSON.stringify(addrs));
|
|
|
+ await this.searchList();
|
|
|
+ // this.tableData = JSON.parse(JSON.stringify(addrs));
|
|
|
});
|
|
|
},
|
|
|
- async addrRefresh(e) {
|
|
|
- if (!this.loading) {
|
|
|
- this.loading = true;
|
|
|
- const { arrive_time, orderCode, wsend_num } = this.sitem;
|
|
|
- const { list } = e;
|
|
|
- console.log(list);
|
|
|
- let t_num = 0,
|
|
|
- add_num = 0;
|
|
|
- let model = {
|
|
|
- arrtime: arrive_time,
|
|
|
- orderCode: orderCode,
|
|
|
- addrlist: [],
|
|
|
- };
|
|
|
- list.forEach((a) => {
|
|
|
- add_num += a.receipt_quantity * 1;
|
|
|
- let item = {
|
|
|
- contactor: a.contactor,
|
|
|
- mobile: a.mobile,
|
|
|
- addr: a.addr,
|
|
|
- addr_code: a.addr_code,
|
|
|
- receipt_quantity: a.receipt_quantity,
|
|
|
- };
|
|
|
- model.addrlist.push(item);
|
|
|
+ // 列表搜索
|
|
|
+ async searchList() {
|
|
|
+ this.parmValue.orderCode = this.orderCode;
|
|
|
+ const { code, data, message } = await asyncRequest.orderOut(this.parmValue);
|
|
|
+ if (code === 0) {
|
|
|
+ const { list, count } = data;
|
|
|
+ this.tableData = list;
|
|
|
+ this.pageInfo.total = Number(count);
|
|
|
+ this.tableData.forEach((v) => {
|
|
|
+ v.good_class = "";
|
|
|
+ if (v.can && v.can.length > 0) {
|
|
|
+ v.can.forEach((x, i) => {
|
|
|
+ v.good_class += i === 0 ? x.name : "/" + x.name;
|
|
|
+ });
|
|
|
+ }
|
|
|
});
|
|
|
- if (wsend_num * 1 < t_num + add_num) {
|
|
|
- this.$message.warning("导入地址总数量不能大于未发货总数量!");
|
|
|
- this.loading = false;
|
|
|
- return;
|
|
|
- }
|
|
|
- let res = await asyncRequest.saleaddr(model);
|
|
|
- this.loading = false;
|
|
|
- if (res && res.code === 0) {
|
|
|
- this.$notify.success({
|
|
|
- title: "地址导入成功!",
|
|
|
- message: "",
|
|
|
- });
|
|
|
- this.showModelThis = false;
|
|
|
- // 刷新
|
|
|
- this.$emit("refresh");
|
|
|
- } else if (res && res.code >= 100 && res.code <= 104) {
|
|
|
- await this.logout();
|
|
|
- } else {
|
|
|
- this.$message.warning(res.message);
|
|
|
- }
|
|
|
+ } else if (code >= 100 && code <= 104) {
|
|
|
+ await this.logout();
|
|
|
+ } else {
|
|
|
+ this.tableData = [];
|
|
|
+ this.pageInfo.total = 0;
|
|
|
}
|
|
|
-
|
|
|
- // this.tableData = [];
|
|
|
- // this.tableData.push(...list);
|
|
|
+ this.loading = false;
|
|
|
},
|
|
|
editRow(index) {
|
|
|
let findex = this.stockForm.good_stock.findIndex((v) => v.edit === true);
|
|
@@ -368,91 +349,81 @@ export default {
|
|
|
this.stockForm.good_stock[index].edit = true;
|
|
|
}
|
|
|
},
|
|
|
- checkStockRow(index) {
|
|
|
- let total = parseInt(this.stockForm.good_stock[index].usable_stock),
|
|
|
- num = parseInt(this.stockForm.good_stock[index].num);
|
|
|
- if (total === 0) {
|
|
|
- this.$message.warning("该仓库已无该商品库存!不能销售!");
|
|
|
- return;
|
|
|
- } else {
|
|
|
- if (num > total) {
|
|
|
- this.$message.warning("销售数量不能大于可用库存!");
|
|
|
- return;
|
|
|
- } else {
|
|
|
- this.stockForm.good_stock[index].edit = false;
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
|
|
|
- //省市区保存某一行
|
|
|
- checkRow(rowIndex) {
|
|
|
- this.$refs.addrForm.validate((valid) => {
|
|
|
- if (valid) {
|
|
|
- this.tableData[rowIndex].edit = false;
|
|
|
- } else {
|
|
|
- console.log("error submit!!");
|
|
|
- return false;
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- // 省市区删除行操作
|
|
|
- deleteRow(index, rows) {
|
|
|
- rows.splice(index, 1);
|
|
|
- },
|
|
|
- async submitForm() {
|
|
|
- await this.$refs.ruleForm.validate(async (valid) => {
|
|
|
- if (valid) {
|
|
|
- if (this.loading) {
|
|
|
- return;
|
|
|
- }
|
|
|
- this.loading = true;
|
|
|
- const { order_addr } = JSON.parse(JSON.stringify(this.addrForm));
|
|
|
- let model = {
|
|
|
- id: this.queryId,
|
|
|
- order_addr: [],
|
|
|
- };
|
|
|
- order_addr.forEach((v2) => {
|
|
|
- let model2 = {
|
|
|
- post_fee: v2.post_fee,
|
|
|
- id: v2.id,
|
|
|
- };
|
|
|
- model.order_addr.push(model2);
|
|
|
- });
|
|
|
- let res = await asyncRequest.salefee(model);
|
|
|
- this.loading = false;
|
|
|
- if (res && res.code === 0) {
|
|
|
- this.$notify.success({
|
|
|
- title: "反馈物流费用成功!",
|
|
|
- message: "",
|
|
|
- });
|
|
|
- this.showModelThis = false;
|
|
|
- // 刷新
|
|
|
- this.$emit("refresh");
|
|
|
- } else if (res && res.code >= 100 && res.code <= 104) {
|
|
|
- await this.logout();
|
|
|
- } else {
|
|
|
- this.$message.warning(res.message);
|
|
|
- }
|
|
|
- } else {
|
|
|
- console.log("error submit!!");
|
|
|
- return false;
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
openHouseModal() {
|
|
|
this.modelId = "add";
|
|
|
this.modelItem = this.sitem;
|
|
|
this.modelShowModel = true;
|
|
|
},
|
|
|
- openModal() {
|
|
|
- this.returnId = "add";
|
|
|
- this.returnItem = this.sitem;
|
|
|
+ openModal(e) {
|
|
|
+ if (e === 0) {
|
|
|
+ this.resModel = {
|
|
|
+ good_num: this.addr_res + "",
|
|
|
+ orderCode: this.orderCode,
|
|
|
+ return_type: "1",
|
|
|
+ remark: "", //退货备注
|
|
|
+ errorCode: "", //退货原因
|
|
|
+ thnum: this.addr_res + "",
|
|
|
+ returnT: this.addr_res + "",
|
|
|
+ returnAddr: [],
|
|
|
+ };
|
|
|
+ // scope.row.outCode
|
|
|
+ } else {
|
|
|
+ const { addrid, send_num, outCode } = e;
|
|
|
+ this.resModel = {
|
|
|
+ good_num: send_num + "",
|
|
|
+ orderCode: this.orderCode,
|
|
|
+ return_type: "2",
|
|
|
+ remark: "", //退货备注
|
|
|
+ errorCode: "", //退货原因
|
|
|
+ thnum: send_num + "",
|
|
|
+ returnT: send_num + "",
|
|
|
+ returnAddr: [{ id: addrid, return_num: send_num }],
|
|
|
+ };
|
|
|
+ }
|
|
|
+ this.returnItem = this.resModel;
|
|
|
this.returnModel = true;
|
|
|
console.log(addModel);
|
|
|
},
|
|
|
+ async restSearch() {
|
|
|
+ this.parmValue = {
|
|
|
+ order_type: "",
|
|
|
+ orderCode: "",
|
|
|
+ apply_name: "", //申请人名称
|
|
|
+ cgdNo: "",
|
|
|
+ start: "",
|
|
|
+ end: "",
|
|
|
+ // supplierNo: "",
|
|
|
+ companyNo: "",
|
|
|
+ good_code: "",
|
|
|
+ good_name: "",
|
|
|
+ outCode: "",
|
|
|
+ status: "",
|
|
|
+ company_name: "", //申请人部门
|
|
|
+ page: 1, // 页码
|
|
|
+ size: 15, // 每页显示条数
|
|
|
+ };
|
|
|
+ // 表格 - 分页
|
|
|
+ this.pageInfo = {
|
|
|
+ size: 15,
|
|
|
+ curr: 1,
|
|
|
+ total: 0,
|
|
|
+ };
|
|
|
+ await this.searchList();
|
|
|
+ },
|
|
|
+ async page_size_change(e) {
|
|
|
+ this.parmValue.size = e;
|
|
|
+ this.pageInfo.size = e;
|
|
|
+ this.parmValue.page = 1;
|
|
|
+ this.pageInfo.curr = 1;
|
|
|
+ await this.searchList();
|
|
|
+ },
|
|
|
+ async page_curr_change(e) {
|
|
|
+ this.parmValue.page = e;
|
|
|
+ this.pageInfo.curr = e;
|
|
|
+ await this.searchList();
|
|
|
+ },
|
|
|
},
|
|
|
};
|
|
|
</script>
|
|
|
- <style lang="scss" scoped>
|
|
|
-</style>
|
|
|
-
|
|
|
+<style lang="scss" scoped></style>
|