Browse Source

红包对接

lilei 2 years ago
parent
commit
b9b50e1589

+ 72 - 0
src/api/redPacket.js

@@ -0,0 +1,72 @@
+import { axios } from '@/utils/request'
+
+// 创建
+export const rewardRuleCreate = params => {
+  return axios({
+    url: `/rewardRule/create`,
+    data: params,
+    method: 'post'
+  })
+}
+// 删除
+export const rewardRuleDelete = params => {
+  return axios({
+    url: `/rewardRule/delete`,
+    data: params,
+    method: 'post'
+  })
+}
+// 终止
+export const rewardRuleClose = params => {
+  return axios({
+    url: `/rewardRule/closeRule`,
+    data: params,
+    method: 'post'
+  })
+}
+// 详情列表
+export const rewardRuleDetail = params => {
+  return axios({
+    url: `/rewardRule/findBySn/${params.rewardRuleSn}`,
+    data: params,
+    method: 'get'
+  })
+}
+// 修改
+export const rewardRuleModify = params => {
+  return axios({
+    url: `/rewardRule/modify`,
+    data: params,
+    method: 'post'
+  })
+}
+// 分页列表
+export const rewardRuleList = params => {
+  const url = `/rewardRule/queryPage/${params.pageNo}/${params.pageSize}`
+  delete params.pageNo
+  delete params.pageSize
+  return axios({
+    url: url,
+    data: params,
+    method: 'POST'
+  })
+}
+// 发布
+export const rewardRuleRelease = params => {
+  return axios({
+    url: `/rewardRule/releaseRule`,
+    data: params,
+    method: 'post'
+  })
+}
+// 分页列表
+export const rewardRuleShelfQueryPage = params => {
+  const url = `/rewardRuleStore/shelf/queryPage/${params.pageNo}/${params.pageSize}`
+  delete params.pageNo
+  delete params.pageSize
+  return axios({
+    url: url,
+    data: params,
+    method: 'POST'
+  })
+}

+ 75 - 19
src/components/Table/index.js

