Selaa lähdekoodia

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

李磊 2 vuotta sitten
vanhempi
commit
0cb2291d72
28 muutettua tiedostoa jossa 828 lisäystä ja 199 poistoa
  1. 1 1
      public/version.json
  2. 42 0
      src/api/oos.js
  3. 11 1
      src/api/product.js
  4. 31 6
      src/config/router.config.js
  5. 3 3
      src/views/inventoryManagement/inventoryChecking/list.vue
  6. 2 2
      src/views/numsGoodsShelves/approveStore/list.vue
  7. 59 45
      src/views/power/role/menuModal.vue
  8. 11 20
      src/views/power/role/roleList.vue
  9. 7 7
      src/views/power/user/userList.vue
  10. 1 1
      src/views/productManagement/newProduct/list.vue
  11. 3 3
      src/views/productManagement/newProduct/modal.vue
  12. 3 3
      src/views/productManagement/productBrand/list.vue
  13. 3 3
      src/views/productManagement/productInfo/list.vue
  14. 89 41
      src/views/productManagement/productInfoJg/list.vue
  15. 11 12
      src/views/productManagement/productOnlineInfo/list.vue
  16. 3 3
      src/views/productManagement/productUniversal/list.vue
  17. 3 4
      src/views/purchasingManagement/purchaseOrderNew/detail.vue
  18. 1 1
      src/views/purchasingManagement/purchaseOrderNew/edit.vue
  19. 143 0
      src/views/purchasingManagement/purchaseOutOfStock/detailModal.vue
  20. 262 0
      src/views/purchasingManagement/purchaseOutOfStock/list.vue
  21. 1 1
      src/views/salesManagement/salesQueryNew/detail.vue
  22. 1 0
      src/views/salesManagement/salesQueryNew/edit.vue
  23. 32 6
      src/views/salesManagement/salesReturn/chooseCustomModal.vue
  24. 23 22
      src/views/salesManagement/salesReturn/detail.vue
  25. 38 4
      src/views/salesManagement/salesReturn/salesReturnEdit.vue
  26. 38 4
      src/views/salesManagement/salesReturn/salesReturnGrabEdit.vue
  27. 3 3
      src/views/salesManagement/salesman/list.vue
  28. 3 3
      src/views/supplierManagement/supplierInfo/list.vue

+ 1 - 1
public/version.json

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

+ 42 - 0
src/api/oos.js

@@ -11,3 +11,45 @@ export const oosList = (params) => {
     method: 'post'
   })
 }
+
+//  采购缺货列表  有分页
+export const outOfStockList = (params) => {
+  const url = `/oos/queryPage/${params.pageNo}/${params.pageSize}`
+  delete params.pageNo
+  delete params.pageSize
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}
+// 采购缺货统计
+export const outOfStockQueryCount = params => {
+  const url = `/oos/queryCount`
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}
+//  缺货详情导出
+export const outOfStockExportDetail = (params) => {
+  const url = '/oos/export'
+  return axios.request({
+    url: url,
+    data: params,
+    method: 'post',
+    responseType: 'blob'
+  })
+}
+//  缺货详情列表  有分页
+export const outOfStockDetailList = (params) => {
+  const url = `/oos/detail/queryPage/${params.pageNo}/${params.pageSize}`
+  delete params.pageNo
+  delete params.pageSize
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}

+ 11 - 1
src/api/product.js

@@ -30,6 +30,16 @@ export const productList = (params) => {
     method: 'post'
   })
 }
