DESKTOP-B78GIPM\admin 2 anos atrás
pai
commit
62dcdbfe47

+ 1 - 1
src/views/room/calendarfangtai.vue

@@ -34,7 +34,7 @@
       </a-form>
     </div>
     <!-- 查询区域-END -->
-    <div class="course-week">
+    <div class="course-week" v-if="false">
       <div class="week-top">
         <div class="week-btn-wrap">
           <span @click="getLastWeek">上周</span>

+ 1 - 1
src/views/room/forwardfangtai.vue

@@ -38,7 +38,7 @@
     <!-- 查询区域-END -->
 
     <!-- table区域-begin -->
-    <div>
+    <div v-if="false">
       <!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
         <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
         <a style="margin-left: 24px" @click="onClearSelected">清空</a>

+ 72 - 51
src/views/settings/components/roomModules/goodStock/goodsForm.vue

@@ -4,7 +4,7 @@
         <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
             <a-row>
                 <a-col :span="12" type='flex' justify="start">
-                    <a-form-model-item label="分类" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="">
+                    <a-form-model-item label="分类" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="goodType">
                         <a-cascader :defaultValue="arr" :options="treeData?treeData:[]" :field-names="{ label: 'name', value: 'id', children: 'children' }"
                          placeholder="请选择" @change="onChange" />
                     </a-form-model-item>
@@ -12,7 +12,7 @@
             </a-row>
             <a-row>
                 <a-col :span="12" type='flex' justify="start">
-                    <a-form-model-item style="width:100%" label="单位" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="">
+                    <a-form-model-item style="width:100%" label="单位" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="goodUnit">
                         <a-select :value="model.goodUnit?model.goodUnit:'-1'" placeholder='请选择商品单位' @change="handleChange">
                             <a-select-option value="-1">{{"请选择商品单位"}}</a-select-option>
                             <a-select-option v-for="item in unitData" :unitName='item.name' :key="item.id" :value="item.id">
@@ -24,44 +24,44 @@
             </a-row>
             <a-row>
                 <a-col :span="12">
-                    <a-form-model-item label="条码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="">
+                    <a-form-model-item label="条码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="barCode">
                         <a-input v-model="model.barCode" placeholder="请填写条码" />
                     </a-form-model-item>
                 </a-col>
                 <a-col :span="12">
-                    <a-form-model-item label="名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="">
+                    <a-form-model-item label="名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="name">
                         <a-input v-model="model.name" placeholder="请填写名称" />
                     </a-form-model-item>
                 </a-col>
             </a-row>
             <a-row>
                 <a-col :span="12">
-                    <a-form-model-item label="进价" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="">
+                    <a-form-model-item label="进价" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="bid">
                         <a-input-number v-model="model.bid" :min="0" />
                     </a-form-model-item>
                 </a-col>
                 <a-col :span="12">
-                    <a-form-model-item label="售价" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="">
+                    <a-form-model-item label="售价" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="sellingPrice">
                         <a-input-number v-model="model.sellingPrice" :min="0" />
                     </a-form-model-item>
                 </a-col>
             </a-row>
-            <a-row>
+            <a-row v-if="!model.isStock">
                 <a-col :span="12">
-                    <a-form-model-item label="进货量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="">
+                    <a-form-model-item label="进货量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="purchases">
                         <a-input-number v-model="model.purchases" :min="0" />
                     </a-form-model-item>
                 </a-col>
                 <a-col :span="12">
-                    <a-form-model-item label="销售量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="">
+                    <a-form-model-item label="销售量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="salesVolume">
                         <a-input-number v-model="model.salesVolume" :min="0" />
                     </a-form-model-item>
                 </a-col>
             </a-row>
             <a-row>
                 <a-col :span="12">
-                    <a-form-model-item label="库存量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="">
-                        <a-input-number v-model="model.inventory" :min="0" />
+                    <a-form-model-item label="库存量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="inventory">
+                        <a-input-number :disabled="model.isStock" v-model="model.inventory" :min="0" />
                     </a-form-model-item>
                 </a-col>
                 <a-col :span="12">
@@ -73,35 +73,24 @@
             <a-row>
                 <a-col :span="16" type='flex' justify="start">
                     <a-form-model-item style="width:100%" label="启用库存模块" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="">
-                        <a-switch></a-switch>
+                        <a-switch v-model="model.isStock"></a-switch> <a-button @click="handleAdd" v-if="model.isStock" style="margin-left:10px;" type="primary" >选择库存商品</a-button>
+                    </a-form-model-item>
+                </a-col>
+                <a-col :span="12" v-if="model.isStock">
+                    <a-form-model-item label="已绑定商品" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="">
+                        <!-- <div v-if="!model.stockGoodsName">
+                            {{selectGoodsInfo.depositoryName}}-{{selectGoodsInfo.goodsName}}
+                        </div> -->
+                        <div>
+                            {{model.stockGoodsName}}
+                        </div>
                     </a-form-model-item>
                 </a-col>
             </a-row>