@@ -9,7 +9,8 @@ export default {
       selectedRowKeys: [],
       localLoading: false,
       localDataSource: [],
-      localPagination: Object.assign({}, this.pagination)
+      localPagination: Object.assign({}, this.pagination),
+      isSucceed: true //  是否请求成功
     }
   },
   props: Object.assign({}, T.props, {
@@ -17,6 +18,10 @@ export default {
       type: [String, Function],
       default: 'key'
     },
+    rowKeyName: { // 多选时,唯一标识键名
+      type: String,
+      default: 'id'
+    },
     rowClassName: {
       type: [String, Function],
       default: ''
@@ -55,11 +60,6 @@ export default {
       type: Object,
       default: null
     },
-    /** @Deprecated */
-    showAlertInfo: {
-      type: Boolean,
-      default: false
-    },
     showPagination: {
       type: String | Boolean,
       default: 'auto'
@@ -123,7 +123,7 @@ export default {
     this.localPagination = ['auto', true].includes(this.showPagination) && Object.assign({}, this.localPagination, {
       current: localPageNum,
       pageSize: this.pageSize,
-      pageSizeOptions:['5','10', '20', '30', '40'],
+      pageSizeOptions: ['5', '10', '20', '30', '40'],
       showTotal: total => `共 ${total} 条记录`,
       showSizeChanger: this.showSizeChanger
     }) || false
@@ -147,7 +147,10 @@ export default {
     },
     // 重置表格为空
     clearTable () {
+      this.localLoading = false
       this.localDataSource = []
+      this.needTotalList = []
+      this.clearSelected()
       this.localPagination = Object.assign({}, {
         current: 1, pageSize: this.pageSize, total: 0
       })
@@ -183,8 +186,13 @@ export default {
       // eslint-disable-next-line
       if ((typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function') {
         result.then(r => {
-          const list = r.list || r.data || r
+          // const list = r.list || r.data || r
+          let list = []
+          if (r) {
+            list = r.list || r.data || r
+          }
           // console.log(r,'rrrrrrrrrr')
+          this.isSucceed = !!r
           this.localPagination = this.showPagination && Object.assign({}, this.localPagination, {
             current: r.pageNo, // 返回结果中的当前分页数
             total: Number(r.count), // 返回结果中的总记录数
@@ -210,6 +218,8 @@ export default {
           }
           this.localDataSource = list // 返回结果中的数组数据
           this.localLoading = false
+        }).catch(err => {
+          this.clearTable()
         })
       }
     },
@@ -231,26 +241,66 @@ export default {
      * @param selectedRows
      */
     updateSelect (selectedRowKeys, selectedRows) {
-      this.selectedRows = selectedRows
-      this.selectedRowKeys = selectedRowKeys
       const list = this.needTotalList
       this.needTotalList = list.map(item => {
         return {
           ...item,
-          total: selectedRows.reduce((sum, val) => {
+          total: this.selectedRows.reduce((sum, val) => {
             const total = sum + parseInt(get(val, item.dataIndex))
             return isNaN(total) ? 0 : total
           }, 0)
         }
       })
+      const obj = {
+        selectedRowKeys: this.selectedRowKeys,
+        selectedRows: this.selectedRows
+      }
+      this.$emit('rowSelection', obj)
+    },
+    onSelectChange (record, selected, selectedRows, nativeEvent) {
+      if (selected) { //  选择
+        this.selectedRows.push(record)
+      } else { //  取消
+        const selectedRowsArr = []
+        this.selectedRows.map(item => {
+          if (this.selectedRowKeys.indexOf(item[this.rowKeyName]) != -1) {
+            selectedRowsArr.push(item)
+          }
+        })
+        this.selectedRows = selectedRowsArr
+      }
+      this.updateSelect()
+    },
+    // 本页全选/取消全选
+    onSelectAllChange (selected, selectedRows, changeRows) {
+      const _this = this
+      if (selected) { //  选择
+        this.selectedRows = [...this.selectedRows, ...changeRows]
+      } else { //  取消
+        const selectedRowsArr = []
+        this.selectedRows.map((item, index) => {
+          if(!changeRows.find(subItem => subItem[this.rowKeyName] == item[this.rowKeyName])){
+            selectedRowsArr.push(item)
+          }
+        })
+        this.selectedRows = selectedRowsArr
+      }
+      this.updateSelect()
+    },
+    // 设置 table 已选中项
+    setTableSelected (selectedRowKeys, selectedRows) {
+      this.selectedRows = selectedRows
+      this.selectedRowKeys = selectedRowKeys
+      this.updateSelect()
     },
     /**
      * 清空 table 已选中项
      */
     clearSelected () {
       if (this.rowSelection) {
-        this.rowSelection.onChange([], [])
-        this.updateSelect([], [])
+        this.selectedRows = []
+        this.selectedRowKeys = []
+        this.updateSelect()
       }
     },
     /**
@@ -299,7 +349,6 @@ export default {
     const props = {}
     const localKeys = Object.keys(this.$data)
     const showAlert = (typeof this.alert === 'object' && this.alert !== null && this.alert.show) && typeof this.rowSelection.selectedRowKeys !== 'undefined' || this.alert
-
     Object.keys(T.props).forEach(k => {
       const localKey = `local${k.substring(0, 1).toUpperCase()}${k.substring(1)}`
       if (localKeys.includes(localKey)) {
@@ -307,16 +356,19 @@ export default {
         return props[k]
       }
       if (k === 'rowSelection') {
-        if (showAlert && this.rowSelection) {
+        if (this.rowSelection) {
           // 如果需要使用alert,则重新绑定 rowSelection 事件
-          // console.log('this.rowSelection', this.rowSelection)
           props[k] = {
             ...this.rowSelection,
-            selectedRows: this.selectedRows,
             selectedRowKeys: this.selectedRowKeys,
             onChange: (selectedRowKeys, selectedRows) => {
-              this.updateSelect(selectedRowKeys, selectedRows)
-              typeof this[k].onChange !== 'undefined' && this[k].onChange(selectedRowKeys, selectedRows)
+              this.selectedRowKeys = selectedRowKeys
+            },
+            onSelect: (record, selected, selectedRows, nativeEvent) => {
+              this.onSelectChange(record, selected, selectedRows, nativeEvent)
+            },
+            onSelectAll: (selected, selectedRows, changeRows) => {
+              this.onSelectAllChange(selected, selectedRows, changeRows)
             }
           }
           return props[k]
@@ -329,6 +381,10 @@ export default {
       this[k] && (props[k] = this[k])
       return props[k]
     })
+    if (!this.isSucceed) { // 请求失败
+      props['locale'] = { emptyText: '网络异常,请点击按钮刷新' }
+    }
+    // isSucceed
     const table = (
       <a-table {...{ props, scopedSlots: { ...this.$scopedSlots } }} onChange={this.loadData}>
         { Object.keys(this.$slots).map(name => (<template slot={name}>{this.$slots[name]}</template>)) }

+ 55 - 57
src/views/numsGoodsShelves/redPacket/edit.vue

@@ -22,25 +22,26 @@
             <a-row :gutter="24">
               <a-row>
                 <a-col :span="12">
-                  <a-form-model-item label="活动名称" prop="activeName">
-                    <a-input id="redPacket-activeName" allowClear v-model.trim="form.activeName" placeholder="请输入活动名称"/>
+                  <a-form-model-item label="活动名称" prop="ruleName">
+                    <a-input id="redPacket-ruleName" allowClear :maxLength="100" v-model.trim="form.ruleName" placeholder="请输入活动名称(最多100个字符)"/>
                   </a-form-model-item>
                 </a-col>
-                <a-col :span="12">
+                <!-- <a-col :span="12">
                   <a-form-model-item label="活动截止时间" prop="activeTime" help="活动成发布后即刻开始,无需设置开始时间">
                     <a-input id="redPacket-time" style="width: 70%;margin-right:10px;" allowClear v-model.trim="form.activeTime" placeholder="请输入活动截止时间(精确到小时)"/>
                     <a-checkbox>永久</a-checkbox>
                   </a-form-model-item>
-                </a-col>
+                </a-col> -->
               </a-row>
               <a-row>
                 <a-col :span="24">
-                  <a-form-model-item label="参与货架" prop="settleType" :label-col="{span: 3}" :wrapper-col="{span: 20}">
-                    <a-button type="link" @click="openModal=true">点击选择</a-button>
+                  <a-form-model-item label="参与货架" prop="joinNum" :label-col="{span: 3}" :wrapper-col="{span: 20}">
+                    <span v-if="form.joinNum">已选{{ form.joinNum }}货架</span>
+                    <a-button type="link" class="button-info" @click="openModal=true">点击选择</a-button>
                   </a-form-model-item>
                 </a-col>
               </a-row>
-              <a-row>
+              <!-- <a-row>
                 <a-col :span="24">
                   <a-form-model-item label="活动范围" prop="activeOrg" :label-col="{span: 3}" :wrapper-col="{span: 20}">
                     <div style="color:#999">修配易码通用户下单后可获得红包奖励</div>
@@ -51,14 +52,14 @@
                     />
                   </a-form-model-item>
                 </a-col>
-              </a-row>
+              </a-row> -->
               <a-row>
                 <a-col :span="24">
-                  <a-form-model-item label="客服微信" prop="remark" :label-col="{span: 3}" :wrapper-col="{span: 20}">
+                  <a-form-model-item label="客服微信" prop="serviceQrcode" :label-col="{span: 3}" :wrapper-col="{span: 20}">
                     <Upload
                       class="upload"
-                      v-model="form.storeImage"
-                      ref="storeImage"
+                      v-model="form.serviceQrcode"
+                      ref="serviceQrcode"
                       :fileSize="10"
                       :maxNums="1"
                       @remove="removeImage"
@@ -70,8 +71,8 @@
               </a-row>
               <a-row>
                 <a-col :span="24">
-                  <a-form-model-item label="备注" prop="remark" :label-col="{span: 3}" :wrapper-col="{span: 20}">
-                    <a-textarea :rows="4" placeholder="请输入备注"></a-textarea>
+                  <a-form-model-item label="备注" :label-col="{span: 3}" :wrapper-col="{span: 20}">
+                    <a-textarea :rows="4" v-model="form.remarks" :maxLength="150" placeholder="请输入备注(最多150字符)"></a-textarea>
                   </a-form-model-item>
                 </a-col>
               </a-row>
@@ -84,14 +85,14 @@
         </div>
       </a-card>
       <!-- 选择货架弹窗 -->
-      <shelfModal :visible="openModal" :checkedList="pageInfo" @close="openModal=false"></shelfModal>
+      <shelfModal ref="shelfModal" :checkedList="form.ruleStoreList" :visible="openModal" @close="openModal=false" @ok="chooseShelf"></shelfModal>
     </a-spin>
   </div>
 </template>
 
 <script>
 import { VSelect, Upload } from '@/components'
-import { shelfDetail, shelfSettleRuleSave, settleRuleDetail } from '@/api/shelf.js'
+import { rewardRuleDetail, rewardRuleCreate, rewardRuleModify } from '@/api/redPacket.js'
 import shelfModal from './shelfModal.vue'
 import { toThousands } from '@/libs/tools.js'
 export default {
@@ -105,30 +106,18 @@ export default {
         wrapperCol: { span: 14 }
       },
       plainOptions: [{ label: '货架订单', value: '1' }],
-      settleInfo: null, // 结算详情
-      settlementType: '', // 结算方式
       pageInfo: null,
-      images: [], // 货架图片
       form: {
-        settleType: undefined, // 结算方式
-        creditLimit: '', // 授信额度
-        creditWarnLimit: '', // 结算提醒金额
-        settleDay: undefined, // 每月结算日
-        warnBeforeDays: undefined, // 结算提醒提前天数
-        limitFlag: 0, // 是否限制使用
-        bondFlag: '', // 是否缴纳保证金
-        bondAmount: '' // 保证金金额
+        ruleName: '', // 活动名称
+        joinNum: '', // 参与数
+        ruleStoreList: [], // 参与门店
+        serviceQrcode: '', // 客服二维码图片
+        remarks: ''
       },
-      dateList: [{ id: 1, name: 1 }, { id: 2, name: 2 }, { id: 3, name: 3 }, { id: 4, name: 4 }, { id: 5, name: 5 }, { id: 6, name: 6 }, { id: 7, name: 7 }, { id: 8, name: 8 }, { id: 9, name: 9 }, { id: 10, name: 10 }, { id: 11, name: 11 }, { id: 12, name: 12 }, { id: 13, name: 13 }, { id: 14, name: 14 }, { id: 15, name: 15 }, { id: 16, name: 16 }, { id: 17, name: 17 }, { id: 18, name: 18 }, { id: 19, name: 19 }, { id: 20, name: 20 }, { id: 21, name: 21 }, { id: 22, name: 22 }, { id: 23, name: 23 }, { id: 24, name: 24 }, { id: 25, name: 25 }],
-      dateTXList: [{ id: 1, name: 1 }, { id: 2, name: 2 }, { id: 3, name: 3 }, { id: 4, name: 4 }, { id: 5, name: 5 }, { id: 6, name: 6 }, { id: 7, name: 7 }, { id: 8, name: 8 }, { id: 9, name: 9 }, { id: 10, name: 10 }],
       rules: {
-        settleType: [ { required: true, message: '请选择结算方式', trigger: 'change' } ],
-        creditLimit: [ { required: true, message: '请输入授信额度', trigger: 'blur' } ],
-        creditWarnLimit: [{ required: true, message: '请输入结算提醒金额', trigger: 'blur' }],
-        settleDay: [ { required: true, message: '请选择每月结算日期', trigger: 'change' } ],
-        warnBeforeDays: [ { required: true, message: '请选择每月结算提醒提前的日期', trigger: 'change' } ],
-        bondFlag: [ { required: true, message: '请选择是否缴纳保证金', trigger: 'change' }],
-        bondAmount: [ { required: true, message: '请输入保证金金额', trigger: 'blur' }]
+        ruleName: [ { required: true, message: '请输入活动名称', trigger: 'change' } ],
+        joinNum: [ { required: true, message: '请选择参与货架', trigger: 'blur' } ],
+        serviceQrcode: [ { required: true, message: '请上传客服二维码图片', trigger: 'change' } ]
       },
       // 表头
       columns: [
@@ -148,36 +137,49 @@ export default {
   methods: {
     handleBack () {
       this.form = {
-        settleType: undefined, // 结算方式
-        creditLimit: '', // 授信额度
-        creditWarnLimit: '', // 结算提醒金额
-        settleDay: undefined, // 每月结算日
-        warnBeforeDays: undefined, // 结算提醒提前天数
-        limitFlag: 0, // 是否限制使用
-        bondFlag: '', // 是否缴纳保证金
-        bondAmount: '' // 保证金金额
+        ruleName: '', // 活动名称
+        joinNum: '', // 参与数
+        ruleStoreList: [], // 参与门店
+        serviceQrcode: '', // 客服二维码图片
+        remarks: ''
       }
       this.$refs.ruleForm.resetFields()
       this.$router.push({ name: 'redPacketList' })
     },
     //  图片上传
     changeImage (file) {
-      this.form.storeImage = file
+      this.form.serviceQrcode = file
     },
     removeImage () {
-      this.form.storeImage = ''
-      this.$refs.storeImage.setFileList('')
+      this.form.serviceQrcode = ''
+      this.$refs.serviceQrcode.setFileList('')
+    },
+    chooseShelf (data) {
+      this.form.ruleStoreList = data
+      this.openModal = false
+      this.form.joinNum = data.length
     },
     // 活动详情
     getDetail () {
       this.spinning = true
-      shelfDetail({
-        shelfSn: this.$route.params.sn
+      rewardRuleDetail({
+        rewardRuleSn: this.$route.params.sn
       }).then(res => {
         if (res.status == 200) {
-          this.pageInfo = Object.assign({}, res.data)
-        } else {
-          this.pageInfo = null
+          const storeList = []
+          res.data.rewardRuleStoreList.map(item => {
+            storeList.push({
+              shelfSn: item.shelfSn
+            })
+          })
+          this.form = {
+            ruleName: res.data.ruleName, // 活动名称
+            joinNum: res.data.joinNum, // 参与数
+            ruleStoreList: storeList, // 参与门店
+            serviceQrcode: res.data.serviceQrcode, // 客服二维码图片
+            remarks: res.data.remarks,
+            rewardRuleSn: res.data.rewardRuleSn
+          }
         }
         this.spinning = false
       })
@@ -188,13 +190,9 @@ export default {
       this.$refs.ruleForm.validate(valid => {
         if (valid) {
           const params = Object.assign({}, _this.form)
-          if (this.isEdit) {
-            params.shelfSn = this.pageInfo.shelfSn
-            params.storeSn = this.pageInfo.storeSn
-            params.dealerSn = this.pageInfo.dealerSn
-          }
+          const fun = !this.isEdit ? rewardRuleCreate : rewardRuleModify
           _this.spinning = true
-          shelfSettleRuleSave(params).then(res => {
+          fun(params).then(res => {
             if (res.status == 200) {
               _this.$message.success(res.message)
               setTimeout(function () {

+ 25 - 17
src/views/numsGoodsShelves/redPacket/list.vue

@@ -6,12 +6,12 @@
           <a-row :gutter="15">
             <a-col :md="6" :sm="24">
               <a-form-item label="活动名称">
-                <a-input id="redPacket-shelfName" allowClear v-model.trim="queryParam.shelfName" placeholder="请输入活动名称"/>
+                <a-input id="redPacket-shelfName" allowClear v-model.trim="queryParam.ruleName" placeholder="请输入活动名称"/>
               </a-form-item>
             </a-col>
             <a-col :md="4" :sm="24">
               <a-form-item label="活动状态">
-                <v-select id="redPacket-state" code="SHELF_STATE" v-model="queryParam.state" allowClear placeholder="请选择状态"></v-select>
+                <v-select id="redPacket-state" code="REWARD_RULE_STATUS" v-model="queryParam.ruleStatus" allowClear placeholder="请选择状态"></v-select>
               </a-form-item>
             </a-col>
             <a-col :md="6" :sm="24" style="margin-bottom: 10px;">
@@ -48,7 +48,7 @@
 
 <script>
 import { STable, VSelect } from '@/components'
-import { getShelfList } from '@/api/shelf.js'
+import { rewardRuleList, rewardRuleRelease, rewardRuleDelete } from '@/api/redPacket.js'
 import dealerList from '@/views/common/dealerList.vue'
 import storeList from '@/views/common/storeList.vue'
 export default {
@@ -61,28 +61,28 @@ export default {
       tableHeight: 0,
       // 查询参数
       queryParam: {
-        state: '', // 货架状态
-        settleType: '' // 结算状态
+        ruleName: '', // 活动名称
+        ruleStatus: undefined // 状态
       },
       showModal: false,
       itemData: null, // 编辑行数据
       // 表头
       columns: [
         { title: '序号', dataIndex: 'no', width: '5%', align: 'center' },
-        { title: '活动名称', dataIndex: 'shelfName', width: '17%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '活动发布时间', dataIndex: 'createDate', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '活动截止时间', dataIndex: 'createDate', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '参与货架', dataIndex: 'dealerName', width: '8%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '活动范围', dataIndex: 'storeName', width: '8%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '活动状态', dataIndex: 'shelfPlaceNum', width: '8%', align: 'center', customRender: function (text) { return (text || text == 0) ? text : '--' } },
-        { title: '备注', dataIndex: 'settleTypeDictValue', width: '12%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '活动名称', dataIndex: 'ruleName', width: '17%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '活动发布时间', dataIndex: 'releaseDate', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '活动截止时间', dataIndex: 'expireDate', width: '10%', align: 'center', customRender: function (text, record) { return record.neverExpireFlag == 1 ? '永久' : text } },
+        { title: '参与货架', dataIndex: 'joinNum', width: '8%', align: 'center', customRender: function (text) { return text ? ('共' + text + '个货架') : '--' } },
+        { title: '活动范围', dataIndex: 'bizTypes', width: '8%', align: 'center', customRender: function (text) { return '货架订单' } },
+        { title: '活动状态', dataIndex: 'ruleStatusDictValue', width: '8%', align: 'center', customRender: function (text) { return (text || text == 0) ? text : '--' } },
+        { title: '备注', dataIndex: 'remarks', width: '12%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '创建时间', dataIndex: 'createDate', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '操作', width: '12%', align: 'left', scopedSlots: { customRender: 'action' } }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         this.spinning = true
-        return getShelfList(Object.assign(parameter, this.queryParam)).then(res => {
+        return rewardRuleList(Object.assign(parameter, this.queryParam)).then(res => {
           let data
           if (res.status == 200) {
             data = res.data
@@ -102,21 +102,29 @@ export default {
     // 重置
     reset () {
       this.queryParam = {
-        shelfName: '', // 货架名称
-        state: undefined// 货架状态
+        ruleName: '', // 活动名称
+        ruleStatus: undefined // 状态
       }
       this.$refs.table.refresh(true)
     },
     // 编辑/新增
     handleEdit (row) {
       if (row) { //  编辑
-        this.$router.push({ name: 'redPacketEdit', params: { shelfSn: row.sn } })
+        this.$router.push({ name: 'redPacketEdit', params: { sn: row.rewardRuleSn } })
       } else {
         this.$router.push({ name: 'redPacketAdd' })
       }
     },
     // 发布
     handlePublish (row) {
+      this.spinning = true
+      rewardRuleRelease({ rewardRuleSn: row.rewardRuleSn }).then(res => {
+        if (res.status == 200) {
+          this.$message.success(res.message)
+          this.$refs.table.refresh()
+        }
+        this.spinning = false
+      })
     },
     // 删除
     handleDelete (row) {
@@ -127,7 +135,7 @@ export default {
         centered: true,
         onOk () {
           _this.spinning = true
-          productAudit({ sn: row.productSn }).then(res => {
+          rewardRuleDelete({ rewardRuleSn: row.rewardRuleSn }).then(res => {
             if (res.status == 200) {
               _this.$message.success(res.message)
               _this.$refs.table.refresh()

+ 26 - 6
src/views/numsGoodsShelves/redPacket/shelfModal.vue

@@ -39,7 +39,7 @@
           class="sTable"
           ref="table"
           size="small"
-          rowKey="id"
+          rowKey="shelfSn"
           :columns="columns"
           :row-selection="{ columnWidth: 40 }"
           @rowSelection="rowSelectionFun"
@@ -58,7 +58,7 @@
 
 <script>
 import { STable, VSelect } from '@/components'
-import { getShelfList } from '@/api/shelf.js'
+import { rewardRuleShelfQueryPage } from '@/api/redPacket.js'
 import dealerList from '@/views/common/dealerList.vue'
 import storeList from '@/views/common/storeList.vue'
 export default {
@@ -101,7 +101,7 @@ export default {
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         this.spinning = true
-        return getShelfList(Object.assign(parameter, this.queryParam)).then(res => {
+        return rewardRuleShelfQueryPage(Object.assign(parameter, this.queryParam)).then(res => {
           let data
           if (res.status == 200) {
             data = res.data
@@ -111,6 +111,7 @@ export default {
               _item.no = no + i + 1
             }
           }
+          this.setCheckList(data.list)
           this.spinning = false
           return data
         })
@@ -131,18 +132,34 @@ export default {
     storeChange (obj) {
       this.queryParam.storeSn = obj.key || undefined
     },
+    // 设置已选中项
+    setCheckList (data) {
+      const selected = []
+      this.checkedList.map(item => {
+        selected.push(item.shelfSn)
+      })
+      this.$refs.table.setTableSelected(selected, [])
+    },
     handleBack () {
       this.$emit('close')
     },
     handleOk () {
       const _this = this
+      console.log(_this.rowSelectionInfo)
       if (!_this.rowSelectionInfo || (_this.rowSelectionInfo && _this.rowSelectionInfo.selectedRowKeys.length < 1)) {
         _this.$message.warning('请选择货架!')
+        return
       }
-      this.$emit('ok', _this.rowSelectionInfo.selectedRowKeys)
+      const ret = []
+      _this.rowSelectionInfo.selectedRowKeys.map(item => {
+        ret.push({
+          'shelfSn': item
+        })
+      })
+      this.$emit('ok', ret)
     },
     // 重置
-    reset () {
+    reset (flag) {
       this.queryParam = {
         dealerSn: undefined, // 配件经销商sn
         shelfName: '', // 货架名称
@@ -160,8 +177,11 @@ export default {
     },
     isshow (newValue, oldValue) {
       if (!newValue) {
-        this.$refs.ruleForm.resetFields()
         this.$emit('close')
+      } else {
+        this.$nextTick(() => {
+          this.reset(true)
+        })
       }
     }
   }

+ 2 - 2
vue.config.js

@@ -108,8 +108,8 @@ const vueConfig = {
     // If you want to turn on the proxy, please remove the mockjs /src/main.jsL11
     proxy: {
       '/api': {
-        target: 'http://p.xprh.360arrow.com/xprh-admin',
-        // target: 'http://192.168.0.215:8701/xprh-admin',
+        // target: 'http://p.xprh.360arrow.com/xprh-admin',
+        target: 'http://192.168.0.215:8701/xprh-admin',
         // ws: false,
         ws: true,
         changeOrigin: true,