浏览代码

bug 修复

lilei 2 年之前
父节点
当前提交
f89df600ca

+ 9 - 0
src/components/index.less

@@ -35,6 +35,15 @@
     border-color: #3d80bf;
   }
 }
+.ant-btn-background-ghost.ant-btn-primary.button-info{
+  background-color: transparent;
+  color: #39f;
+  &:hover, &:focus {
+    color: #52a6fb;
+    border-color: #52a6fb;
+    opacity: 0.8;
+  }
+}
 .ant-btn-primary.button-primary[disabled],.ant-btn-primary.button-info[disabled],.ant-btn-primary.button-warning[disabled],.ant-btn-primary.button-geekblue[disabled],.ant-btn-primary.button-purple[disabled]{
    color: rgba(255, 255, 255, 0.5);
  }

+ 2 - 2
src/views/reportData/returnGoodsPresentation/list.vue

@@ -13,7 +13,7 @@
           @keyup.enter.native="handleSearch">
           <a-row :gutter="15">
             <a-col :md="6" :sm="24">
-              <a-form-model-item label="确认日期" prop="time">
+              <a-form-model-item label="退货日期" prop="time">
                 <rangeDate ref="rangeDate" :value="queryParam.time" @change="dateChange" />
               </a-form-model-item>
             </a-col>