-            <!-- <a-form-model-item label="房型名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="name">
-                    <a-input v-model="model.name" placeholder="请输入房型名称"></a-input>
-                </a-form-model-item>
-                <a-form-model-item label="门市价" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="marketPrice">
-                    <a-input-number style="width:50%;" v-model="model.marketPrice" :min="1"  placeholder="请填写门市价"/>
-                </a-form-model-item>
-
-                <a-form-model-item label="可住人数" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="canLivePersonNum">
-                    <a-input-number style="width:50%;" v-model="model.canLivePersonNum" :min="0"  placeholder="请填写可住人数"/>
-                </a-form-model-item>
-
-                <a-form-model-item label="早餐数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="breakfastNum">
-                    <a-input-number style="width:50%;" v-model="model.breakfastNum" :min="0"  placeholder="请填写早餐数量"/>
-                </a-form-model-item>
-
-                <a-form-model-item label="中餐数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="lunchNum">
-                    <a-input-number style="width:50%;" v-model="model.lunchNum" :min="0"  placeholder="请填写中餐数量"/>
-                </a-form-model-item>
-
-                <a-form-model-item label="晚餐数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="dinnerNum">
-                    <a-input-number style="width:50%;" v-model="model.dinnerNum" :min="0"  placeholder="请填写晚餐数量"/>
-                </a-form-model-item> -->
         </a-form-model>
 
     </j-form-container>
+    <selectGoods ref="selectGoods" @ok="selectGoodsOk" />
 </a-spin>
 </template>
 
@@ -110,6 +99,7 @@ import { getRoomPlans, getSelectList } from "@/api/api";
 import { httpAction, getAction } from "@/api/manage";
 import { validateDuplicateValue } from "@/utils/util";
 import { getUnit } from '@/api/good'
+import selectGoods from './selectGoodsModal/selectGoodsModal.vue'
 
 export default {
     name: "BusMarketMemberForm",
@@ -121,9 +111,15 @@ export default {
             required: false,
         },
     },