+export const productLogList = (params) => {
+  const url = `/productLog/queryPage/${params.pageNo}/${params.pageSize}`
+  delete params.pageNo
+  delete params.pageSize
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}
 // 查询最近上下线产品
 export const queryNewProductPage = (params) => {
   const url = `/product/queryNewProductPage/${params.pageNo}/${params.pageSize}`
@@ -70,7 +80,7 @@ export const getCurrentDealer = (params) => {
 // 产品上线信息  导出
 export const productExport = params => {
   return axios.request({
-    url: `/product/export`,
+    url: `/productLog/export`,
     method: 'post',
     data: params,
     responseType: 'blob'

+ 31 - 6
src/config/router.config.js

@@ -949,6 +949,31 @@ export const asyncRouterMap = [
               }
             ]
           },
+          {
+            path: '/purchasingManagement/purchaseOutOfStock',
+            redirect: '/purchasingManagement/purchaseOutOfStock/list',
+            name: 'purchaseOutOfStock',
+            component: BlankLayout,
+            meta: {
+              title: '采购缺货列表',
+              icon: 'money-collect',
+              permission: 'M_purchaseOutOfStockList'
+            },
+            hideChildrenInMenu: true,
+            children: [
+              {
+                path: 'list',
+                name: 'purchaseOutOfStockList',
+                component: () => import(/* webpackChunkName: "purchasingManagement" */ '@/views/purchasingManagement/purchaseOutOfStock/list.vue'),
+                meta: {
+                  title: '采购缺货列表',
+                  icon: 'money-collect',
+                  hidden: true,
+                  permission: 'M_purchaseOutOfStockList'
+                }
+              }
+            ]
+          },
           {
             path: '/purchasingManagement/purchaseReturnApplyForm',
             redirect: '/purchasingManagement/purchaseReturnApplyForm/list',
@@ -3200,8 +3225,8 @@ export const asyncRouterMap = [
         component: PageView,
         meta: {
           title: '促销管理',
-          icon: 'contacts'
-          // permission: 'M_promotionInfoList'
+          icon: 'contacts',
+          permission: 'M_promotionInfo'
         },
         children: [
           {
@@ -3211,8 +3236,8 @@ export const asyncRouterMap = [
             component: BlankLayout,
             meta: {
               title: '促销活动',
-              icon: 'contacts'
-              // permission: 'M_promotionInfoList'
+              icon: 'contacts',
+              permission: 'M_promotionInfoList'
             },
             hideChildrenInMenu: true,
             children: [
@@ -3223,8 +3248,8 @@ export const asyncRouterMap = [
                 meta: {
                   title: '促销活动列表',
                   icon: 'contacts',
-                  hidden: true
-                  // permission: 'M_promotionInfoList'
+                  hidden: true,
+                  permission: 'M_promotionInfoList'
                 }
               }
             ]

+ 3 - 3
src/views/inventoryManagement/inventoryChecking/list.vue

@@ -21,8 +21,8 @@
           </a-col>
           <template v-if="advanced">
             <a-col :md="6" :sm="24">
-              <a-form-item label="状态">
-                <v-select code="CHECK_WAREHOUSE_STATE" id="inventoryCheckingList-state" v-model="queryParam.state" allowClear placeholder="请选择状态"></v-select>
+              <a-form-item label="盘点状态">
+                <v-select code="CHECK_WAREHOUSE_STATE" id="inventoryCheckingList-state" v-model="queryParam.state" allowClear placeholder="请选择盘点状态"></v-select>
               </a-form-item>
             </a-col>
             <a-col :md="6" :sm="24">
@@ -191,7 +191,7 @@ export default {
         { title: '是否区分仓库', dataIndex: 'warehouseFlagDictValue', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '创建时间', dataIndex: 'createDate', width: '11%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '审核时间', dataIndex: 'checkSuperviseTime', width: '11%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '状态', dataIndex: 'stateDictValue', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '盘点状态', dataIndex: 'stateDictValue', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '监盘人审核', scopedSlots: { customRender: 'dpaudit' }, width: '3%', align: 'center' },
         { title: '财务人审核', scopedSlots: { customRender: 'cwaudit' }, width: '3%', align: 'center' },
         { title: '操作', scopedSlots: { customRender: 'action' }, width: '10%', align: 'center' }

+ 2 - 2
src/views/numsGoodsShelves/approveStore/list.vue

@@ -25,7 +25,7 @@
               </a-form-item>
             </a-col>
             <a-col :md="4" :sm="24">
-              <a-form-item label="状态">
+              <a-form-item label="审核状态">
                 <v-select
                   v-model="queryParam.auditStatus"
                   ref="auditStatus"
@@ -112,7 +112,7 @@ export default {
         { title: '门店地址', dataIndex: 'addrDetail', width: '28%', 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' } },
-        { title: '状态', dataIndex: 'auditStatusDictValue', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '审核状态', dataIndex: 'auditStatusDictValue', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '操作', scopedSlots: { customRender: 'action' }, width: '8%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象

+ 59 - 45
src/views/power/role/menuModal.vue

@@ -1,40 +1,40 @@
 <template>
-  <div>
-    <a-spin :spinning="spinning" tip="Loading...">
-      <a-modal
+  <a-modal
         centered
         class="modalBox"
         :title="roleName"
         v-model="isshow"
         @cancel="cancel"
         :maskClosable="false">
-        <a-form class="form-box" style="max-height: 600px;" :form="form" @submit="handleSubmit">
-          <a-tree
-            checkable
-            @check="onCheck"
-            @expand="onExpand"
-            :expandedKeys="expandedKeys"
-            :autoExpandParent="autoExpandParent"
-            v-model="checkedKeys"
-            :treeData="treeData"
-          />
-        </a-form>
-        <a-form-item :wrapper-col="{ offset: 15 }">
-          <a-button type="primary" @click="handleSubmit()" id="menuModal-handleSubmit">
-            保存
-          </a-button>
-          <a-button :style="{ marginLeft: '8px' }" @click="cancel" id="menuModal-handleCancel">
-            取消
-          </a-button>
-        </a-form-item>
+        <div style="min-height: 100px;">
+          <a-spin :spinning="spinning" tip="Loading...">
+            <a-form class="form-box" style="max-height: 600px;" :form="form" @submit="handleSubmit">
+            <a-tree
+              checkable
+              @check="onCheck"
+              @expand="onExpand"
+              :expandedKeys="expandedKeys"
+              :autoExpandParent="autoExpandParent"
+              v-model="checkedKeys"
+              :treeData="treeData"
+            />
+          </a-form>
+          <a-form-item :wrapper-col="{ offset: 15 }">
+            <a-button type="primary" @click="handleSubmit()" id="menuModal-handleSubmit">
+              保存
+            </a-button>
+            <a-button :style="{ marginLeft: '8px' }" @click="cancel" id="menuModal-handleCancel">
+              取消
+            </a-button>
+          </a-form-item>
+          </a-spin>
+        </div>
       </a-modal>
-    </a-spin>
-  </div>
 </template>
 
 <script>
 import { STable, VSelect } from '@/components'
-import { addMenuPower } from '@/api/powerRole-md.js'
+import { addMenuPower, getMenuList } from '@/api/powerRole-md.js'
 export default {
   name: 'RoleModal',
   components: {
@@ -45,17 +45,12 @@ export default {
       type: Boolean,
       default: false
     },
-    data: {
-      type: Object,
-      default: function () {
-        return {}
-      }
-    }
   },
   data () {
     return {
       spinning: false,
       treeData: [],
+      menuData: null,
       roleName: '',
       expandedKeys: [],
       autoExpandParent: true,
@@ -130,7 +125,38 @@ export default {
           }
         }
       }
-    }
+    },
+    getmenuData(id){
+      this.spinning = true
+      getMenuList({
+        id: id
+      }).then(res => {
+        if (res.status == 200) {
+          if(res.data.role){
+            this.setmenuData(res.data)
+          }else{
+            this.$message.error("获取数据失败,请重试!")
+            this.isshow = false
+          }
+        }
+        this.spinning = false
+      })
+    },
+    setmenuData(newValue){
+      this.menuData = newValue
+      console.log(this.menuData)
+      if (newValue) { // 编辑
+        this.treeData = this.menuData.allMenuList
+        this.id = this.menuData.role.id
+        this.roleName = '分配权限' + '(' + this.menuData.role.name + ')'
+        if (this.menuData.role.menuIds) {
+          const arr = this.menuData.role.menuIds.split(',')
+          this.checkedData = arr
+          // 找出叶子节点
+          this.findLeaf(this.treeData, arr)
+        }
+      }
+    },
   },
   beforeCreate () {
     this.form = this.$form.createForm(this, { name: 'menuModal' })
@@ -140,19 +166,7 @@ export default {
       this.isshow = newValue
     },
     isshow (newValue, oldValue) {
-      if (newValue) {
-        if (this.data) { // 编辑
-          this.treeData = this.data.allMenuList
-          this.id = this.data.role.id
-          this.roleName = '分配权限' + '(' + this.data.role.name + ')'
-          if (this.data.role.menuIds) {
-            const arr = this.data.role.menuIds.split(',')
-            this.checkedData = arr
-            // 找出叶子节点
-            this.findLeaf(this.treeData, arr)
-          }
-        }
-      } else {
+      if (!newValue) {
         this.cancel()
       }
     }

+ 11 - 20
src/views/power/role/roleList.vue

@@ -16,8 +16,8 @@
               </a-form-item>
             </a-col>
             <a-col :md="6" :sm="24">
-              <a-form-item label="状态">
-                <v-select code="ENABLE_FLAG" v-model="queryParam.isEnable" allowClear placeholder="请选择状态" id="roleList-isEnable"></v-select>
+              <a-form-item label="启用状态">
+                <v-select code="ENABLE_FLAG" v-model="queryParam.isEnable" allowClear placeholder="请选择启用状态" id="roleList-isEnable"></v-select>
               </a-form-item>
             </a-col>
             <a-col :md="6" :sm="24">
@@ -70,7 +70,7 @@
       </s-table>
     </a-spin>
     <roleModal :visible="showModal" :data="itemData" @refresh="refreshTable" @close="showModal = false"></roleModal>
-    <menuModal :visible="showMenuModal" :data="menuData" @close="showMenuModal = false"></menuModal>
+    <menuModal ref="menuData" :visible="showMenuModal" @close="closeMenu"></menuModal>
   </a-card>
 </template>
 
@@ -84,8 +84,7 @@ import menuModal from './menuModal.vue'
 import {
   getPowerRoleList,
   updateEnableStatus,
-  delectRolePower,
-  getMenuList
+  delectRolePower
 } from '@/api/powerRole-md.js'
 export default {
   name: 'RoleList',
@@ -107,14 +106,13 @@ export default {
       showModal: false,
       showMenuModal: false,
       itemData: {}, // 编辑行数据
-      menuData: {},
       // 表头
       columns: [
         { title: '序号', dataIndex: 'no', width: '5%', align: 'center' },
         { title: '创建时间', dataIndex: 'createDate', width: '15%', align: 'center' },
         { title: '角色名称', dataIndex: 'name', width: '25%', align: 'center' },
         { title: '角色描述', dataIndex: 'remarks', width: '25%', align: 'center', scopedSlots: { customRender: 'remarks' } },
-        { title: '状态', width: '15%', align: 'center', scopedSlots: { customRender: 'status' } },
+        { title: '启用状态', width: '15%', align: 'center', scopedSlots: { customRender: 'status' } },
         { title: '操作', width: '15%', align: 'center', scopedSlots: { customRender: 'action' } }
       ],
       // 加载数据方法 必须为 Promise 对象
@@ -161,21 +159,14 @@ export default {
     },
     // 打开分配权限弹窗
     openMenuModal (row) {
-      this.getMenuList(row.id)
-    },
-    // 获取菜单树列表
-    getMenuList (id) {
-      const _this = this
-      getMenuList({
-        id: id
-      }).then(res => {
-        if (res.status == 200) {
-          _this.menuData = res.data
-          this.showMenuModal = true
-        }
+      this.showMenuModal = true
+      this.$nextTick(()=>{
+        this.$refs.menuData.getmenuData(row.id)
       })
     },
-
+    closeMenu(){
+      this.showMenuModal = false
+    },
     // 删除
     delect (row) {
       const _this = this

+ 7 - 7
src/views/power/user/userList.vue

@@ -15,8 +15,8 @@
               </a-form-item>
             </a-col>
             <a-col :md="6" :sm="24">
-              <a-form-item label="状态">
-                <v-select id="userList-loginFlag" code="ENABLE_FLAG" v-model="queryParam.loginFlag" allowClear placeholder="请选择状态"></v-select>
+              <a-form-item label="启用状态">
+                <v-select id="userList-loginFlag" code="ENABLE_FLAG" v-model="queryParam.loginFlag" allowClear placeholder="请选择启用状态"></v-select>
               </a-form-item>
             </a-col>
             <a-col :md="4" :sm="24">
@@ -105,7 +105,7 @@ export default {
         { title: '手机号码', dataIndex: 'phone', width: '12%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '用户账号', dataIndex: 'loginName', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '角色', width: '13%', align: 'center', dataIndex: 'roleNames', customRender: function (text) { return text || '--' } },
-        { title: '状态', width: '9%', align: 'center', scopedSlots: { customRender: 'status' } },
+        { title: '启用状态', width: '9%', align: 'center', scopedSlots: { customRender: 'status' } },
         { title: '操作', width: '10%', align: 'center', scopedSlots: { customRender: 'action' } }
       ],
       // 加载数据方法 必须为 Promise 对象
@@ -117,11 +117,11 @@ export default {
             data = res.data
             const no = (data.pageNo - 1) * data.pageSize
             // 超级管理员列表不显示
-            let userList=data.list.filter((item)=>{
-              return item.loginName!='xsadmin'
+            const userList = data.list.filter((item) => {
+              return item.loginName != 'xsadmin'
             })
-            data.list=userList
-            console.log(userList,data,'符合条件的数组')
+            data.list = userList
+            console.log(userList, data, '符合条件的数组')
             for (let i = 0; i < data.list.length; i++) {
               const _item = data.list[i]
               // console.log(data,'符合条件的数组')

+ 1 - 1
src/views/productManagement/newProduct/list.vue

@@ -66,7 +66,7 @@
         </template>
         <!-- 上/下线时间 内容 -->
         <template slot="auditTime" slot-scope="text, record">
-          {{ $route.params.onlineFalg=='1'?record.onlineAuditTime:record.offlineAuditTime }}
+          {{ $route.params.onlineFalg=='1'?record.onlineAuditTime:record.auditTime }}
         </template>
         <!-- 产品分类 -->
         <template slot="productType" slot-scope="text, record">

+ 3 - 3
src/views/productManagement/newProduct/modal.vue

@@ -15,7 +15,7 @@
         bordered>
       </s-table>
       <div style="padding-top: 15px;">
-        <a-button @click="viewMore" block type="primary" ghost>查看更多{{onlineFalg==1?'新品':'下线产品'}}</a-button>
+        <a-button @click="viewMore" block type="primary" ghost>查看更多{{ onlineFalg==1?'新品':'下线产品' }}</a-button>
       </div>
     </a-spin>
   </div>
@@ -67,9 +67,9 @@ export default {
         { title: '单位', dataIndex: 'unit', width: 60, align: 'center', customRender: function (text) { return text || '--' } }
       ]
       if (this.onlineFalg == '1') {
-        arr.push({ title: '上线时间', dataIndex: 'onlineAuditTime', width: 140, align: 'center', customRender: function (text) { return text || '--' } })
+        arr.push({ title: '上线时间', dataIndex: 'auditTime', width: 140, align: 'center', customRender: function (text) { return text || '--' } })
       } else if (this.onlineFalg == '0') {
-        arr.push({ title: '下线时间', dataIndex: 'offlineAuditTime', width: 140, align: 'center', customRender: function (text) { return text || '--' } })
+        arr.push({ title: '下线时间', dataIndex: 'auditTime', width: 140, align: 'center', customRender: function (text) { return text || '--' } })
       }
       return arr
     }

+ 3 - 3
src/views/productManagement/productBrand/list.vue

@@ -11,8 +11,8 @@
               </a-form-item>
             </a-col>
             <a-col :md="6" :sm="24">
-              <a-form-item label="状态">
-                <v-select code="ENABLE_FLAG" id="productBrandList-enabledFlag" v-model="queryParam.enabledFlag" allowClear placeholder="请选择状态"></v-select>
+              <a-form-item label="启用状态">
+                <v-select code="ENABLE_FLAG" id="productBrandList-enabledFlag" v-model="queryParam.enabledFlag" allowClear placeholder="请选择启用状态"></v-select>
               </a-form-item>
             </a-col>
             <a-col :md="6" :sm="24">
@@ -90,7 +90,7 @@ export default {
         { title: '产品品牌名称', dataIndex: 'brandName', width: '30%', align: 'center', ellipsis: true, customRender: function (text) { return text || '--' } },
         { title: '首字母', dataIndex: 'firstChar', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '创建时间', dataIndex: 'createDate', width: '20%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '状态', scopedSlots: { customRender: 'enabledFlag' }, width: '15%', align: 'center' },
+        { title: '启用状态', scopedSlots: { customRender: 'enabledFlag' }, width: '15%', align: 'center' },
         { title: '操作', scopedSlots: { customRender: 'action' }, width: '10%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象

+ 3 - 3
src/views/productManagement/productInfo/list.vue

@@ -26,8 +26,8 @@
                 </a-form-item>
               </a-col>
               <a-col :md="6" :sm="24">
-                <a-form-item label="状态">
-                  <v-select code="ENABLE_FLAG" id="productInfoList-enabledFlag" v-model="queryParam.enabledFlag" allowClear placeholder="请选择状态"></v-select>
+                <a-form-item label="启用状态">
+                  <v-select code="ENABLE_FLAG" id="productInfoList-enabledFlag" v-model="queryParam.enabledFlag" allowClear placeholder="请选择启用状态"></v-select>
                 </a-form-item>
               </a-col>
               <a-col :md="6" :sm="24">
@@ -270,7 +270,7 @@ export default {
             return text || text == 0 ? text : '--'
           }
         },
-        { title: <div><a-tooltip placement='top' title='注意:产品被禁用后,不能再销售。'><a-icon type="question-circle" /></a-tooltip>&nbsp;状态</div>, scopedSlots: { customRender: 'enabledFlag' }, width: '7%', align: 'center' },
+        { title: <div><a-tooltip placement='top' title='注意:产品被禁用后,不能再销售。'><a-icon type="question-circle" /></a-tooltip>&nbsp;启用状态</div>, scopedSlots: { customRender: 'enabledFlag' }, width: '7%', align: 'center' },
         { title: '操作', scopedSlots: { customRender: 'action' }, width: '9%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象

+ 89 - 41
src/views/productManagement/productInfoJg/list.vue

@@ -31,22 +31,27 @@
               </a-form-item>
             </a-col> -->
             <a-col :md="6" :sm="24">
-              <a-form-item label="状态">
-                <v-select code="ENABLE_FLAG" id="productInfoList-enabledFlag" v-model="queryParam.enabledFlag" allowClear placeholder="请选择状态"></v-select>
+              <a-form-item label="产品状态">
+                <v-select code="ONLINE_FLAG" id="productInfoList-onlineFalg" v-model="queryParam.onlineFalg " allowClear placeholder="请选择产品状态"></v-select>
               </a-form-item>
             </a-col>
             <a-col :md="6" :sm="24">
-            <a-form-item label="是否有库存">
-              <a-select allowClear v-model="queryParam.stockEmptyFlag" placeholder="请选择查看是否有库存">
-                <a-select-option value="0">
-                  是
-                </a-select-option>
-                <a-select-option value="1">
-                  否
-                </a-select-option>
-              </a-select>
-            </a-form-item>
-          </a-col>
+              <a-form-item label="启用状态">
+                <v-select code="ENABLE_FLAG" id="productInfoList-enabledFlag" v-model="queryParam.enabledFlag" allowClear placeholder="请选择启用状态"></v-select>
+              </a-form-item>
+            </a-col>
+            <a-col :md="6" :sm="24">
+              <a-form-item label="是否有库存">
+                <a-select allowClear v-model="queryParam.stockEmptyFlag" placeholder="请选择查看是否有库存">
+                  <a-select-option value="0">
+                    是
+                  </a-select-option>
+                  <a-select-option value="1">
+                    否
+                  </a-select-option>
+                </a-select>
+              </a-form-item>
+            </a-col>
           </template>
           <a-col :md="6" :sm="24" style="margin-bottom: 10px;">
             <a-button type="primary" @click="searchForm(true)" :disabled="disabled" id="productInfoList-refresh">查询</a-button>
@@ -74,19 +79,44 @@
         </a-col>
         <a-col class="gutter-row " :span="16" style="text-align: right;">
           <a-dropdown v-model="showCell">
-              <a-button type="link" class="button-default"> <a-icon type="setting" />  显示</a-button>
-              <a-menu slot="overlay">
-                <a-menu-item>
-                  <a-checkbox v-model="isTerminalPrice">
-                    自定义终端价
-                  </a-checkbox>
-                </a-menu-item>
-                <a-menu-item>
-                  <a-checkbox v-model="isCarOwnersPrice">
-                    自定义车主价
-                  </a-checkbox>
-                </a-menu-item>
-              </a-menu>
+            <a-button type="link" class="button-default"> <a-icon type="setting" />  显示</a-button>
+            <a-menu slot="overlay">
+              <a-menu-item>
+                <a-checkbox v-model="isTerminalPrice">
+                  自定义终端价
+                </a-checkbox>
+              </a-menu-item>
+              <a-menu-item>
+                <a-checkbox v-model="isCarOwnersPrice">
+                  自定义车主价
+                </a-checkbox>
+              </a-menu-item>
+              <a-menu-item v-if="currentDealerInfo.dealerLevel && currentDealerInfo.dealerLevel == 'PROVINCE'">
+                <a-checkbox v-model="isProPrice">
+                  省级价
+                </a-checkbox>
+              </a-menu-item>
+              <a-menu-item v-if="currentDealerInfo.dealerLevel && (currentDealerInfo.dealerLevel == 'CITY'||currentDealerInfo.dealerLevel == 'PROVINCE')">
+                <a-checkbox v-model="isCityPrice">
+                  市级价
+                </a-checkbox>
+              </a-menu-item>
+              <a-menu-item v-if="currentDealerInfo.isShowSpecialPrice && currentDealerInfo.isShowSpecialPrice == '1'">
+                <a-checkbox v-model="isSpecialPrice">
+                  特约价
+                </a-checkbox>
+              </a-menu-item>
+              <a-menu-item>
+                <a-checkbox v-model="isZdPrice">
+                  终端价
+                </a-checkbox>
+              </a-menu-item>
+              <a-menu-item>
+                <a-checkbox v-model="isCzPrice">
+                  车主价
+                </a-checkbox>
+              </a-menu-item>
+            </a-menu>
           </a-dropdown>
           <a-divider type="vertical" style="margin:5px 0;"/>
           <a-dropdown>
@@ -199,8 +229,13 @@ export default {
         stockEmptyFlag: undefined
       },
       openGuideModal: false,
-      isTerminalPrice: false,
-      isCarOwnersPrice: false,
+      isTerminalPrice: true,
+      isCarOwnersPrice: true,
+      isProPrice: true,
+      isCityPrice: true,
+      isSpecialPrice: true,
+      isZdPrice: true,
+      isCzPrice: true,
       openEditPriceModal: false, // 自定义报价弹窗
       iconShowFlag: false, // 列表配置图标显示
       disabled: false, //  查询、重置按钮是否可操作
@@ -241,34 +276,47 @@ export default {
         { title: '原厂编码', dataIndex: 'origCode', width: '12%', align: 'center', customRender: function (text) { return (!text || text == ' ') ? '--' : text } }
       ]
       const cArr = [
-        { title: '终端价', dataIndex: 'terminalPrice', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
-        { title: '车主价', dataIndex: 'carOwnersPrice', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
+        // { title: '终端价', dataIndex: 'terminalPrice', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
+        // { title: '车主价', dataIndex: 'carOwnersPrice', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
         // { title: '自定义终端价', dataIndex: 'price1', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
         // { title: '自定义车主价', dataIndex: 'price2', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
-        { title: '可用库存', dataIndex: 'currentStockQty', width: '7%', align: 'center', customRender: function (text) {return text || text == 0 ? text : '--'}},
-        { title: '状态', scopedSlots: { customRender: 'enabledFlag' }, width: '7%', align: 'center' },
+        { title: '可用库存', dataIndex: 'currentStockQty', width: '7%', align: 'center', customRender: function (text) { return text || text == 0 ? text : '--' } },
+        { title: '产品状态', dataIndex: 'onlineFalgDictValue', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '启用状态', scopedSlots: { customRender: 'enabledFlag' }, width: '7%', align: 'center' },
         { title: '产品图片', scopedSlots: { customRender: 'imageUrl' }, width: '6%', align: 'center' },
         { title: '操作', scopedSlots: { customRender: 'action' }, width: '12%', align: 'center' }
       ]
       if (_this.currentDealerInfo.dealerLevel && _this.currentDealerInfo.dealerLevel == 'PROVINCE') { //  省级
-        arr.push(
-          { title: '省级价', dataIndex: 'provincePrice', width: '6%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
-          { title: '市级价', dataIndex: 'cityPrice', width: '6%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } }
-        )
-      } else if (_this.currentDealerInfo.dealerLevel && _this.currentDealerInfo.dealerLevel == 'CITY') { //  市级
+        if(this.isProPrice){
+          arr.push(
+            { title: '省级价', dataIndex: 'provincePrice', width: '6%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } }
+          )
+        }
+        if (_this.isCityPrice) {
+          arr.push(
+            { title: '市级价', dataIndex: 'cityPrice', width: '6%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } }
+          )
+        }
+      } else if (_this.currentDealerInfo.dealerLevel && _this.currentDealerInfo.dealerLevel == 'CITY' && _this.isCityPrice) { //  市级
         arr.push(
           { title: '市级价', dataIndex: 'cityPrice', width: '6%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } }
         )
       }
-      if (_this.currentDealerInfo.isShowSpecialPrice && _this.currentDealerInfo.isShowSpecialPrice == '1') { //  是否展示特约价
+      if (_this.currentDealerInfo.isShowSpecialPrice && _this.currentDealerInfo.isShowSpecialPrice == '1'&&_this.isSpecialPrice) { //  是否展示特约价
         arr.push({ title: '特约价', dataIndex: 'specialPrice', width: '6%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
       }
+
+      if (_this.isZdPrice) {
+        arr.push({ title: '终端价', dataIndex: 'terminalPrice', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
+      }
       if (_this.isTerminalPrice) {
-        cArr.splice(1, 0, { title: '自定义终端价', dataIndex: 'dealerProductPrice.terminalPrice', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
+        arr.push({ title: '自定义终端价', dataIndex: 'dealerProductPrice.terminalPrice', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
+      }
+      if (_this.isCzPrice) {
+        arr.push({ title: '车主价', dataIndex: 'carOwnersPrice', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
       }
       if (_this.isCarOwnersPrice) {
-        const pos = _this.isTerminalPrice ? 3 : 2
-        cArr.splice(pos, 0, { title: '自定义车主价', dataIndex: 'dealerProductPrice.carOwnersPrice', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
+        arr.push({ title: '自定义车主价', dataIndex: 'dealerProductPrice.carOwnersPrice', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
       }
       arr = [...arr, ...cArr]
       return arr

+ 11 - 12
src/views/productManagement/productOnlineInfo/list.vue

@@ -94,7 +94,7 @@ import rangeDate from '@/views/common/rangeDate.vue'
 import ProductType from '../../common/productType.js'
 import ProductBrand from '../../common/productBrand.js'
 import { downloadExcel } from '@/libs/JGPrint.js'
-import { productList, productExport } from '@/api/product'
+import { productLogList, productExport } from '@/api/product'
 export default {
   name: 'ProductJgOnlineList',
   components: { STable, VSelect, rangeDate, ProductType, ProductBrand },
@@ -106,8 +106,8 @@ export default {
       tableHeight: 0,
       productType: [],
       queryParam: { //  查询条件
-        onlineBeginDate: '',
-        onlineEndDate: '',
+        beginDate: '',
+        endDate: '',
         code: '', //  产品编码
         name: '', //  产品名称
         origCode: '', //  原厂编码
@@ -115,15 +115,15 @@ export default {
         productTypeSn1: '', //  产品一级分类
         productTypeSn2: '', //  产品二级分类
         productTypeSn3: '', //  产品三级分类
-        onlineFalg: '1',
-        isOnlinePage: '1'
+        isOnlinePage: '1',
+        bizType:'ONLINE'
       },
       disabled: false, //  查询、重置按钮是否可操作
       exportLoading: false, // 导出loading
       dateFormat: 'YYYY-MM-DD',
       columns: [
         { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
-        { title: '上线时间', dataIndex: 'onlineAuditTime', width: '12%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '上线时间', dataIndex: 'auditTime', width: '12%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '产品品牌', dataIndex: 'productBrandName', width: '12%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '产品分类', scopedSlots: { customRender: 'productType' }, width: '13%', align: 'center' },
         { title: '产品名称', dataIndex: 'name', width: '16%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
@@ -136,7 +136,7 @@ export default {
       loadData: parameter => {
         this.disabled = true
         this.spinning = true
-        return productList(Object.assign(parameter, this.queryParam)).then(res => {
+        return productLogList(Object.assign(parameter, this.queryParam)).then(res => {
           let data
           if (res.status == 200) {
             data = res.data
@@ -159,14 +159,14 @@ export default {
   methods: {
     //  创建时间  change
     dateChange (date) {
-      this.queryParam.onlineBeginDate = date[0] || ''
-      this.queryParam.onlineEndDate = date[1] || ''
+      this.queryParam.beginDate = date[0] || ''
+      this.queryParam.endDate = date[1] || ''
     },
     //  重置
     resetSearchForm () {
       this.$refs.rangeDate.resetDate()
-      this.queryParam.onlineBeginDate = ''
-      this.queryParam.onlineEndDate = ''
+      this.queryParam.beginDate = ''
+      this.queryParam.endDate = ''
       this.queryParam.code = ''
       this.queryParam.name = ''
       this.queryParam.origCode = ''
@@ -174,7 +174,6 @@ export default {
       this.queryParam.productTypeSn1 = ''
       this.queryParam.productTypeSn2 = ''
       this.queryParam.productTypeSn3 = ''
-      this.queryParam.onlineFalg = '1'
       this.queryParam.isOnlinePage = '1'
       this.productType = []
       this.$refs.table.refresh(true)

+ 3 - 3
src/views/productManagement/productUniversal/list.vue

@@ -15,8 +15,8 @@
             </a-form-item>
           </a-col>
           <a-col :md="6" :sm="24">
-            <a-form-item label="上线状态">
-              <v-select code="ONLINE_FLAG" id="productUniversalList-onlineFalg" v-model="queryParam.onlineFalg" allowClear placeholder="请选择上线状态"></v-select>
+            <a-form-item label="产品状态">
+              <v-select code="ONLINE_FLAG" id="productUniversalList-onlineFalg" v-model="queryParam.onlineFalg" allowClear placeholder="请选择产品状态"></v-select>
             </a-form-item>
           </a-col>
           <template v-if="advanced">
@@ -91,7 +91,7 @@ export default {
         { title: '创建时间', dataIndex: 'createDate', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '产品编码', dataIndex: 'productCode', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '产品名称', dataIndex: 'product.name', align: 'center', width: '20%', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '上线状态', dataIndex: 'product.onlineFalgDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品状态', dataIndex: 'product.onlineFalgDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '通用产品编码', dataIndex: 'productCommonCode', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '通用产品名称', dataIndex: 'productCommon.name', width: '12%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '通用产品分类', scopedSlots: { customRender: 'productType' }, width: '12%', align: 'center' },

+ 3 - 4
src/views/purchasingManagement/purchaseOrderNew/detail.vue

@@ -1,17 +1,16 @@
 <template>
   <div class="jg-page-wrap purchaseOrderDetail-wrap">
     <a-spin :spinning="spinning" tip="Loading...">
-      <a-page-header :ghost="false" :backIcon="false" class="purchaseOrderDetail-cont" :style="{ padding: !outBizSn ? '16px 24px' : '0px 24px' }">
+      <a-page-header :ghost="false" :backIcon="false" class="purchaseOrderDetail-cont header-bar" :style="{ padding: !outBizSn ? '16px 24px' : '0px 24px' }">
         <!-- 自定义的二级文字标题 -->
         <template slot="subTitle">
-          <span class="billno">单号:{{ detail&&detail.purchaseBillNo }}</span>
+          <p class="billno">单号:{{ detail&&detail.purchaseBillNo }}</p>
           <a-tag color="blue" v-if="detail&&detail.billStatusDictValue">{{ detail&&detail.billStatusDictValue }}</a-tag>
           <a-tag color="orange" v-if="detail&&detail.financialStatusDictValue">{{ detail&&detail.financialStatusDictValue }}</a-tag>
           <span v-if="detail&&detail.purchaseBillNoSource" style="font-size: 14px;margin: 0 10px;">(原:{{ detail&&detail.purchaseBillNoSource }})</span>
-
           <a-button type="link" class="button-default" @click="isShowBisiceInfo=!isShowBisiceInfo" style="margin-left:10px;vertical-align:middle;">
             <a-icon :type="isShowBisiceInfo ? 'eye-invisible' : 'eye'"/>
-            查看信息
+            {{ isShowBisiceInfo?'隐藏':'查看' }}信息
           </a-button>
           <a-button id="purchaseNewOrderEdit-back-btn" type="link" @click="handleBack" class="button-default"> <a-icon type="rollback" /> 返回列表</a-button>
         </template>

+ 1 - 1
src/views/purchasingManagement/purchaseOrderNew/edit.vue

@@ -6,7 +6,7 @@
         <p class="billno">单号:{{ detail&&detail.purchaseBillNo }}</p>
         <a-button type="link" class="button-default" @click="isShowBisiceInfo=!isShowBisiceInfo" style="margin-left:10px;vertical-align:middle;">
           <a-icon :type="isShowBisiceInfo ? 'eye-invisible' : 'eye'"/>
-          查看信息
+          {{ isShowBisiceInfo?'隐藏':'查看' }}信息
         </a-button>
         <a-button id="purchaseNewOrderEdit-back-btn" type="link" @click="handleBack" class="button-default"> <a-icon type="rollback" /> 返回列表</a-button>
       </template>

+ 143 - 0
src/views/purchasingManagement/purchaseOutOfStock/detailModal.vue

@@ -0,0 +1,143 @@
+<template>
+  <a-modal
+    centered
+    class="inventoryQueryDetail-modal"
+    :footer="null"
+    :maskClosable="false"
+    :title="modalTit"
+    v-model="isShow"
+    @cancel="isShow=false"
+    :width="960">
+    <a-spin :spinning="spinning" tip="Loading...">
+      <!-- 基础信息 -->
+      <a-card size="small" :bordered="false" class="purchaseReturnDetail-cont">
+        <a-collapse :activeKey="['1']">
+          <a-collapse-panel key="1" header="基础信息">
+            <a-descriptions :column="3">
+              <a-descriptions-item label="采购单号">{{ objItem&&objItem.purchaseBillNo || '--' }}</a-descriptions-item>
+            </a-descriptions>
+          </a-collapse-panel>
+        </a-collapse>
+      </a-card>
+      <!-- 合计 -->
+      <a-alert type="info" style="margin-bottom:10px" v-if="objItem">
+        <div class="ftext" slot="message">
+          缺货总款数:<strong>{{ objItem.totalCategory || objItem.totalCategory==0 ? objItem.totalCategory : '--' }}</strong>;
+          缺货总数量:<strong>{{ objItem.totalQty || objItem.totalQty==0 ? objItem.totalQty : '--' }}</strong>;
+          <div style="display: inline-block;" v-if="$hasPermissions('M_ShowAllCost')">
+            缺货总售价:<strong>{{ objItem.totalAmount || objItem.totalAmount==0 ? toThousands(objItem.totalAmount) : '--' }}</strong>。
+          </div>
+        </div>
+      </a-alert>
+      <!-- 详情 -->
+      <s-table
+        class="sTable"
+        ref="table"
+        size="small"
+        :rowKey="(record) => record.id"
+        :columns="columns"
+        :data="loadData"
+        :scroll="{ y: 500 }"
+        bordered>
+      </s-table>
+      <div class="btn-cont">
+        <a-button id="inventoryQueryDetail-detail-modal-back" @click="isShow = false">返回列表</a-button>
+      </div>
+    </a-spin>
+  </a-modal>
+</template>
+
+<script>
+import { commonMixin } from '@/utils/mixin'
+import { STable } from '@/components'
+import { outOfStockDetailList } from '@/api/oos'
+export default {
+  name: 'DetailModal',
+  components: { STable },
+  mixins: [commonMixin],
+  props: {
+    openModal: { //  弹框显示状态
+      type: Boolean,
+      default: false
+    },
+    objItem: {
+      type: Object,
+      default: () => {
+        return {}
+      }
+    }
+  },
+  computed: {
+    modalTit () {
+      return '详情'
+    },
+    columns () {
+      const _this = this
+      const arr = [
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '产品编码', dataIndex: 'productCode', width: '17%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '产品名称', dataIndex: 'productName', width: '17%', align: 'center', ellipsis: true, customRender: function (text) { return text || '--' } },
+        { title: '原厂编码', dataIndex: 'productOrigCode', width: '12%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '单位', dataIndex: 'unit', width: '10%', align: 'center', ellipsis: true, customRender: function (text) { return text || '--' } },
+        { title: '缺货数量', dataIndex: 'qty', width: '7%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '单价', dataIndex: 'price', width: '7%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
+        { title: '缺货金额', dataIndex: 'totalAmount', width: '7%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } }
+      ]
+      return arr
+    }
+  },
+  data () {
+    return {
+      spinning: false,
+      isShow: this.openModal, //  是否打开弹框
+      // 加载数据方法 必须为 Promise 对象
+      loadData: parameter => {
+        this.disabled = true
+        this.spinning = true
+        return outOfStockDetailList(Object.assign(parameter, { purchaseBillSn: this.objItem && this.objItem.purchaseBillSn || '' })).then(res => {
+          let data
+          if (res.status == 200) {
+            data = res.data
+            const no = (data.pageNo - 1) * data.pageSize
+            for (var i = 0; i < data.list.length; i++) {
+              data.list[i].no = no + i + 1
+            }
+            this.disabled = false
+          }
+          this.spinning = false
+          return data
+        })
+      },
+      disabled: false //  查询、重置按钮是否可操作
+    }
+  },
+  methods: {
+    // 获取表格数据
+    pageInit () {
+      this.$refs.table.refresh()
+    }
+  },
+  watch: {
+    //  父页面传过来的弹框状态
+    openModal (newValue, oldValue) {
+      this.isShow = newValue
+    },
+    //  重定义的弹框状态
+    isShow (newValue, oldValue) {
+      if (!newValue) {
+        this.$emit('close')
+        this.$refs.table.clearTable()
+      }
+    }
+  }
+}
+</script>
+
+<style lang="less">
+  .inventoryQueryDetail-modal{
+    .btn-cont {
+      text-align: center;
+      margin: 5px 0 10px;
+    }
+  }
+</style>

+ 262 - 0
src/views/purchasingManagement/purchaseOutOfStock/list.vue

@@ -0,0 +1,262 @@
+<template>
+  <a-card size="small" :bordered="false" class="jg-page-wrap purchaseOutOfStock-wrap">
+    <a-spin :spinning="spinning" tip="Loading...">
+      <!-- 搜索条件 -->
+      <div ref="tableSearch" class="table-page-search-wrapper">
+        <a-form layout="inline" @keyup.enter.native="$refs.table.refresh(true)">
+          <a-row :gutter="15">
+            <a-col :md="6" :sm="24">
+              <a-form-item label="创建时间">
+                <rangeDate ref="rangeDate" :value="time" @change="dateChange" />
+              </a-form-item>
+            </a-col>
+            <a-col :md="6" :sm="24">
+              <a-form-item label="采购单号">
+                <a-input id="outOfStockList-purchaseBillNo" v-model.trim="queryParam.purchaseBillNo" placeholder="请输入采购单号" allowClear />
+              </a-form-item>
+            </a-col>
+            <a-col :md="6" :sm="24">
+              <a-form-item label="供应商名称">
+                <a-select
+                  id="outOfStockList-purchaseTargetSn"
+                  placeholder="请选择供应商"
+                  allowClear
+                  v-model="queryParam.purchaseTargetSn"
+                  :showSearch="true"
+                  option-filter-prop="children"
+                  :filter-option="filterOption"
+                  @change="tragetTypeChange">
+                  <a-select-option v-for="item in supplierList" :pyCode="item.pyCode" :key="item.purchaseTargetSn" :value="item.purchaseTargetSn">{{ item.purchaseTargetName }}</a-select-option>
+                </a-select>
+              </a-form-item>
+            </a-col>
+            <a-col :md="6" :sm="24" style="margin-bottom: 10px;">
+              <a-button type="primary" @click="$refs.table.refresh(true)" :disabled="disabled" id="purchaseOutOfStock-refresh">查询</a-button>
+              <a-button style="margin-left: 8px" @click="resetSearchForm" :disabled="disabled" id="purchaseOutOfStock-reset">重置</a-button>
+              <a-button
+                type="primary"
+                style="margin-left: 5px"
+                @click="handleExport"
+                :disabled="disabled"
+                :loading="exportLoading"
+                v-if="$hasPermissions('B_isExport')"
+                class="button-warning"
+                id="inventoryWarningList-export-btn">导出</a-button>
+            </a-col>
+          </a-row>
+        </a-form>
+      </div>
+      <!-- 合计 -->
+      <a-alert type="info" style="margin-bottom:10px" v-if="countData">
+        <div class="ftext" slot="message">
+          缺货总款数:<strong>{{ countData.totalCount || countData.totalCount==0 ? countData.totalCount : '--' }}</strong>;
+          缺货总数量:<strong>{{ countData.totalQty || countData.totalQty==0 ? countData.totalQty : '--' }}</strong>;
+          <div style="display: inline-block;" v-if="$hasPermissions('M_ShowAllCost')">
+            缺货总金额:<strong>{{ countData.totalAmount || countData.totalAmount==0 ? toThousands(countData.totalAmount) : '--' }}</strong>。
+          </div>
+        </div>
+      </a-alert>
+      <!-- 列表 -->
+      <s-table
+        class="sTable fixPagination"
+        ref="table"
+        :style="{ height: tableHeight+84.5+'px' }"
+        size="small"
+        :rowKey="(record) => record.id"
+        :columns="columns"
+        :data="loadData"
+        :scroll="{ y: tableHeight }"
+        :defaultLoadData="false"
+        bordered>
+        <!-- 操作 -->
+        <template slot="action" slot-scope="text, record">
+          <a-button
+            size="small"
+            type="link"
+            class="button-success"
+            v-if="$hasPermissions('B_purchaseOutOfStockDetail')"
+            @click="handleDetail(record)"
+            id="purchaseOutOfStock-edit-btn">详情</a-button>
+        </template>
+      </s-table>
+    </a-spin>
+    <!-- 查看详情 -->
+    <detail-modal ref="outOfStockDetail" v-drag :openModal="openModal" :objItem="detailObj" @close="closeModal" />
+  </a-card>
+</template>
+
+<script>
+import { commonMixin } from '@/utils/mixin'
+import { STable, VSelect } from '@/components'
+import rangeDate from '@/views/common/rangeDate.vue'
+import { outOfStockList, outOfStockExportDetail, outOfStockQueryCount } from '@/api/oos'
+import custList from '@/views/common/custList.vue'
+import detailModal from './detailModal.vue'
+import { downloadExcel } from '@/libs/JGPrint.js'
+import { queryReturnSupplierList } from '@/api/purchaseReturn'
+export default {
+  name: 'PurchaseOutOfStock',
+  components: { STable, VSelect, rangeDate, custList, detailModal },
+  mixins: [commonMixin],
+  data () {
+    return {
+      spinning: false,
+      queryParam: { //  查询条件
+        beginDate: undefined,
+        endDate: undefined,
+        purchaseTargetSn: undefined,
+        purchaseTargetType: undefined,
+        purchaseBillNo: ''
+      },
+      supplierList: [],
+      detailObj: undefined, // 详情统计内容
+      openModal: false,
+      disabled: false, //  查询、重置按钮是否可操作
+      tableHeight: 0,
+      time: [],
+      countData: null,
+      exportLoading: false, // 导出loading
+      // 加载数据方法 必须为 Promise 对象
+      loadData: parameter => {
+        this.disabled = true
+        this.spinning = true
+        const params = Object.assign(parameter, this.queryParam)
+        return outOfStockList(params).then(res => {
+          let data
+          if (res.status == 200) {
+            data = res.data
+            const no = (data.pageNo - 1) * data.pageSize
+            for (var i = 0; i < data.list.length; i++) {
+              data.list[i].no = no + i + 1
+            }
+            this.getCount(params)
+            this.disabled = false
+          }
+          this.spinning = false
+          return data
+        })
+      }
+    }
+  },
+  computed: {
+    columns () {
+      const _this = this
+      const arr = [
+        { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
+        { title: '创建时间', dataIndex: 'createDate', width: '14%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '采购单号', dataIndex: 'purchaseBillNo', width: '14%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '供应商', dataIndex: 'purchaseTargetName', width: '18%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
+        { title: '缺货款数', dataIndex: 'totalCategory', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '缺货数量', dataIndex: 'totalQty', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
+        { title: '缺货金额', dataIndex: 'totalAmount', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text, 2) : '--') } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '13%', align: 'center' }
+      ]
+      return arr
+    }
+  },
+  methods: {
+    // 获取供应商数据
+    getSupperList () {
+      queryReturnSupplierList({}).then(res => {
+        if (res.status == 200) {
+          this.supplierList = res.data
+        } else {
+          this.supplierList = []
+        }
+      })
+    },
+    // 供应商change
+    tragetTypeChange (val) {
+      const ind = this.supplierList.findIndex(item => item.purchaseTargetSn == val)
+      if (ind != -1) {
+        this.queryParam.purchaseTargetType = this.supplierList[ind].purchaseTargetType
+      } else {
+        this.queryParam.purchaseTargetSn = undefined
+        this.queryParam.purchaseTargetType = undefined
+      }
+    },
+    filterOption (input, option) {
+      return (
+        option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
+      )
+    },
+    // 统计
+    getCount (params) {
+      outOfStockQueryCount(params).then(res => {
+        if (res.status == 200) {
+          this.countData = res.data
+        } else {
+          this.countData = null
+        }
+      })
+    },
+    // 导出
+    handleExport () {
+      const _this = this
+      _this.exportLoading = true
+      outOfStockExportDetail(_this.queryParam).then(res => {
+        downloadExcel(res, '采购缺货列表')
+        _this.exportLoading = false
+      })
+    },
+    // 关闭详情弹窗
+    closeModal () {
+      this.openModal = false
+      this.detailObj = undefined
+    },
+    //  时间  change
+    dateChange (date) {
+      this.queryParam.beginDate = date[0]
+      this.queryParam.endDate = date[1]
+    },
+    //  重置
+    resetSearchForm () {
+      this.$refs.rangeDate.resetDate(this.time)
+      this.queryParam.beginDate = undefined
+      this.queryParam.endDate = undefined
+      this.queryParam.purchaseTargetSn = undefined
+      this.queryParam.purchaseTargetType = undefined
+      this.queryParam.purchaseBillNo = ''
+      this.$refs.table.refresh(true)
+    },
+    //  详情
+    handleDetail (row) {
+      this.openModal = true
+      this.detailObj = row
+      const _this = this
+      _this.$nextTick(() => {
+        _this.$refs.outOfStockDetail.pageInit()
+      })
+    },
+    pageInit () {
+      const _this = this
+      this.$nextTick(() => { // 页面渲染完成后的回调
+        _this.setTableH()
+      })
+      _this.resetSearchForm()
+      _this.getSupperList()
+    },
+    setTableH () {
+      const tableSearchH = this.$refs.tableSearch.offsetHeight
+      this.tableHeight = window.innerHeight - tableSearchH - 235
+    }
+  },
+  watch: {
+    advanced (newValue, oldValue) {
+      const _this = this
+      this.$nextTick(() => { // 页面渲染完成后的回调
+        _this.setTableH()
+      })
+    },
+    '$store.state.app.winHeight' (newValue, oldValue) { //  窗口变更时,需同时更改表格高度
+      this.setTableH()
+    }
+  },
+  activated () {
+    this.pageInit()
+  },
+  beforeRouteEnter (to, from, next) {
+    next(vm => {})
+  }
+}
+</script>

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

@@ -9,7 +9,7 @@
           <a-tag color="orange" v-if="detailData.financialStatusDictValue">{{ detailData.financialStatusDictValue }}</a-tag>
           <a-button type="link" class="button-default" @click="isShowBisiceInfo=!isShowBisiceInfo" style="margin-left:10px;vertical-align:middle;">
             <a-icon :type="isShowBisiceInfo ? 'eye-invisible' : 'eye'"/>
-            查看信息
+            {{ isShowBisiceInfo?'隐藏':'查看' }}信息
           </a-button>
           <a-button id="purchaseNewOrderEdit-back-btn" type="link" @click="handleBack" class="button-default"> <a-icon type="rollback" /> 返回列表</a-button>
         </template>

+ 1 - 0
src/views/salesManagement/salesQueryNew/edit.vue

@@ -13,6 +13,7 @@
           style="margin-left:10px"
           v-if="detailData&&detailData.salesTragetType != 'DEALER'"
           size="small"
+          class="button-info"
           @click="handleEdit"
           key="0"><a-icon type="edit" /> 编辑</a-button>
         <a-button id="purchaseNewOrderEdit-back-btn" type="link" @click="handleBack" class="button-default"> <a-icon type="rollback" /> 返回列表</a-button>

+ 32 - 6
src/views/salesManagement/salesReturn/chooseCustomModal.vue

@@ -21,7 +21,10 @@
         <a-row :gutter="15">
           <a-col :span="16">
             <a-form-model-item label="客户名称" prop="buyerSn" :labelCol="{ span: 3 }" :wrapperCol="{ span: 20 }">
-              <selectCust ref="custList" :isValidateEnabled="true" @change="custChange" v-model="form.buyerSn"></selectCust>
+              <selectCust v-if="!isEdit" ref="custList" :isValidateEnabled="true" @change="custChange" v-model="form.buyerSn"></selectCust>
+              <span v-else>
+                {{ form&&form.buyerNameCurrent?form.buyerName?form.buyerName==form.buyerNameCurrent?form.buyerNameCurrent:form.buyerNameCurrent+'('+form.buyerName+')':form.buyerNameCurrent:'--' }}
+              </span>
             </a-form-model-item>
           </a-col>
           <!-- <a-col :span="16">
@@ -106,13 +109,25 @@
         <a-row :gutter="15">
           <a-col :span="8">
             <a-form-model-item label="是否抓单" prop="grabFlag">
-              <v-select code="FLAG" id="chooseCustom-grabFlag" v-model="form.grabFlag" allowClear placeholder="请选择"></v-select>
+              <v-select code="FLAG" :disabled="isEdit" id="chooseCustom-grabFlag" v-model="form.grabFlag" allowClear placeholder="请选择"></v-select>
             </a-form-model-item>
           </a-col>
           <a-col :span="8">
             <a-form-model-item label="开单人">{{ $store.state.user.info.userNameCN }}</a-form-model-item>
           </a-col>
         </a-row>
+        <a-row :gutter="15">
+          <a-col :span="24">
+            <a-form-model-item label="备注" :labelCol="{ span: 2 }" :wrapper-col="{ span: 14 }">
+               <a-textarea
+                    v-model="form.remarks"
+                    :maxLength="100"
+                    placeholder="请输入备注(最多100个字符)"
+                    :auto-size="{ minRows: 2, maxRows: 6 }"
+                  />
+            </a-form-model-item>
+          </a-col>
+        </a-row>
         <a-form-model-item :wrapper-col="{ span: 12, offset: 6 }" style="text-align: center;">
           <a-button type="primary" :loading="confirmLoading" @click="handleSubmit" id="chooseCustom-btn-submit">保存</a-button>
           <a-button @click="cancel" style="margin-left: 15px" id="chooseCustom-btn-back">取消</a-button>
@@ -249,7 +264,9 @@ export default {
         }
       } else {
         this.$refs.ruleForm.resetFields()
-        this.$refs.custList.resetForm()
+        if(!this.isEdit){
+          this.$refs.custList.resetForm()
+        }
       }
     },
     // 编辑客户信息
@@ -257,10 +274,19 @@ export default {
       console.log(data)
       this.title = '编辑客户信息'
       this.isEdit = true
-      if (data.provinceSn) { this.getArea('city', data.provinceSn) }
-      if (data.citySn) { this.getArea('district', data.citySn) }
       this.form = Object.assign(this.form, data)
+      this.form.buyerName = data.buyerNameCurrent || data.buyerName
       this.buyerSnBak = this.form.buyerSn
+      if(data.buyerInfo){
+        this.form.contactTel = data.buyerInfo.contactTel
+        this.form.contactMobile = data.buyerInfo.contactMobile
+        this.form.consigneeName = data.buyerInfo.contactName
+        this.form.provinceSn = data.buyerInfo.provinceSn
+        this.form.citySn = data.buyerInfo.citySn
+        this.form.countySn = data.buyerInfo.countySn
+        if (data.buyerInfo.provinceSn) { this.getArea('city', data.buyerInfo.provinceSn) }
+        if (data.buyerInfo.citySn) { this.getArea('district', data.buyerInfo.citySn) }
+      }
     },
     //  获取详情
     getDetail () {
@@ -354,7 +380,7 @@ export default {
     cancel () {
       this.opened = false
       this.$refs.ruleForm.resetFields()
-      this.$refs.custList.resetForm()
+      this.$refs.custList && this.$refs.custList.resetForm()
       this.$emit('cancel')
     },
     // 获取城市列表

+ 23 - 22
src/views/salesManagement/salesReturn/detail.vue

@@ -4,34 +4,34 @@
       <a-page-header :ghost="false" :backIcon="false" class="salesReturnDetail-cont" :style="{ padding: !outBizSn ? '16px 24px' : '0px 24px' }">
         <template slot="subTitle" v-if="!outBizSn">
           <a href="javascript:;" @click="handleBack"><a-icon type="left"></a-icon> 返回列表</a>
+          <span style="margin: 0 10px 0 20px;color: #666;font-size: 14px;font-weight: 600;">退货单号:{{ detailData&&detailData.salesReturnNo||'--' }}</span>
+          <a-button type="link" class="button-default" @click="isShowBisiceInfo=!isShowBisiceInfo">
+            <a-icon :type="isShowBisiceInfo ? 'eye-invisible' : 'eye'"/> {{ isShowBisiceInfo?'隐藏':'查看' }}信息
+          </a-button>
         </template>
         <template slot="extra" v-if="$hasPermissions('B_salesReturnPrint')">
           <Print :disabled="localDataSource.length==0" @handlePrint="handlePrint"></Print>
         </template>
       </a-page-header>
       <!-- 基础信息 -->
-      <a-card size="small" :bordered="false" class="salesReturnDetail-cont">
-        <a-collapse :activeKey="['1']">
-          <a-collapse-panel key="1" header="基础信息">
-            <a-descriptions size="small" :column="3">
-              <a-descriptions-item label="客户名称">{{ detailData&&detailData.buyerNameCurrent?detailData.buyerName?detailData.buyerName==detailData.buyerNameCurrent?detailData.buyerNameCurrent:detailData.buyerNameCurrent+'('+detailData.buyerName+')':detailData.buyerNameCurrent:'--' }}</a-descriptions-item>
-              <a-descriptions-item label="客户地址">
-                <div v-if="detailData&&(detailData.provinceName || detailData.cityName || detailData.countyName || detailData.customerAddr)">
-                  {{ detailData&&detailData.provinceName || '' }}
-                  {{ detailData&&detailData.cityName || '' }}
-                  {{ detailData&&detailData.countyName || '' }}
-                  {{ detailData&&detailData.customerAddr || '' }}
-                </div>
-                <span v-else>--</span>
-              </a-descriptions-item>
-              <a-descriptions-item label="联系电话">{{ detailData&&detailData.contactTel || '--' }}</a-descriptions-item>
-              <a-descriptions-item label="退货单号">{{ detailData&&detailData.salesReturnNo || '--' }}</a-descriptions-item>
-              <a-descriptions-item label="业务状态">{{ detailData&&detailData.stateDictValue || '--' }}</a-descriptions-item>
-              <a-descriptions-item label="是否抓单">{{ detailData&&detailData.grabFlag==1?'抓单':'不抓单' }}</a-descriptions-item>
-              <a-descriptions-item label="备注">{{ detailData&&detailData.remarks || '--' }}</a-descriptions-item>
-            </a-descriptions>
-          </a-collapse-panel>
-        </a-collapse>
+      <a-card size="small" :bordered="false" title="基础信息" v-show="isShowBisiceInfo" class="salesReturnDetail-cont">
+        <a-descriptions size="small" :column="3">
+          <a-descriptions-item label="客户名称">{{ detailData&&detailData.buyerNameCurrent?detailData.buyerName?detailData.buyerName==detailData.buyerNameCurrent?detailData.buyerNameCurrent:detailData.buyerNameCurrent+'('+detailData.buyerName+')':detailData.buyerNameCurrent:'--' }}</a-descriptions-item>
+          <a-descriptions-item label="客户地址">
+            <div v-if="detailData&&(detailData.provinceName || detailData.cityName || detailData.countyName || detailData.customerAddr)">
+              {{ detailData&&detailData.provinceName || '' }}
+              {{ detailData&&detailData.cityName || '' }}
+              {{ detailData&&detailData.countyName || '' }}
+              {{ detailData&&detailData.customerAddr || '' }}
+            </div>
+            <span v-else>--</span>
+          </a-descriptions-item>
+          <a-descriptions-item label="联系电话">{{ detailData&&detailData.contactTel || '--' }}</a-descriptions-item>
+          <a-descriptions-item label="退货单号">{{ detailData&&detailData.salesReturnNo || '--' }}</a-descriptions-item>
+          <a-descriptions-item label="业务状态">{{ detailData&&detailData.stateDictValue || '--' }}</a-descriptions-item>
+          <a-descriptions-item label="是否抓单">{{ detailData&&detailData.grabFlag==1?'抓单':'不抓单' }}</a-descriptions-item>
+          <a-descriptions-item label="备注">{{ detailData&&detailData.remarks || '--' }}</a-descriptions-item>
+        </a-descriptions>
       </a-card>
       <a-card size="small" :bordered="false" class="pages-wrap">
         <!-- alert -->
@@ -85,6 +85,7 @@ export default {
       spinning: false,
       disabled: false,
       countData: null,
+      isShowBisiceInfo: false,
       // 表头
       columns: [
         { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },

+ 38 - 4
src/views/salesManagement/salesReturn/salesReturnEdit.vue

@@ -5,13 +5,42 @@
         <!-- 自定义的二级文字标题 -->
         <template slot="subTitle">
           <a id="salesReturnEdit-back-btn" href="javascript:;" @click="handleBack"><a-icon type="left" /> 返回列表</a>
-          <span style="margin: 0 15px;color: #666;">客户名称:{{ ordeDetail&&ordeDetail.buyerNameCurrent?ordeDetail.buyerName?ordeDetail.buyerNameCurrent==ordeDetail.buyerName?ordeDetail.buyerNameCurrent:ordeDetail.buyerNameCurrent+'('+ordeDetail.buyerName+')':ordeDetail.buyerNameCurrent:'--' }}</span>
+          <span style="margin: 0 10px 0 20px;color: #666;font-size: 14px;font-weight: 600;">退货单号:{{ ordeDetail&&ordeDetail.salesReturnNo||'--' }}</span>
+          <a-button type="link" class="button-default" @click="isShowBisiceInfo=!isShowBisiceInfo">
+            <a-icon :type="isShowBisiceInfo ? 'eye-invisible' : 'eye'"/> {{ isShowBisiceInfo?'隐藏':'查看' }}信息
+          </a-button>
+          <a-button
+            type="link"
+            size="small"
+            @click="handleEditCustom"
+            class="button-info"
+            key="0"> <a-icon type="edit"></a-icon> 编辑</a-button>
         </template>
         <!-- 操作区,位于 title 行的行尾 -->
         <template slot="extra" v-if="$hasPermissions('B_salesReturnPrint')">
           <Print :disabled="chooseLoadData.length==0" @handlePrint="handlePrint"></Print>
         </template>
       </a-page-header>
+      <!-- 基础信息 -->
+      <a-card size="small" :bordered="false" title="基础信息" v-show="isShowBisiceInfo" class="pages-wrap">
+        <a-descriptions size="small" :column="3">
+          <a-descriptions-item label="客户名称">{{ ordeDetail&&ordeDetail.buyerNameCurrent?ordeDetail.buyerName?ordeDetail.buyerName==ordeDetail.buyerNameCurrent?ordeDetail.buyerNameCurrent:ordeDetail.buyerNameCurrent+'('+ordeDetail.buyerName+')':ordeDetail.buyerNameCurrent:'--' }}</a-descriptions-item>
+          <a-descriptions-item label="客户地址">
+            <div v-if="ordeDetail&&(ordeDetail.provinceName || ordeDetail.cityName || ordeDetail.countyName || ordeDetail.customerAddr)">
+              {{ ordeDetail&&ordeDetail.provinceName || '' }}
+              {{ ordeDetail&&ordeDetail.cityName || '' }}
+              {{ ordeDetail&&ordeDetail.countyName || '' }}
+              {{ ordeDetail&&ordeDetail.customerAddr || '' }}
+            </div>
+            <span v-else>--</span>
+          </a-descriptions-item>
+          <a-descriptions-item label="联系电话">{{ ordeDetail&&ordeDetail.contactTel || '--' }}</a-descriptions-item>
+          <a-descriptions-item label="退货单号">{{ ordeDetail&&ordeDetail.salesReturnNo || '--' }}</a-descriptions-item>
+          <a-descriptions-item label="业务状态">{{ ordeDetail&&ordeDetail.stateDictValue || '--' }}</a-descriptions-item>
+          <a-descriptions-item label="是否抓单">{{ ordeDetail&&ordeDetail.grabFlag==1?'抓单':'不抓单' }}</a-descriptions-item>
+          <a-descriptions-item label="备注">{{ ordeDetail&&ordeDetail.remarks || '--' }}</a-descriptions-item>
+        </a-descriptions>
+      </a-card>
       <a-card size="small" :bordered="false" class="pages-wrap">
         <!-- 查询配件列表 -->
         <queryPart
@@ -174,7 +203,7 @@
     </a-spin>
     <!-- <div class="affix-cont"></div> -->
     <!-- 选择客户弹框 -->
-    <choose-custom-modal :show="openModal" @ok="chooseCustomOk" @cancel="openModal=false"></choose-custom-modal>
+    <choose-custom-modal ref="editCustomModal" :show="openModal" @ok="chooseCustomOk" @cancel="openModal=false"></choose-custom-modal>
   </div>
 </template>
 
@@ -266,7 +295,8 @@ export default {
           return data
         })
       },
-      printerType: 'NEEDLE' //  打印机类型
+      printerType: 'NEEDLE', //  打印机类型
+      isShowBisiceInfo: false
     }
   },
   methods: {
@@ -275,9 +305,13 @@ export default {
       this.$router.push({ path: '/salesManagement/salesReturn/list' })
     },
     // 选择客户成功
-    chooseCustomOk (data) {},
+    chooseCustomOk (data) {
+      this.openModal = false
+      this.getOrderDetail()
+    },
     handleEditCustom () {
       this.openModal = true
+      this.$refs.editCustomModal.editCust(this.ordeDetail)
     },
     // 已选产品  blur
     onCellBlur (val, record, type) {

+ 38 - 4
src/views/salesManagement/salesReturn/salesReturnGrabEdit.vue

@@ -5,13 +5,42 @@
         <!-- 自定义的二级文字标题 -->
         <template slot="subTitle">
           <a id="salesReturnGrabEdit-back-btn" href="javascript:;" @click="handleBack"><a-icon type="left" /> 返回列表</a>
-          <span style="margin: 0 15px;color: #666;">客户名称:{{ ordeDetail&&ordeDetail.buyerNameCurrent?ordeDetail.buyerName?ordeDetail.buyerNameCurrent==ordeDetail.buyerName?ordeDetail.buyerNameCurrent:ordeDetail.buyerNameCurrent+'('+ordeDetail.buyerName+')':ordeDetail.buyerNameCurrent:'--' }}</span>
+          <span style="margin: 0 10px 0 20px;color: #666;font-size: 14px;font-weight: 600;">退货单号:{{ ordeDetail&&ordeDetail.salesReturnNo||'--' }}</span>
+          <a-button type="link" class="button-default" @click="isShowBisiceInfo=!isShowBisiceInfo">
+            <a-icon :type="isShowBisiceInfo ? 'eye-invisible' : 'eye'"/> {{ isShowBisiceInfo?'隐藏':'查看' }}信息
+          </a-button>
+          <a-button
+            type="link"
+            size="small"
+            @click="handleEditCustom"
+            class="button-info"
+            key="0"> <a-icon type="edit"></a-icon> 编辑</a-button>
         </template>
         <!-- 操作区,位于 title 行的行尾 -->
         <template slot="extra" v-if="$hasPermissions('B_salesReturnPrint')">
           <Print :disabled="chooseLoadData.length==0" @handlePrint="handlePrint"></Print>
         </template>
       </a-page-header>
+      <!-- 基础信息 -->
+      <a-card size="small" :bordered="false" title="基础信息" v-show="isShowBisiceInfo" class="pages-wrap">
+        <a-descriptions size="small" :column="3">
+          <a-descriptions-item label="客户名称">{{ ordeDetail&&ordeDetail.buyerNameCurrent?ordeDetail.buyerName?ordeDetail.buyerName==ordeDetail.buyerNameCurrent?ordeDetail.buyerNameCurrent:ordeDetail.buyerNameCurrent+'('+ordeDetail.buyerName+')':ordeDetail.buyerNameCurrent:'--' }}</a-descriptions-item>
+          <a-descriptions-item label="客户地址">
+            <div v-if="ordeDetail&&(ordeDetail.provinceName || ordeDetail.cityName || ordeDetail.countyName || ordeDetail.customerAddr)">
+              {{ ordeDetail&&ordeDetail.provinceName || '' }}
+              {{ ordeDetail&&ordeDetail.cityName || '' }}
+              {{ ordeDetail&&ordeDetail.countyName || '' }}
+              {{ ordeDetail&&ordeDetail.customerAddr || '' }}
+            </div>
+            <span v-else>--</span>
+          </a-descriptions-item>
+          <a-descriptions-item label="联系电话">{{ ordeDetail&&ordeDetail.contactTel || '--' }}</a-descriptions-item>
+          <a-descriptions-item label="退货单号">{{ ordeDetail&&ordeDetail.salesReturnNo || '--' }}</a-descriptions-item>
+          <a-descriptions-item label="业务状态">{{ ordeDetail&&ordeDetail.stateDictValue || '--' }}</a-descriptions-item>
+          <a-descriptions-item label="是否抓单">{{ ordeDetail&&ordeDetail.grabFlag==1?'抓单':'不抓单' }}</a-descriptions-item>
+          <a-descriptions-item label="备注">{{ ordeDetail&&ordeDetail.remarks || '--' }}</a-descriptions-item>
+        </a-descriptions>
+      </a-card>
       <a-card size="small" :bordered="false" class="pages-wrap">
         <!-- 查询配件列表 -->
         <queryPart ref="queryPart" grabFlag="1" :newLoading="isInster" :warehouseCascadeData="warehouseCascadeData" @add="saveProduct"></queryPart>
@@ -161,7 +190,7 @@
     </a-spin>
     <!-- <div class="affix-cont"></div> -->
     <!-- 选择客户弹框 -->
-    <choose-custom-modal :show="openModal" @ok="chooseCustomOk" @cancel="openModal=false"></choose-custom-modal>
+    <choose-custom-modal ref="editCustomModal" :show="openModal" @ok="chooseCustomOk" @cancel="openModal=false"></choose-custom-modal>
   </div>
 </template>
 
@@ -254,7 +283,8 @@ export default {
           return data
         })
       },
-      printerType: 'NEEDLE' //  打印机类型
+      printerType: 'NEEDLE', //  打印机类型
+      isShowBisiceInfo: false
     }
   },
   methods: {
@@ -263,9 +293,13 @@ export default {
       this.$router.push({ path: '/salesManagement/salesReturn/list' })
     },
     // 选择客户成功
-    chooseCustomOk (data) {},
+    chooseCustomOk (data) {
+      this.openModal = false
+      this.getOrderDetail()
+    },
     handleEditCustom () {
       this.openModal = true
+      this.$refs.editCustomModal.editCust(this.ordeDetail)
     },
     // 已选产品  blur
     onCellBlur (val, record, type) {

+ 3 - 3
src/views/salesManagement/salesman/list.vue

@@ -10,8 +10,8 @@
             </a-form-item>
           </a-col>
           <a-col :md="6" :sm="24">
-            <a-form-item label="状态">
-              <v-select code="ENABLE_FLAG" id="salesmanList-enableFlag" v-model="queryParam.enableFlag" allowClear placeholder="请选择状态"></v-select>
+            <a-form-item label="启用状态">
+              <v-select code="ENABLE_FLAG" id="salesmanList-enableFlag" v-model="queryParam.enableFlag" allowClear placeholder="请选择启用状态"></v-select>
             </a-form-item>
           </a-col>
           <a-col :md="6" :sm="24">
@@ -100,7 +100,7 @@ export default {
         { title: '联系电话', dataIndex: 'mobile', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '入职日期', dataIndex: 'entryDate', width: '15%', align: 'center', ellipsis: true, customRender: function (text) { return text || '--' } },
         { title: '创建时间', dataIndex: 'createDate', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '状态', dataIndex: 'enableFlagDictValue', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '启用状态', dataIndex: 'enableFlagDictValue', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '操作', scopedSlots: { customRender: 'action' }, width: '10%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象

+ 3 - 3
src/views/supplierManagement/supplierInfo/list.vue

@@ -10,8 +10,8 @@
             </a-form-item>
           </a-col>
           <a-col :md="6" :sm="24">
-            <a-form-item label="状态">
-              <v-select code="ENABLE_FLAG" id="supplierInfoList-enabledFlag" v-model="queryParam.enabledFlag" allowClear placeholder="请选择状态"></v-select>
+            <a-form-item label="启用状态">
+              <v-select code="ENABLE_FLAG" id="supplierInfoList-enabledFlag" v-model="queryParam.enabledFlag" allowClear placeholder="请选择启用状态"></v-select>
             </a-form-item>
           </a-col>
           <a-col :md="6" :sm="24">
@@ -84,7 +84,7 @@ export default {
         { title: '联系电话', dataIndex: 'contactTel', width: '11%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '主营内容', dataIndex: 'businessScope', width: '14%', align: 'center', ellipsis: true, customRender: function (text) { return text || '--' } },
         { title: '创建时间', dataIndex: 'createDate', width: '12%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '状态', dataIndex: 'enabledFlagDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '启用状态', dataIndex: 'enabledFlagDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '操作', scopedSlots: { customRender: 'action' }, width: '8%', align: 'center' }
       ],
       // 加载数据方法 必须为 Promise 对象