@@ -213,7 +213,7 @@ export default {
         { title: '区域', dataIndex: 'dealer.subareaNameSet', width: 120, align: 'center', customRender: function (text) { return (text && text.length > 0) ? text.join('/') : '--' } },
         { title: '退货单号', dataIndex: 'salesReturnBillNo', width: 160, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '省份', dataIndex: 'dealer.provinceName', width: 90, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '客户名称', dataIndex: 'dealer.dealerName', width: 120,align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '客户名称', dataIndex: 'dealer.dealerName', width: 120, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '客户级别', dataIndex: 'dealer.dealerLevelDictValue', width: 120, align: 'center', customRender: function (text) { return text || '--' } },
         { title: '品牌',
           align: 'center',

+ 56 - 24
src/views/salesManagement/outboundOrder/sendGoodModal.vue

@@ -10,9 +10,25 @@
     width="60%">
     <a-spin :spinning="spinning" tip="Loading...">
       <div class="common-main">
-        <a-alert type="info" v-if="detail.length" style="margin-bottom:10px">
-          <div slot="message">{{ customeName }},共 {{ detail && detail.length }} 个出库单,产品款数合计 <span>{{ productTotal&&productTotal.totalCategory }}</span> ,产品数量合计 <span>{{ productTotal&&productTotal.totalQty }}</span>。</div>
-        </a-alert>
+        <div style="display:flex;margin-bottom:10px;align-items: center;">
+          <a-button type="primary" class="button-info" ghost v-if="isEdit">选择关联单据</a-button>
+          <div style="padding:0 15px;" v-if="sendBillStockOutList.length">
+            <div>{{ customeName }},共 {{ sendBillStockOutList && sendBillStockOutList.length }} 个出库单,产品款数合计 <span>{{ productTotal&&productTotal.totalCategory }}</span> ,产品数量合计 <span>{{ productTotal&&productTotal.totalQty }}</span>。</div>
+          </div>
+        </div>
+        <div v-if="isEdit">
+          <a-table :columns="glColumns" :pagination="false" :scroll="{ y: 200 }" :data-source="sendBillStockOutList" bordered>
+            <template slot="action" slot-scope="text, record, index">
+              <a-button
+                size="small"
+                type="link"
+                class="button-error"
+              >
+                删除
+              </a-button>
+            </template>
+          </a-table>
+        </div>
         <div class="toolsBar">
           <a-form-model
             ref="ruleForm"
@@ -22,42 +38,42 @@
             :wrapper-col="formItemLayout.wrapperCol"
           >
             <a-row>
-              <a-col span="12">
+              <a-col span="8">
                 <a-form-model-item label="托运日期" prop="sendDate">
                   <a-date-picker :allowClear="false" inputReadOnly v-model="form.sendDate" :locale="locale"/>
                 </a-form-model-item>
               </a-col>
-              <a-col span="12">
-                <a-form-model-item label="目的地">
-                  <a-input placeholder="请输入目的地(最多30字符)" :maxLength="30" v-model.trim="form.customerAddress"></a-input>
-                </a-form-model-item>
-              </a-col>
-              <a-col span="12">
+              <a-col span="8">
                 <a-form-model-item label="收货人" prop="customerCacateName">
                   <a-input placeholder="请输入收货人(最多30字符)" :maxLength="30" v-model.trim="form.customerCacateName"></a-input>
                 </a-form-model-item>
               </a-col>
-              <a-col span="12">
+              <a-col span="8">
                 <a-form-model-item label="电话" prop="customerCacatePhone">
                   <a-input placeholder="请输入电话" :maxLength="30" v-model.trim="form.customerCacatePhone"></a-input>
                 </a-form-model-item>
               </a-col>
               <a-col span="24">
-                <a-form-model-item label="详细地址" prop="customerAddressDetail" :label-col="{span:3}" :wrapper-col="{span:19}">
+                <a-form-model-item label="详细地址" prop="customerAddressDetail" :label-col="{span:2}" :wrapper-col="{span:21}">
                   <a-textarea placeholder="请输入详细地址(最多300字符)" :maxLength="300" v-model.trim="form.customerAddressDetail"></a-textarea>
                 </a-form-model-item>
               </a-col>
-              <a-col span="12">
+              <a-col span="8">
+                <a-form-model-item label="目的地">
+                  <a-input placeholder="请输入目的地(最多30字符)" :maxLength="30" v-model.trim="form.customerAddress"></a-input>
+                </a-form-model-item>
+              </a-col>
+              <a-col span="8">
                 <a-form-model-item label="物流电话" prop="transportTele">
                   <a-input placeholder="请输入物流电话" :maxLength="30" v-model.trim="form.transportTele"></a-input>
                 </a-form-model-item>
               </a-col>
-              <a-col span="12">
+              <a-col span="8">
                 <a-form-model-item label="物流单号" prop="transportNo">
                   <a-input placeholder="请输入物流单号" :maxLength="30" v-model.trim="form.transportNo"></a-input>
                 </a-form-model-item>
               </a-col>
-              <a-col span="12">
+              <a-col span="8">
                 <a-form-model-item label="付款方式">
                   <v-select
                     v-model="form.payType"
@@ -67,7 +83,7 @@
                     allowClear></v-select>
                 </a-form-model-item>
               </a-col>
-              <a-col span="12">
+              <a-col span="8">
                 <a-form-model-item label="交货方式">
                   <v-select
                     v-model="form.handoverType"
@@ -77,7 +93,7 @@
                     allowClear></v-select>
                 </a-form-model-item>
               </a-col>
-              <a-col span="12">
+              <a-col span="8">
                 <a-form-model-item label="运费合计">
                   <!-- <a-input disabled placeholder="请输入运费合计" v-model.trim="form.totalSendAmount"></a-input> -->
                   {{ form.totalSendAmount||'--' }}
@@ -170,8 +186,8 @@
         </div>
       </div>
       <div class="btn-box">
-        <a-button @click="handleCommonCancel" v-if="isCancel">{{ cancelText }}</a-button>
-        <a-button type="primary" @click="handleCommonOk">{{ okText }}</a-button>
+        <a-button size="large" @click="handleCommonCancel" v-if="isCancel">{{ cancelText }}</a-button>
+        <a-button size="large" type="primary" @click="handleCommonOk">{{ okText }}</a-button>
       </div>
     </a-spin>
   </a-modal>
@@ -237,7 +253,21 @@ export default {
         labelCol: { span: 6 },
         wrapperCol: { span: 15 }
       },
-      detail: [],
+      sendBillStockOutList: [],
+      glColumns: [
+        { title: '序号', dataIndex: 'no', width: '6%', align: 'center', customRender: function (text) { return text } },
+        { title: '出库单号', dataIndex: 'stockOutNo', width: '10%', align: 'center' },
+        { title: '业务单号', dataIndex: 'outBizSubNo', width: '12%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '出库类型', dataIndex: 'outBizTypeDictValue', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '发货编号', dataIndex: 'sendNo', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '客户名称', dataIndex: 'buyerName', width: '12%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '收货客户名称', dataIndex: 'receiverName', width: '12%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '产品款数', dataIndex: 'productTotalCategory', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '产品数量', dataIndex: 'productTotalQty', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '单据审核时间', dataIndex: 'settleTime', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '收款时间', dataIndex: 'settleTime', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '6%', align: 'center' }
+      ],
       productTotal: null,
       tableData: [],
       columns: [
@@ -261,7 +291,7 @@ export default {
   methods: {
     // 新增,出库单和收货人信息
     setData (data, customeInfo) {
-      this.detail = data
+      this.sendBillStockOutList = data
       this.customeName = data[0].demanderName
       this.isEdit = false
       this.getProductTotal()
@@ -280,7 +310,7 @@ export default {
         console.log(res)
         this.spinning = false
         if (res.data) {
-          this.detail = res.data.sendBillStockOutList // 出库单
+          this.sendBillStockOutList = res.data.sendBillStockOutList // 出库单
           this.tableData = res.data.detailList // 发货明细
           this.tableData.map((item, i) => {
             item.no = i + 1
@@ -310,7 +340,8 @@ export default {
         totalQty: 0
       }
       const stockOutSnList = []
-      this.detail.map(item => {
+      this.sendBillStockOutList.map((item, index) => {
+        item.no = index + 1
         ret.totalCategory = ret.totalCategory + item.productTotalCategory
         ret.totalQty = ret.totalQty + item.productTotalQty
         stockOutSnList.push(item.stockOutSn)
@@ -410,7 +441,7 @@ export default {
     handleCommonCancel () {
       this.$emit('cancel')
       this.tableData = []
-      this.detail = []
+      this.sendBillStockOutList = []
       this.spinning = false
       this.$refs.ruleForm.resetFields()
       this.form = {
@@ -448,6 +479,7 @@ export default {
   .sendGood-detail-modal{
     .common-main{
        .toolsBar{
+         padding-top:15px;
          border:1px solid #eee;
          border-radius: 3px;
          display: flex;

+ 15 - 1
src/views/salesManagement/salesCollection/list.vue

@@ -91,6 +91,17 @@
                     allowClear></v-select>
                 </a-form-item>
               </a-col>
+              <a-col :md="6" :sm="24">
+                <a-form-item label="对单状态">
+                  <v-select
+                    v-model="queryParam.checkStatus"
+                    ref="checkStatus"
+                    id="salesCollectionList-checkStatus"
+                    code="CHECK_STATUS"
+                    placeholder="请选择对单状态"
+                    allowClear></v-select>
+                </a-form-item>
+              </a-col>
               <a-col :md="6" :sm="24">
                 <a-form-item label="所在区域">
                   <subarea id="salesCollectionList-subarea" v-model="queryParam.subareaSn"></subarea>
@@ -259,7 +270,8 @@ export default {
         voidFlag: undefined,
         dealerProvinceSn: undefined,
         dealerCitySn: undefined,
-        dealerCountySn: undefined
+        dealerCountySn: undefined,
+        checkStatus: undefined
       },
       disabled: false, //  查询、重置按钮是否可操作
       auditDate: [], //  审核时间
@@ -321,6 +333,7 @@ export default {
         { title: '业务状态', dataIndex: 'billStatusDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '财务状态', dataIndex: 'settleStateDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '单据状态', dataIndex: 'voidFlagDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '对单状态', dataIndex: 'checkStatusDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '操作', scopedSlots: { customRender: 'action' }, width: '4%', align: 'center' }
       ]
       if (this.$hasPermissions('B_isShowPrice')) { //  售价权限
@@ -382,6 +395,7 @@ export default {
       this.queryParam.dealerProvinceSn = undefined
       this.queryParam.dealerCitySn = undefined
       this.queryParam.dealerCountySn = undefined
+      this.queryParam.checkStatus = undefined
       this.$refs.table.refresh(true)
       this.$refs.table.clearSelected()
     },

+ 6 - 6
src/views/salesManagement/stockPrint/list.vue

@@ -108,7 +108,7 @@
           :rowKey="(record) => record.id"
           :columns="columns"
           :data="loadData"
-          :scroll="{ y:tableHeight, x: 1600 }"
+          :scroll="{ y:tableHeight, x: 1500 }"
           :defaultLoadData="false"
           bordered>
           <!-- 销售单号 -->
@@ -263,13 +263,13 @@ export default {
     columns () {
       const arr = [
         { title: '序号', dataIndex: 'no', width: '60px', align: 'center' },
-        { title: '创建时间', dataIndex: 'createDate', width: '120px', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '创建时间', dataIndex: 'createDate', width: '100px', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '销售单号', scopedSlots: { customRender: 'salesBillNo' }, width: '120px', align: 'center' },
         { title: '备货单号', scopedSlots: { customRender: 'dispatchBillNo' }, width: '120px', align: 'center' },
         { title: '发货编号', dataIndex: 'sendNo', width: '70px', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '发货说明', scopedSlots: { customRender: 'explainInfo' }, width: '150px', align: 'center', ellipsis: true },
-        { title: '客户名称', dataIndex: 'buyerName', width: '150px', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '收货客户名称', dataIndex: 'receiverName', width: '150px', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '发货说明', scopedSlots: { customRender: 'explainInfo' }, width: '100px', align: 'center', ellipsis: true },
+        { title: '客户名称', dataIndex: 'buyerName', width: '100px', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '收货客户名称', dataIndex: 'receiverName', width: '100px', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '产品款数', dataIndex: 'totalCategory', width: '70px', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
         { title: '产品数量', dataIndex: 'totalQty', width: '70px', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
         // { slots: { title: 'costTitle' }, dataIndex: 'receiveTotalAmount', width: '90px', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
@@ -285,7 +285,7 @@ export default {
       ]
       if (this.$hasPermissions('B_isShowPrice')) { //  售价权限
         arr.splice(9, 0, { slots: { title: 'costTitle' }, dataIndex: 'receiveTotalAmount', width: '90px', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } })
-        arr.splice(10, 0, { title: '易损件售价', dataIndex: 'receiveYsjTotalAmount', width: '70px', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } })
+        arr.splice(10, 0, { title: '易损件售价', dataIndex: 'receiveYsjTotalAmount', width: '90px', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } })
         arr.splice(11, 0, { title: '电池售价', dataIndex: 'receiveDcTotalAmount', width: '70px', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } })
         arr.splice(12, 0, { title: '机油售价', dataIndex: 'receiveJyTotalAmount', width: '70px', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } })
       }

+ 9 - 2
src/views/salesReturnManagement/receiveCheck/chooseProductsModal.vue

@@ -12,7 +12,13 @@
       <div class="products-con">
         <div>
           <!-- 查询配件列表 -->
-          <queryPart ref="partQuery" :isShowPrice="isShowPrice" :returnReasonList="returnReasonList" :newLoading="isInster" @add="saveProduct"></queryPart>
+          <queryPart
+            ref="partQuery"
+            :showReceiveQty="true"
+            :isShowPrice="isShowPrice"
+            :returnReasonList="returnReasonList"
+            :newLoading="isInster"
+            @add="saveProduct"></queryPart>
         </div>
       </div>
     </a-spin>
@@ -68,7 +74,8 @@ export default {
         'cost': row.lastStockCost,
         'returnReason': row.returnReason,
         'productSn': row.productSn,
-        'initialQty': row.qty
+        'initialQty': row.qty,
+        'receiveQty': row.receiveQty
       }
       this.isInster = true
       this.$emit('addProduct', params)

+ 39 - 1
src/views/salesReturnManagement/receiveCheck/receiving.vue

@@ -42,6 +42,20 @@
           :scroll="{ y: tableHeight }"
           :defaultLoadData="false"
           bordered>
+          <!-- 申请退货数量 -->
+          <template slot="initialQty" slot-scope="text, record">
+            <a-input-number
+              size="small"
+              v-if="record.addFlag == '1'&&record.addType == 'WAREHOUSE_RECEIVE'"
+              v-model="record.initialQty"
+              :precision="0"
+              :min="0"
+              :max="999999"
+              @blur="e => onCellBlurInitialQty(e.target.value, record)"
+              placeholder="请输入"
+              style="width: 100%;" />
+            <span v-else>{{ record.initialQty }}</span>
+          </template>
           <!-- 仓库实收数量 -->
           <template slot="receiveQty" slot-scope="text, record">
             <a-input-number
@@ -144,6 +158,7 @@ export default {
             for (var i = 0; i < data.list.length; i++) {
               data.list[i].no = no + i + 1
               data.list[i].receiveQtyBackups = data.list[i].receiveQty
+              data.list[i].initialQtyBackups = data.list[i].initialQty
               data.list[i].returnReasonBackups = data.list[i].returnReason
             }
             this.disabled = false
@@ -165,7 +180,7 @@ export default {
         { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
         { title: '产品编码', dataIndex: 'productEntity.code', align: 'center', width: '10%', customRender: function (text) { return text || '--' } },
         { title: '产品名称', dataIndex: 'productEntity.name', width: '20%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '申请退货数量', dataIndex: 'initialQty', align: 'center', width: '10%', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '申请退货数量', dataIndex: 'initialQty', align: 'center', width: '10%', scopedSlots: { customRender: 'initialQty' } },
         { title: '仓库实收数量', dataIndex: 'receiveQty', align: 'center', width: '10%', scopedSlots: { customRender: 'receiveQty' } },
         { title: '单位', dataIndex: 'productEntity.unit', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
         // { title: '退货单价', dataIndex: 'price', align: 'center', width: '10%', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
@@ -251,6 +266,29 @@ export default {
         }
       })
     },
+    // 申请退货数量修改
+    onCellBlurInitialQty (val, record) {
+      //  光标移出,值发生改变再调用编辑接口
+      if (val && val != record.initialQtyBackups) {
+        this.loading = true
+        this.spinning = true
+        salesReturnDetailUpdateReceiveQty({
+          salesReturnDetailSn: record.salesReturnDetailSn,
+          initialQty: val
+        }).then(res => {
+          if (res.status == 200) {
+            this.resetSearchForm(false)
+            this.$message.success(res.message)
+          } else {
+            record.initialQty = record.initialQtyBackups
+          }
+          this.loading = false
+          this.spinning = false
+        })
+      } else {
+        record.initialQty = record.initialQtyBackups
+      }
+    },
     // 仓库实收数量修改
     onCellBlurReceiveQty (val, record) {
       //  光标移出,值发生改变再调用编辑接口

+ 26 - 1
src/views/salesReturnManagement/salesReturn/queryPart.vue

@@ -42,6 +42,19 @@
             size="small"
             v-model="record.qty"
             :precision="0"
+            :min="showReceiveQty?0:1"
+            :max="999999"
+            style="width: 100%;"
+            placeholder="请输入" />
+        </div>
+      </template>
+      <!-- 仓库实收数量 -->
+      <template slot="receiveQty" slot-scope="text, record">
+        <div @dblclick.stop>
+          <a-input-number
+            size="small"
+            v-model="record.receiveQty"
+            :precision="0"
             :min="1"
             :max="999999"
             style="width: 100%;"
@@ -91,6 +104,11 @@ export default {
     isShowPrice: {
       type: Boolean,
       default: true
+    },
+    // 是否显示仓库实收数量
+    showReceiveQty: {
+      type: Boolean,
+      default: false
     }
   },
   data () {
@@ -114,7 +132,8 @@ export default {
             const no = (data.pageNo - 1) * data.pageSize
             for (var i = 0; i < data.list.length; i++) {
               data.list[i].no = no + i + 1
-              data.list[i].qty = 1
+              data.list[i].qty = this.showReceiveQty ? 0 : 1
+              data.list[i].receiveQty = 1
             }
             this.disabled = false
           }
@@ -156,8 +175,14 @@ export default {
         { title: '退货原因', dataIndex: 'returnReason', width: '10%', align: 'center', scopedSlots: { customRender: 'returnReason' } },
         { slots: { title: 'customTitle' }, scopedSlots: { customRender: 'action' }, width: '10%', align: 'center' }
       ]
+      let i = 5
       if (this.$hasPermissions('B_isShowPrice') && this.isShowPrice) { //  售价权限
         arr.splice(4, 0, { title: '当前售价', dataIndex: 'productPrice', width: '9%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } })
+        i = 6
+      }
+      // 实收数量是否显示
+      if (this.showReceiveQty) {
+        arr.splice(i, 0, { title: '仓库实收数量', dataIndex: 'receiveQty', width: '9%', align: 'center', scopedSlots: { customRender: 'receiveQty' } })
       }
       this.columns = arr
       this.resetSearchForm()

+ 2 - 2
vue.config.js

@@ -107,9 +107,9 @@ const vueConfig = {
     // If you want to turn on the proxy, please remove the mockjs /src/main.jsL11
     proxy: {
       '/api': {
-        // target: 'http://192.168.0.183:8602/ocs-admin',
+        target: 'http://192.168.0.183:8602/ocs-admin',
         // target: 'https://t.ocs.360arrow.com/ocs-admin', //  Á·Ï°
-        target: 'http://p.ocs.360arrow.com/ocs-admin', //  Ô¤·¢²¼
+        // target: 'http://p.ocs.360arrow.com/ocs-admin', //  Ô¤·¢²¼
         ws: false,
         changeOrigin: true,
         pathRewrite: {