+    components:{
+        selectGoods
+    },
     data() {
         return {
+            stockList:[],
+            selectGoodsInfo:{},
             unitData:[],
+            isStock: false,
             options: [{
                 label: '张三',
                 value: '1'
@@ -134,13 +130,15 @@ export default {
                 goodType: '',
                 goodUnit: '',
                 barCode: '',
-                bid:null,
+                bid:0, //进价
                 name:'',
-                sellingPrice:'',
-                purchases:null,
-                salesVolume:null,
-                inventory:null,
-                appState:null
+                isStock: false,
+                sellingPrice:0, //售价
+                purchases:0, //进货量
+                salesVolume:0, //销售量
+                inventory:0, //库存量
+                appState:true,
+                stockGoodsName: '-'
             },
             labelCol: {
                 xs: {
@@ -162,27 +160,39 @@ export default {
             validatorRules: {
                 name: [{
                     required: true,
-                    message: "请输入房型!"
+                    message: "名称不能为空!"
+                }],
+                goodType: [{
+                    required: true,
+                    message: "请选择分类!"
+                }],
+                goodUnit: [{
+                    required: true,
+                    message: "请选择单位!"
+                }],
+                barCode: [{
+                    required: true,
+                    message: "条码不能为空!"
                 }],
-                marketPrice: [{
+                bid: [{
                     required: true,
-                    message: "请填写门市价!"
+                    message: "请填写价!"
                 }],
-                canLivePersonNum: [{
+                sellingPrice: [{
                     required: true,
-                    message: "请填写可住人数!"
+                    message: "请填写售价!"
                 }],
-                breakfastNum: [{
+                purchases: [{
                     required: true,
-                    message: "请填写早餐数量!"
+                    message: "请填写进货量!"
                 }],
-                lunchNum: [{
+                salesVolume: [{
                     required: true,
-                    message: "请填写中餐数量!"
+                    message: "请填写销售量!"
                 }],
-                dinnerNum: [{
+                inventory: [{
                     required: true,
-                    message: "请填写晚餐数量!"
+                    message: "请填写库存量!"
                 }],
             },
             url: {
@@ -294,6 +304,9 @@ export default {
                     if (this.model.payFlag == 0) {
                         this.model.payAmount = 0;
                     }
+                    if (this.model.isStock) {
+                        this.model.depositoryInGoodsId = this.selectGoodsInfo.id
+                    }
                     httpAction(httpurl, this.model, method)
                         .then((res) => {
                             if (res.success) {
@@ -320,6 +333,14 @@ export default {
         switchState(e){
             console.log('这是滑动按钮触发',e);
             this.model.appState = e
+        },
+        handleAdd(){
+            this.$refs.selectGoods.visible = true
+        },
+        selectGoodsOk(e){
+            this.selectGoodsInfo = e
+            this.model.stockGoodsName = e.depositoryName+ '-' +e.goodsName
+            console.log(e);
         }
     },
 };

+ 208 - 0
src/views/settings/components/roomModules/goodStock/selectGoodsModal/selectGoodsForm.vue

@@ -0,0 +1,208 @@
+<template>
+<a-card :bordered="false">
+    <!-- 查询区域 -->
+    <div class="table-page-search-wrapper">
+        <a-form layout="inline" @keyup.enter.native="searchQuery">
+            <a-row :gutter="24">
+                <a-col :span="6">
+                    <a-form-item label="">
+                        <a-input placeholder="商品名称" v-model="queryParam.goodsName"></a-input>
+                    </a-form-item>
+                </a-col>
+                <a-col :span="3">
+                    <span>
+                        <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
+                    </span>
+                </a-col>
+            </a-row>
+        </a-form>
+    </div>
+    <!-- 查询区域-END -->
+
+    <!-- table区域-begin -->
+    <div>
+        <a-table ref="table" size="middle" :scroll="{ x: true }" bordered rowKey="id" :columns="columns" :dataSource="dataSource" :pagination="ipagination" :loading="loading" class="j-table-force-nowrap" @change="handleTableChange">
+            <template slot="avatar" slot-scope="text">
+                <a-avatar v-if="text" :src="text" />
+                <a-avatar v-else icon="user" />
+            </template>
+            <template slot="imgSlot" slot-scope="text, record">
+                <span v-if="!text" style="font-size: 12px; font-style: italic">无图片</span>
+                <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width: 80px; font-size: 12px; font-style: italic" />
+            </template>
+            <template slot="fileSlot" slot-scope="text">
+                <span v-if="!text" style="font-size: 12px; font-style: italic">无文件</span>
+                <a-button v-else :ghost="true" type="primary" icon="download" size="small" @click="downloadFile(text)">
+                    下载
+                </a-button>
+            </template>
+            <span slot="action" slot-scope="text, record">
+                <a @click="handleSelect(record)">选择</a>
+            </span>
+        </a-table>
+    </div>
+</a-card>
+</template>
+
+<script>
+import "@/assets/less/TableExpand.less";
+import {
+    mixinDevice
+} from "@/utils/mixin";
+import {
+    JeecgListMixin
+} from "@/mixins/JeecgListMixin";
+import {
+    httpAction
+} from "@/api/manage";
+import {
+    getAction
+} from "@/api/manage";
+export default {
+    name: "BusMemberCardList",
+    mixins: [JeecgListMixin, mixinDevice],
+    props: {
+        supplierId: {
+            type: String,
+            default: "",
+        },
+        depositoryId: {
+            default: "",
+        },
+    },
+    data() {
+        const hotelInfo = JSON.parse(localStorage.getItem("storeInfo"));
+        return {
+            datetime: [],
+            hotelId: "",
+            num: 1,
+            description: "PickingGoodsOrder",
+            // 表头
+            columns: [{
+                    title: "商品名称",
+                    align: "center",
+                    dataIndex: "goodsName",
+                },
+                {
+                    title: "仓库名称",
+                    align: "center",
+                    dataIndex: "depositoryName",
+                },
+                {
+                    title: "商品规格",
+                    align: "center",
+                    dataIndex: "goodsSpec",
+                },
+                {
+                    title: "库存量",
+                    align: "center",
+                    dataIndex: "num",
+                },
+                {
+                    title: "单位",
+                    align: "center",
+                    dataIndex: "goodsUnitName",
+                },
+                {
+                    title: '操作',
+                    dataIndex: 'action',
+                    key: 'action',
+                    scopedSlots: {
+                        customRender: "action"
+                    },
+                    align: 'center',
+                    // fixed: "right",
+                    // width: 200,
+                }
+            ],
+            url: {
+                list: '/kc/kcDepositoryInGoods/list',
+                delete: "/kc/kcSupplierInGoods/delete",
+                deleteBatch: "/kc/kcSupplierInGoods/deleteBatch",
+                exportXlsUrl: "/kc/kcSupplierInGoods/exportXls",
+                importExcelUrl: "/kc/kcSupplierInGoods/importExcel",
+            },
+            dictOptions: {},
+            superFieldList: [],
+            orderGoodsDetailList: [],
+            selectOrderInfo: {},
+        };
+    },
+    created() {},
+    computed: {
+        importExcelUrl: function () {
+            return `${window._CONFIG["domianURL"]}/${this.url.importExcelUrl}`;
+        },
+    },
+    methods: {
+        handleSelect(row) {
+            this.$emit("ok", row);
+        },
+        submitForm() {
+            const that = this;
+            console.log(this.selectedRowKeys);
+            if (this.selectedRowKeys.length === 0) {
+                this.$message.warning("请先选择商品");
+                return;
+            }
+            let arr = this.dataSource.filter((item) => {
+                return this.selectedRowKeys.includes(item.id);
+            });
+            arr.forEach(element => {
+                element.stockNum = element.num;
+                // element.price = element.costPrice
+            });
+            arr = arr.map(ele => ({
+                ...ele,
+                name: ele.goodsName,
+                spec: ele.goodsSpec,
+                goodUnit: ele.goodsUnitName,
+            }))
+            this.$emit("ok", arr);
+            // that.confirmLoading = true;
+            // let httpurl = "/kc/kcStock/add";
+            // let method = "post";
+            // var model = {
+            //   supplierId: this.supplierId,
+            //   goodsIds: this.selectedRowKeys,
+            // };
+            // var _info = JSON.parse(localStorage.getItem("storeInfo"));
+            // if (_info) {
+            //   model.hotelId = _info.id;
+            // }
+            // httpAction(httpurl, model, method)
+            //   .then((res) => {
+            //     if (res.success) {
+            //       that.$message.success(res.message);
+            //       that.$emit("ok");
+            //     } else {
+            //       that.$message.warning(res.message);
+            //     }
+            //   })
+            //   .finally(() => {
+            //     that.confirmLoading = false;
+            //   });
+        },
+    },
+};
+</script>
+
+<style scoped>
+@import "~@assets/less/common.less";
+
+/deep/ .ant-input-search-button {
+    background-color: #ff4d4f;
+    border-color: #ff4d4f;
+}
+
+/deep/ .ant-input-search-button[disabled]:hover {
+    opacity: 0.7;
+    background-color: #ff4d4f;
+    border-color: #ff4d4f;
+}
+
+/deep/ .ant-input-search-button[disabled] {
+    opacity: 0.7;
+    color: #ffffff;
+}
+</style>

+ 60 - 0
src/views/settings/components/roomModules/goodStock/selectGoodsModal/selectGoodsModal.vue

@@ -0,0 +1,60 @@
+<template>
+<j-modal :title="title" :width="width" :visible="visible" switchFullscreen @ok="handleOk" :okButtonProps="{ class: { 'jee-hidden': disableSubmit } }" @cancel="handleCancel" cancelText="关闭">
+    <template slot="footer">
+        <a-button key="back" @click="handleCancel">
+            关闭
+        </a-button>
+        <!-- <a-button v-if="!flag" key="submit" type="primary" @click="handleOk">
+            确认
+        </a-button> -->
+    </template>
+    <picking-goods-order ref="realForm" @ok="submitCallback" :disabled="disableSubmit" :depositoryId="depositoryId"></picking-goods-order>
+</j-modal>
+</template>
+
+<script>
+import PickingGoodsOrder from "./selectGoodsForm.vue";
+export default {
+    name: "SelectGoodsModal",
+    components: {
+        PickingGoodsOrder,
+    },
+    data() {
+        return {
+            title: "",
+            width: 800,
+            visible: false,
+            disableSubmit: false,
+            depositoryId: "",
+        };
+    },
+    methods: {
+        add() {
+            this.visible = true;
+            // this.$nextTick(()=>{
+            //   this.$refs.realForm.add();
+            // })
+        },
+        edit(record) {
+            this.visible = true;
+            this.$nextTick(() => {
+                this.$refs.realForm.edit(record);
+            });
+        },
+        close() {
+            this.$emit("close");
+            this.visible = false;
+        },
+        handleOk() {
+            this.$refs.realForm.submitForm();
+        },
+        submitCallback(e) {
+            this.$emit("ok", e);
+            this.visible = false;
+        },
+        handleCancel() {
+            this.close();
+        },
+    },
+};
+</script>

+ 6 - 5
src/views/stock/stockChecks/stockChecksForm.vue

@@ -164,11 +164,12 @@ export default {
                 }, ],
             },
             // 表头
-            columns: [{
-                    title: "商品条码",
-                    align: "center",
-                    dataIndex: "code",
-                },
+            columns: [
+                // {
+                //     title: "商品条码",
+                //     align: "center",
+                //     dataIndex: "code",
+                // },
                 {
                     title: "商品名称",
                     align: "center",