Quellcode durchsuchen

Merge branch 'develop_yh32' of jianguan-web/qpls-md-html into pre-release

李磊 vor 1 Jahr
Ursprung
Commit
be0c202e2e

+ 1 - 1
public/version.json

@@ -1,5 +1,5 @@
 {
   "message": "发现有新版本发布,确定更新系统?",
   "vendorJsVersion": "",
-  "version": 1705220842586
+  "version": 1706670705412
 }

+ 17 - 0
src/api/shelf.js

@@ -19,6 +19,23 @@ export const shelfDetail = (params) => {
     method: 'post'
   })
 }
+// 货架产品导出
+export const shelfProductExport = params => {
+  return axios({
+    url: '/shelfProduct/export',
+    data: params,
+    method: 'post',
+    responseType: 'blob'
+  })
+}
+// 货架启用停用
+export const shelfModifState = (params) => {
+  return axios({
+    url: `/shelf/modifState`,
+    data: params,
+    method: 'post'
+  })
+}
 // 查询客户关联的货架
 export const queryByCustomerSn = (params) => {
   return axios({

+ 1 - 1
src/views/allocationManagement/chainTransferOut/edit.vue

@@ -463,7 +463,7 @@ export default {
     },
     // 仓库下拉数据
     getWarehouseList (type) {
-      warehouseAllList({}).then(res => {
+      warehouseAllList({wasteFlag:0}).then(res => {
         if (res.status == 200) {
           this.warehouseList = res.data
         } else {

+ 13 - 2
src/views/common/shelfList.js

@@ -14,7 +14,10 @@ const shelfSList = {
         option-filter-prop="children"
         :dropdownMatchSelectWidth="false"
         :filter-option="filterOption">
-        <a-select-option v-for="item in shelfList" :key="item.shelfSn" :value="item.shelfSn">{{ item.shelfName }}</a-select-option>
+        <a-select-option v-for="item in shelfList" :key="item.shelfSn" :value="item.shelfSn">
+        {{ item.shelfName }} 
+        <a-badge count="已注销" :number-style="{ zoom:'80%',marginLeft:'5px', color: '#666',background:'#f8f8f8' }" v-if="item.state=='WRITE_OFF'"></a-badge>
+        </a-select-option>
       </a-select>
     `,
   props: {
@@ -28,6 +31,10 @@ const shelfSList = {
     mode: {
       type: String,
       default: 'default'
+    },
+    showAll: {
+      type: Boolean,
+      default: false
     }
   },
   data () {
@@ -60,7 +67,11 @@ const shelfSList = {
     },
     //  货架列表
     getShelf () {
-      shelfList({ pageNo: 1, pageSize: 1000 }).then(res => {
+      const params = {pageNo: 1, pageSize: 1000}
+      if(!this.showAll){
+        params.stateSet = [ 'ENABLE', 'SUSPEND', 'DISABLED' ]
+      }
+      shelfList(params).then(res => {
         if (res.status == 200) {
           this.shelfList = res.data && res.data.list ? res.data.list : []
         } else {

+ 11 - 4
src/views/numsGoodsShelves/approveStore/list.vue

@@ -11,17 +11,17 @@
           <a-row :gutter="15">
             <a-col :md="4" :sm="24">
               <a-form-item label="联系人手机">
-                <a-input allowClear placeholder="请输入联系人手机" v-model.tirm="queryParam.contactPhone"/>
+                <a-input allowClear placeholder="请输入联系人手机" v-model.trim="queryParam.contactPhone"/>
               </a-form-item>
             </a-col>
             <a-col :md="4" :sm="24">
               <a-form-item label="联系人姓名">
-                <a-input allowClear placeholder="请输入联系人姓名" v-model.tirm="queryParam.contactName"/>
+                <a-input allowClear placeholder="请输入联系人姓名" v-model.trim="queryParam.contactName"/>
               </a-form-item>
             </a-col>
             <a-col :md="6" :sm="24">
               <a-form-item label="门店名称">
-                <a-input allowClear placeholder="请输入门店名称" v-model.tirm="queryParam.storeName"/>
+                <a-input allowClear placeholder="请输入门店名称" v-model.trim="queryParam.storeName"/>
               </a-form-item>
             </a-col>
             <a-col :md="4" :sm="24">
@@ -56,6 +56,13 @@
         :scroll="{ y: tableHeight }"
         :defaultLoadData="false"
         bordered>
+        <!-- 货架名称 -->
+        <template slot="storeName" slot-scope="text, record">
+           {{record.storeName}}
+           <a-badge count="已注销" :number-style="{ zoom:'80%',marginLeft:'5px', color: '#fff',background:'#999' }" v-if="record.state=='WRITE_OFF'"></a-badge>
+           <a-badge count="已停用" :number-style="{ zoom:'80%',marginLeft:'5px', color: '#fff',background:'#999' }" v-if="record.state=='DISABLED'"></a-badge>
+           <a-badge count="已暂停" :number-style="{ zoom:'80%',marginLeft:'5px', color: '#fff',background:'#999' }" v-if="record.state=='SUSPEND'"></a-badge>
+        </template>
         <!-- 图片 -->
         <template slot="imageUrl" slot-scope="text, record">
           <div v-if="text&&text.length">
@@ -108,7 +115,7 @@ export default {
         { title: '提交时间', dataIndex: 'applyTime', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '联系人手机', dataIndex: 'contactPhone', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '联系人姓名', dataIndex: 'contactName', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '门店名称', dataIndex: 'storeName', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '门店名称', scopedSlots: { customRender: 'storeName' }, width: '15%', align: 'center' },
         { title: '门店地址', dataIndex: 'addrDetail', width: '20%', align: 'center', scopedSlots: { customRender: 'addr' } },
         { title: '门头照片', dataIndex: 'storeImage', width: '6%', align: 'center', scopedSlots: { customRender: 'imageUrl' } },
         { title: '营业执照', dataIndex: 'licenseImage', width: '6%', align: 'center', scopedSlots: { customRender: 'imageUrl' } },

+ 1 - 1
src/views/numsGoodsShelves/replenishmentManagement/detailModal.vue

@@ -33,7 +33,7 @@
                   {{ item.salesBillNo }};
                 </a>
                 <span v-if="salesOrderList.length==0">--</span>
-                <a-button v-if="totalNums&&detailData.billState!='CANCEL'" type="primary" class="button-info" @click="showPlModal=true">生成销售单</a-button>
+                <a-button v-if="totalNums&&detailData.billState!='CANCEL'&&detailData.shelfInfo.state!='WRITE_OFF'&&detailData.shelfInfo.state!='SUSPEND'" type="primary" class="button-info" @click="showPlModal=true">生成销售单</a-button>
               </div>
             </a-descriptions-item>
           </a-descriptions>

+ 8 - 2
src/views/numsGoodsShelves/replenishmentManagement/list.vue

@@ -31,7 +31,7 @@
             </a-col>
             <a-col :md="6" :sm="24">
               <a-form-item label="货架名称">
-                <shelfSList v-model="queryParam.shelfSn"></shelfSList>
+                <shelfSList :showAll="true" v-model="queryParam.shelfSn"></shelfSList>
               </a-form-item>
             </a-col>
             <template v-if="advanced">
@@ -97,6 +97,12 @@
           <a-button v-if="record.billState=='CANCEL'" size="small" type="link" class="button-error" @click.stop="handleDelete(record)">删除</a-button>
           <a-button v-if="record.billState!='CANCEL'&&record.billState!='WAIT_CONFIRM'" size="small" type="link" class="button-primary" @click.stop="handlePrintSticker(record)">打印贴签</a-button>
         </template>
+        <!-- 货架名称 -->
+        <template slot="shelfName" slot-scope="text, record">
+          {{text}}
+          <a-badge count="已注销" :number-style="{ zoom:'80%',marginLeft:'5px', color: '#fff',background:'#999' }" v-if="record.shelfInfo.state=='WRITE_OFF'"></a-badge>
+          <a-badge count="已停用" :number-style="{ zoom:'80%',marginLeft:'5px', color: '#fff',background:'#999' }" v-if="record.shelfInfo.state=='DISABLED'"></a-badge>
+        </template>
         <!-- 补货单号 -->
         <template slot="replenishBillNo" slot-scope="text, record">
           <span class="table-td-link" @click.stop="handleDetail(record)">{{ record.replenishBillNo }}</span>
@@ -239,7 +245,7 @@ export default {
         { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
         { title: '创建时间', dataIndex: 'createDate', width: '11%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '补货单号', dataIndex: 'replenishBillNo', scopedSlots: { customRender: 'replenishBillNo' }, width: '15%', align: 'center' },
-        { title: '货架名称', dataIndex: 'shelfInfo.shelfName', width: '25%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '货架名称', dataIndex: 'shelfInfo.shelfName', scopedSlots: { customRender: 'shelfName' }, width: '25%', align: 'left', ellipsis: true },
         { title: '状态', dataIndex: 'billStateDictValue', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '补货总量', dataIndex: 'totalQty', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
         { title: '签收总量', dataIndex: 'totalPutQty', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },

+ 2 - 1
src/views/numsGoodsShelves/replenishmentManagement/slodOutModal.vue

@@ -41,7 +41,8 @@
             :showPagination="false"
             bordered>
             <template slot="shelfName" slot-scope="text, record">
-              {{ text }}<span style="color:#ff5500;margin-left:5px;" v-if="record.state!=='ENABLE'">(状态为“已暂停”)</span>
+              {{ text }}
+              <a-badge count="已暂停" :number-style="{ zoom:'80%',marginLeft:'5px', color: '#fff',background:'#999' }" v-if="record.state!=='ENABLE'"></a-badge>
             </template>
             <template slot="action" slot-scope="text, record">
               <span class="table-td-link" @click.stop="handleDetail(record)">产品明细</span>

+ 1 - 1
src/views/numsGoodsShelves/shelfOrder/list.vue

@@ -12,7 +12,7 @@
             </a-col>
             <a-col :md="6" :sm="24">
               <a-form-item label="货架名称">
-                <shelfSList ref="shelfSList" mode="multiple" v-model="queryParam.shelfSnList"></shelfSList>
+                <shelfSList ref="shelfSList" :showAll="true" mode="multiple" v-model="queryParam.shelfSnList"></shelfSList>
               </a-form-item>
             </a-col>
             <a-col :md="6" :sm="24">

+ 95 - 7
src/views/numsGoodsShelves/shelfSet/list.vue

@@ -35,7 +35,7 @@
       </div>
       <!-- 提示 -->
       <a-alert type="info" style="margin-bottom: 10px">
-        <div slot="message">注意:只有当数字货架的“是否设置完成”为"是",系统才会自动对该货架生成补货单,修理厂才能正常下单。</div>
+        <div slot="message">注意:只有当数字货架的“是否设置完成”为"是",修理厂才能正常下单。</div>
       </a-alert>
       <!-- 列表 -->
       <s-table
@@ -49,6 +49,12 @@
         :scroll="{ y: tableHeight }"
         :defaultLoadData="false"
         bordered>
+        <!-- 货架名称 -->
+        <template slot="shelfName" slot-scope="text, record">
+           {{record.shelfName}}
+           <a-badge count="已注销" :number-style="{ zoom:'80%',marginLeft:'5px', color: '#fff',background:'#999' }" v-if="record.state=='WRITE_OFF'"></a-badge>
+           <a-badge count="已暂停" :number-style="{ zoom:'80%',marginLeft:'5px', color: '#fff',background:'#999' }" v-if="record.state=='SUSPEND'"></a-badge>
+        </template>
         <!-- 货位数量 -->
         <template slot="shelfPlaceNum" slot-scope="text, record">
           <p style="margin: 0;">
@@ -62,6 +68,7 @@
           <a-switch
             checkedChildren="是"
             unCheckedChildren="否"
+            :disabled="record.state=='WRITE_OFF'||record.state=='SUSPEND'"
             v-if="record.finishFlag!=undefined"
             @change="changeStatus(record)"
             :checked="record.finishFlag == 1"
@@ -70,14 +77,50 @@
             {{ record.finishFlag == 1 ? '是' : (record.finishFlag!=undefined?'否':'--') }}
           </span>
         </template>
+        <!-- 启用禁用 -->
+        <template slot="enableFlag" slot-scope="text, record">
+          <a-switch
+            checkedChildren="启用"
+            unCheckedChildren="停用"
+            :disabled="record.state=='WRITE_OFF'||record.state=='SUSPEND'"
+            v-if="record.state!=undefined"
+            @change="enableShelf(record)"
+            :checked="record.state == 'ENABLE'"
+          />
+          <span v-else :style="{ color: record.state == 'ENABLE' ? '#00aa00' : '#999' }">
+            {{ record.state == 'ENABLE' ? '启用' : (record.state!=undefined&&record.state!='WRITE_OFF'&&record.state!='SUSPEND'?'停用':'--') }}
+          </span>
+        </template>
         <!-- 操作 -->
         <template slot="action" slot-scope="text, record">
-          <a-button size="small" type="link" class="button-primary" @click="handleSet(record)">设置</a-button>
+          <div>
+            <a-button size="small" type="link" class="button-primary" @click="handleSet(record)">{{record.state!='WRITE_OFF'&&record.state!='SUSPEND'?'货架设置':'查看'}}</a-button>
+            <a-button size="small" type="link" class="button-primary" v-if="record.state!='WRITE_OFF'&&record.state!='SUSPEND'" @click="handleCancel(record)">注销</a-button>
+          </div>
         </template>
       </s-table>
     </a-spin>
     <!-- 基础设置 -->
     <basic-info-modal :type="0" :openModal="openModal" :nowData="nowData" @ok="handleOk" @close="openModal=false" />
+    <a-modal
+      centered
+      class="common-modal"
+      :footer="null"
+      :maskClosable="false"
+      v-model="showTip"
+      title="注销"
+      @cancel="showTip=false"
+      :width="416">
+      <div style="text-align:center;">
+        <div style="font-size:16px;">是否注销该数字货架?</div>
+        <div style="font-size:14px;">点击确定,该数字货架就不可做任何操作,用户不可登陆</div>
+        <div style="font-size:12px;color:#999;margin-top:10px;">如需要迁移该数字货架的数据,可去货架设置中导出货架信息</div>
+      </div>
+      <div class="btn-box" style="display: flex;align-items: center;justify-content: center;margin-top:25px;">
+        <a-button type="primary" @click="handleCommonOk">确定</a-button>
+        <a-button type="default" class="button-warning" @click="showTip=false">取消</a-button>
+      </div>
+    </a-modal>
   </a-card>
 </template>
 
@@ -87,15 +130,17 @@ import { STable, VSelect } from '@/components'
 import custList from '@/views/common/custList.vue'
 import shelfSList from '@/views/common/shelfList'
 import basicInfoModal from './basicInfoModal.vue'
-import { shelfList, modifFinishFlag } from '@/api/shelf'
+import commonModal from '@/views/common/commonModal.vue'
+import { shelfList, modifFinishFlag, shelfModifState } from '@/api/shelf'
 export default {
-  components: { STable, VSelect, custList, shelfSList, basicInfoModal },
+  components: { STable, VSelect, custList, shelfSList, basicInfoModal, commonModal },
   mixins: [commonMixin],
   data () {
     return {
       spinning: false,
       tableHeight: 0,
       disabled: false, //  查询、重置按钮是否可操作
+      showTip: false,
       queryParam: {
         shelfSn: undefined,
         customerSn: undefined,
@@ -106,10 +151,11 @@ export default {
       },
       columns: [
         { title: '序号', dataIndex: 'no', width: '5%', align: 'center' },
-        { title: '货架名称', dataIndex: 'shelfName', width: '25%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '货架名称', scopedSlots: { customRender: 'shelfName' }, width: '25%', align: 'left', ellipsis: true },
         { title: '关联客户', dataIndex: 'customerEntity.customerName', width: '25%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '货位数量', scopedSlots: { customRender: 'shelfPlaceNum' }, width: '15%', align: 'center' },
-        { title: '是否设置完成', scopedSlots: { customRender: 'finishFlag' }, width: '20%', align: 'center' },
+        { title: '是否设置完成', scopedSlots: { customRender: 'finishFlag' }, width: '10%', align: 'center' },
+        { title: '启用状态', scopedSlots: { customRender: 'enableFlag' }, width: '10%', align: 'center' },
         { title: '操作', scopedSlots: { customRender: 'action' }, width: '10%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象
@@ -160,7 +206,7 @@ export default {
         this.queryParam.customerSn = undefined
       }
     },
-    // 启用 禁用
+    // 是否设置完成
     changeStatus (record) {
       const params = {
         shelfSn: record.shelfSn,
@@ -177,6 +223,48 @@ export default {
         }
       })
     },
+    // 启用禁用
+    enableShelf(record){
+      const params = {
+        shelfSn: record.shelfSn,
+        state: record.state == 'ENABLE' ? 'DISABLED' : 'ENABLE'
+      }
+      const _this = this
+      _this.$confirm({
+        title: '提示',
+        content: <div style="text-align:center;">是否{(record.state == 'ENABLE'?'停用':'启用')+record.shelfName}</div>,
+        centered: true,
+        closable: true,
+        class: 'confirm-center',
+        onOk () {
+           _this.updateState(params)
+        }
+      })
+    },
+    // 注销
+    handleCancel(record){
+      this.nowData = {
+        shelfSn: record.shelfSn,
+        state: 'WRITE_OFF'
+      }
+      this.showTip = true
+    },
+    handleCommonOk(){
+      this.updateState(this.nowData)
+    },
+    updateState(params){
+      this.spinning = true
+      shelfModifState(params).then(res => {
+        if (res.status == 200) {
+          this.$message.success(res.message)
+          this.$refs.table.refresh()
+          this.spinning = false
+        } else {
+          this.spinning = false
+        }
+        this.showTip = false
+      })
+    },
     // 重置
     resetSearchForm () {
       this.queryParam.shelfSn = undefined

+ 45 - 16
src/views/numsGoodsShelves/shelfSet/set.vue

@@ -13,10 +13,15 @@
           <a-collapse-panel key="1">
             <template slot="header">
               <span>基础信息</span>
-              <a-button icon="edit" size="small" type="link" style="margin-left: 20px;color: #39f;" @click.stop="openInfoModal = true">编辑</a-button>
+              <a-button icon="edit" v-if="basicInfoData&&basicInfoData.state!='WRITE_OFF'&&basicInfoData.state!='SUSPEND'" size="small" type="link" style="margin-left: 20px;color: #39f;" @click.stop="openInfoModal = true">编辑</a-button>
             </template>
             <a-descriptions :column="2">
-              <a-descriptions-item label="货架名称">{{ basicInfoData&&basicInfoData.shelfName || '--' }}</a-descriptions-item>
+              <a-descriptions-item label="货架名称">
+              {{ basicInfoData&&basicInfoData.shelfName || '--' }}
+              <a-badge count="已注销" :number-style="{ zoom:'80%',marginLeft:'5px', color: '#fff',background:'#999' }" v-if="basicInfoData&&basicInfoData.state=='WRITE_OFF'"></a-badge>
+              <a-badge count="已停用" :number-style="{ zoom:'80%',marginLeft:'5px', color: '#fff',background:'#999' }" v-if="basicInfoData&&basicInfoData.state=='DISABLED'"></a-badge>
+              <a-badge count="已暂停" :number-style="{ zoom:'80%',marginLeft:'5px', color: '#fff',background:'#999' }" v-if="basicInfoData&&basicInfoData.state=='SUSPEND'"></a-badge>
+              </a-descriptions-item>
               <a-descriptions-item>
                 <template slot="label">
                     货架产品 
@@ -63,13 +68,20 @@
                 <span class="table-page-search-submitButtons">
                   <a-button type="primary" @click="$refs.table.refresh(true)" :disabled="disabled" id="shelfSet-refresh">查询</a-button>
                   <a-button style="margin-left: 5px" @click="resetSearchForm()" :disabled="disabled" id="shelfSet-reset">重置</a-button>
+                  <a-button
+                    type="primary"
+                    class="button-warning"
+                    @click="handleExport"
+                    :disabled="disabled"
+                    :loading="exportLoading"
+                    >导出</a-button>
                 </span>
               </a-col>
             </a-row>
           </a-form>
         </div>
         <!-- 操作按钮 -->
-        <div class="table-operator">
+        <div class="table-operator" v-if="basicInfoData&&basicInfoData.state!='WRITE_OFF'&&basicInfoData.state!='SUSPEND'">
           <a-button id="shelfSet-addHW" type="primary" class="button-error" @click="addHW(1)">新增货位</a-button>
           <a-button id="shelfSet-impoort" type="primary" class="button-info" @click="addHW(0)">批量导入货位</a-button>
           <a-button id="shelfSet-import" type="primary" class="button-error" @click="openGuideModal=true">导入绑定产品</a-button>
@@ -166,6 +178,7 @@
 
 <script>
 import { commonMixin } from '@/utils/mixin'
+import { downloadExcel } from '@/libs/JGPrint.js'
 import { STable, VSelect } from '@/components'
 import commonModal from '@/views/common/commonModal.vue'
 import addHwModal from './addHwModal.vue'
@@ -173,34 +186,23 @@ import bindProductModal from './bindProductModal.vue'
 import ImportGuideModal from './importGuideModal.vue'
 import basicInfoModal from './basicInfoModal.vue'
 import importHuoweiModal from './importHuoweiModal.vue'
-import { shelfDetail, shelfProductList, shelfProductBatchInsert, delShelfPlaceSn, shelfProductEnable, getShelfPriceShow } from '@/api/shelf'
+import { shelfDetail, shelfProductList, shelfProductBatchInsert, delShelfPlaceSn, shelfProductEnable, getShelfPriceShow, shelfProductExport } from '@/api/shelf'
 export default {
   name: 'ShelfMonitoringWarehousing',
   components: { STable, VSelect, commonModal, bindProductModal, addHwModal, ImportGuideModal, basicInfoModal, importHuoweiModal },
   mixins: [commonMixin],
   data () {
-    const _this = this
     return {
       spinning: false,
       disabled: false, //  查询、重置按钮是否可操作
       tableHeight: 400,
+      exportLoading: false,
       queryParam: {
         shelfProductApiEntity: {
           productCode: '',
           productName: ''
         }
       },
-      columns: [
-        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
-        { title: '货位号', dataIndex: 'shelfPlaceCode', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '绑定产品编码', dataIndex: 'shelfProductApiEntity.productCode', width: '16%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '绑定产品名称', dataIndex: 'shelfProductApiEntity.productName', width: '23%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '车主价', dataIndex: 'shelfProductApiEntity.price', width: '9%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text, 2) : '--') } },
-        { slots: { title: 'customTitle' }, dataIndex: 'shelfProductApiEntity.cost', width: '9%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text, 2) : '--') } },
-        { title: '最大库容', dataIndex: 'shelfProductApiEntity.maxQty', width: '9%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '当前库存', dataIndex: 'shelfProductApiEntity.qty', width: '9%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: '15%', align: 'center' }
-      ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         this.disabled = true
@@ -232,6 +234,25 @@ export default {
       showNoShelfPriceStr: []
     }
   },
+  computed:{
+    columns(){
+      const _this = this
+      const ret = [
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '货位号', dataIndex: 'shelfPlaceCode', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '绑定产品编码', dataIndex: 'shelfProductApiEntity.productCode', width: '16%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '绑定产品名称', dataIndex: 'shelfProductApiEntity.productName', width: '23%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '车主价', dataIndex: 'shelfProductApiEntity.price', width: '9%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text, 2) : '--') } },
+        { slots: { title: 'customTitle' }, dataIndex: 'shelfProductApiEntity.cost', width: '9%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text, 2) : '--') } },
+        { title: '最大库容', dataIndex: 'shelfProductApiEntity.maxQty', width: '9%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '当前库存', dataIndex: 'shelfProductApiEntity.qty', width: '9%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+      ]
+      if(this.basicInfoData&&this.basicInfoData.state!='WRITE_OFF'&&this.basicInfoData.state!='SUSPEND'){
+        ret.push({ title: '操作', scopedSlots: { customRender: 'action' }, width: '15%', align: 'center' })
+      }
+      return ret
+    }
+  },
   methods: {
     // 获取价格显示设置
     getShelfPriceShow () {
@@ -258,6 +279,14 @@ export default {
         }
       })
     },
+    // 导出产品
+    handleExport () {
+      this.exportLoading = true
+      shelfProductExport({shelfSn: this.$route.params.sn}).then(res => {
+        downloadExcel(res, (this.basicInfoData?this.basicInfoData.shelfName:'')+"的产品")
+        this.exportLoading = false
+      })
+    },
     // 导入或新增货位
     addHW (type) {
       // 导入货位

+ 1 - 1
src/views/salesManagement/salesQuery/queryPart.vue

@@ -479,7 +479,7 @@ export default {
     },
     // 仓库
     getWarehouse () {
-      warehouseAllList({}).then(res => {
+      warehouseAllList({wasteFlag: 0}).then(res => {
         if (res.status == 200) {
           this.warehouseList = res.data
         } else {

+ 1 - 1
src/views/salesManagement/salesQueryNew/chooseProductModal.vue

@@ -578,7 +578,7 @@ export default {
     },
     // 仓库
     getWarehouse () {
-      warehouseAllList({}).then(res => {
+      warehouseAllList({wasteFlag:0}).then(res => {
         if (res.status == 200) {
           this.warehouseList = res.data
         } else {

+ 1 - 1
vue.config.js

@@ -209,7 +209,7 @@ const vueConfig = {
     // If you want to turn on the proxy, please remove the mockjs /src/main.jsL11
     proxy: {
       '/api': {
-        // target: 'http://192.168.2.103:8503/qpls-md',
+        // target: 'http://192.168.2.103/qpls-md',
         target: 'https://p.iscm.360arrow.com/qpls-md',
         // ws: false,
         ws: true,