<template>
|
<div class="box-content">
|
<div class="fl-fw mr-t-15 mr-b-10">
|
<div class="fl-coc fw-bold fz-9 mr-r-30">
|
<span>累计物品数量</span>
|
<span class="mr-t-10">{{ sticObj.totalInc }}</span>
|
</div>
|
<div class="fl-coc fw-bold fz-9 mr-r-30">
|
<span>当前剩余物品</span>
|
<span class="mr-t-10">{{ sticObj.surplus }}</span>
|
</div>
|
<div class="fl-coc fw-bold fz-9 mr-r-30">
|
<span>今日新增</span>
|
<span class="mr-t-10"
|
>{{ sticObj.mothInc > 0 ? "+" : "" }}{{ sticObj.mothInc }}</span
|
>
|
</div>
|
<div class="fl-coc fw-bold fz-9 mr-r-30">
|
<span>本月新增</span>
|
<span class="mr-t-10">{{ sticObj.dayInc > 0 ? "+" : "" }}{{ sticObj.dayInc }}</span>
|
</div>
|
<div class="fl-coc fw-bold fz-9 mr-r-30">
|
<span>本年新增</span>
|
<span class="mr-t-10">{{ sticObj.yearInc > 0 ? "+" : "" }}{{ sticObj.yearInc }}</span>
|
</div>
|
<div class="fl-coc fw-bold fz-9 mr-r-30">
|
<span>累计领用物品</span>
|
<span class="mr-t-10">{{ sticObj.totalDec > 0 ? "-" : "" }}{{ sticObj.totalDec }}</span>
|
</div>
|
<div class="fl-coc fw-bold fz-9 mr-r-30">
|
<span>今日领用</span>
|
<span class="mr-t-10">{{ sticObj.dayDec > 0 ? "-" : "" }}{{ sticObj.dayDec }}</span>
|
</div>
|
<div class="fl-coc fw-bold fz-9 mr-r-30">
|
<span>本月领用</span>
|
<span class="mr-t-10">{{ sticObj.mothDec > 0 ? "-" : "" }}{{ sticObj.mothDec }}</span>
|
</div>
|
<div class="fl-coc fw-bold fz-9 mr-r-30">
|
<span>本年领用</span>
|
<span class="mr-t-10">{{ sticObj.yearDec > 0 ? "-" : "" }}{{ sticObj.yearDec }}</span>
|
</div>
|
</div>
|
<v-header :title="null" search :bar="bar" @on-search="onSearch"></v-header>
|
<div class="add fl-sb">
|
<div class="fl-al">
|
<span>已选{{ ids.length }}条</span>
|
<el-button
|
class="fc-red"
|
size="small"
|
v-if="ids.length"
|
type="text"
|
@click="closeSelect"
|
>【取消选择】</el-button
|
>
|
</div>
|
<div class="fl-al">
|
<el-button
|
size="small"
|
class="mr-r-10"
|
@click.stop="clickHandle('upload')"
|
>下载模板</el-button
|
>
|
<el-upload
|
action
|
:http-request="uploadFileHandle"
|
:before-upload="beforeAvatarUploadImg"
|
:show-file-list="false"
|
>
|
<el-button size="small">导入</el-button>
|
</el-upload>
|
<el-button
|
size="small"
|
class="mr-l-10"
|
@click.stop="clickHandle('export')"
|
>导出</el-button
|
>
|
<el-button
|
:disabled="ids.length === 0 || !useType"
|
size="small"
|
@click.stop="clickHandle('use')"
|
>物品领用</el-button
|
>
|
<el-button type="primary" size="small" @click.stop="clickHandle('add')"
|
>新增</el-button
|
>
|
</div>
|
</div>
|
<div class="tab">
|
<el-table
|
:data="tableList"
|
border
|
ref="multipleTable"
|
size="mini"
|
@selection-change="handleSelectionChange"
|
>
|
<el-table-column
|
align="center"
|
type="selection"
|
width="50"
|
></el-table-column>
|
<el-table-column label="序号" align="center" width="50" type="index">
|
</el-table-column>
|
<el-table-column label="捐赠用户" align="center">
|
<template slot-scope="scope">
|
{{ scope.row.name || "-" }}
|
</template>
|
</el-table-column>
|
<el-table-column label="联系电话" align="center">
|
<template slot-scope="scope">
|
{{ scope.row.phone || "-" }}
|
</template>
|
</el-table-column>
|
<el-table-column label="捐赠物品" align="center">
|
<template slot-scope="scope">
|
{{ scope.row.item || "-" }}
|
</template>
|
</el-table-column>
|
<el-table-column label="物品图片" align="center">
|
<template slot-scope="scope">
|
<div class="fl-cen" v-if="scope.row.image">
|
<el-image
|
style="width: 30px; height: 30px"
|
:src="scope.row.image"
|
:preview-src-list="[scope.row.image]"
|
fit="cover"
|
></el-image>
|
</div>
|
<el-image
|
v-else
|
style="width: 30px; height: 30px"
|
src="/static/image/default-img.png"
|
></el-image>
|
</template>
|
</el-table-column>
|
<el-table-column label="捐赠数量" align="center">
|
<template slot-scope="scope">
|
{{ scope.row.quantity || "-" }}
|
</template>
|
</el-table-column>
|
<el-table-column label="剩余数量" align="center">
|
<template slot-scope="scope">
|
{{ scope.row.surplusQuantity }}
|
</template>
|
</el-table-column>
|
<el-table-column label="匿名捐赠" align="center">
|
<template slot-scope="scope">
|
{{ scope.row.isAnonymous === 1 ? "是" : "否" }}
|
</template>
|
</el-table-column>
|
<el-table-column label="留言信息" align="center">
|
<template slot-scope="scope">
|
{{ scope.row.message || "-" }}
|
</template>
|
</el-table-column>
|
<el-table-column label="物品登记时间" align="center">
|
<template slot-scope="scope">
|
{{ scope.row.registerAt || "-" }}
|
</template>
|
</el-table-column>
|
<el-table-column label="物品签收时间" align="center">
|
<template slot-scope="scope">
|
{{ scope.row.signingAt || "-" }}
|
</template>
|
</el-table-column>
|
<el-table-column label="状态" align="center">
|
<template slot-scope="scope">
|
<span v-if="scope.row.status === 1">待签收</span>
|
<span v-if="scope.row.status === 2">已签收</span>
|
<span v-if="scope.row.status === 3">已取消</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="操作" align="center" fixed="right" width="150">
|
<template slot-scope="scope">
|
<el-button
|
size="small"
|
type="text"
|
style="padding: 0"
|
@click="clickHandle('details', scope.row)"
|
>查看</el-button
|
>
|
<el-button
|
v-if="scope.row.status === 1"
|
@click="clickHandle('collect', scope.row)"
|
size="small"
|
type="text"
|
style="padding: 0"
|
>签收</el-button
|
>
|
<el-button
|
v-if="scope.row.status === 2"
|
size="small"
|
@click="clickHandle('record', scope.row)"
|
type="text"
|
style="padding: 0"
|
>领用记录</el-button
|
>
|
</template>
|
</el-table-column>
|
</el-table>
|
</div>
|
<v-tool-page :item="paged" @on-page="onPage"></v-tool-page>
|
<!-- 新增弹框 -->
|
<el-dialog
|
:title="dialogTitle"
|
:visible.sync="dialogVisible"
|
width="50%"
|
:before-close="handleCloseData"
|
append-to-body
|
>
|
<div v-if="dialogTitle === '新增'">
|
<el-form
|
:model="form"
|
:rules="rules"
|
label-position="right"
|
ref="ruleForm"
|
label-width="150px"
|
class="demo-ruleForm"
|
>
|
<div class="fl-fw">
|
<el-form-item label="捐赠用户">
|
<el-input
|
class="input-width"
|
placeholder="请输入捐赠用户"
|
size="small"
|
v-model.trim="form.name"
|
maxlength="10"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="联系电话">
|
<el-input
|
class="input-width"
|
placeholder="请输入联系电话"
|
size="small"
|
v-model.trim="form.phone"
|
maxlength="11"
|
></el-input>
|
</el-form-item>
|
</div>
|
<el-form-item label="捐赠物品" prop="item">
|
<el-input
|
class="input-width"
|
placeholder="请输入捐赠物品"
|
size="small"
|
v-model.trim="form.item"
|
maxlength="10"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="捐赠数量">
|
<el-input-number
|
v-model="form.quantity"
|
:min="1"
|
:max="99999"
|
label="描述文字"
|
></el-input-number>
|
</el-form-item>
|
<el-form-item label="物品图片" prop="image">
|
<div class="app_images">
|
<div
|
class="avatar"
|
v-for="(i, j) in imgList"
|
:key="j + '-ta-img'"
|
>
|
<span
|
class="close el-icon-close"
|
@click.stop="onDelImage(i)"
|
></span>
|
<img :src="i" alt="" @click.stop="appShowImage(i, imgList)" />
|
</div>
|
<v-upload
|
slots
|
class="avatar"
|
@path="onImageSave"
|
v-if="imgList.length < 1"
|
>
|
<div class="uopload-text fl-coc">
|
<i class="el-icon-plus"></i>
|
<b>上传</b>
|
</div>
|
</v-upload>
|
</div>
|
</el-form-item>
|
<el-form-item label="匿名捐赠">
|
<el-switch
|
v-model="form.isAnonymous"
|
:active-value="1"
|
:inactive-value="2"
|
>
|
</el-switch>
|
</el-form-item>
|
<el-form-item label="留言信息">
|
<el-input
|
type="textarea"
|
class="textarea-width"
|
:rows="5"
|
resize="none"
|
placeholder="请输入留言信息"
|
maxlength="100"
|
v-model="form.message"
|
>
|
</el-input>
|
</el-form-item>
|
</el-form>
|
<div class="fl-cen">
|
<el-button size="small" @click="handleCloseData">取 消</el-button>
|
<el-button
|
size="small"
|
type="primary"
|
:loading="btnloading"
|
@click="submitHandle"
|
>确 定</el-button
|
>
|
</div>
|
</div>
|
<div v-if="dialogTitle === '查看'">
|
<div class="fl-f mr-b-10">
|
<div class="label-text">捐赠用户:</div>
|
<div class="content-text">{{ dataInfo.name || "-" }}</div>
|
</div>
|
<div class="fl-f mr-b-10">
|
<div class="label-text">联系电话:</div>
|
<div class="content-text">{{ dataInfo.phone || "-" }}</div>
|
</div>
|
<div class="fl-f mr-b-10">
|
<div class="label-text">捐赠物品:</div>
|
<div class="content-text">{{ dataInfo.item || "-" }}</div>
|
</div>
|
<div class="fl-f mr-b-10">
|
<div class="label-text">捐赠数量:</div>
|
<div class="content-text">{{ dataInfo.quantity }}</div>
|
</div>
|
<div class="fl-f mr-b-10">
|
<div class="label-text">捐赠图片:</div>
|
<div class="content-text">
|
<el-image
|
v-if="dataInfo.image"
|
style="width: 100px; height: 100px"
|
:src="dataInfo.image"
|
:preview-src-list="[dataInfo.image]"
|
fit="cover"
|
></el-image>
|
<el-image
|
v-else
|
style="width: 100px; height: 100px"
|
src="/static/image/default-img.png"
|
></el-image>
|
</div>
|
</div>
|
<div class="fl-f mr-b-10">
|
<div class="label-text">匿名捐赠:</div>
|
<div class="content-text">
|
{{ dataInfo.isAnonymous === 1 ? "是" : "否" }}
|
</div>
|
</div>
|
<div class="fl-f mr-b-10">
|
<div class="label-text">捐赠时间:</div>
|
<div class="content-text">{{ dataInfo.registerAt || "-" }}</div>
|
</div>
|
<div class="fl-f mr-b-10">
|
<div class="label-text">留言信息:</div>
|
<div class="content-text l-15">
|
{{ dataInfo.message || "-" }}
|
</div>
|
</div>
|
<div class="fl-f mr-b-10">
|
<div class="label-text">状态:</div>
|
<div class="content-text fc-170" v-if="dataInfo.status === 1">
|
待签收
|
</div>
|
<div class="content-text fc-170" v-if="dataInfo.status === 2">
|
已签收
|
</div>
|
<div class="content-text fc-170" v-if="dataInfo.status === 3">
|
已取消
|
</div>
|
</div>
|
<!-- 已签收 -->
|
<div v-if="dataInfo.status === 2">
|
<div class="fl-f mr-b-10">
|
<div class="label-text">签收人:</div>
|
<div class="content-text">{{ dataInfo.signingBy || "-" }}</div>
|
</div>
|
<div class="fl-f mr-b-10">
|
<div class="label-text">签收时间:</div>
|
<div class="content-text">{{ dataInfo.signingAt || "-" }}</div>
|
</div>
|
</div>
|
<div class="fl-cen mr-t-10">
|
<el-button @click="dialogVisible = false">关闭</el-button>
|
</div>
|
</div>
|
<div v-if="dialogTitle === '物品领用'">
|
<el-form
|
:model="useForm"
|
:rules="rules"
|
label-position="right"
|
ref="ruleForm"
|
label-width="150px"
|
class="demo-ruleForm"
|
>
|
<div class="fl-fw">
|
<el-form-item label="领用人" prop="applyName">
|
<el-input
|
class="input-width"
|
placeholder="请输入领用人"
|
size="small"
|
v-model.trim="useForm.applyName"
|
maxlength="10"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="联系电话" prop="applyPhone">
|
<el-input
|
class="input-width"
|
placeholder="请输入联系电话"
|
size="small"
|
v-model.trim="useForm.applyPhone"
|
maxlength="11"
|
></el-input>
|
</el-form-item>
|
</div>
|
<el-form-item label="领用物品">
|
<div
|
class="fl-sb goods-box"
|
v-for="(item, index) in goodsList"
|
:key="index"
|
:class="[index < goodsList.length - 1 ? 'mr-b-20' : '']"
|
>
|
<div class="fl-f">
|
<el-image
|
v-if="item.image"
|
style="width: 70px; height: 70px"
|
:src="item.image"
|
:preview-src-list="[item.image]"
|
fit="cover"
|
>
|
</el-image>
|
<el-image
|
v-else
|
style="width: 70px; height: 70px"
|
src="/static/image/default-img.png"
|
></el-image>
|
<span class="mr-l-10">{{ item.item }}</span>
|
</div>
|
<div class="fl-coc">
|
<el-input-number
|
v-model="item.gNum"
|
size="mini"
|
:min="1"
|
:max="item.surplusQuantity"
|
></el-input-number>
|
<span class="fc-red">剩余数量:{{ item.surplusQuantity }}</span>
|
</div>
|
</div>
|
</el-form-item>
|
<el-form-item label="领用图片">
|
<div class="app_images">
|
<div
|
class="avatar"
|
v-for="(i, j) in imgList"
|
:key="j + '-ta-img'"
|
>
|
<span
|
class="close el-icon-close"
|
@click.stop="onDelImage(i)"
|
></span>
|
<img :src="i" alt="" @click.stop="appShowImage(i, imgList)" />
|
</div>
|
<v-upload
|
slots
|
class="avatar"
|
@path="onImageSave3"
|
v-if="imgList.length < 6"
|
>
|
<div class="uopload-text fl-coc">
|
<i class="el-icon-plus"></i>
|
<b>上传</b>
|
</div>
|
</v-upload>
|
</div>
|
</el-form-item>
|
<el-form-item label="ta遇到的困难" prop="reason">
|
<el-input
|
type="textarea"
|
class="textarea-width"
|
:rows="5"
|
resize="none"
|
placeholder="请输入遇到的困难"
|
maxlength="100"
|
v-model="useForm.reason"
|
>
|
</el-input>
|
</el-form-item>
|
</el-form>
|
<div class="fl-cen">
|
<el-button size="small" @click="handleCloseData">取 消</el-button>
|
<el-button
|
size="small"
|
type="primary"
|
:loading="btnloading"
|
@click="submitHandle"
|
>确 定</el-button
|
>
|
</div>
|
</div>
|
<div v-if="dialogTitle === '物品签收'">
|
<el-form
|
:model="collectForm"
|
:rules="rules"
|
label-position="right"
|
ref="ruleForm"
|
label-width="150px"
|
class="demo-ruleForm"
|
>
|
<el-form-item label="捐赠人">
|
<span>{{ dataInfo.name }}</span>
|
</el-form-item>
|
<el-form-item label="捐赠物品" prop="item">
|
<el-input
|
class="input-width"
|
placeholder="请输入捐赠物品"
|
size="small"
|
v-model.trim="collectForm.item"
|
maxlength="10"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="捐赠数量">
|
<el-input-number
|
v-model="collectForm.quantity"
|
:min="1"
|
:max="99999"
|
label="捐赠数量"
|
></el-input-number>
|
</el-form-item>
|
<el-form-item label="物品图片" prop="image">
|
<div class="app_images">
|
<div
|
class="avatar"
|
v-for="(i, j) in imgList"
|
:key="j + '-ta-img'"
|
>
|
<span
|
class="close el-icon-close"
|
@click.stop="onDelImage(i)"
|
></span>
|
<img :src="i" alt="" @click.stop="appShowImage(i, imgList)" />
|
</div>
|
<v-upload
|
slots
|
class="avatar"
|
@path="onImageSave2"
|
v-if="imgList.length < 1"
|
>
|
<div class="uopload-text fl-coc">
|
<i class="el-icon-plus"></i>
|
<b>上传</b>
|
</div>
|
</v-upload>
|
</div>
|
</el-form-item>
|
<el-form-item label="匿名捐赠">
|
<el-switch
|
v-model="collectForm.isAnonymous"
|
:active-value="1"
|
:inactive-value="2"
|
>
|
</el-switch>
|
</el-form-item>
|
<el-form-item label="留言信息">
|
<el-input
|
type="textarea"
|
class="textarea-width"
|
:rows="5"
|
resize="none"
|
placeholder="请输入留言信息"
|
maxlength="100"
|
v-model="collectForm.message"
|
>
|
</el-input>
|
</el-form-item>
|
</el-form>
|
<div class="fl-cen">
|
<el-button size="small" @click="handleCloseData">取 消</el-button>
|
<el-button
|
size="small"
|
type="primary"
|
:loading="btnloading"
|
@click="submitHandle"
|
>签 收</el-button
|
>
|
</div>
|
</div>
|
</el-dialog>
|
<!-- 查看详情 -->
|
</div>
|
</template>
|
|
<script>
|
import { mapState } from "vuex";
|
import vUpload from "com/upload/upload1";
|
import { objCopyPro } from "../../utils/common";
|
export default {
|
inject: ["appShowImage"],
|
components: {
|
vUpload,
|
},
|
data() {
|
return {
|
dialogVisible: false,
|
dialogTitle: "新增",
|
bar: [
|
{ title: "捐赠用户/联系电话/捐赠物品", name: "keyword" },
|
{
|
title: "状态",
|
name: "status",
|
type: "select",
|
list: [
|
{ value: null, label: "全部" },
|
{
|
value: 1,
|
label: "待签收",
|
},
|
{
|
value: 2,
|
label: "已签收",
|
},
|
{
|
value: 3,
|
label: "已取消",
|
},
|
],
|
},
|
{
|
title: "匿名捐赠",
|
name: "isAnonymous",
|
type: "select",
|
list: [
|
{ value: null, label: "全部" },
|
{
|
value: 1,
|
label: "是",
|
},
|
{
|
value: 2,
|
label: "否",
|
},
|
],
|
},
|
{ title: "签收时间", name: "time", type: "times" },
|
],
|
tableList: [],
|
paged: { page: 0, total: 0, r: 0, limit: 10 },
|
search: {},
|
btnloading: false,
|
form: {
|
isAnonymous: 1,
|
image: "",
|
item: "",
|
message: "",
|
name: "",
|
phone: "",
|
quantity: 1,
|
status: 1,
|
}, // 表单
|
useForm: {
|
applyName: "",
|
applyPhone: "",
|
receiveUrl: "",
|
reason: "",
|
}, // 物品领用表单
|
collectForm: {
|
item: "",
|
quantity: 1,
|
image: "",
|
isAnonymous: 1,
|
message: "",
|
status: 2,
|
}, // 物品签收表单
|
rules: {
|
item: [
|
{
|
required: true,
|
message: "请输入物品名称",
|
trigger: "blur",
|
},
|
],
|
image: [
|
{
|
required: true,
|
message: "请上传物品图片",
|
trigger: "change",
|
},
|
],
|
applyName: [
|
{
|
required: true,
|
message: "请输入领用人",
|
trigger: "blur",
|
},
|
],
|
applyPhone: [
|
{
|
required: true,
|
message: "请输入联系电话",
|
trigger: "blur",
|
},
|
],
|
reason: [
|
{
|
required: true,
|
message: "请输入遇到的困难",
|
trigger: "blur",
|
},
|
],
|
}, // 表单验证
|
imgList: [],
|
dataInfo: {},
|
ids: [],
|
goodsList: [],
|
sticObj: {},
|
numss: 1,
|
useType: false,
|
};
|
},
|
computed: {
|
...mapState({ vuex_page: "pageReset" }),
|
},
|
watch: {
|
vuex_page: {
|
handler(n) {
|
if (n.page === this.$route.path) {
|
this.paged.page = 1;
|
this.getTable();
|
}
|
},
|
deep: true,
|
},
|
},
|
|
methods: {
|
getStatic() {
|
this.$api.get("warehouse/donates/statistics", {}, (e) => {
|
this.sticObj = e;
|
});
|
},
|
uploadFileHandle(f) {
|
let formData = new FormData();
|
formData.append("file", f.file);
|
this.$api.post("warehouse/donates/import", formData, (e) => {
|
demo.toast("导入成功");
|
window.location.reload();
|
});
|
},
|
beforeAvatarUploadImg(file) {
|
const imgType = ["image/png", "image/jpeg", "video/mp4"];
|
if (imgType.indexOf(file.type) !== -1) {
|
demo.toast("只能上传 xlsx 格式文件!");
|
return false;
|
} else {
|
return true;
|
}
|
},
|
onSearch(v) {
|
if (v.time && v.time.length && v.time[1]) {
|
v.signingAtBegin = v.time[0];
|
v.signingAtEnd = v.time[1];
|
} else {
|
v.signingAtBegin = "";
|
v.signingAtEnd = "";
|
}
|
this.search = demo.copy(v);
|
delete this.search.time;
|
this.paged.page = 1;
|
this.getTable();
|
},
|
// 分页点击
|
onPage(v) {
|
if (v.page === this.paged.page && v.page && !v.reset) {
|
return 0;
|
}
|
this.paged.page = v.page;
|
this.paged.limit = v.limit;
|
this.getTable();
|
},
|
// 获取数据
|
getTable() {
|
let v = demo.copy(
|
Object.assign(this.search, {
|
pageNum: this.paged.page,
|
pageSize: this.paged.limit,
|
})
|
);
|
this.$api.post("warehouse/donates/page", v, (e) => {
|
this.paged.total = e.total;
|
this.paged.r++;
|
this.tableList = e.records || [];
|
});
|
},
|
clickHandle(type, row) {
|
switch (type) {
|
case "add": {
|
this.dialogTitle = "新增";
|
this.dialogVisible = true;
|
break;
|
}
|
case "details": {
|
this.dialogTitle = "查看";
|
this.$api.get(
|
"warehouse/donates/get",
|
{
|
donatesId: row.id,
|
},
|
(e) => {
|
this.dataInfo = e;
|
this.dialogVisible = true;
|
}
|
);
|
break;
|
}
|
case "use": {
|
this.dialogTitle = "物品领用";
|
this.dialogVisible = true;
|
break;
|
}
|
case "collect": {
|
this.dialogTitle = "物品签收";
|
this.$api.get(
|
"warehouse/donates/get",
|
{
|
donatesId: row.id,
|
},
|
(e) => {
|
this.dataInfo = e;
|
this.collectForm = objCopyPro(this.collectForm, e);
|
this.imgList = [e.image];
|
}
|
);
|
this.dialogVisible = true;
|
break;
|
}
|
case "record": {
|
this.$router.push("/presentRecord?gid=" + row.id);
|
break;
|
}
|
case "upload": {
|
this.$api.get("warehouse/donates/import/templates", {}, (e) => {
|
window.location.href = e;
|
});
|
break;
|
}
|
case "export": {
|
this.$api.post(
|
"warehouse/donates/export",
|
{
|
ids: this.ids,
|
},
|
(e) => {
|
window.location.href = e;
|
}
|
);
|
break;
|
}
|
default: {
|
break;
|
}
|
}
|
},
|
submitHandle() {
|
this.$refs["ruleForm"].validate((val) => {
|
if (val) {
|
if (this.dialogTitle === "新增") {
|
this.$api.post("warehouse/donates/add", this.form, () => {
|
demo.toast("新增成功");
|
this.handleCloseData();
|
this.getTable();
|
});
|
} else if (this.dialogTitle === "物品签收") {
|
this.$api.post(
|
"warehouse/donates/signing",
|
this.collectForm,
|
() => {
|
demo.toast("签收成功");
|
this.handleCloseData();
|
this.getTable();
|
}
|
);
|
} else {
|
const list = [];
|
this.goodsList.forEach((item) => {
|
list.push({
|
goodsId: item.id,
|
goodsNum: item.gNum,
|
});
|
});
|
this.useForm.applyItems = list;
|
this.$api.post("warehouse/donates/apply", this.useForm, () => {
|
demo.toast("领取成功");
|
this.handleCloseData();
|
this.getTable();
|
});
|
}
|
}
|
});
|
},
|
closeSelect() {
|
this.$refs.multipleTable.clearSelection();
|
},
|
handleSelectionChange(list) {
|
this.useType = list.every((item) => {
|
return item.status === 2 && item.surplusQuantity > 0;
|
});
|
this.goodsList = [];
|
if (list.length) {
|
const arr = [];
|
list.forEach((item) => {
|
arr.push(item.id);
|
this.goodsList.push({
|
gNum: 1,
|
surplusQuantity: item.surplusQuantity,
|
image: item.image,
|
item: item.item,
|
id: item.id,
|
});
|
});
|
this.ids = arr;
|
} else {
|
this.ids = [];
|
this.goodsList = [];
|
}
|
},
|
handleCloseData() {
|
if (this.dialogTitle === "新增") {
|
this.$refs["ruleForm"].resetFields(); // 重置表单
|
this.imgList = [];
|
this.form = {
|
isAnonymous: 1,
|
image: "",
|
item: "",
|
message: "",
|
name: "",
|
phone: "",
|
quantity: 1,
|
status: 1,
|
};
|
}
|
if (this.dialogTitle === "物品签收") {
|
this.$refs["ruleForm"].resetFields(); // 重置表单
|
this.imgList = [];
|
this.collectForm = {
|
item: "",
|
quantity: 1,
|
image: "",
|
isAnonymous: 1,
|
message: "",
|
status: 2,
|
};
|
}
|
if (this.dialogTitle === "物品领用") {
|
this.$refs["ruleForm"].resetFields(); // 重置表单
|
this.imgList = [];
|
this.useForm = {
|
applyName: "",
|
applyPhone: "",
|
receiveUrl: "",
|
reason: "",
|
};
|
}
|
this.dialogVisible = false;
|
},
|
onImageSave(v) {
|
this.imgList.push(v);
|
this.form.image = v;
|
},
|
onImageSave2(v) {
|
this.imgList.push(v);
|
this.collectForm.image = v;
|
},
|
onImageSave3(v) {
|
this.imgList.push(v);
|
this.useForm.receiveUrl = v;
|
},
|
onDelImage(v) {
|
this.form.image = "";
|
this.collectForm.image = "";
|
this.useForm.receiveUrl = "";
|
this.imgList = this.imgList.filter((r) => {
|
return r !== v;
|
});
|
},
|
},
|
mounted() {
|
this.getStatic();
|
},
|
};
|
</script>
|
<style>
|
.el-table .cell {
|
font-size: 14px;
|
color: #444;
|
}
|
</style>
|
<style lang='less' scoped>
|
.box-content {
|
overflow-y: auto;
|
.tab,
|
.add {
|
margin-bottom: 10px;
|
}
|
}
|
.input-width {
|
width: 250px;
|
}
|
.textarea-width {
|
width: 350px;
|
}
|
.uopload-text {
|
width: 100px;
|
height: 100px;
|
border: 1px dashed #999;
|
}
|
.label-text {
|
width: 120px;
|
text-align: right;
|
}
|
.content-text {
|
width: 400px;
|
}
|
.l-15 {
|
line-height: 1.5;
|
}
|
.goods-box {
|
width: 400px;
|
}
|
</style>
|