Browse Source

修改桌台挂单,修改库存管理,修改账单

许智捷 2 years ago
parent
commit
e15c95ca9f
27 changed files with 736 additions and 322 deletions
  1. 1 1
      src/views/markets/modules/agreementUnit/account/accountEnterForm.vue
  2. 1 1
      src/views/markets/modules/agreementUnit/account/settlementForm.vue
  3. 5 4
      src/views/markets/modules/agreementUnit/agreementAccount.vue
  4. 2 2
      src/views/pos/diandan.vue
  5. 3 1
      src/views/pos/posInfo.vue
  6. 148 0
      src/views/pos/reserve.vue
  7. 23 2
      src/views/room/forWardFangTaiModal.vue
  8. 17 4
      src/views/room/forwardfangtai.vue
  9. 4 4
      src/views/room/leasegoods.vue
  10. 6 5
      src/views/room/membermessage.vue
  11. 15 2
      src/views/room/modules/checkIn/BillRoomForm.vue
  12. 3 3
      src/views/room/modules/checkIn/BillRoomFormModal.vue
  13. 122 12
      src/views/room/modules/checkIn/BillRoomInfo.vue
  14. 3 0
      src/views/room/modules/checkIn/EnterAccountModel.vue
  15. 2 2
      src/views/room/modules/checkIn/StrikeBalanceModel.vue
  16. 87 54
      src/views/room/modules/schedule/EditScheduleRoomForm.vue
  17. 109 109
      src/views/room/modules/schedule/ScheduleRoomForm.vue
  18. 4 22
      src/views/settings/components/roomModules/goodList.vue
  19. 45 54
      src/views/settings/components/roomModules/goodStock/goodsForm.vue
  20. 101 13
      src/views/stock/depositoryingoods.vue
  21. 6 3
      src/views/stock/index.vue
  22. 5 5
      src/views/stock/modules/DepositoryForm copy.vue
  23. 4 4
      src/views/stock/modules/DepositorySelectGoods/DepositorySelectGoods.vue
  24. 15 9
      src/views/stock/modules/SupplierInGoods.vue
  25. 2 3
      src/views/stock/modules/SupplierInGoodsModal.vue
  26. 1 1
      src/views/stock/stockChecks/stockChecksForm.vue
  27. 2 2
      src/views/stock/stockChecks/stockChecksModal.vue

+ 1 - 1
src/views/markets/modules/agreementUnit/account/accountEnterForm.vue

@@ -122,7 +122,7 @@
                 "get"
             ).then((res) => {
                 if (res.success) {
-                    this.paymentMethodList = res.result;
+                    this.paymentMethodList = res.result.filter(e => e.name !== '单位挂账')
                 }
             });
         },

+ 1 - 1
src/views/markets/modules/agreementUnit/account/settlementForm.vue

@@ -112,7 +112,7 @@
                 "get"
             ).then((res) => {
                 if (res.success) {
-                    this.paymentMethodList = res.result;
+                    this.paymentMethodList = res.result.filter(e => e.name !== '单位挂账')
                 }
             });
         },

+ 5 - 4
src/views/markets/modules/agreementUnit/agreementAccount.vue

@@ -51,7 +51,7 @@
                         已用额度
                     </div>
                     <div class="value">
-                        {{ accountModel.used }}
+                        {{ agreementUnitInfo.amountUsed }}
                     </div>
                 </a-col>
                 <a-col :span="4" class="bak_red padding_8 border_radius_10">
@@ -60,7 +60,7 @@
                     </div>
                     <div class="value" style="color: white; font-weight: 600;">
                         {{ (agreementUnitInfo.bookkeeping == null || agreementUnitInfo.bookkeeping == 0 ? '--.--' :
-                            (agreementUnitInfo.bookkeeping - accountModel.used)) }}
+                            (agreementUnitInfo.bookkeeping - agreementUnitInfo.amountUsed + agreementUnitInfo.balance)) }}
                     </div>
                 </a-col>
             </a-row>
@@ -141,7 +141,7 @@
                     @change="handleTableChange">
 
                 <template slot="projectNameSlot" slot-scope="text, record">
-                    <span v-if="record.type == 3">
+                    <span v-if="record.type == 3 && record.orderFeeId == null">
 <!--                        <a-tag color="green" @click="handleCommodityRecord(record)">-->
 <!--                            {{record.projectName}}-->
 <!--                        </a-tag>-->
@@ -199,7 +199,7 @@
                       <a>撤销</a>
                     </a-popconfirm>
                     <span v-else>
-                        <a v-if="record.type == 3" @click="handleGoodsReturn(record)">退货</a>
+                        <a v-if="record.type == 3 && record.orderFeeId == null" @click="handleGoodsReturn(record)">退货</a>
                     </span>
                 </span>
             </a-table>
