|
@@ -18,24 +18,31 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="收货人" prop="receive_personal">
|
|
|
- <el-input v-model="form.receive_personal" placeholder="请输入收货人"></el-input>
|
|
|
+ <el-form-item label="收货类型" prop="type">
|
|
|
+ <el-select v-model="form.type" placeholder="请选择收货类型" style="width: 100%" @change="changeType">
|
|
|
+ <el-option label="统一收" value="0"></el-option>
|
|
|
+ <el-option label="申请人" value="1"></el-option>
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="收货电话" prop="receive_phone">
|
|
|
- <el-input v-model="form.receive_phone" placeholder="请输入收货电话"></el-input>
|
|
|
+ <el-form-item label="收货人" prop="receive_personal_id">
|
|
|
+ <el-select v-model="form.receive_personal_id" placeholder="请选择收货人" style="width: 100%" @change="changeUser">
|
|
|
+ <el-option v-for="(item, index) in receiveList" :key="index" :label="item.name" :value="item.id"></el-option>
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="收货类型" prop="type">
|
|
|
- <el-select v-model="form.type" placeholder="请选择收货类型" style="width: 100%">
|
|
|
- <el-option label="统一收" value="0"></el-option>
|
|
|
- <el-option label="申请人" value="1"></el-option>
|
|
|
- </el-select>
|
|
|
+ <el-form-item label="收货人姓名" prop="receive_personal">
|
|
|
+ <el-input v-model="form.receive_personal" placeholder="请输入收货人姓名"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
+ <el-form-item label="收货电话" prop="receive_phone">
|
|
|
+ <el-input v-model="form.receive_phone" placeholder="请输入收货电话"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
<el-form-item label="收货地址" prop="receive_address">
|
|
|
<el-input v-model="form.receive_address" placeholder="请输入收货地址"></el-input>
|
|
|
</el-form-item>
|
|
@@ -45,8 +52,8 @@
|
|
|
<el-col :span="24" class="list">
|
|
|
<el-table :data="form.order" border style="width: 100%">
|
|
|
<el-table-column prop="name" label="商品名称" align="center" show-overflow-tooltip> </el-table-column>
|
|
|
- <el-table-column prop="num" label="商品数量" align="center" show-overflow-tooltip> </el-table-column>
|
|
|
- <el-table-column prop="desc" label="特殊说明" align="center" show-overflow-tooltip> </el-table-column>
|
|
|
+ <el-table-column prop="money" label="商品单价" align="center" show-overflow-tooltip> </el-table-column>
|
|
|
+ <el-table-column prop="buy_num" label="采购数量" align="center" show-overflow-tooltip> </el-table-column>
|
|
|
<el-table-column fixed="right" label="操作" align="center">
|
|
|
<template slot-scope="scope"><el-button @click="orderDel(scope.$index, scope.row)" type="danger" size="small">删除</el-button></template>
|
|
|
</el-table-column>
|
|
@@ -62,31 +69,23 @@
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-dialog :title="dialog.title" :visible.sync="dialog.show" :width="dialog.width" :before-close="toClose" :close-on-click-modal="false">
|
|
|
- <el-form :model="orderForm" :rules="orderRules" ref="orderForm" label-width="100px">
|
|
|
- <el-form-item label="商品名称" prop="name">
|
|
|
- <el-input v-model="orderForm.name" placeholder="请输入商品名称"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="商品数量" prop="num">
|
|
|
- <el-input v-model="orderForm.num" placeholder="请输入商品数量"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="特殊说明" prop="desc">
|
|
|
- <el-input v-model="orderForm.desc" placeholder="请输入特殊说明"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item>
|
|
|
- <el-button type="primary" size="small" @click="onOrderSubmit('orderForm')">保存信息</el-button>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
+ <market-1 v-if="dialog.type == '1'" :list="marketList" :total="marketTotal" @buyBtn="buyBtn"></market-1>
|
|
|
</el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+import market1 from './parts/market-1.vue';
|
|
|
import { mapState, createNamespacedHelpers } from 'vuex';
|
|
|
const { mapActions: mapBuy } = createNamespacedHelpers('buy');
|
|
|
+const { mapActions: mapUser } = createNamespacedHelpers('user');
|
|
|
+const { mapActions: mapMarket } = createNamespacedHelpers('market');
|
|
|
export default {
|
|
|
name: 'detail',
|
|
|
props: {},
|
|
|
- components: {},
|
|
|
+ components: {
|
|
|
+ market1,
|
|
|
+ },
|
|
|
data: function () {
|
|
|
return {
|
|
|
form: { order: [] },
|
|
@@ -94,14 +93,19 @@ export default {
|
|
|
buy_personal: [{ required: true, message: '请输入采购人', trigger: 'blur' }],
|
|
|
buy_phone: [{ required: true, message: '请输入采购电话', trigger: 'blur' }],
|
|
|
type: [{ required: true, message: '请选择收货类型', trigger: 'blur' }],
|
|
|
- receive_personal: [{ required: true, message: '请输入收货人', trigger: 'blur' }],
|
|
|
+ receive_personal: [{ required: true, message: '请输入收货人姓名', trigger: 'blur' }],
|
|
|
receive_phone: [{ required: true, message: '请输入收货电话', trigger: 'blur' }],
|
|
|
receive_address: [{ required: true, message: '请输入收货地址', trigger: 'blur' }],
|
|
|
},
|
|
|
data: [],
|
|
|
+ // 商品列表
|
|
|
+ marketList: [],
|
|
|
+ marketTotal: 0,
|
|
|
+ // 收货人列表
|
|
|
+ receiveList: [],
|
|
|
// 弹框
|
|
|
- dialog: { title: '申报审核', show: false, type: '1', width: '50%' },
|
|
|
- // 审核
|
|
|
+ dialog: { title: '选购商品', show: false, type: '1', width: '50%' },
|
|
|
+ // 商品
|
|
|
orderForm: {},
|
|
|
orderRules: {
|
|
|
name: [{ required: true, message: '请输入商品名称', trigger: 'blur' }],
|
|
@@ -115,6 +119,8 @@ export default {
|
|
|
},
|
|
|
methods: {
|
|
|
...mapBuy(['fetch', 'create', 'update']),
|
|
|
+ ...mapUser({ userQuery: 'query' }),
|
|
|
+ ...mapMarket({ marketQuery: 'query' }),
|
|
|
// 提交采购
|
|
|
onSubmit(formName) {
|
|
|
this.$refs[formName].validate(async (valid) => {
|
|
@@ -138,27 +144,49 @@ export default {
|
|
|
this.$refs[formName].resetFields();
|
|
|
this.searchOther();
|
|
|
},
|
|
|
+ // 选择收货类型
|
|
|
+ async changeType(type) {
|
|
|
+ if (type == '0') {
|
|
|
+ let res = await this.userQuery({ type: '3' });
|
|
|
+ if (this.$checkRes(res)) this.$set(this, `receiveList`, res.data);
|
|
|
+ } else {
|
|
|
+ let res = await this.userQuery({ type: '6' });
|
|
|
+ if (this.$checkRes(res)) this.$set(this, `receiveList`, res.data);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 选择用户
|
|
|
+ changeUser(value) {
|
|
|
+ let data = this.receiveList.find((i) => i.id == value);
|
|
|
+ if (data) {
|
|
|
+ this.$set(this.form, `receive_personal`, data.name);
|
|
|
+ this.$set(this.form, `receive_phone`, data.phone);
|
|
|
+ }
|
|
|
+ },
|
|
|
// 商品添加
|
|
|
- toAddmarket() {
|
|
|
- this.dialog = { title: '采购商品', show: true, type: '1', width: '30%' };
|
|
|
+ async toAddmarket() {
|
|
|
+ let res = await this.marketQuery({ status: '1' });
|
|
|
+ if (this.$checkRes(res)) {
|
|
|
+ this.$set(this, `marketList`, res.data);
|
|
|
+ this.$set(this, `marketTotal`, res.total);
|
|
|
+ }
|
|
|
+ this.dialog = { title: '选购商品', show: true, type: '1', width: '25%' };
|
|
|
},
|
|
|
// 提交保存
|
|
|
- onOrderSubmit(formName) {
|
|
|
- this.$refs[formName].validate((valid) => {
|
|
|
- if (valid) {
|
|
|
- let data = this.orderForm;
|
|
|
- this.form.order.push(data);
|
|
|
- this.orderForm = {};
|
|
|
- this.dialog = { title: '采购商品', show: false, type: '1', width: '30%' };
|
|
|
- } else {
|
|
|
- console.log('error submit!!');
|
|
|
- return false;
|
|
|
- }
|
|
|
- });
|
|
|
+ buyBtn(data) {
|
|
|
+ let p1 = this.form.order.find((i) => i.id == data.id);
|
|
|
+ let p1Index = this.form.order.findIndex((i) => i.id == data.id);
|
|
|
+ if (p1) {
|
|
|
+ data.buy_num = data.buy_num + p1.buy_num;
|
|
|
+ this.form.order.splice(p1Index, 1);
|
|
|
+ this.form.order.push(data);
|
|
|
+ } else {
|
|
|
+ this.form.order.push(data);
|
|
|
+ }
|
|
|
+ this.dialog = { title: '采购商品', show: false, type: '1', width: '30%' };
|
|
|
},
|
|
|
// 取消添加
|
|
|
toClose() {
|
|
|
- this.dialog = { title: '采购商品', show: false, type: '1', width: '30%' };
|
|
|
+ this.dialog = { title: '选购商品', show: false, type: '1', width: '50%' };
|
|
|
},
|
|
|
// 删除商品
|
|
|
orderDel(dataindex) {
|