Browse Source

添加出库审批功能

Qukatie 3 days ago
parent
commit
e5cfdbdc3b

+ 7 - 1
src/api/storehouse/plan.js

@@ -30,7 +30,13 @@ export const submit = (data) => {
         data: data
     })
 }
-
+export const submitOutPlan = (data) => {
+    return request({
+        url: '/api/blade-sales-part/tire/center/warehouse/plan/submitOutPlan',
+        method: 'POST',
+        data: data
+    })
+}
 export const itemRemove = (data) => {
     return request({
         url: '/api/blade-sales-part/tire/center/warehouse/plan/removeItem',

+ 0 - 13
src/views/storehouse/outStockManage/configuration/commodityxsho.json

@@ -44,19 +44,6 @@
       "width": 120
     },
     {
-      "label": "单价",
-      "prop":"price",
-      "overHidden": true,
-      "slot": true,
-      "width": 120,
-      "cell": true,
-      "rules": [{
-        "required": true,
-        "message": " ",
-        "trigger": "blur"
-      }]
-    },
-    {
       "label": "批次号",
       "prop": "dot",
       "width": "80",

+ 95 - 72
src/views/storehouse/outStockManage/outStockPlan/detailsPage.vue

@@ -13,7 +13,7 @@
                 <el-button class="el-button--small-yh" v-else style="margin-left: 6px;" type="primary" size="small"
                     :disabled="isSaveBtn" @click="editCustomer(0)">保 存
                 </el-button>
-                 <el-button class="el-button--small-yh" v-if="form.id && form.status == 0" style="margin-left: 6px;"
+                <el-button class="el-button--small-yh" v-if="form.id && form.status == 0" style="margin-left: 6px;"
                     type="success" size="small" @click="editCustomer(1)" :disabled="form.status == 1">提 交
                 </el-button>
                 <el-dropdown v-if="form.status == 1">
@@ -78,20 +78,20 @@
                                     @click="handlePrint">打印</el-button>
                                 <!-- <el-button type="danger" plain size="small" @click="batchDelete"
                                     :disabled="form.status == 2">一键删除</el-button> -->
-                                <el-popover width="600" trigger="click">
+                                <!-- <el-popover width="600" trigger="click">
                                     <avue-crud :data="inventoryData" :option="inventoryOption"></avue-crud>
                                     <el-button type="primary" plain size="small" slot="reference" @click="viewInventory"
                                         :disabled="selectionMultilist.length != 1">查看库存</el-button>
-                                </el-popover>
+                                </el-popover> -->
                             </template>
-                            <template slot="regionNameForm" slot-scope="{ row }">
+                            <!-- <template slot="regionNameForm" slot-scope="{ row }">
                                 <dic-select v-if="row.$cellEdit" v-model="row.regionName" placeholder="库区" key="id"
                                     label="regionName"
                                     :url="'/blade-sales-part/tire/center/warehouse/storage-region/getRegionSelected?storageId=' + form.storageId"
                                     :filterable="true" :remote="true" dataName="regionName"
                                     @selectChange="rowDicChange('regionName', $event, row)"></dic-select>
                                 <span v-else>{{ row.regionName }}</span>
-                            </template>
+                            </template> -->
                             <template slot="goodsNumForm" slot-scope="{ row }">
                                 <el-input-number v-if="row.$cellEdit" size="small" v-model="row.goodsNum"
                                     :precision="numberDecimal" :controls="false" @blur="goodsNumblurfun(row)"
@@ -256,10 +256,10 @@
                                 <el-input-number v-model="row.goodsNum" size="small" :controls="false"
                                     :precision="numberDecimal" @input="amountChange($event, row)" style="width: 100%" />
                             </template>
-                            <template slot="price" slot-scope="{row}">
+                            <!-- <template slot="price" slot-scope="{row}">
                                 <el-input-number v-model="row.price" size="small" :controls="false"
                                     style="width: 100%" />
-                            </template>
+                            </template> -->
                             <template slot-scope="scope" slot="menu">
                                 <el-button type="text" icon="el-icon-edit" size="small"
                                     @click.stop="importStagList(scope.row, scope.index)"
@@ -288,6 +288,17 @@
                 <!--           :disabled="tableData.length !== 1">导入</el-button>-->
             </span>
         </el-dialog>
+        <el-dialog title="驳回数据" append-to-body :visible.sync="approveVisible" width="30%" :close-on-click-modal="false"
+            v-dialog-drag>
+            <span>
+                <el-input type="textarea" :rows="5" placeholder="请输入驳回原因" v-model="auditMsg">
+                </el-input>
+            </span>
+            <span slot="footer" class="dialog-footer">
+                <el-button @click="approveVisible = false" size="mini">取消</el-button>
+                <el-button type="danger" @click="approveVisible = false; auditPlan(3)" size="mini">确定</el-button>
+            </span>
+        </el-dialog>
     </div>
 </template>
 
@@ -295,7 +306,7 @@
 import { getDetails as getCustom } from "@/api/tirePartsMall/basicData/customerInformation"
 import { getDetails as getDetailsGods } from '@/api/tirePartsMall/basicData/commodityInformation'
 import { goodsListXs, goodsPageXs } from "@/api/tirePartsMall/salesManagement/saleOrder";
-import { getDetails, submit, itemRemove } from "@/api/storehouse/plan.js";
+import { getDetails, submitOutPlan, itemRemove, auditPlan } from "@/api/storehouse/plan.js";
 import { dotList, goodsDetail } from "@/api/tirePartsMall/purchasingManagement/warehouseEntryOrder";
 import reportDialog from "@/components/report-dialog/main";
 import { dateFormat } from "@/util/date";
@@ -314,6 +325,8 @@ export default {
     name: "detailsPage",
     data() {
         return {
+            auditMsg: null,
+            approveVisible: false,
             excelBox: false,
             inventoryData2: [],
             numberDecimal: 0,
@@ -691,15 +704,15 @@ export default {
                     {
                         label: '库区',
                         prop: 'regionName',
-                        cell: true,
-                        slot: true,
-                        formslot: true,
+                        // cell: true,
+                        // slot: true,
+                        // formslot: true,
                         overHidden: true,
-                        rules: [{
-                            required: true,
-                            message: " ",
-                            trigger: "blur"
-                        }]
+                        // rules: [{
+                        //     required: true,
+                        //     message: " ",
+                        //     trigger: "blur"
+                        // }]
                     },
                     {
                         label: '数量',
@@ -758,7 +771,7 @@ export default {
                         overHidden: true,
                         disabled: false,
                         width: 100
-                    }, 
+                    },
                     {
                         label: '商品描述',
                         prop: 'goodsDescription',
@@ -769,34 +782,34 @@ export default {
                     {
                         label: '单位',
                         prop: 'units',
-                        type: "select",
-                        disabled: false,
-                        props: {
-                            label: "dictValue",
-                            value: "dictValue"
-                        },
-                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=unit",
+                        // type: "select",
+                        // disabled: false,
+                        // props: {
+                        //     label: "dictValue",
+                        //     value: "dictValue"
+                        // },
+                        // dicUrl: "/api/blade-system/dict-biz/dictionary?code=unit",
                         overHidden: true,
                         width: 100
                     },
-                    {
-                        label: '发货数量',
-                        prop: 'sendNum',
-                        overHidden: true,
-                        width: 100,
-                        disabled: true,
-                        editDisplay: false,
-                        addDisplay: false
-                    },
-                    {
-                        label: '小计',
-                        prop: 'subTotalMoney',
-                        overHidden: true,
-                        width: 100,
-                        disabled: true,
-                        editDisplay: false,
-                        addDisplay: false
-                    },
+                    // {
+                    //     label: '发货数量',
+                    //     prop: 'sendNum',
+                    //     overHidden: true,
+                    //     width: 100,
+                    //     disabled: true,
+                    //     editDisplay: false,
+                    //     addDisplay: false
+                    // },
+                    // {
+                    //     label: '小计',
+                    //     prop: 'subTotalMoney',
+                    //     overHidden: true,
+                    //     width: 100,
+                    //     disabled: true,
+                    //     editDisplay: false,
+                    //     addDisplay: false
+                    // },
                     {
                         label: '备注',
                         prop: "remarks",
@@ -1036,7 +1049,7 @@ export default {
                 this.findObject(this.excelOption.column, "excelFile").action = '/api/blade-sales-part/order/import-item-name'
                 this.templateUrl = '/api/blade-sales-part/order/export-item-name'
             } else if (name == 'code') {
-                this.findObject(this.excelOption.column, "excelFile").action = '/api/blade-sales-part/order/import-item-code?storageId='+this.form.storageId
+                this.findObject(this.excelOption.column, "excelFile").action = '/api/blade-sales-part/order/import-item-code?storageId=' + this.form.storageId
                 this.templateUrl = '/api/blade-sales-part/order/export-item-code'
             }
             this.excelBox = true
@@ -1142,6 +1155,8 @@ export default {
                     pattern: item.brandItem,
                     goodsDescription: item.goodsDescription,
                     dot: item.dot,
+                    regionId: item.regionId,
+                    regionName: item.regionName,
                     // poNo: item.poNo,
                     whether: item.whether,
                     units: item.unit,
@@ -1237,7 +1252,7 @@ export default {
                 done();
                 if (valid) {
                     for (let row of this.form.planItemsList.filter(item => item.isDeleted != 1)) {
-                        if (!row.regionName || !row.goodsNum) {
+                        if (!row.goodsNum) {
                             this.$refs.formContacts.rowCell(row, row.$index)
                             return this.$message.error("请完善商品明细信息");
                         }
@@ -1265,7 +1280,7 @@ export default {
                         spinner: 'el-icon-loading',
                         background: 'rgba(255,255,255,0.7)'
                     });
-                    submit(obj).then(res => {
+                    submitOutPlan(obj).then(res => {
                         this.$message.success("保存成功");
                         this.getDetail(res.data.data)
                     }).finally(() => {
@@ -1276,33 +1291,6 @@ export default {
                 }
             });
         },
-        //保存
-        save() {
-            this.$refs["form"].validate((valid, done) => {
-                done();
-                if (valid) {
-                    const loading = this.$loading({
-                        lock: true,
-                        text: '加载中',
-                        spinner: 'el-icon-loading',
-                        background: 'rgba(255,255,255,0.7)'
-                    });
-                    submit({
-                        bsType: "XS",
-                        ...this.form
-                    }).then(res => {
-                        console.log(1);
-                        this.getDetail(res.data.data.id)
-                        this.isDisabledTask = false
-                        loading.close();
-                    }).finally(() => {
-                        loading.close();
-                    });
-                } else {
-                    return false;
-                }
-            });
-        },
         //关闭弹窗表单
         beforeClose(done, type) {
             console.log('this.form.sharedCompanyId', this.form.sharedCompanyId);
@@ -1390,6 +1378,41 @@ export default {
                 }
             })
         },
+        approve(type) {
+            this.approveVisible = true
+            this.auditMsg = null
+        },
+        auditPlan(type) {
+            if (type == 2) {
+                this.$confirm('是否提交审核?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(() => {
+                    let obj = {
+                        id: this.form.id,
+                        status: type,
+                        auditMsg: type == 3 ? this.auditMsg : null,
+                        version: this.form.version
+                    }
+                    auditPlan(obj).then(res => {
+                        this.getDetail(this.form.id)
+                    })
+                })
+            }
+            if (type == 3) {
+                let obj = {
+                    id: this.form.id,
+                    status: type,
+                    auditMsg: type == 3 ? this.auditMsg : null,
+                    version: this.form.version
+                }
+                auditPlan(obj).then(res => {
+                    this.getDetail(this.form.id)
+                })
+            }
+
+        },
         // 新增商品
         rowAdd(row, type) {
             if (!this.form.customerId) {