@@ -503,6 +503,7 @@ export default {
             })
         },
         getAccount(){
+          debugger
             console.log(this.queryParam)
             var that = this;
             getAction(this.url.queryAgreementAccount, {

+ 2 - 2
src/views/pos/diandan.vue

@@ -51,7 +51,7 @@
 <!--          <a-button @click="addClear" :disabled="btnDisabled">清空新加</a-button>-->
         </div>
         <div v-else style="display: flex; gap: 5px; flex-flow: wrap">
-          <a-button @click="handleClear" :disabled="btnDisabled">清空</a-button>
+          <a-button v-if="posTableState === ''" @click="handleClear" :disabled="btnDisabled">清空</a-button>
           <!-- <a-button @click="handleAdd" :disabled="btnDisabled">备注</a-button> -->
           <!-- <a-button :disabled="btnDisabled">退货</a-button> -->
           <div v-if="posTableId === ''">
@@ -607,7 +607,7 @@ export default {
             // this.selectOrderInfo = {};
             // this.selectRoomOrder = {};
             this.loadGoods()
-            if (this.posTableId !== '' || this.posTableId !== null){
+            if (this.posTableId !== ''){
               this.$emit('reTable')
             }
             if (callback) {

+ 3 - 1
src/views/pos/posInfo.vue

@@ -23,6 +23,7 @@
       </a-tab-pane>
       <a-tab-pane key="6">
         <span slot="tab"> 预定 </span>
+        <reserve></reserve>
       </a-tab-pane>
     </a-tabs>
   </a-card>
@@ -34,9 +35,11 @@ import posType from './posType.vue'
 import goodsOrder from './goodsOrder.vue'
 import tablediandangallery from './tablediandangallery.vue'
 import posThali from './posThali.vue'
+import Reserve from '@views/pos/reserve'
 
 export default {
   components: {
+    Reserve,
     diandan,
     posType,
     goodsOrder,
@@ -66,7 +69,6 @@ export default {
       this.$refs.diandan.modalFormOk()
     },
     tabChange(e) {
-      debugger
       if (e !== '1') {
         this.$refs.diandan.modalFormOk()
         this.$refs.diandan.posTableId = ''

+ 148 - 0
src/views/pos/reserve.vue

@@ -0,0 +1,148 @@
+<template>
+  <div>
+    <a-card :bordered="false" class="card-pd">
+      <!-- 查询区域 -->
+      <div class="table-page-search-wrapper">
+        <a-form layout="inline">
+          <a-row :gutter="24">
+            <a-col :span="8">
+              <a-form-item label="">
+                <j-input
+                    placeholder="取餐号"
+                    v-model="queryParam.tableNo"
+                ></j-input>
+              </a-form-item>
+            </a-col>
+            <a-col :span="12">
+              <a-form-item label="">
+                <a-range-picker
+                    format="YYYY-MM-DD"
+                    :placeholder="['开始日期', '结束日期']"
+                    @change="onChange"
+                    v-model="datetime"
+                />
+              </a-form-item>
+            </a-col>
+            <a-col :span="2">
+            <span>
+              <a-button
+                  type="primary"
+                  @click=""
+                  icon="search"
+              >查询</a-button
+              >
+            </span>
+            </a-col>
+            <a-col :span="2">
+            <span>
+              <a-button
+                  type="primary"
+                  @click="addReserve"
+                  icon="add"
+              >预定</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"
+        >
+
+        </a-table>
+      </div>
+    </a-card>
+    <reserve-modal ref="reserveModal"></reserve-modal>
+  </div>
+</template>
+
+<script>
+import { JeecgListMixin } from "@/mixins/JeecgListMixin";
+import { mixinDevice } from '@/utils/mixin'
+import ReserveModal from '@views/pos/modules/ReserveModal'
+
+const columns = [
+  {
+    title: '预定单号',
+    align: 'center',
+    dataIndex: 'code'
+  },
+  {
+    title: '预订单状态',
+    align: 'center',
+    dataIndex: 'code'
+  },
+  {
+    title: '就餐时间',
+    align: 'center',
+    dataIndex: 'code'
+  },
+  {
+    title: '桌数',
+    align: 'center',
+    dataIndex: 'code'
+  },
+  {
+    title: '合计价格',
+    align: 'center',
+    dataIndex: 'code'
+  },
+  {
+    title: '定金',
+    align: 'center',
+    dataIndex: 'code'
+  },
+  {
+    title: '创建时间',
+    align: 'center',
+    dataIndex: 'code'
+  }
+]
+
+export default {
+  components: { ReserveModal },
+  mixins: [JeecgListMixin],
+  name: 'reserve',
+  data() {
+
+    return {
+      queryParam: {},
+      datetime: [],
+      columns: columns,
+    }
+  },
+  methods: {
+    onChange(e, dateString) {
+      this.queryParam.startTime = dateString[0]
+      this.queryParam.endTime = dateString[1]
+    },
+    handleTableChange() {
+
+    },
+    addReserve() {
+      this.$refs.reserveModal.edit()
+    }
+  }
+}
+
+</script>
+
+<style scoped>
+@import "~@assets/less/common.less";
+
+</style>

+ 23 - 2
src/views/room/forWardFangTaiModal.vue

@@ -19,10 +19,13 @@
     </div>
     <a-table ref="table" size="middle" bordered rowKey="id" :columns="columns" :dataSource="tableData" class="j-table-force-nowrap">
         <template slot="orderNo" slot-scope="text, record">
-            <a href="#" @click="orderDetail(text)">{{text.orderNo}}</a>
+          <span v-if="record.isRepair || record.isLock">--</span>
+          <a v-else href="#" @click="orderDetail(text)">{{text.orderNo}}</a>
         </template>
         <template slot="status" slot-scope="text, record">
-            {{record.isLiving==0?'预定房':'在住房'}}
+          <span v-if="record.isRepair">维修中</span>
+          <span v-else-if="record.isLock">锁房中</span>
+          <span v-else>{{record.isLiving==0?'预定房':'在住房'}}</span>
             <!-- {{text}} -->
         </template>
     </a-table>
@@ -75,6 +78,12 @@ export default {
                     title: "客人姓名",
                     align: "center",
                     dataIndex: "customerName",
+                    customRender: function (text, record) {
+                      if (record.customerName == null) {
+                        return '--'
+                      }
+                      return text
+                    }
                 },
                 {
                     title: "房间类型",
@@ -93,11 +102,23 @@ export default {
                     title: "入住时间",
                     align: "center",
                     dataIndex: "arrivalTime",
+                    customRender: function (text, record) {
+                      if (record.arrivalTime == null) {
+                        return '--'
+                      }
+                      return text
+                    }
                 },
                 {
                     title: "预离时间",
                     align: "center",
                     dataIndex: "dueOutTime",
+                    customRender: function (text, record) {
+                      if (record.dueOutTime == null) {
+                        return '--'
+                      }
+                      return text
+                    }
                 },
             ]
         }

+ 17 - 4
src/views/room/forwardfangtai.vue

@@ -1,7 +1,7 @@
 <template>
-  <a-card :bordered="false">
+  <a-card :bordered="false" style="" :body-style='{paddingTop:15}'>
     <!-- 查询区域 -->
-    <div class="table-page-search-wrapper">
+    <div class="table-page-search-wrapper" >
       <a-form layout="inline" @keyup.enter.native="searchQuery">
         <a-row :gutter="24">
           <a-col :span="6">
@@ -35,6 +35,19 @@
               > -->
             </span>
           </a-col>
+          <a-col :span="7" style="float: right">
+            <div>
+              <span style="font-weight: bold; font-size: small">
+                注: 1/2/10 表示 当日预离1间 占用房2间 可用房10间
+              </span><br/>
+              <span style="font-weight: bold; font-size: small">
+                占用房 = 在住房+预定房+自用房+维修房 + 预离房(可选) + 锁房
+              </span><br/>
+              <span style="font-weight: bold; font-size: small">
+                可用房 = 总房 - 占用房
+              </span>
+            </div>
+          </a-col>
         </a-row>
       </a-form>
     </div>
@@ -223,7 +236,7 @@ export default {
                 return []
             }
             let arr = Object.keys(this.dataSource[0])
-            let brr = [] 
+            let brr = []
             arr = arr.filter(item => item != 'layout_name' && item != 'flag' && item != 'data' && item!='count')
             let sum = 0
             console.log(arr);
@@ -444,4 +457,4 @@ export default {
     position: relative;
     z-index: 2;
 }
-</style>
+</style>

+ 4 - 4
src/views/room/leasegoods.vue

@@ -99,7 +99,7 @@
           </a-button>
         </template> -->
 
-        
+
         <template v-for="col in columns.map(item=> item.dataIndex )" :slot="col" slot-scope="text, record, index">
           <div :key="col">
             <a-input
@@ -310,8 +310,8 @@ export default {
   },
   created() {
     getAction("/business/busRoomBookingOrders/living-orders?status=-1", {
-      pageNo: 1,
-      pageSize: 99999,
+      current: 1,
+      size: 99999,
     }).then((res) => {
       if (res.success) {
         this.roomsList = res.result.records;
@@ -531,4 +531,4 @@ export default {
 .table-remake /deep/.ant-table-placeholder{
   margin-top: -320px;
 }
-</style>
+</style>

+ 6 - 5
src/views/room/membermessage.vue

@@ -182,9 +182,9 @@
         </template>
 
         <!-- <span slot="action" slot-scope="text, record">
-          
+
         </span> -->
-        
+
       </a-table>
     </div>
 
@@ -302,8 +302,8 @@ export default {
   created() {
     this.getSuperFieldList();
     getAction("/business/busRoomBookingOrders/living-orders?status=-1", {
-      pageNo: 1,
-      pageSize: 99999,
+      current: 1,
+      size: 99999,
     }).then((res) => {
       if (res.success) {
         this.roomsList = res.result.records;
@@ -406,6 +406,7 @@ export default {
 
 
     handleAdd() {
+      console.log(this.roomsList)
       // this.$refs.modalForm.add(this.livingOrderId);
       // this.$refs.modalForm.title = "新增";
       // this.$refs.modalForm.disableSubmit = false;
@@ -502,4 +503,4 @@ export default {
 .table-remake /deep/.ant-table-placeholder{
   margin-top: -320px;
 }
-</style>
+</style>

+ 15 - 2
src/views/room/modules/checkIn/BillRoomForm.vue

@@ -2048,6 +2048,7 @@ export default {
 
     // 根据传入的数字将日期加上对应的天数
     addDate(date, days) {
+      debugger
       // console.log(date, days);
       let time = new Date(date)
       time.setDate(time.getDate() + days)
@@ -2767,13 +2768,20 @@ export default {
           return ''
       }
     },
-    addList(roomLiveList, key) {
+    addList(roomLiveList, key, orderInfo) {
       console.log('roomLiveList', roomLiveList)
       this.modelDefault = Object.assign({}, this.modelDefault, {
         roomIds: JSON.parse(JSON.stringify(roomLiveList))
       })
       this.modelDefault.orderInfo.bookingOrdersType = key
       this.model.orderInfo.bookingOrdersType = key
+      if (roomLiveList[0].bookingOrderId != null){
+        this.$set(orderInfo, 'id', roomLiveList[0].bookingOrderId)
+        debugger
+
+        this.modelDefault.orderInfo = orderInfo
+        this.model.orderInfo = orderInfo
+      }
       this.edit(this.modelDefault)
     },
     async edit(record) {
@@ -2926,6 +2934,7 @@ export default {
           // }
           // roomIndex++;
         })
+        console.log(this.model,123)
         this.model.roomPrices = [...this.model.roomPrices, ...roomPrices]
         if (this.roomListCopy.length == 0) {
           this.roomListCopy = JSON.parse(JSON.stringify(this.model.roomPrices))
@@ -3051,8 +3060,12 @@ export default {
         let idx
         idx = that.model.roomPrices.findIndex((item) => item.roomId == t.id)
         info = JSON.parse(JSON.stringify(that.model.orderInfo))
-        info.dueOutTime = that.addDate(info.arrivalTime2, that.model.roomPrices[idx].day) + ' ' + moment(that.model.orderInfo.dueOutTimeSpan).format('HH:mm')
+        console.log(info,"info")
+        debugger
+        // 第一行不知道干嘛的,不过加上会导致钟点房的居住订单的预离时间多一天
+        // info.dueOutTime = that.addDate(info.arrivalTime2, that.model.roomPrices[idx].day) + ' ' + moment(that.model.orderInfo.dueOutTimeSpan).format('HH:mm')
         // info.dueOutTime = that.model.roomPrices[idx].editPriceTime[that.model.roomPrices[idx].editPriceTime.length-1] + " " + moment(that.model.orderInfo.dueOutTimeSpan).format("HH:mm")
+        info.dueOutTime = moment(that.model.orderInfo.dueOutTimeSpan).format('yyyy-MM-DD HH:mm')
         t.roomOrderInfo = info
         t.roomOrderInfo.customerSource = t.customerSource
         t.roomId = t.id

+ 3 - 3
src/views/room/modules/checkIn/BillRoomFormModal.vue

@@ -36,10 +36,10 @@ export default {
         this.$refs.realForm.add2(record);
       });
     },
-    addList(record,key) {
+    addList(record,key,orderInfo) {
       this.visible = true;
       this.$nextTick(() => {
-        this.$refs.realForm.addList(record,key);
+        this.$refs.realForm.addList(record,key,orderInfo);
       });
     },
     edit(record) {
@@ -89,4 +89,4 @@ export default {
     border-radius: 5px;
   }
 }
-</style>
+</style>

+ 122 - 12
src/views/room/modules/checkIn/BillRoomInfo.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <div style="display: flex; gap: 15px">
+    <div class="tab_height" style="display: flex; gap: 15px">
       <div style="width: 37%">
         <div style="display: flex; justify-content: space-between">
           <h4
@@ -459,9 +459,35 @@
             text-align: right;
           "
             >
-              合计消费:{{ paidMoney }}
+              合计消费:{{ paidAmount }}
             </div>
           </a-tab-pane>
+          <a-tab-pane tab="冲账单" key="3">
+            <a-table
+                :columns="strikeColumns"
+                :data-source="strikeList"
+                :pagination="false"
+                :scroll="{ y: 160 }"
+                rowKey="id"
+            >
+              <template slot="subjectType" slot-scope="text, record, index">
+                {{ getSubjectTypeText(text,record) }}
+              </template>
+              <template slot="roomId" slot-scope="text, record, index">
+                {{ getRoomName(text) }}
+              </template>
+            </a-table>
+            <div
+                style="
+            color: rgba(255, 87, 51, 1);
+            font-weight: 600;
+            text-align: right;
+          "
+            >
+              合计冲账:{{ strikeAmount }}
+            </div>
+          </a-tab-pane>
+
         </a-tabs>
         <div
           style="
@@ -696,7 +722,7 @@ const columns = [
   },
   {
     title: '单价',
-    dataIndex: 'money',
+    // dataIndex: 'money',
     width: 67,
     align: 'center',
     customRender: function (text, record) {
@@ -761,6 +787,43 @@ const columns2 = [
     // width: 60,
   }
 ]
+
+const strikeColumns = [
+  {
+    title: '房间号',
+    dataIndex: 'roomId',
+    width: 80,
+    align: 'center',
+    scopedSlots: { customRender: 'roomId' }
+  },
+  {
+    title: '费项',
+    dataIndex: 'subjectType',
+    width: 150,
+    align: 'center',
+    scopedSlots: { customRender: 'subjectType' }
+  },
+  {
+    title: '冲账日期',
+    dataIndex: 'dayTime',
+    width: 110,
+    align: 'center',
+    customRender: function (text, record) {
+      if (text !== null && text !== '') {
+        return record.dayTime.substring(0, 10)
+      }
+    }
+  },
+  {
+    title: '冲账金额',
+    align: 'center',
+    dataIndex: 'money',
+    width: 67,
+    customRender: function (text, record) {
+      return -record.money
+    }
+  }
+]
 const data = []
 for (let i = 0; i < 100; i++) {
   data.push({
@@ -828,6 +891,7 @@ export default {
       columns,
       data2,
       columns2,
+      strikeColumns,
       wakeList: [{}],
       model: {
         // data: data,
@@ -866,9 +930,11 @@ export default {
       oldfeesList: [],
       paymentList: [],
       oldpaymentList: [],
-      payTypeList: [],
       paidList: [],
-      paidMoney: 0,
+      oldpaidList: [],
+      strikeList: [],
+      oldStrikeList: [],
+      payTypeList: [],
       active: 1,
       vipCustomer: {},
       selectRoomId: '1',
@@ -892,6 +958,16 @@ export default {
         return total + item.money
       }, 0)
     },
+    paidAmount() {
+      return this.paidList.reduce(function (total, item) {
+        return total + item.money
+      }, 0)
+    },
+    strikeAmount() {
+      return this.strikeList.reduce(function (total, item) {
+        return total - item.money
+      }, 0)
+    },
     paymentAmount() {
       return this.paymentList.reduce(function (total, item) {
         return total + item.money
@@ -1267,7 +1343,7 @@ export default {
           })
       }
       this.$refs.modalLeaseGoods.add()
-      this.$refs.modalLeaseGoods.title = '客人留言'
+      this.$refs.modalLeaseGoods.title = '物品借用'
       this.$refs.modalLeaseGoods.disableSubmit = false
       this.$refs.modalLeaseGoods.livingOrderId = livingOrderId // find.livingOrder.id;
     },
@@ -1308,6 +1384,7 @@ export default {
     //     }
     //   })
     // },
+    // 部分结账
     partialSettle() {
       var list2 = this.feesList.filter((t) =>
         this.consumSelectedRowKeys.includes(t.id)
@@ -1345,9 +1422,13 @@ export default {
       if (e == '1') {
         this.feesList = this.oldfeesList
         this.paymentList = this.oldpaymentList
+        this.paidList = this.oldpaidList
+        this.strikeList = this.oldStrikeList
       } else {
         this.feesList = this.oldfeesList.filter((t) => t.roomId === e)
         this.paymentList = this.oldpaymentList.filter((t) => t.roomId === e)
+        this.paidList = this.oldpaidList.filter((t) => t.roomId === e)
+        this.strikeList = this.oldStrikeList.filter((t) => t.roomId === e)
         let find = this.model.livingRoomIds.find((t) => t.roomId === this.selectRoomId)
         this.chooseLivingRoom = find
         console.log(this.model)
@@ -1501,20 +1582,26 @@ export default {
           this.selectRoomId = this.tabSelectRoomId
           this.model = res.result
           this.getWakeServiceData()
+          // 查询冲账账单
+          this.loadStrikeDate()
+          // 查询账单
           getAction('/business/busRoomBookingOrders/living-fees', {
             bookingOrderId: this.model.orderInfo.id,
             isAllFee: true
           }).then((res) => {
             if (res.success) {
               if (res.result && res.result.length > 0) {
+                // 未支付的费用账单,oldfeesList用于存放所有费用账单,feesList为当前房间账单
                 this.feesList = res.result.filter((t) => t.feeType === 1 && t.preferentialStatus === 1)
                 this.oldfeesList = JSON.parse(JSON.stringify(this.feesList))
-                this.tabChange(this.tabSelectRoomId)
+                // 已支付的消费
+                this.paidList = res.result.filter((t) => t.feeType === 1 && t.preferentialStatus === 2 && !t.isPreferential)
+                this.oldpaidList = JSON.parse(JSON.stringify(this.paidList))
+                // 收费账单
                 this.paymentList = res.result.filter((t) => t.feeType === 2 && t.preferentialStatus === 1)
                 this.oldpaymentList = JSON.parse(JSON.stringify(this.paymentList))
-                // 已付款的消费
-                this.paidList = res.result.filter((t) => t.feeType === 1 && t.preferentialStatus === 2 && !t.isPreferential)
-                this.paidMoney = this.feesList.reduce(function (total, item) { return total + item.money }, 0)
+                // 按当前选中房间过滤出费用
+                this.tabChange(this.tabSelectRoomId)
               }
             }
           })
@@ -1524,7 +1611,23 @@ export default {
         }
       })
     },
-    tabFeeChange(){
+    // 获取冲账单
+    loadStrikeDate() {
+      getAction('/business/busOrderFee/strike-balance-page', { bookingOrderId: this.model.orderInfo.id })
+          .then(res => {
+            if (res.success) {
+              debugger
+              if (res.result && res.result.records.length > 0) {
+                // 未支付的费用账单,oldfeesList用于存放所有费用账单,feesList为当前房间账单
+                this.strikeList = res.result.records
+                this.oldStrikeList = JSON.parse(JSON.stringify(this.strikeList))
+                console.log(this.strikeList,'123')
+                this.tabChange(this.tabSelectRoomId)
+              }
+            }
+          })
+    },
+    tabFeeChange() {
       // this.
     },
     onSelectChange(selectedRowKeys, selectionRows) {
@@ -1547,7 +1650,8 @@ export default {
           map.set(e.roomId, e.roomName)
         }
       })
-      this.$refs.modalStrikeBalanceForm.edit(this.feesList, map)
+      let fees = JSON.parse(JSON.stringify(this.feesList));
+      this.$refs.modalStrikeBalanceForm.edit(fees, map)
       this.$refs.modalStrikeBalanceForm.title = '冲账'
     },
     enterAccount() {
@@ -1724,6 +1828,12 @@ export default {
   }
 }
 </script>
+<style>
+.tab_height .ant-table-wrapper{
+  height: auto !important;
+}
+</style>
+
 <style scoped>
 /deep/ .ant-btn-link {
   flex: 1;

+ 3 - 0
src/views/room/modules/checkIn/EnterAccountModel.vue

@@ -117,11 +117,14 @@ export default {
   methods: {
     add (record) {
       let modelList = []
+      console.log(record)
+      debugger
       record.forEach(e => {
         let model = {
           roomId: e.roomId,
           roomName: e.roomName,
           remark: '',
+          contactId: e.livingCustomers[0].customerId,
           livingOrderId: e.livingOrder.id,
           feeType: 2,
           vipCardId: e.livingOrder.vipCustomerId,

+ 2 - 2
src/views/room/modules/checkIn/StrikeBalanceModel.vue

@@ -104,8 +104,8 @@ export default {
     },
     handleOk() {
       let fees = []
-      if (this.feesList.some(e => e.money > e.oldPrice)) {
-        this.$message.warning('冲账金额不能超过原金额')
+      if (this.feesList.some(e => e.money > e.oldPrice || e.money < 0)) {
+        this.$message.warning('冲账金额不能超过原金额,且不能小于0')
         return
       } else {
         this.feesList.forEach(e => {

+ 87 - 54
src/views/room/modules/schedule/EditScheduleRoomForm.vue

@@ -218,42 +218,42 @@
                   </a-select>
                 </a-form-model-item>
               </a-col>
-              <a-col :span="24">
-                <a-form-model-item
-                  label="客人类型"
-                  :labelCol="labelCol"
-                  :wrapperCol="wrapperCol"
-                  prop="orderInfo.customerType"
-                >
-                  <a-select
-                    :disabled="disabled"
-                    placeholder="客人类型"
-                    v-model="model.orderInfo.customerType"
-                  >
-                    <a-select-option :value="1"> 散客 </a-select-option>
-                    <a-select-option :value="2"> 会员 </a-select-option>
-                    <a-select-option :value="3"> 协议单位 </a-select-option>
-                    <a-select-option :value="4"> 中介 </a-select-option>
-                  </a-select>
-                </a-form-model-item>
-              </a-col>
-              <a-col :span="24" v-if="model.orderInfo.bookingType === 1">
-                <a-form-model-item
-                  label="房价方案"
-                  :labelCol="labelCol"
-                  :wrapperCol="wrapperCol"
-                  prop="orderInfo.roomPriceSlnId"
-                >
-                  <a-select
-                    :disabled="disabled"
-                    placeholder="房价方案"
-                    v-model="model.orderInfo.roomPriceSlnId"
-                  >
-                    <a-select-option value="会员价"> 会员价 </a-select-option>
-                    <a-select-option value="平日价"> 平日价 </a-select-option>
-                  </a-select>
-                </a-form-model-item>
-              </a-col>
+<!--              <a-col :span="24">-->
+<!--                <a-form-model-item-->
+<!--                  label="客人类型"-->
+<!--                  :labelCol="labelCol"-->
+<!--                  :wrapperCol="wrapperCol"-->
+<!--                  prop="orderInfo.customerType"-->
+<!--                >-->
+<!--                  <a-select-->
+<!--                    :disabled="disabled"-->
+<!--                    placeholder="客人类型"-->
+<!--                    v-model="model.orderInfo.customerType"-->
+<!--                  >-->
+<!--                    <a-select-option :value="1"> 散客 </a-select-option>-->
+<!--                    <a-select-option :value="2"> 会员 </a-select-option>-->
+<!--                    <a-select-option :value="3"> 协议单位 </a-select-option>-->
+<!--                    <a-select-option :value="4"> 中介 </a-select-option>-->
+<!--                  </a-select>-->
+<!--                </a-form-model-item>-->
+<!--              </a-col>-->
+<!--              <a-col :span="24" v-if="model.orderInfo.bookingType === 1">-->
+<!--                <a-form-model-item-->
+<!--                  label="房价方案"-->
+<!--                  :labelCol="labelCol"-->
+<!--                  :wrapperCol="wrapperCol"-->
+<!--                  prop="orderInfo.roomPriceSlnId"-->
+<!--                >-->
+<!--                  <a-select-->
+<!--                    :disabled="disabled"-->
+<!--                    placeholder="房价方案"-->
+<!--                    v-model="model.orderInfo.roomPriceSlnId"-->
+<!--                  >-->
+<!--                    <a-select-option value="会员价"> 会员价 </a-select-option>-->
+<!--                    <a-select-option value="平日价"> 平日价 </a-select-option>-->
+<!--                  </a-select>-->
+<!--                </a-form-model-item>-->
+<!--              </a-col>-->
               <h4 style="color: rgba(255, 141, 26, 1); font-weight: 600">
                 其他信息
               </h4>
@@ -539,8 +539,12 @@
     ></select-room-form-modal>
     <customer-modal
       ref="modalCustomerForm"
-      @ok="modalCustomerFormOk"
+      @ok=""
     ></customer-modal>
+    <bill-room-form-modal
+        ref="ModalBillRoomForm"
+        @ok="modalBillRoomFormOk"
+    ></bill-room-form-modal>
   </a-spin>
 </template>
 
@@ -551,6 +555,7 @@ import moment from "moment";
 import EditableCell from "@views/room/modules/checkIn/EditableCell.vue";
 import SelectRoomFormModal from "./SelectRoomFormModal.vue";
 import CustomerModal from "@views/room/modules/customer/CustomerModal.vue";
+import BillRoomFormModal from '@views/room/modules/checkIn/BillRoomFormModal'
 const date = new Date();
 const endDate = new Date(date.setDate(date.getDate() + 1));
 const columns = [
@@ -581,6 +586,13 @@ const columns = [
     },
   },
   {
+    title: "押金",
+    dataIndex: "roomName",
+    customRender: function (text, record) {
+      return 100
+    }
+  },
+  {
     title: "操作",
     dataIndex: "action",
     align: "center",
@@ -603,7 +615,7 @@ for (let i = 0; i < 2; i++) {
 }
 export default {
   name: "ScheduleRoomForm",
-  components: { EditableCell, SelectRoomFormModal, CustomerModal },
+  components: { BillRoomFormModal, EditableCell, SelectRoomFormModal, CustomerModal },
   props: {
     //表单禁用
     disabled2: {
@@ -713,9 +725,9 @@ export default {
         "orderInfo.bookingDicWay": [
           { required: true, message: "请选择预定方式!" },
         ],
-        "orderInfo.customerType": [
-          { required: true, message: "请选择客人类型!" },
-        ],
+        // "orderInfo.customerType": [
+        //   { required: true, message: "请选择客人类型!" },
+        // ],
         contactName: [{ required: true, message: "请输入联系人!" }],
         phone: [{ required: true, message: "请输入电话!" }],
       },
@@ -1119,23 +1131,44 @@ export default {
       });
     },
     addCustomer(record) {
+      console.log(record,'record')
       if (!record.roomId) {
         this.$message.warning("请先排房");
         return;
       }
-      this.$refs.modalCustomerForm.edit({
-        customerName: this.model.contactName,
-        phone: this.model.phone,
-        roomId: record.roomId,
-        gender: 1,
-        certType: 1,
-        bookingRoomId: record.id,
-        customerId: this.model.orderInfo.contactId,
-      });
-      this.$refs.modalCustomerForm.title = "添加同住";
-      this.$refs.modalCustomerForm.disableSubmit = false;
+      //  this.$refs.modalCustomerForm.edit({
+      //   customerName: this.model.contactName,
+      //   phone: this.model.phone,
+      //   roomId: record.roomId,
+      //   gender: 1,
+      //   certType: 1,
+      //   bookingRoomId: record.id,
+      //   customerId: this.model.orderInfo.contactId,
+      // });
+      // this.$refs.modalCustomerForm.title = "添加同住";
+      // this.$refs.modalCustomerForm.disableSubmit = false;
+      // console.log(this.model)
+      let roomInfo = []
+      this.model.roomIds.forEach(e => {
+        let param = {
+          id: e.roomId,
+          bookingOrdersNo: this.id,
+          bookingOrderId: e.bookingOrdersId,
+          layoutId: e.roomLayoutId,
+          name: e.roomName,
+          marketPrice: e.layoutDayPrices[0].price,
+          key1: this.model.contactName,
+          key5: this.model.phone
+        }
+        roomInfo.push(param)
+      })
+
+      this.$refs.ModalBillRoomForm.addList(roomInfo, '1', this.model.orderInfo)
+      this.$refs.ModalBillRoomForm.title =
+          e.key == '1' ? '散客入住登记' : '团队入住登记'
+      this.$refs.ModalBillRoomForm.disableSubmit = false
     },
-    modalCustomerFormOk() {
+    modalBillRoomFormOk() {
       this.getBookingOrderInfo();
     },
     setMain(id) {
@@ -1345,4 +1378,4 @@ export default {
   line-height: 16px;
   display: inline-block;
 }
-</style>
+</style>

+ 109 - 109
src/views/room/modules/schedule/ScheduleRoomForm.vue

@@ -80,108 +80,108 @@
                   </a-select>
                 </a-form-model-item>
               </a-col>
-              <a-col :span="24">
-                <a-form-model-item label="客人类型" :labelCol="labelCol" :wrapperCol="wrapperCol"
-                  prop="orderInfo.customerType">
-                  <a-select placeholder="客人类型" v-model="model.orderInfo.customerType" @change="customerTypeChange">
-                    <a-select-option :value="1"> 散客 </a-select-option>
-                    <a-select-option :value="2"> 会员 </a-select-option>
-                    <a-select-option :value="3"> 协议单位 </a-select-option>
-                    <a-select-option :value="4"> 中介 </a-select-option>
-                  </a-select>
-                </a-form-model-item>
-              </a-col>
-              <a-col :span="24" v-if="model.orderInfo.customerType === 3">
-                  <!-- <a-form-model-item
-                    label="协议合同"
-                    :labelCol="labelCol"
-                    :wrapperCol="wrapperCol"
-                    prop="orderInfo.contractTeamProtocolId"
-                  >
-                    <span style="color:red;cursor: pointer;" @click="showAgreementUnitTable(model.orderInfo.contractTeamId)">{{ model.orderInfo.contractTeamProtocolName }}</span>
-                  </a-form-model-item> -->
-                  <a-card :bordered="true" style="width: 130%;padding: 0 !important;">
-                    <a-row>
-                      <a-col :span="12">
-                        <a-form-model-item
-                    label="协议单位"
-                    :labelCol="labelCol"
-                    :wrapperCol="wrapperCol"
-                    prop="orderInfo.contractTeamId"
-                  >
-                        <a-auto-complete v-model="agreementUnitData.customerName" @select="(e)=>handleSelectAgreementUnit(e)" @search="handleSearchAgreementUnit">
-                      <template slot="dataSource">
-                        <a-select-option
-                        :key="item.id"
-                        :value="item.id"
-                        :label="item.customerName"
-                        v-for="(item, index) in busMarketAgreementUnitList"
-                      >
-                      {{ item.customerName }}
-                      </a-select-option>
-                      </template>
-                    </a-auto-complete>
-                    </a-form-model-item>
-                      </a-col>
-                      <a-col :span="12">
-                        <a-form-model-item
-                    label="协议合同"
-                    :labelCol="labelCol"
-                    :wrapperCol="wrapperCol"
-                    prop="orderInfo.contractTeamProtocolId"
-                  >
-                    <span style="color:red;cursor: pointer;" @click="showAgreementUnitTable(model.orderInfo.contractTeamId)">{{ model.orderInfo.contractTeamProtocolName }}</span>
-                  </a-form-model-item>
-                        </a-col>
-                    </a-row>
-                      <p>
-                        <a-row>
-                          <a-col :span="12">名称:{{ agreementUnitData.customerName }}</a-col>
-                          <a-col :span="12">签约开始日期:{{ busMarketAgreementCustomer.signTime }}</a-col>
-                          <a-col :span="12">签约结束日期:{{ busMarketAgreementCustomer.effective }}</a-col>
-                          <a-col :span="12">可用额度:{{ agreementUnitData.balance||0 }}</a-col>
-                        </a-row>
-                      </p>
-                    </a-card>
-                </a-col>
-              <a-col :span="24" v-if="model.orderInfo.customerType == 2">
-                <a-card :bordered="true" style="width: 100%;padding: 0 !important;">
-                  <p>
-                    <a-form-model-item label="选择会员" :labelCol="labelCol" :wrapperCol="wrapperCol"
-                      prop="orderInfo.vipCustomerId">
-                      <a-auto-complete v-model="vipInfo.name" placeholder="选择会员" @search="handleVipSearch"
-                        @select="(e) => handleSelectVipMember(e)">
-                        <template slot="dataSource">
-                          <a-select-option v-for="item in vipList" :key="item.id">{{ item.name }}-{{ item.mobile
-                          }}</a-select-option>
-                        </template>
-                      </a-auto-complete>
-                    </a-form-model-item>
-                  </p>
-                  <p>
-                    <a-row>
-                      <a-col :span="8">名称:{{ vipInfo.name }}</a-col>
-                      <a-col :span="8">电话:{{ vipInfo.mobile }}</a-col>
-                      <a-col :span="8">级别:{{ vipInfo.gradeName }}</a-col>
-                    </a-row>
-                    <a-row>
-                      <a-col :span="8">余额:{{ vipInfo.balance }}</a-col>
-                      <a-col :span="8">积分:{{ vipInfo.integral }}</a-col>
-                      <a-col :span="8">卡号:{{ vipInfo.cardNo }}</a-col>
-                    </a-row>
-                  </p>
-                </a-card>
+<!--              <a-col :span="24">-->
+<!--                <a-form-model-item label="客人类型" :labelCol="labelCol" :wrapperCol="wrapperCol"-->
+<!--                  prop="orderInfo.customerType">-->
+<!--                  <a-select placeholder="客人类型" v-model="model.orderInfo.customerType" @change="customerTypeChange">-->
+<!--                    <a-select-option :value="1"> 散客 </a-select-option>-->
+<!--                    <a-select-option :value="2"> 会员 </a-select-option>-->
+<!--                    <a-select-option :value="3"> 协议单位 </a-select-option>-->
+<!--                    <a-select-option :value="4"> 中介 </a-select-option>-->
+<!--                  </a-select>-->
+<!--                </a-form-model-item>-->
+<!--              </a-col>-->
+<!--              <a-col :span="24" v-if="model.orderInfo.customerType === 3">-->
+<!--                  &lt;!&ndash; <a-form-model-item-->
+<!--                    label="协议合同"-->
+<!--                    :labelCol="labelCol"-->
+<!--                    :wrapperCol="wrapperCol"-->
+<!--                    prop="orderInfo.contractTeamProtocolId"-->
+<!--                  >-->
+<!--                    <span style="color:red;cursor: pointer;" @click="showAgreementUnitTable(model.orderInfo.contractTeamId)">{{ model.orderInfo.contractTeamProtocolName }}</span>-->
+<!--                  </a-form-model-item> &ndash;&gt;-->
+<!--                  <a-card :bordered="true" style="width: 130%;padding: 0 !important;">-->
+<!--                    <a-row>-->
+<!--                      <a-col :span="12">-->
+<!--                        <a-form-model-item-->
+<!--                    label="协议单位"-->
+<!--                    :labelCol="labelCol"-->
+<!--                    :wrapperCol="wrapperCol"-->
+<!--                    prop="orderInfo.contractTeamId"-->
+<!--                  >-->
+<!--                        <a-auto-complete v-model="agreementUnitData.customerName" @select="(e)=>handleSelectAgreementUnit(e)" @search="handleSearchAgreementUnit">-->
+<!--                      <template slot="dataSource">-->
+<!--                        <a-select-option-->
+<!--                        :key="item.id"-->
+<!--                        :value="item.id"-->
+<!--                        :label="item.customerName"-->
+<!--                        v-for="(item, index) in busMarketAgreementUnitList"-->
+<!--                      >-->
+<!--                      {{ item.customerName }}-->
+<!--                      </a-select-option>-->
+<!--                      </template>-->
+<!--                    </a-auto-complete>-->
+<!--                    </a-form-model-item>-->
+<!--                      </a-col>-->
+<!--                      <a-col :span="12">-->
+<!--                        <a-form-model-item-->
+<!--                    label="协议合同"-->
+<!--                    :labelCol="labelCol"-->
+<!--                    :wrapperCol="wrapperCol"-->
+<!--                    prop="orderInfo.contractTeamProtocolId"-->
+<!--                  >-->
+<!--                    <span style="color:red;cursor: pointer;" @click="showAgreementUnitTable(model.orderInfo.contractTeamId)">{{ model.orderInfo.contractTeamProtocolName }}</span>-->
+<!--                  </a-form-model-item>-->
+<!--                        </a-col>-->
+<!--                    </a-row>-->
+<!--                      <p>-->
+<!--                        <a-row>-->
+<!--                          <a-col :span="12">名称:{{ agreementUnitData.customerName }}</a-col>-->
+<!--                          <a-col :span="12">签约开始日期:{{ busMarketAgreementCustomer.signTime }}</a-col>-->
+<!--                          <a-col :span="12">签约结束日期:{{ busMarketAgreementCustomer.effective }}</a-col>-->
+<!--                          <a-col :span="12">可用额度:{{ agreementUnitData.balance||0 }}</a-col>-->
+<!--                        </a-row>-->
+<!--                      </p>-->
+<!--                    </a-card>-->
+<!--                </a-col>-->
+<!--              <a-col :span="24" v-if="model.orderInfo.customerType == 2">-->
+<!--                <a-card :bordered="true" style="width: 100%;padding: 0 !important;">-->
+<!--                  <p>-->
+<!--                    <a-form-model-item label="选择会员" :labelCol="labelCol" :wrapperCol="wrapperCol"-->
+<!--                      prop="orderInfo.vipCustomerId">-->
+<!--                      <a-auto-complete v-model="vipInfo.name" placeholder="选择会员" @search="handleVipSearch"-->
+<!--                        @select="(e) => handleSelectVipMember(e)">-->
+<!--                        <template slot="dataSource">-->
+<!--                          <a-select-option v-for="item in vipList" :key="item.id">{{ item.name }}-{{ item.mobile-->
+<!--                          }}</a-select-option>-->
+<!--                        </template>-->
+<!--                      </a-auto-complete>-->
+<!--                    </a-form-model-item>-->
+<!--                  </p>-->
+<!--                  <p>-->
+<!--                    <a-row>-->
+<!--                      <a-col :span="8">名称:{{ vipInfo.name }}</a-col>-->
+<!--                      <a-col :span="8">电话:{{ vipInfo.mobile }}</a-col>-->
+<!--                      <a-col :span="8">级别:{{ vipInfo.gradeName }}</a-col>-->
+<!--                    </a-row>-->
+<!--                    <a-row>-->
+<!--                      <a-col :span="8">余额:{{ vipInfo.balance }}</a-col>-->
+<!--                      <a-col :span="8">积分:{{ vipInfo.integral }}</a-col>-->
+<!--                      <a-col :span="8">卡号:{{ vipInfo.cardNo }}</a-col>-->
+<!--                    </a-row>-->
+<!--                  </p>-->
+<!--                </a-card>-->
 
-              </a-col>
-              <a-col :span="24" v-if="model.orderInfo.bookingType === 1">
-                <a-form-model-item label="房价方案" :labelCol="labelCol" :wrapperCol="wrapperCol"
-                  prop="orderInfo.roomPriceSlnId">
-                  <a-select placeholder="房价方案" v-model="model.orderInfo.roomPriceSlnId">
-                    <a-select-option value="会员价"> 会员价 </a-select-option>
-                    <a-select-option value="平日价"> 平日价 </a-select-option>
-                  </a-select>
-                </a-form-model-item>
-              </a-col>
+<!--              </a-col>-->
+<!--              <a-col :span="24" v-if="model.orderInfo.bookingType === 1">-->
+<!--                <a-form-model-item label="房价方案" :labelCol="labelCol" :wrapperCol="wrapperCol"-->
+<!--                  prop="orderInfo.roomPriceSlnId">-->
+<!--                  <a-select placeholder="房价方案" v-model="model.orderInfo.roomPriceSlnId">-->
+<!--                    <a-select-option value="会员价"> 会员价 </a-select-option>-->
+<!--                    <a-select-option value="平日价"> 平日价 </a-select-option>-->
+<!--                  </a-select>-->
+<!--                </a-form-model-item>-->
+<!--              </a-col>-->
               <h4 style="color: rgba(255, 141, 26, 1); font-weight: 600">
                 其他信息
               </h4>
@@ -450,9 +450,9 @@ export default {
         "orderInfo.bookingDicWay": [
           { required: true, message: "请选择预定方式!" },
         ],
-        "orderInfo.customerType": [
-          { required: true, message: "请选择客人类型!" },
-        ],
+        // "orderInfo.customerType": [
+        //   { required: true, message: "请选择客人类型!" },
+        // ],
         "orderInfo.vipCustomerId": [{
           required: true,
           message: "请选择VIP!"
@@ -640,11 +640,11 @@ export default {
       console.log(e);
       record.layout.canUseCount = record.layout.oldTags - e;
     },
-    customerTypeChange() {
-      if (this.model.orderInfo.customerType == 2) {
-
-      }
-    },
+    // customerTypeChange() {
+    //   if (this.model.orderInfo.customerType == 2) {
+    //
+    //   }
+    // },
     onCellChange(key, dataIndex, value) {
       const dataSource = [...this.canUserRooms];
       const target = dataSource[dataIndex];

+ 4 - 22
src/views/settings/components/roomModules/goodList.vue

@@ -19,8 +19,8 @@
                 </div>
             </a-tree>
         </div>
-        <div class="back-right" style="margin-top: -28px; margin-left: 10px;">
-            <a-card :bordered="false">
+        <div class="back-right" style="margin-top: -28px; height: 100%;  margin-left: 10px; overflow-y: scroll">
+            <a-card :bordered="false"  >
                 <!-- 查询区域 -->
                 <div class="table-page-search-wrapper">
                     <a-form layout="inline" @keyup.enter.native="searchQuery">
@@ -92,7 +92,7 @@
                             </a-col>
                         </a-row>
                     </a-card>
-                    
+
                     <a-radio-group name="radioGroup" :default-value="1" @change="goodChange">
                         <a-radio :value="1">
                             进货
@@ -285,23 +285,11 @@ export default {
                     dataIndex: "name",
                 },
                 {
-                    title: "进价",
-                    align: "center",
-                    dataIndex: "bid",
-                },
-                {
                     title: "售价",
                     align: "center",
                     dataIndex: "sellingPrice",
 
                 },
-
-                {
-                    title: "进货量",
-                    align: "center",
-                    dataIndex: "purchases",
-
-                },
                 {
                     title: "销售量",
                     align: "center",
@@ -315,12 +303,6 @@ export default {
 
                 },
                 {
-                    title: "排序",
-                    align: "center",
-                    dataIndex: "sort",
-
-                },
-                {
                     title: "最近更新",
                     align: "center",
                     dataIndex: "updateAt",
@@ -557,4 +539,4 @@ export default {
 
 .ant-tree li .ant-tree-node-content-wrapper.ant-tree-node-selected {
     background-color: #bae7ff33;
-}</style>
+}</style>

+ 45 - 54
src/views/settings/components/roomModules/goodStock/goodsForm.vue

@@ -9,6 +9,11 @@
                          placeholder="请选择" @change="onChange" />
                     </a-form-model-item>
                 </a-col>
+              <a-col :span="12">
+                <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" type='flex' justify="start">
@@ -21,6 +26,11 @@
                         </a-select>
                     </a-form-model-item>
                 </a-col>
+              <a-col :span="12">
+                <a-form-model-item label="规格" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="spec">
+                  <a-input v-model="model.spec" placeholder="请填写名称" />
+                </a-form-model-item>
+              </a-col>
             </a-row>
             <a-row>
                 <a-col :span="12">
@@ -29,18 +39,13 @@
                     </a-form-model-item>
                 </a-col>
                 <a-col :span="12">
-                    <a-form-model-item label="名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="name">
-                        <a-input v-model="model.name" placeholder="请填写名称" />
+                    <a-form-model-item label="告警数" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="stockWarning">
+                        <a-input v-model="model.stockWarning" 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="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="sellingPrice">
                         <a-input-number v-model="model.sellingPrice" :min="0" />
                     </a-form-model-item>
@@ -48,45 +53,35 @@
             </a-row>
             <a-row v-if="!model.isStock">
                 <a-col :span="12">
-                    <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="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="inventory">
-                        <a-input-number :disabled="model.isStock" v-model="model.inventory" :min="0" />
-                    </a-form-model-item>
-                </a-col>
-                <a-col :span="12">
-                    <a-form-model-item label="是否启用" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="">
-                        <a-switch :checked="model.appState" @change="switchState" ></a-switch>
-                    </a-form-model-item>
-                </a-col>
-            </a-row>
-            <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 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-row>-->
+<!--                <a-col :span="12">-->
+<!--                    <a-form-model-item label="是否启用" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="">-->
+<!--                        <a-switch :checked="model.appState" @change="switchState" ></a-switch>-->
+<!--                    </a-form-model-item>-->
+<!--                </a-col>-->
+<!--            </a-row>-->
+<!--            <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 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="">-->
+<!--                        &lt;!&ndash; <div v-if="!model.stockGoodsName">-->
+<!--                            {{selectGoodsInfo.depositoryName}}-{{selectGoodsInfo.goodsName}}-->
+<!--                        </div> &ndash;&gt;-->
+<!--                        <div>-->
+<!--                            {{model.stockGoodsName}}-->
+<!--                        </div>-->
+<!--                    </a-form-model-item>-->
+<!--                </a-col>-->
+<!--            </a-row>-->
         </a-form-model>
 
     </j-form-container>
@@ -162,6 +157,14 @@ export default {
                     required: true,
                     message: "名称不能为空!"
                 }],
+              spec: [{
+                    required: true,
+                    message: "规格不能为空!"
+                }],
+              stockWarning: [{
+                    required: true,
+                    message: "告警数量不能为空!"
+                }],
                 goodType: [{
                     required: true,
                     message: "请选择分类!"
@@ -174,26 +177,14 @@ export default {
                     required: true,
                     message: "条码不能为空!"
                 }],
-                bid: [{
-                    required: true,
-                    message: "请填写进价!"
-                }],
                 sellingPrice: [{
                     required: true,
                     message: "请填写售价!"
                 }],
-                purchases: [{
-                    required: true,
-                    message: "请填写进货量!"
-                }],
                 salesVolume: [{
                     required: true,
                     message: "请填写销售量!"
                 }],
-                inventory: [{
-                    required: true,
-                    message: "请填写库存量!"
-                }],
             },
             url: {
                 // add: "/rooms/cesRoomLayout/save",
@@ -273,7 +264,7 @@ export default {
             console.log(22222222,record);
             // this.model = Object.assign({}, record);
             this.model = JSON.parse(JSON.stringify(record))
-            
+
             console.log(this.filterType(this.treeData, record.goodType));
             console.log(this.arr);
             this.visible = true;

+ 101 - 13
src/views/stock/depositoryingoods.vue

@@ -81,6 +81,8 @@
         }"
         class="j-table-force-nowrap"
         @change="handleTableChange"
+        @expand="getInnerData"
+
       >
         <template slot="payFlagslot" slot-scope="text, record, index">
           {{ record.payFlag == 1 ? "是" : "否" }}
@@ -131,13 +133,27 @@
             <a>删除</a>
           </a-popconfirm>
         </span>
+
+
+        <a-table
+            size="small"
+            slot="expandedRowRender"
+            slot-scope="record"
+            :columns="innerColumns"
+            :dataSource="record.kcDepositoryInGoods"
+            :pagination="record.ipagination"
+            rowKey="id"
+            @change="pageChange($event, record)"
+        >
+        </a-table>
+
       </a-table>
     </div>
 
     <depository-modal ref="modalForm" @ok="modalFormOk"></depository-modal>
   </a-card>
 </template>
-  
+
   <script>
 import { JeecgListMixin } from "@/mixins/JeecgListMixin";
 import { filterObj } from "@/utils/util";
@@ -164,22 +180,30 @@ export default {
         showSizeChanger: true,
         total: 0,
       },
+      innerPagination:{
+        current: 1,
+        pageSize: 2,
+        pageSizeOptions: ["1", "2", "3"],
+        showQuickJumper: true,
+        showSizeChanger: true,
+        total: 0,
+      },
       // 表头
       columns: [
         {
           title: "商品名称",
           align: "center",
-          dataIndex: "goodsName",
-        },
-        {
-          title: "仓库名称",
-          align: "center",
-          dataIndex: "depositoryName",
+          dataIndex: "name",
         },
+        // {
+        //   title: "仓库名称",
+        //   align: "center",
+        //   dataIndex: "depositoryName",
+        // },
         {
           title: "商品规格",
           align: "center",
-          dataIndex: "goodsSpec",
+          dataIndex: "spec",
         },
         {
           title: "库存预警数",
@@ -189,12 +213,12 @@ export default {
         {
           title: "库存量",
           align: "center",
-          dataIndex: "num",
+          dataIndex: "inventory",
         },
         {
           title: "单位",
           align: "center",
-          dataIndex: "goodsUnitName",
+          dataIndex: "unitName",
         },
         {
           title: "预警状态",
@@ -205,8 +229,31 @@ export default {
           },
         },
       ],
+      innerColumns: [
+        {
+          title: "单号",
+          align: "center",
+          dataIndex: "stockCode",
+        },
+        {
+          title: "仓库名称",
+          align: "center",
+          dataIndex: "depositoryName",
+        },
+        {
+          title: "进货量",
+          align: "center",
+          dataIndex: "num",
+        },
+        {
+          title: "价格",
+          align: "center",
+          dataIndex: "price",
+        }
+      ],
+
       url: {
-        list: "/kc/kcDepositoryInGoods/list",
+        list: "/rooms/cesGoods/list",
         delete: "/kc/kcDepositoryInGoods/delete",
         deleteBatch: "/kc/kcDepositoryInGoods/deleteBatch",
         exportXlsUrl: "/kc/kcDepositoryInGoods/exportXls",
@@ -224,9 +271,50 @@ export default {
   },
   created() {
   },
-  methods: {},
+  mounted() {
+    setTimeout(() => {
+      this.dataSource.forEach(item => {
+        this.$set(item, 'ipagination', this.innerPagination)
+      })
+      console.log(this.dataSource,'this,dateSource')
+    }, 500)
+
+  },
+  methods: {
+    getInnerData(expanded, record) {
+      if (!expanded) {
+        return
+      }
+      console.log(record)
+      let parmas = {
+        pageNo: this.innerPagination.current,
+        pageSize: this.innerPagination.pageSize,
+        goodsId: record.id,
+      }
+      getAction('/kc/kcDepositoryInGoods/list', parmas).then(resp => {
+        if (!resp.success) {
+          this.$message.warning('查询失败')
+          return
+        }
+        console.log(resp.result);
+        let index = this.dataSource.findIndex(e => e.id = e.id)
+        if (index === -1){
+          return
+        }
+        this.dataSource[index].kcDepositoryInGoods = resp.result.records;
+        this.$set(this.dataSource[index], 'kcDepositoryInGoods', resp.result.records)
+        this.dataSource[index].ipagination.current = resp.result.current
+        this.dataSource[index].ipagination.total = resp.result.total
+      })
+    },
+    pageChange(page, item) {
+      console.log(page)
+      this.innerPagination = page
+      this.getInnerData(true, item)
+    }
+  },
 };
 </script>
   <style scoped>
 @import "~@assets/less/common.less";
-</style>
+</style>

+ 6 - 3
src/views/stock/index.vue

@@ -1,13 +1,14 @@
 <template>
-  <a-card style="width: 100%; height: 100%">
+  <a-card style="width: 100%;">
     <a-tabs v-model="activeKey">
-      <a-tab-pane key="1">
+      <a-tab-pane key="1" >
         <span slot="tab"> 仓库管理 </span>
         <depository></depository>
       </a-tab-pane>
       <a-tab-pane key="2">
         <span slot="tab"> 商品管理 </span>
-        <goods v-if="activeKey == '2'"></goods>
+<!--        <goods v-if="activeKey == '2'"></goods>-->
+        <good-list v-if="activeKey == '2'" ></good-list>
       </a-tab-pane>
       <a-tab-pane key="3">
         <span slot="tab"> 供应商管理 </span>
@@ -36,8 +37,10 @@ import supplier from "./supplier.vue";
 import stock from "./stock.vue";
 import depositoryingoods from './depositoryingoods'
 import stockChecks from './stockChecks/stockChecks.vue'
+import GoodList from '@views/settings/components/roomModules/goodList'
 export default {
   components: {
+    GoodList,
     depository,
     goods,
     supplier,

+ 5 - 5
src/views/stock/modules/DepositoryForm copy.vue

@@ -39,7 +39,7 @@
                 <!-- {{record}} -->
             </span>
             <template slot="price" slot-scope="record">
-                <a-input-number :min="0" :placeholder="record.costPrice" v-model="record.costPrice"></a-input-number>
+                <a-input-number :min="0" placeholder="请输入" v-model="record.bid"></a-input-number>
             </template>
             <template slot="num" slot-scope="record">
                 <a-input-number :min="0" v-model="record.num"></a-input-number>
@@ -97,7 +97,7 @@ export default {
     watch:{
         "model.supplierId":function(newVal, oldVal){
             if (newVal!=oldVal) {
-                this.dataSource = [];             
+                this.dataSource = [];
             }
         }
     },
@@ -173,7 +173,7 @@ export default {
                 {
                     title: "成本价",
                     align: "center",
-                    // dataIndex: "costPrice",
+                    // dataIndex: "bid",
                     scopedSlots: {
                         customRender: "price"
                     },
@@ -275,7 +275,7 @@ export default {
               if ( res.code==200 ) {
                 this.dataSource = res.result.records
                 this.dataSource.forEach(ele=>{
-                  ele.costPrice = ele.price
+                  ele.bid = ele.price
                 })
               }
             })
@@ -303,7 +303,7 @@ export default {
                         if (!element.supplierInGoodsId) {
                             element.supplierInGoodsId = element.id;
                         }
-                        element.price = element.costPrice;
+                        element.price = element.bid;
                         element.num = Number(element.num);
                     });
                     httpAction(httpurl, this.model, method)

+ 4 - 4
src/views/stock/modules/DepositorySelectGoods/DepositorySelectGoods.vue

@@ -125,12 +125,12 @@ export default {
         {
           title: "供应价",
           align: "center",
-          dataIndex: "costPrice",
+          dataIndex: "bid",
         },
         {
           title: "单位",
           align: "center",
-          dataIndex: "goodUnit",
+          dataIndex: "goodsUnitName",
         },
       ],
       url: {
@@ -168,7 +168,7 @@ export default {
       });
       arr.forEach(element => {
         element.num = 0;
-        element.price = element.costPrice
+        element.price = element.bid
       });
       this.$emit("ok", arr);
       // that.confirmLoading = true;
@@ -213,4 +213,4 @@ export default {
   opacity: 0.7;
   color: #ffffff;
 }
-</style>
+</style>

+ 15 - 9
src/views/stock/modules/SupplierInGoods.vue

@@ -168,16 +168,22 @@ export default {
   },
   methods: {
     priceChange(e, record) {
+
+    },
+    submitForm(){
       let httpurl = "/kc/kcSupplierInGoods/edit";
       let method = "put";
-      httpAction(httpurl, record, method)
-        .then((res) => {
-          if (res.success) {
-            this.$message.success(res.message);
-          } else {
-            this.$message.warning(res.message);
-          }
-        })
+      httpAction(httpurl, this.dataSource, method)
+          .then((res) => {
+            if (res.success) {
+              this.$message.success(res.message);
+              this.$emit('ok')
+              debugger
+
+            } else {
+              this.$message.warning(res.message);
+            }
+          })
     },
     handleAdd() {
       this.$refs.modalForm.add();
@@ -206,4 +212,4 @@ export default {
   opacity: 0.7;
   color: #ffffff;
 }
-</style>
+</style>

+ 2 - 3
src/views/stock/modules/SupplierInGoodsModal.vue

@@ -48,14 +48,13 @@ export default {
       });
     },
     close() {
-      this.$emit("close");
       this.visible = false;
     },
     handleOk() {
       this.$refs.realForm.submitForm();
     },
     submitCallback(e) {
-      this.$emit("ok", e);
+      // this.$emit("ok", e);
       this.visible = false;
     },
     handleCancel() {
@@ -63,4 +62,4 @@ export default {
     },
   },
 };
-</script>
+</script>

+ 1 - 1
src/views/stock/stockChecks/stockChecksForm.vue

@@ -276,7 +276,7 @@ export default {
         add() {
             this.edit(this.modelDefault, 1);
         },
-        edit(record, type=false) {
+        edit(record, type) {
             console.log(type);
             if (typeof type == 'boolean') {
                 this.flag = type

+ 2 - 2
src/views/stock/stockChecks/stockChecksModal.vue

@@ -12,7 +12,7 @@
         <a-button key="back" @click="handleCancel">
           关闭
         </a-button>
-        <a-button v-if="!flag" key="submit" type="primary" @click="handleOk">
+        <a-button key="submit" type="primary" @click="handleOk">
           确认
         </a-button>
       </template>
@@ -70,4 +70,4 @@
       }
     }
   }
-</script>
+</script>