lilei il y a 3 ans
Parent
commit
e54d4c4cd3

+ 15 - 15
src/config/router.config.js

@@ -593,7 +593,7 @@ export const asyncRouterMap = [
         component: PageView,
         meta: {
           title: '采购管理',
-          icon: 'money-collect',
+          icon: 'file-done',
           permission: 'M_purchasingManagement'
         },
         children: [
@@ -604,7 +604,7 @@ export const asyncRouterMap = [
             component: BlankLayout,
             meta: {
               title: '采购单管理',
-              icon: 'money-collect',
+              icon: 'file-done',
               permission: 'M_purchasingList'
             },
             hideChildrenInMenu: true,
@@ -615,7 +615,7 @@ export const asyncRouterMap = [
                 component: () => import(/* webpackChunkName: "purchasingManagement" */ '@/views/purchasingManagement/purchaseOrder/list.vue'),
                 meta: {
                   title: '采购单列表',
-                  icon: 'money-collect',
+                  icon: 'file-done',
                   hidden: true,
                   permission: 'M_purchasingList'
                 }
@@ -626,7 +626,7 @@ export const asyncRouterMap = [
                 component: () => import(/* webpackChunkName: "purchasingManagement" */ '@/views/purchasingManagement/purchaseOrder/edit.vue'),
                 meta: {
                   title: '新增采购单',
-                  icon: 'money-collect',
+                  icon: 'file-done',
                   hidden: true,
                   permission: 'B_purchaseNew'
                 }
@@ -637,7 +637,7 @@ export const asyncRouterMap = [
                 component: () => import(/* webpackChunkName: "purchasingManagement" */ '@/views/purchasingManagement/purchaseOrder/edit.vue'),
                 meta: {
                   title: '编辑采购单',
-                  icon: 'money-collect',
+                  icon: 'file-done',
                   hidden: true,
                   permission: 'B_purchaseEdit'
                 }
@@ -648,7 +648,7 @@ export const asyncRouterMap = [
                 component: () => import(/* webpackChunkName: "purchasingManagement" */ '@/views/purchasingManagement/purchaseOrder/detail.vue'),
                 meta: {
                   title: '采购单详情',
-                  icon: 'money-collect',
+                  icon: 'file-done',
                   hidden: true,
                   replaceTab: true,
                   permission: 'B_purchaseDetail'
@@ -660,7 +660,7 @@ export const asyncRouterMap = [
                 component: () => import(/* webpackChunkName: "purchasingManagement" */ '@/views/purchasingManagement/purchaseOrder/warehousing.vue'),
                 meta: {
                   title: '采购入库',
-                  icon: 'money-collect',
+                  icon: 'file-done',
                   hidden: true,
                   replaceTab: true,
                   permission: 'B_purchaseReceiving'
@@ -846,7 +846,7 @@ export const asyncRouterMap = [
         component: PageView,
         meta: {
           title: '出库管理',
-          icon: 'logout',
+          icon: 'export',
           permission: 'M_outboundList'
         },
         children: [
@@ -857,7 +857,7 @@ export const asyncRouterMap = [
             component: BlankLayout,
             meta: {
               title: '出库',
-              icon: 'logout',
+              icon: 'export',
               permission: 'M_outboundList'
             },
             hideChildrenInMenu: true,
@@ -868,7 +868,7 @@ export const asyncRouterMap = [
                 component: () => import(/* webpackChunkName: "outboundOrderManagement" */ '@/views/outboundOrderManagement/outboundOrder/list.vue'),
                 meta: {
                   title: '出库列表',
-                  icon: 'logout',
+                  icon: 'export',
                   hidden: true,
                   permission: 'M_outboundList'
                 }
@@ -2591,7 +2591,7 @@ export const asyncRouterMap = [
         component: PageView,
         meta: {
           title: '供应商管理',
-          icon: 'team',
+          icon: 'contacts',
           permission: 'M_supplierInfoList'
         },
         children: [
@@ -2602,7 +2602,7 @@ export const asyncRouterMap = [
             component: BlankLayout,
             meta: {
               title: '供应商管理',
-              icon: 'team',
+              icon: 'contacts',
               permission: 'M_supplierInfoList'
             },
             hideChildrenInMenu: true,
@@ -2613,7 +2613,7 @@ export const asyncRouterMap = [
                 component: () => import(/* webpackChunkName: "productManagement" */ '@/views/supplierManagement/supplierInfo/list.vue'),
                 meta: {
                   title: '供应商列表',
-                  icon: 'team',
+                  icon: 'contacts',
                   hidden: true,
                   permission: 'M_supplierInfoList'
                 }
@@ -2692,7 +2692,7 @@ export const asyncRouterMap = [
         component: PageView,
         meta: {
           title: '基础设置',
-          icon: 'pushpin',
+          icon: 'setting',
           permission: 'M_basicData'
         },
         children: [
@@ -2830,7 +2830,7 @@ export const asyncRouterMap = [
         component: PageView,
         meta: {
           title: '权限管理',
-          icon: 'lock',
+          icon: 'key',
           permission: 'M_powerMD_0'
         },
         children: [

+ 17 - 3
src/views/bulkManagement/bulkImport/list.vue

@@ -65,6 +65,14 @@
           style="margin: 0 15px;">导出错误项</a-button>
       </div>
     </a-spin>
+    <common-modal
+      :openModal="openTipsModal"
+      :modalHtml="modalHtml"
+      modalTit="操作提示"
+      okText="确定"
+      :isCancel="false"
+      @ok="openTipsModal=false"
+      @close="openTipsModal=false" />
   </a-card>
 </template>
 
@@ -73,12 +81,15 @@ import { commonMixin } from '@/utils/mixin'
 import { STable, Upload } from '@/components'
 import { stockImportList, stockImportFinish, stockImportCancel, stockImportExportError } from '@/api/stockImport'
 import { downloadExcel } from '@/libs/JGPrint.js'
+import commonModal from '@/views/common/commonModal.vue'
 export default {
   name: 'StockImportList',
-  components: { STable, Upload },
+  components: { STable, Upload, commonModal },
   mixins: [commonMixin],
   data () {
     return {
+      openTipsModal: false,
+      modalHtml: '',
       spinning: false,
       exportLoading: false, // 导出loading
       tableHeight: 0,
@@ -155,6 +166,7 @@ export default {
             if (res.status == 200) {
               _this.$message.success(res.message)
               _this.resetSearchForm()
+              _this.showSuccessModal()
               _this.spinning = false
             } else {
               _this.spinning = false
@@ -163,6 +175,10 @@ export default {
         }
       })
     },
+    showSuccessModal () {
+      this.openTipsModal = true
+      this.modalHtml = '<div><div>库存导入成功</div><div>入库类型:散件导入</div><div>库存批次:2021-04-22 12:25:36</div><div>总导入款数:26</div><div>总入库数量:52</div><div>总入库成本:1254</div></div>'
+    },
     // 取消导入
     handleCancel () {
       const _this = this
@@ -184,8 +200,6 @@ export default {
         }
       })
     },
-    // 下载模板
-    handleExport () {},
     // 导出错误项
     handleExportError () {
       const _this = this

+ 2 - 2
src/views/common/commonModal.vue

@@ -86,7 +86,7 @@ export default {
   .common-modal{
     .common-main{
       display: flex;
-      line-height: 20px;
+      line-height: 24px;
       .common-cont{
         .common-tit{
           color: rgba(0, 0, 0);
@@ -104,7 +104,7 @@ export default {
       }
     }
     .btn-box{
-      text-align: right;
+      text-align: center;
       margin-top: 20px;
     }
   }

+ 14 - 1
src/views/financialManagement/inventoryCheckAudit/list.vue

@@ -71,6 +71,8 @@
     </a-spin>
     <!-- 详情 -->
     <inventoryChecking-detail-modal :openModal="openDetailModal" :itemSn="itemSn" @close="handleDetailClose" />
+    <!-- 设置成本价 -->
+    <setPriceModal ref="setPriceModal" :openModal="openCostPriceModal" @close="openCostPriceModal=false"></setPriceModal>
   </a-card>
 </template>
 
@@ -80,10 +82,11 @@ import { STable, VSelect } from '@/components'
 import rangeDate from '@/views/common/rangeDate.vue'
 import stateIcon from '@/views/common/stateIcon'
 import inventoryCheckingDetailModal from '@/views/inventoryManagement/inventoryChecking/detailModal.vue'
+import setPriceModal from './setPriceModal.vue'
 import { checkWarehouseAuditList, checkWarehouseFinanceAudit, checkWarehouseReInventory } from '@/api/checkWarehouse'
 export default {
   name: 'InventoryCheckingList',
-  components: { STable, VSelect, rangeDate, inventoryCheckingDetailModal, stateIcon },
+  components: { STable, VSelect, rangeDate, inventoryCheckingDetailModal, stateIcon, setPriceModal },
   mixins: [commonMixin],
   data () {
     return {
@@ -132,6 +135,7 @@ export default {
       },
       productTotal: null,
       openDetailModal: false,
+      openCostPriceModal: true,
       itemSn: null
     }
   },
@@ -164,6 +168,8 @@ export default {
               _this.$message.success(res.message)
               _this.$refs.table.refresh()
               _this.spinning = false
+              // 如果有盈亏的产品,没有最近一次入库成本价,需要设置成本价
+              _this.setCostPrice(res.data)
             } else {
               _this.spinning = false
             }
@@ -171,6 +177,13 @@ export default {
         }
       })
     },
+    // 设置成本价
+    setCostPrice (data) {
+      this.openCostPriceModal = true
+      this.$nextTick(() => {
+        this.$refs.setPriceModal.setData(data)
+      })
+    },
     // 重盘
     handleAgain (row) {
       const _this = this

+ 129 - 0
src/views/financialManagement/inventoryCheckAudit/setPriceModal.vue

@@ -0,0 +1,129 @@
+<template>
+  <a-modal
+    centered
+    class="setPrice-basicInfo-modal"
+    :footer="null"
+    :maskClosable="false"
+    :title="title"
+    v-model="isShow"
+    @cancel="cancel"
+    :width="800">
+    <a-spin :spinning="spinning" tip="Loading...">
+      <div class="setPrice-title">
+        <div>以下产品没有成本价,无法进行财务盘点审核!</div>
+        <div>请先设置成本价,然后再审核。</div>
+      </div>
+      <div class="setPrice-table">
+        <a-table
+          class="sTable fixPagination"
+          ref="table"
+          size="small"
+          :rowKey="(record) => record.id"
+          :columns="columns"
+          :data-source="list"
+          :scroll="{ y:400 }"
+          :pagination="false"
+          bordered>
+          <template slot="action" slot-scope="text,record">
+            <a-input-number
+              style="width: 100%;"
+              size="small"
+              v-model="record.costPrice"
+              :precision="0"
+              :min="0"
+              :max="999999"
+              placeholder="请输入成本价"
+            />
+          </template>
+        </a-table>
+      </div>
+      <div class="btn-cont">
+        <a-button type="primary" @click="handleSubmit">保存</a-button>
+        <a-button @click="cancel" style="margin-left: 15px;">取消</a-button>
+      </div>
+    </a-spin>
+  </a-modal>
+</template>
+
+<script>
+import { commonMixin } from '@/utils/mixin'
+export default {
+  name: 'SettleModal',
+  components: {},
+  mixins: [commonMixin],
+  props: {
+    openModal: { //  弹框显示状态
+      type: Boolean,
+      default: false
+    },
+    title: {
+      type: String,
+      default: '设置成本价'
+    }
+  },
+  data () {
+    return {
+      spinning: false,
+      confirmLoading: false,
+      isShow: this.openModal, //  是否打开弹框
+      list: [
+        { productCode: '12323-2344', productName: '撒地方就了啊手动阀' },
+        { productCode: 'A-sdf', productName: '反对敢死队风格' },
+        { productCode: '1bb-2344', productName: '撒打发稍等' }
+      ],
+      // 表头
+      columns: [
+        { title: '产品编码', dataIndex: 'productCode', width: '30%', align: 'center', customRender: function (text) { return ((text || text != ' ') ? text : '--') } },
+        { title: '产品名称', dataIndex: 'productName', width: '50%', align: 'center', customRender: function (text) { return (text || '--') } },
+        { title: '成本价', scopedSlots: { customRender: 'action' }, width: '20%', align: 'center' }
+      ]
+    }
+  },
+  methods: {
+    //  保存
+    handleSubmit (e) {
+      const _this = this
+      const hasEmpty = this.list.filter(item => !item.costPrice && item.costPrice != 0)
+      if (hasEmpty.length) {
+        this.$message.info('成本价不能为空!')
+        return
+      }
+      _this.isShow = false
+      _this.$emit('ok', this.list)
+    },
+    cancel () {
+      this.isShow = false
+    },
+    // 编辑信息
+    setData (data) {
+      this.list = data
+    }
+  },
+  watch: {
+    //  父页面传过来的弹框状态
+    openModal (newValue, oldValue) {
+      this.isShow = newValue
+    },
+    //  重定义的弹框状态
+    isShow (newValue, oldValue) {
+      if (!newValue) {
+        this.$emit('close')
+      }
+    }
+  }
+}
+</script>
+
+<style lang="less">
+  .setPrice-basicInfo-modal{
+    .setPrice-title{
+      text-align: center;
+      padding-bottom: 20px;
+      line-height: 24px;
+    }
+    .btn-cont{
+      padding: 30px 0 0;
+      text-align: center;
+    }
+  }
+</style>

+ 17 - 1
src/views/inventoryManagement/inventoryImport/list.vue

@@ -66,6 +66,14 @@
           style="margin: 0 15px;">导出错误项</a-button>
       </div>
     </a-spin>
+    <common-modal
+      :openModal="openTipsModal"
+      :modalHtml="modalHtml"
+      modalTit="操作提示"
+      okText="确定"
+      :isCancel="false"
+      @ok="openTipsModal=false"
+      @close="openTipsModal=false" />
   </a-card>
 </template>
 
@@ -74,12 +82,15 @@ import { commonMixin } from '@/utils/mixin'
 import { STable, Upload } from '@/components'
 import { stockImportList, stockImportFinish, stockImportCancel, stockImportKCExportError } from '@/api/stockImport'
 import { downloadExcel } from '@/libs/JGPrint.js'
+import commonModal from '@/views/common/commonModal.vue'
 export default {
   name: 'StockImportList',
-  components: { STable, Upload },
+  components: { STable, Upload, commonModal },
   mixins: [commonMixin],
   data () {
     return {
+      openTipsModal: false,
+      modalHtml: '',
       spinning: false,
       exportLoading: false, // 导出loading
       tableHeight: 0,
@@ -151,6 +162,7 @@ export default {
             if (res.status == 200) {
               _this.$message.success(res.message)
               _this.resetSearchForm()
+              _this.showSuccessModal()
               _this.spinning = false
             } else {
               _this.spinning = false
@@ -159,6 +171,10 @@ export default {
         }
       })
     },
+    showSuccessModal () {
+      this.openTipsModal = true
+      this.modalHtml = '<div><div>库存导入成功</div><div>入库类型:库存导入</div><div>库存批次:2021-04-22 12:25:36</div><div>总导入款数:26</div><div>总入库数量:52</div><div>总入库成本:1254</div></div>'
+    },
     // 取消导入
     handleCancel () {
       const _this = this

+ 6 - 3
src/views/inventoryManagement/inventoryQuery/detailModal.vue

@@ -12,8 +12,10 @@
       <!-- 合计 -->
       <a-alert type="info" style="margin-bottom:10px">
         <div class="ftext" slot="message">
-          可用库存总数量(个):<strong>{{ currentStock&&(currentStock.currentStockQty || currentStock.currentStockQty==0) ? currentStock.currentStockQty : '--' }}</strong>;
-          可用库存总成本(¥):<strong>{{ currentStock&&(currentStock.currentStockCost || currentStock.currentStockCost==0) ? currentStock.currentStockCost : '--' }}</strong>。
+          可用库存总数量(个):<strong>{{ currentStock&&(currentStock.currentStockQty || currentStock.currentStockQty==0) ? currentStock.currentStockQty : '--' }}</strong>;
+          可用库存总成本(¥):<strong>{{ currentStock&&(currentStock.currentStockCost || currentStock.currentStockCost==0) ? currentStock.currentStockCost : '--' }}</strong>;
+          冻结库存总数量(个):<strong>{{ currentStock&&(currentStock.currentStockQty || currentStock.currentStockQty==0) ? currentStock.currentStockQty : '--' }}</strong>;
+          冻结库存总成本(¥):<strong>{{ currentStock&&(currentStock.currentStockCost || currentStock.currentStockCost==0) ? currentStock.currentStockCost : '--' }}</strong>。
         </div>
       </a-alert>
       <!-- 库存详情 -->
@@ -74,7 +76,8 @@ export default {
         { title: '仓库', dataIndex: 'warehouseName', width: '10%', align: 'center', ellipsis: true, customRender: function (text) { return text || '--' } },
         { title: '仓位', dataIndex: 'warehouseLocationName', width: '10%', align: 'center', ellipsis: true, customRender: function (text) { return text || '--' } },
         { title: '入库类型', dataIndex: 'putBizTypeDictValue', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '库存数量', dataIndex: 'currentQty', width: '7%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '可用库存数量', dataIndex: 'currentQty', width: '7%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '冻结库存数量', dataIndex: 'currentQty', width: '7%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
         { title: '成本单价', dataIndex: 'putCost', width: '7%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } }
       ],
       // 加载数据方法 必须为 Promise 对象

+ 16 - 2
src/views/inventoryManagement/inventoryQuery/warehouseDetail.vue

@@ -57,6 +57,17 @@
                     <a-input id="inventoryQueryWarehouseDetail-unitName" v-model.trim="queryParam.unitName" allowClear placeholder="请输入单位名称"/>
                   </a-form-item>
                 </a-col>
+                <a-col :md="4" :sm="24">
+                  <a-form-item label="出入库状态">
+                    <v-select
+                      v-model="queryParam.state"
+                      ref="state"
+                      id="warehousingAuditList-state"
+                      code="STOCK_FLOW_TYPE"
+                      placeholder="请选择出入库状态"
+                      allowClear></v-select>
+                  </a-form-item>
+                </a-col>
               </template>
               <a-col :md="6" :sm="24">
                 <a-button type="primary" @click="$refs.table.refresh(true)" :disabled="disabled" id="inventoryQueryWarehouseDetail-refresh">查询</a-button>
@@ -73,7 +84,9 @@
         <a-alert type="info" style="margin-bottom:10px">
           <div class="ftext" slot="message">
             当前库存总数量(个):<strong>{{ (productTotal&&(productTotal.currentStockQty || productTotal.currentStockQty==0)) ? productTotal.currentStockQty : '--' }}</strong>;
-            当前库存总成本(¥):<strong>{{ (productTotal&&(productTotal.currentStockCost || productTotal.currentStockCost==0)) ? productTotal.currentStockCost : '--' }}</strong>。
+            当前库存总成本(¥):<strong>{{ (productTotal&&(productTotal.currentStockCost || productTotal.currentStockCost==0)) ? productTotal.currentStockCost : '--' }}</strong>;
+            冻结库存总数量(个):<strong>{{ productTotal&&(productTotal.currentStockQty || productTotal.currentStockQty==0) ? productTotal.currentStockQty : '--' }}</strong>;
+            冻结库存总成本(¥):<strong>{{ productTotal&&(productTotal.currentStockCost || productTotal.currentStockCost==0) ? productTotal.currentStockCost : '--' }}</strong>。
           </div>
         </a-alert>
         <!-- 列表 -->
@@ -141,7 +154,8 @@ export default {
         { title: '仓位', dataIndex: 'warehouseLocationName', width: '9%', align: 'center', ellipsis: true, customRender: function (text) { return text || '--' } },
         { title: '数量', scopedSlots: { customRender: 'qty' }, width: '5%', align: 'center' },
         { title: '总成本', dataIndex: 'totalCost', width: '5%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
-        { title: '总售价', dataIndex: 'totalPrice', width: '5%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } }
+        { title: '总售价', dataIndex: 'totalPrice', width: '5%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '出入库状态', dataIndex: 'bizTypeDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } }
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {

+ 1 - 1
src/views/numsGoodsShelves/settlementManagement/unSettlementDetail.vue

@@ -54,7 +54,7 @@
               </a-col>
               <a-col :xl="6" :lg="6" :md="12" :sm="24">
                 <a-form-item label="取货单编号">
-                  <a-input placeholder="请输入取货单编号" v-model="queryParam.orderBillNo" allowClear/>
+                  <a-input placeholder="请输入取货单编号" v-model.trim="queryParam.orderBillNo" allowClear/>
                 </a-form-item>
               </a-col>
               <a-col :xl="6" :lg="6" :md="6" :sm="6" >