chenrui пре 1 година
родитељ
комит
14953ba43f

+ 10 - 0
src/api/product.js

@@ -22,6 +22,16 @@ export const queryOnlinePageList = (params) => {
     method: 'post'
   })
 }
+// 产品上线信息导出
+export const productLogExportExcel = (params) => {
+  return axios({
+    url: '/productLog/exportExcel',
+    data: params,
+    method: 'post',
+    responseType: 'blob'
+  })
+}
+
 //  产品 列表 已定过价的 分页
 export const productPricedList = (params) => {
   const url = `/product/queryPricedPage/${params.pageNo}/${params.pageSize}`

+ 13 - 2
src/views/productManagement/newProduct/list.vue

@@ -96,13 +96,14 @@
 </template>
 <script>
 import { commonMixin } from '@/utils/mixin'
-import { queryNewProductPage, queryOnlinePageList } from '@/api/product'
+import { queryNewProductPage, queryOnlinePageList, productLogExportExcel } from '@/api/product'
 import { STable, VSelect } from '@/components'
 import ProductBrand from '@/views/common/productBrand.js'
 import productTypeAll from '@/views/common/productTypeAll.js'
 import rangeDate from '@/views/common/rangeDate.vue'
 import moment from 'moment'
 import getDate from '@/libs/getDate.js'
+import { hdExportExcel } from '@/libs/exportExcel'
 export default {
   name: 'NewProductList',
   mixins: [commonMixin],
@@ -127,7 +128,6 @@ export default {
         enabledFlag: undefined //  状态
       },
       disabled: false, //  查询、重置按钮是否可操作
-      exportLoading: false, // 导出loading
       time: [
         moment(getDate.getCurrMonthDays().starttime, 'YYYY-MM-DD'),
         moment(getDate.getCurrMonthDays().endtime, 'YYYY-MM-DD')
@@ -218,6 +218,17 @@ export default {
       this.queryParam.productTypeSn2 = val[1] ? val[1] : ''
       this.queryParam.productTypeSn3 = val[2] ? val[2] : ''
     },
+    //  导出
+    handleExport () {
+      const _this = this
+      const params = _this.queryParam
+      _this.spinning = true
+      _this.disabled = true
+      hdExportExcel(productLogExportExcel, params, '产品上线信息', function () {
+        _this.disabled = false
+        _this.spinning = false
+      })
+    },
     pageInit () {
       const _this = this
       this.$nextTick(() => { // 页面渲染完成后的回调

+ 6 - 5
src/views/purchasingManagement/purchaseReturn/addModal.vue

@@ -37,8 +37,8 @@
             placeholder="请选择退货仓库"
           />
         </a-form-model-item>
-        <a-form-model-item label="是否抓单" prop="isGrab">
-          <a-radio-group v-model="form.isGrab">
+        <a-form-model-item label="是否抓单" prop="grabFlag">
+          <a-radio-group v-model="form.grabFlag">
             <a-radio :value="1">
             </a-radio>
@@ -112,7 +112,7 @@ export default {
         explainInfo: '', // 补充说明
         warehouseSn: undefined,
         attachmentList: '',
-        isGrab: undefined
+        grabFlag: 0
       },
       attachList: [], // 附件
       rules: {
@@ -123,7 +123,7 @@ export default {
           { required: true, message: '请选择退货原因', trigger: 'change' }
         ],
         warehouseSn: [{ required: true, message: '请选择退货仓库', trigger: 'change' }],
-        isGrab: [{ required: true, message: '请选择是否抓单', trigger: 'change' }]
+        grabFlag: [{ required: true, message: '请选择是否抓单', trigger: 'change' }]
       },
       attachAction: process.env.VUE_APP_API_BASE_URL + '/uploadGetFileInfo'
     }
@@ -172,7 +172,8 @@ export default {
             returnReason: resultObj.returnReason, // 退货原因
             explainInfo: resultObj.explainInfo, // 补充说明
             warehouseSn: resultObj.warehouseSn,
-            sparePartsReturnSn: this.itemSn
+            sparePartsReturnSn: this.itemSn,
+            grabFlag: Number(resultObj.grabFlag)
           }
           this.$nextTick(() => {
             this.$refs.attachList.setFileList(this.attachList)

+ 1 - 1
src/views/purchasingManagement/purchaseReturn/detailModal.vue

@@ -24,7 +24,7 @@
             <a-descriptions-item label="出库时间" v-if="detailsData&&detailsData.state!='AUDIT_REJECT'">{{ detailsData&&detailsData.auditDate || '--' }}</a-descriptions-item>
             <a-descriptions-item label="出库时间" v-else>--</a-descriptions-item>
             <a-descriptions-item label="业务状态">{{ detailsData&&detailsData.stateDictValue || '--' }}</a-descriptions-item>
-            <a-descriptions-item label="是否抓单">否</a-descriptions-item>
+            <a-descriptions-item label="是否抓单">{{ detailsData&&detailsData.grabFlag =='0'?'':'是' }}</a-descriptions-item>
             <a-descriptions-item label="补充说明" :span="4">{{ detailsData&&detailsData.explainInfo || '--' }}</a-descriptions-item>
             <a-descriptions-item label="附件" :span="4">
               <span v-if="detailsData&&detailsData.attachmentList&&detailsData.attachmentList.length>0">

+ 11 - 3
src/views/purchasingManagement/purchaseReturn/purchaseReturnDeatil.vue

@@ -27,7 +27,7 @@
           <a-descriptions-item label="供应商名称">{{ (detailsData && detailsData.supplier && detailsData.supplier.supplierName) || '--' }}</a-descriptions-item>
           <a-descriptions-item label="退货原因">{{ (detailsData && detailsData.returnReasonDictValue) || '--' }}</a-descriptions-item>
           <a-descriptions-item label="退货仓库">{{ detailsData&&detailsData.warehouseName || '--' }}</a-descriptions-item>
-          <a-descriptions-item label="是否抓单">否</a-descriptions-item>
+          <a-descriptions-item label="是否抓单">{{ detailsData&&detailsData.grabFlag =='0'?'':'是' }}</a-descriptions-item>
           <a-descriptions-item label="补充说明">{{ (detailsData && detailsData.explainInfo) || '--' }}</a-descriptions-item>
           <a-descriptions-item label="附件" :span="2">
             <span v-if="detailsData && detailsData.attachmentList && detailsData.attachmentList.length > 0">
@@ -46,7 +46,13 @@
         </a-descriptions>
       </a-card>
       <a-card size="small" :bordered="false" class="salesReturnEdit-cont">
-        <queryPart ref="partQuery" :newLoading="isInster" :addMoreLoading="addMoreLoading" @add="saveProduct" @bachAdd="saveMoreProduct"></queryPart>
+        <queryPart
+          ref="partQuery"
+          :isGrab="grabFlag"
+          :newLoading="isInster"
+          :addMoreLoading="addMoreLoading"
+          @add="saveProduct"
+          @bachAdd="saveMoreProduct"></queryPart>
       </a-card>
       <a-card size="small" :bordered="false" class="salesReturnEdit-cont">
         <a-alert style="margin-bottom: 10px;" type="info">
@@ -194,7 +200,8 @@ export default {
       openModal: false, // 修改信息弹窗
       statisticsObj: null, // 统计明细
       detailsData: null, // 基础信息数据
-      addMoreLoading: false // 批量添加动画
+      addMoreLoading: false, // 批量添加动画
+      grabFlag: undefined
     }
   },
   computed: {
@@ -487,6 +494,7 @@ export default {
     getBasicsData () {
       sparePartsReturnInfo({ sn: this.sparePartsReturnSn }).then(res => {
         if (res.status == 200) {
+          this.grabFlag = res.data.grabFlag
           this.detailsData = res.data
         } else {
           this.detailsData = null

+ 10 - 5
src/views/purchasingManagement/purchaseReturn/queryPart.vue

@@ -108,6 +108,10 @@ export default {
     addMoreLoading: {
       type: Boolean,
       default: false
+    },
+    isGrab: {
+      type: String || Number,
+      default: ''
     }
   },
   data () {
@@ -132,6 +136,7 @@ export default {
         this.queryParam.supplierSn = this.buyerSn
         this.queryParam.createDate = '2023-01-01 00:00:00'
         this.queryParam.warehouseSn = this.warehouseSn
+        this.queryParam.grabFlag = this.isGrab
         return queryDetailStockPage(Object.assign(parameter, this.queryParam)).then(res => {
           let data
           if (res.status == 200) {
@@ -154,13 +159,13 @@ export default {
         { title: '序号', dataIndex: 'no', width: '6%', align: 'center' },
         { title: '关联单号', dataIndex: 'sparePartsNo', width: '24%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '产品编码', dataIndex: 'product.code', width: '24%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '产品名称', dataIndex: 'product.name', width: '27%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '产品名称', dataIndex: 'product.name', width: '30%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '单位', dataIndex: 'product.unit', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '批次号', dataIndex: 'sparePartsBatchNo', width: '13%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '库数量', dataIndex: 'productQty', width: '9%', align: 'center', customRender: function (text) { return (text || text == 0) ? text : '--' } },
-        { title: '已退数量', dataIndex: 'returnedQty', width: '9%', align: 'center', customRender: function (text) { return (text || text == 0) ? text : '--' } },
-        { title: '最大可退数量', dataIndex: 'currentStockQty', width: '9%', align: 'center', customRender: function (text) { return (text || text == 0) ? text : '--' } },
-        { title: '申请退货数量', width: '9%', align: 'center', scopedSlots: { customRender: 'qty' } },
+        { title: '库数量', dataIndex: 'productQty', width: '9%', align: 'center', customRender: function (text) { return (text || text == 0) ? text : '--' } },
+        // { title: '已退数量', dataIndex: 'returnedQty', width: '9%', align: 'center', customRender: function (text) { return (text || text == 0) ? text : '--' } },
+        // { title: '最大可退数量', dataIndex: 'currentStockQty', width: '9%', align: 'center', customRender: function (text) { return (text || text == 0) ? text : '--' } },
+        { title: '申请退货数量', width: '13%', align: 'center', scopedSlots: { customRender: 'qty' } },
         { title: '操作', scopedSlots: { customRender: 'action' }, width: '10%', align: 'center' }
       ]
       if (this.$hasPermissions('B_purchaseReturnEdit_costPrice')) {

+ 4 - 0
src/views/salesManagement/outboundOrder/sendGoodModal.vue

@@ -336,6 +336,10 @@ export default {
     },
     // 删除出库单
     delStockOutList (row) {
+      if(this.sendBillStockOutList&&this.sendBillStockOutList.length==1){
+        this.$message.warning('发货单必须关联相关出库单号!')
+        return 
+      }
       const ri = this.sendBillStockOutList.findIndex(item => row.stockOutSn == item.stockOutSn)
       // 新加的
       if (row.id) {

+ 1 - 1
src/views/salesManagement/salesList/list.vue

@@ -130,7 +130,7 @@
                 <div v-if="record.sendOverDay*1>0">已超时{{ record.sendOverDay }}天(要求销售单允许打印后3天内发货)</div>
               </template>
               <div class="statusBox">
-                <a-icon type="exclamation-circle" :style="{color:'#ed1c24',fontSize:'20px',marginRight:'8px',display:'inlineBlock'}"/>
+                <a-icon type="exclamation-circle" theme="filled" :style="{color:'#ed1c24',fontSize:'18px',marginRight:'6px',display:'inlineBlock'}"/>
                 <span v-if="record.dispatchOverDay*1>0">未备货</span>
                 <span v-if="record.settleOverDay*1>0">未收款</span>
                 <span v-if="record.sendOverDay*1>0">未发货</span>

+ 2 - 2
src/views/salesReturnManagement/returnSchedule/list.vue

@@ -110,8 +110,8 @@
                 <span>已超时{{ record.customerServiceConfirmOverDay }}天(要求提货后3-5天内完成清点)</span>
               </template>
               <div>
-                <a-icon type="exclamation-circle" theme="filled" :style="{color:'#ed1c24',fontSize:'17px',marginRight:'6px',display:'inlineBlock'}"/>
-                <a-icon v-if="record.customerServiceConfirmOverDay*1>5" theme="filled" type="exclamation-circle" :style="{color:'#ed1c24',fontSize:'17px',marginRight:'6px',display:'inlineBlock'}"/>
+                <a-icon type="exclamation-circle" theme="filled" :style="{color:'#ed1c24',fontSize:'18px',marginRight:'6px',display:'inlineBlock'}"/>
+                <a-icon v-if="record.customerServiceConfirmOverDay*1>5" theme="filled" type="exclamation-circle" :style="{color:'#ed1c24',fontSize:'18px',marginRight:'6px',display:'inlineBlock'}"/>
                 <span style="vertical-align: top;">未清点</span>
               </div>
             </a-tooltip>