浏览代码

Merge branch 'feature/Feature-finance' of https://gogs.zfire.top/zfire-front/supply-front into feature/Feature-finance

chen 3 年之前
父节点
当前提交
b2f0d2a91d
共有 47 个文件被更改,包括 2522 次插入1305 次删除
  1. 40 0
      src/api/basic_data/dealer.js
  2. 4 2
      src/api/basic_data/material.js
  3. 1 1
      src/api/common.js
  4. 72 0
      src/api/supply/engin.js
  5. 194 0
      src/api/supply/policy.js
  6. 0 74
      src/api/supply/retail.js
  7. 2 1
      src/store/getters.js
  8. 7 2
      src/store/modules/user.js
  9. 47 0
      src/styles/index.scss
  10. 28 28
      src/views/basic_data/dealer/components/dealer_list-detail.vue
  11. 71 18
      src/views/basic_data/dealer/dealer_deposit.vue
  12. 228 66
      src/views/basic_data/dealer/dealer_stock.vue
  13. 4 4
      src/views/basic_data/logistics/logistics_list.vue
  14. 19 13
      src/views/basic_data/material/category_list.vue
  15. 120 77
      src/views/basic_data/material/components/modify_list-apply.vue
  16. 26 93
      src/views/basic_data/material/machine_list.vue
  17. 2 2
      src/views/basic_data/material/material_list.vue
  18. 46 51
      src/views/basic_data/supplier/components/supplier_list-detail.vue
  19. 4 4
      src/views/basic_data/taker/taker_car.vue
  20. 57 37
      src/views/basic_data/taker/taker_list.vue
  21. 355 241
      src/views/basic_data/warehouse/components/warehouse_list-detail.vue
  22. 4 4
      src/views/basic_data/warehouse/warehouse_book.vue
  23. 6 4
      src/views/basic_data/warehouse/warehouse_cost.vue
  24. 2 2
      src/views/basic_data/warehouse/warehouse_list.vue
  25. 11 34
      src/views/basic_data/warehouse/warehouse_site.vue
  26. 19 11
      src/views/sales_policy/components/AddCondition.vue
  27. 45 38
      src/views/sales_policy/components/AddPolicy.vue
  28. 17 41
      src/views/sales_policy/components/Examine.vue
  29. 7 9
      src/views/sales_policy/components/Transfer.vue
  30. 15 13
      src/views/sales_policy/policy_list.vue
  31. 31 12
      src/views/sales_rebate/salestype_list.vue
  32. 19 7
      src/views/setting/account.vue
  33. 15 14
      src/views/supply/apply/apply_list.vue
  34. 142 105
      src/views/supply/apply/components/apply_detail.vue
  35. 7 6
      src/views/supply/apply/components/apply_examine.vue
  36. 38 45
      src/views/supply/apply/components/apply_form.vue
  37. 118 19
      src/views/supply/engin/components/engin_examine.vue
  38. 315 55
      src/views/supply/engin/components/engin_form.vue
  39. 32 6
      src/views/supply/engin/engin_list.vue
  40. 1 1
      src/views/supply/policy/components/policy_list.vue
  41. 3 3
      src/views/supply/policy/components/retail_detail.vue
  42. 214 83
      src/views/supply/policy/components/retail_examine.vue
  43. 30 24
      src/views/supply/policy/components/retail_form.vue
  44. 4 4
      src/views/supply/policy/components/retail_return.vue
  45. 14 10
      src/views/supply/policy/policy_list.vue
  46. 84 37
      src/views/supply/retail/components/retail_detail.vue
  47. 2 4
      src/views/supply/retail/components/retail_form.vue

+ 40 - 0
src/api/basic_data/dealer.js

@@ -98,4 +98,44 @@ export function getDictionaries(params) {
     method: 'get',
     params
   })
+}
+//产品品类列表
+export function getProductCategoryList(params) {
+  return request({
+    url: '/product-category/list',
+    method: 'get',
+    params
+  })
+}
+//根据父级查询部门
+export function getAdminWebsitByparent(params) {
+  return request({
+    url: '/admin/websit/byparent',
+    method: 'get',
+    params
+  })
+}
+//帐号列表
+export function getAdminUserList(params) {
+  return request({
+    url: '/admin/user/list',
+    method: 'get',
+    params
+  })
+}
+//经销商客户存货分类-详情
+export function getCustomerPtDetail(params) {
+  return request({
+    url: '/customer/pt/detail',
+    method: 'get',
+    params
+  })
+}
+//修改经销商客户存货分类
+export function getCustomerPtUpdate(data) {
+  return request({
+    url: '/customer/pt/update',
+    method: 'post',
+    data
+  })
 }

+ 4 - 2
src/api/basic_data/material.js

@@ -267,7 +267,7 @@ export function getProductCategoryKingDeeCategoryList() {
   return request({
     url:'/product-category/king-dee-category-list',
     method: 'get',
-    
+
   })
 }
 //新增产品品类小类
@@ -278,6 +278,7 @@ export function getProductCategoryAddSub(data) {
     data
   })
 }
+
 //删除产品品类小类
 export function getProductCategoryDelSub(params) {
   return request({
@@ -285,4 +286,5 @@ export function getProductCategoryDelSub(params) {
     method: 'post',
     params
   })
-}
+}
+

+ 1 - 1
src/api/common.js

@@ -9,7 +9,7 @@ export function getDictList(params) {
   })
 }
 
-// 销售列表
+// 销售类型列表
 export function getTypeList(params) {
   return request({
     url: '/sale/type/list',

+ 72 - 0
src/api/supply/engin.js

@@ -34,4 +34,76 @@ export function getEnginDetail(params) {
     method: 'get',
     params
   })
+}
+
+// 审批
+export function examineEngin(params) {
+  return request({
+    url: '/engin-info-order/examine',
+    method: 'post',
+    data: params
+  })
+}
+
+// 获取产品列表
+export function getRetailProductList(params) {
+  return request({
+    url: '/retail/product/list',
+    method: 'get',
+    params
+  })
+}
+
+// 新增
+export function addEngin(params) {
+  return request({
+    url: '/engin-info-order/add',
+    method: 'post',
+    data: params
+  })
+}
+
+// 编辑
+export function editEngin(params) {
+  return request({
+    url: '/engin-info-order/edit',
+    method: 'post',
+    data: params
+  })
+}
+
+// 提交审核
+export function submitEngin(params) {
+  return request({
+    url: '/engin-info-order/submit',
+    method: 'post',
+    data: params
+  })
+}
+
+// 申请
+export function applyEngin(params) {
+  return request({
+    url: '/engin-info-order/submit-on-list',
+    method: 'post',
+    params
+  })
+}
+
+// 撤回
+export function withdrawEngin(params) {
+  return request({
+    url: '/engin-info-order/revoke',
+    method: 'post',
+    params
+  })
+}
+
+// 删除
+export function deleteEngin(params) {
+  return request({
+    url: '/engin-info-order/del',
+    method: 'post',
+    params
+  })
 }

+ 194 - 0
src/api/supply/policy.js

@@ -0,0 +1,194 @@
+import request from '@/utils/request'
+
+// 获取列表
+export function getList(params) {
+  return request({
+    url: '/retail/list',
+    method: 'get',
+    params
+  })
+}
+
+// 获取详情
+export function getDetail(params) {
+  return request({
+    url: '/retail/detail',
+    method: 'get',
+    params
+  })
+}
+
+// 关闭
+export function closeData(params) {
+  return request({
+    url: '/retail/close',
+    method: 'post',
+    params
+  })
+}
+
+// 审批
+export function examineData(params) {
+  return request({
+    url: '/retail/examine',
+    method: 'post',
+    params
+  })
+}
+
+// 退订
+export function returnData(params) {
+  return request({
+    url: '/retail/return',
+    method: 'post',
+    params
+  })
+}
+
+// 提交审核
+export function submitData(params) {
+  return request({
+    url: '/retail/submit',
+    method: 'post',
+    params
+  })
+}
+
+// 新增
+export function addData(params) {
+  return request({
+    url: '/retail/add',
+    method: 'post',
+    data: params
+  })
+}
+
+// 编辑
+export function editData(params) {
+  return request({
+    url: '/retail/update',
+    method: 'post',
+    data: params
+  })
+}
+
+// 获取销售类型列表
+export function getSalesTypeList(params) {
+  return request({
+    url: '/sale/type/list',
+    method: 'get',
+    params
+  })
+}
+
+// 获取产品列表
+export function getGoodsList(params) {
+  return request({
+    url: '/retail/product/list',
+    method: 'get',
+    params
+  })
+}
+
+// 获取钱包列表
+export function getWalletList(params) {
+  return request({
+    url: '/wallet/customer/list',
+    method: 'get',
+    params
+  })
+}
+
+// 获取仓库列表
+export function getWarehouseList(params) {
+  return request({
+    url: '/stock/listStock',
+    method: 'get',
+    params
+  })
+}
+
+// 检查库存
+export function checkStock(params) {
+  return request({
+    url: '/stock/manager/stockStatus',
+    method: 'get',
+    params
+  })
+}
+
+
+export function submitCancel(params) {
+  return request({
+    url: '/retail/submit/cancel',
+    method: 'post',
+    params
+  })
+}
+// 销售类型
+export function typeList(params) {
+  return request({
+    url: '/sale/type/list',
+    method: 'get',
+    params
+  })
+}
+
+
+// 销售政策
+export function policyList(params) {
+  return request({
+    url: '/policy/list',
+    method: 'get',
+    params
+  })
+}
+
+// 根据政策id和物料id反查政策条件
+export function getpolicyList(params) {
+  return request({
+    url: '/policy/condition/get',
+    method: 'get',
+    params
+  })
+}
+
+//政策条件的机型列表
+export function getConditionList(params) {
+  return request({
+    url: '/policy/condition/material/list',
+    method: 'get',
+    params
+  })
+}
+
+
+
+export function getpolicyTypeList(params) {
+  return request({
+    url: '/policy/type1/material/list',
+    method: 'get',
+    params
+  })
+}
+
+
+
+export function getMaterialTypeList(params) {
+  return request({
+    url: '/policy/material/list',
+    method: 'get',
+    params
+  })
+}
+
+
+
+
+export function getConditionDetail(params) {
+  return request({
+    url: '/policy/condition/detail',
+    method: 'get',
+    params
+  })
+}

+ 0 - 74
src/api/supply/retail.js

@@ -118,78 +118,4 @@ export function checkStock(params) {
 }
 
 
-export function submitCancel(params) {
-  return request({
-    url: '/retail/submit/cancel',
-    method: 'post',
-    params
-  })
-}
-// 销售类型
-export function typeList(params) {
-  return request({
-    url: '/sale/type/list',
-    method: 'get',
-    params
-  })
-}
-
-
-
-// 销售政策
-export function policyList(params) {
-  return request({
-    url: '/policy/list',
-    method: 'get',
-    params
-  })
-}
-
-// 根据政策id和物料id反查政策条件
-export function getpolicyList(params) {
-  return request({
-    url: '/policy/condition/get',
-    method: 'get',
-    params
-  })
-}
 
-//政策条件的机型列表
-export function getConditionList(params) {
-  return request({
-    url: '/policy/condition/material/list',
-    method: 'get',
-    params
-  })
-}
-
-
-
-export function getpolicyTypeList(params) {
-  return request({
-    url: '/policy/type1/material/list',
-    method: 'get',
-    params
-  })
-}
-
-
-
-export function getMaterialTypeList(params) {
-  return request({
-    url: '/policy/material/list',
-    method: 'get',
-    params
-  })
-}
-
-
-
-
-export function getConditionDetail(params) {
-  return request({
-    url: '/policy/condition/detail',
-    method: 'get',
-    params
-  })
-}

+ 2 - 1
src/store/getters.js

@@ -8,6 +8,7 @@ const getters = {
   phone: state => state.user.phone,
   name: state => state.user.name,
   menus: state => state.user.menus,
-  customerId: state => state.user.customerId
+  customerId: state => state.user.customerId,
+  customerName: state => state.user.customerName
 }
 export default getters

+ 7 - 2
src/store/modules/user.js

@@ -9,7 +9,8 @@ const getDefaultState = () => {
     name: '', // 用户名称
     phone: '', // 用户手机
     menus: "", // 菜单
-    customerId:''//经销商ID
+    customerId:'',//经销商ID
+    customerName:''//经销商名称
   }
 }
 
@@ -36,6 +37,9 @@ const mutations = {
   },
   SET_CUSTOMERID: (state, customerId) => {
     state.customerId = customerId
+  },
+  SET_CUSTOMERNAME: (state, customerName) => {
+    state.customerName = customerName
   }
 }
 
@@ -69,7 +73,7 @@ const actions = {
           return reject('Verification failed, please Login again.')
         }
         console.log(data);
-        const { nickName, userName ,customerId} = data
+        const { nickName, userName ,customerId,customerName} = data
         
         // 模拟请求数据
         // const menus = [
@@ -97,6 +101,7 @@ const actions = {
         // ]
         // menus.push({ path: '*', redirect: '/404', hidden: true })
         commit('SET_CUSTOMERID',customerId)
+        commit('SET_CUSTOMERNAME',customerName)
         commit('SET_NAME', nickName)
         commit('SET_PHONE', userName)
         // commit("SET_MENUS", menus) // 触发vuex SET_MENUS 保存路由表到vuex

+ 47 - 0
src/styles/index.scss

@@ -269,6 +269,48 @@ div:focus {
   .item {
     display: flex;
     border-bottom: 1px solid #EBEEF5;
+    &.file {
+      .label {
+        height: 100px;
+      }
+      .value {
+        height: 100px;
+      }
+      .file-list {
+        display: flex;
+        .file-item {
+          // margin-top: 10px;
+          margin-right: 10px;
+        }
+      }
+      .img {
+        width: 70px;
+        height: 70px;
+        display: block;
+        border: 1px solid #e4e7ed;
+      }
+      .box2 {
+        flex: 1;
+        display: flex;
+        padding: 10px;
+        align-items: center;
+        border: 1px solid #e4e7ed;
+        width: 240px;
+        height: 70px;
+        cursor: pointer;
+        img {
+          width: 40px;
+          height: 40px;
+          display: block;
+        }
+        .name {
+          flex: 1;
+          color: #222;
+          font-weight: 600;
+          margin-left: 10px;
+        }
+      }
+    }
     .label {
       width: 120px;
       height: 40px;
@@ -360,3 +402,8 @@ div:focus {
     }
   }
 }
+
+input[type=number]::-webkit-inner-spin-button, input[type=number]::-webkit-outer-spin-button {
+  -webkit-appearance: none;
+  margin: 0;
+}

+ 28 - 28
src/views/basic_data/dealer/components/dealer_list-detail.vue

@@ -22,7 +22,7 @@
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="客户编码" prop="takerName">
+              <el-form-item label="客户编码" prop="">
                 <el-input
                   v-model="infoList.number"
                   placeholder="请输入"
@@ -30,7 +30,7 @@
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="使用组织" prop="telephone">
+              <el-form-item label="使用组织" prop="">
                 <el-input
                   v-model="infoList.useOrgName"
                   placeholder="请输入"
@@ -38,7 +38,7 @@
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="简称" prop="telephone">
+              <el-form-item label="简称" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
@@ -62,7 +62,7 @@
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="地区" prop="takerName">
+              <el-form-item label="地区" prop="">
                 <el-input
                   v-model="infoList.region"
                   placeholder="请输入"
@@ -70,7 +70,7 @@
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="省份" prop="telephone">
+              <el-form-item label="省份" prop="">
                 <el-input
                   v-model="infoList.province"
                   placeholder="请输入"
@@ -78,7 +78,7 @@
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="城市" prop="telephone">
+              <el-form-item label="城市" prop="">
                 <el-input
                   v-model="infoList.city"
                   placeholder="请输入"
@@ -86,27 +86,27 @@
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="通信地址" prop="telephone">
+              <el-form-item label="通信地址" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="邮政编码" prop="telephone">
+              <el-form-item label="邮政编码" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="公司网址" prop="telephone">
+              <el-form-item label="公司网址" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="商城订单对应组织" prop="telephone">
+              <el-form-item label="商城订单对应组织" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="联系邮箱" prop="telephone">
+              <el-form-item label="联系邮箱" prop="">
                 <el-input
                   v-model="infoList.email"
                   placeholder="请输入"
@@ -130,22 +130,22 @@
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="传真" prop="takerName">
+              <el-form-item label="传真" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="公司类别" prop="telephone">
+              <el-form-item label="公司类别" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="公司性质" prop="telephone">
+              <el-form-item label="公司性质" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="公司规模" prop="telephone">
+              <el-form-item label="公司规模" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
@@ -163,42 +163,42 @@
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="对应集团客户" prop="takerName">
+              <el-form-item label="对应集团客户" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="客户类别" prop="telephone">
+              <el-form-item label="客户类别" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="客户分组" prop="telephone">
+              <el-form-item label="客户分组" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="集团客户" prop="telephone">
+              <el-form-item label="集团客户" prop="">
                 <el-checkbox></el-checkbox>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="默认付款方" prop="telephone">
+              <el-form-item label="默认付款方" prop="">
                 <el-checkbox></el-checkbox>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="不校验可发量" prop="telephone">
+              <el-form-item label="不校验可发量" prop="">
                 <el-checkbox></el-checkbox>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="对应组织" prop="telephone">
+              <el-form-item label="对应组织" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="备注" prop="telephone">
+              <el-form-item label="备注" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
@@ -216,12 +216,12 @@
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="纳税登记号" prop="takerName">
+              <el-form-item label="纳税登记号" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="开户银行" prop="telephone">
+              <el-form-item label="开户银行" prop="">
                 <el-input
                   v-model="infoList.bank"
                   placeholder="请输入"
@@ -229,7 +229,7 @@
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="银行账号" prop="telephone">
+              <el-form-item label="银行账号" prop="">
                 <el-input
                   v-model="infoList.bankAccount"
                   placeholder="请输入"
@@ -237,7 +237,7 @@
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="开票联系电话" prop="telephone">
+              <el-form-item label="开票联系电话" prop="">
                 <el-input
                   v-model="infoList.invoicePhone"
                   placeholder="请输入"
@@ -245,7 +245,7 @@
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="开票通讯地址" prop="telephone">
+              <el-form-item label="开票通讯地址" prop="">
                 <el-input
                   v-model="infoList.invoiceAddress"
                   placeholder="请输入"

+ 71 - 18
src/views/basic_data/dealer/dealer_deposit.vue

@@ -87,6 +87,27 @@
           />
           <el-table-column
             align="center"
+            label="押金"
+            prop="amount"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="center"
+            label="开始时间"
+            prop="startTime"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="center"
+            label="结束时间"
+            prop="endTime"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="center"
             label="备注"
             prop="remark"
             min-width="160"
@@ -180,6 +201,7 @@
             class="inputStyle"
             v-model="dialogForm.customerId"
             placeholder="请选择"
+            filterable
           >
             <el-option
               v-for="item in dealerList"
@@ -194,17 +216,24 @@
         <el-form-item label="押金比例" prop="rate">
           <el-input
             placeholder="请输入押金比例"
-            @focus="rateFn"
             v-model.number="dialogForm.rate"
             class="inputStyle"
           >
             <i class="el-input__icon" slot="suffix">% </i>
           </el-input>
         </el-form-item>
+        <el-form-item label="" prop="">
+          <el-slider
+            class="inputStyle"
+            v-model="dialogForm.rate"
+            :marks="marks"
+          >
+          </el-slider>
+        </el-form-item>
+
         <el-form-item label="押金定额金额" prop="amount">
           <el-input
             placeholder="请输入押金定额"
-            @focus="amountFn"
             v-model.number="dialogForm.amount"
             class="inputStyle"
           ></el-input>
@@ -262,6 +291,19 @@ import { number } from "echarts";
 export default {
   data() {
     return {
+      marks: {
+        0: "0%",
+        20: "20%",
+        40: "40%",
+        60: "60%",
+        80: "80%",
+        100: {
+          style: {
+            width: "36px",
+          },
+          label: this.$createElement("div", "100%"),
+        },
+      },
       title: "",
       currentPage: 1, // 当前页码
       pageSize: 10, // 每页数量
@@ -271,13 +313,13 @@ export default {
         customerName: "",
       },
       dialogForm: {
-        amount: "",
+        amount: 0,
         customerId: "",
         customerName: "",
         customerNumber: "",
         endTime: "",
 
-        rate: "",
+        rate: 0,
         remark: "",
         startTime: "",
       },
@@ -288,7 +330,7 @@ export default {
             message: "请输入0-100的数字",
             trigger: "blur",
             type: "number",
-            required: true,
+            required: false,
           },
           // {
           //   validator: rate,
@@ -300,7 +342,7 @@ export default {
             trigger: "blur",
             message: "请输入定额押金",
             type: "number",
-            required: true,
+            required: false,
           },
           // {
           //   validator: amount,
@@ -336,21 +378,32 @@ export default {
   },
   async created() {
     await this.getList({ pageNum: 1, pageSize: 10 });
-    await this.getDealerDataList({ pageNum: 1, pageSize: 10 });
+    await this.getDealerDataList({ pageNum: 1, pageSize: -1 });
   },
-
-  methods: {
-    //押金
-    amountFn(e) {
-      if (this.dialogForm.rate != 0 || this.dialogForm.rate != "") {
-        this.$message.warning("已选押金比例,如需选择定额押金,请把押金比例归零");
+  watch: {
+    "dialogForm.amount": function (newValue, oldValue) {
+      if (this.dialogForm.amount !== 0) {
+        this.dialogForm.rate = 0;
       }
     },
-    rateFn(e) {
-      if (this.dialogForm.amount != 0 || this.dialogForm.amount != "") {
-        this.$message.warning("已选定额押金,如需选择押金比例,请把定额押金归零");
+    "dialogForm.rate": function (newValue, oldValue) {
+      if (this.dialogForm.rate !== 0) {
+        this.dialogForm.amount = 0;
       }
     },
+  },
+  methods: {
+    // //押金
+    // amountFn(e) {
+    //   if (this.dialogForm.rate != 0 || this.dialogForm.rate != "") {
+    //     this.$message.warning("已选押金比例,如需选择定额押金,请把押金比例归零");
+    //   }
+    // },
+    // rateFn(e) {
+    //   if (this.dialogForm.amount != 0 || this.dialogForm.amount != "") {
+    //     this.$message.warning("已选定额押金,如需选择押金比例,请把定额押金归零");
+    //   }
+    // },
     //取消
     async cancelFn() {
       this.dialogForm = {
@@ -370,7 +423,7 @@ export default {
     //编辑
     async editFn(id) {
       console.log(id);
-      this.title = "编辑经销商工程机配置";
+      this.title = "经销商工程机押金比例设置";
       const res = await infoDealerDeposit({ id });
       this.dialogForm = res.data;
       this.dialogForm.rate = parseInt(res.data.rate * 100);
@@ -467,7 +520,7 @@ export default {
       this.showDialog = false;
     },
     addFn() {
-      this.title = "新增经销商工程机配置";
+      this.title = "经销商工程机押金比例设置";
       this.showDialog = true;
     },
   },

+ 228 - 66
src/views/basic_data/dealer/dealer_stock.vue

@@ -18,24 +18,8 @@
               ></el-input>
             </el-form-item>
           </el-col>
-          <el-col :xs="24" :sm="12" :lg="6">
-            <el-form-item label="存货分类编码" prop="bianMa">
-              <el-input
-                v-model="searchForm.mainId"
-                placeholder="请输入"
-              ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :xs="24" :sm="12" :lg="6">
-            <el-form-item label="存货分类" prop="mainName">
-              <el-input
-                v-model="searchForm.mainName"
-                placeholder="请输入"
-              ></el-input>
-            </el-form-item>
-          </el-col>
 
-          <el-col :xs="24" :sm="12" :lg="6">
+          <el-col :xs="24" :sm="12" :lg="18">
             <el-form-item label="" class="fr">
               <el-button size="small" @click="clearFn">清空</el-button>
               <el-button size="small" type="primary" @click="searchFn"
@@ -57,7 +41,7 @@
             size="small"
             class="textColor"
             slot="reference"
-            >删除</el-button
+            >批量删除</el-button
           >
         </el-popconfirm>
       </div>
@@ -87,6 +71,13 @@
           ></el-table-column>
           <el-table-column
             align="center"
+            label="经销商编码"
+            prop="customerNumber"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
             label="经销商名称"
             prop="customerName"
             min-width="160"
@@ -94,15 +85,15 @@
           ></el-table-column>
           <el-table-column
             align="center"
-            label="存货分类编码"
-            prop="mainId"
+            label="产品大类(钱包)"
+            prop="mainName"
             min-width="160"
             show-overflow-tooltip
           ></el-table-column>
           <el-table-column
             align="center"
-            label="存货分类名称"
-            prop="mainName"
+            label="业务员"
+            prop="serviceName"
             min-width="160"
             show-overflow-tooltip
           ></el-table-column>
@@ -142,6 +133,12 @@
             show-overflow-tooltip
           >
             <template slot-scope="scope">
+              <el-button
+                type="text"
+                class="textColor"
+                @click="editFn(scope.row.id)"
+                >编辑</el-button
+              >
               <el-popconfirm
                 @onConfirm="deleFn(scope.row.id)"
                 title="这是一段内容确定删除吗?"
@@ -171,7 +168,7 @@
 
     <!-- 弹窗 -->
     <el-dialog
-      title="编辑"
+      :title="title"
       :visible.sync="dialogForm"
       width="30%"
       :show-close="false"
@@ -179,8 +176,8 @@
     >
       <el-form
         ref="addForm"
-        :rules="rules"
         :model="addForm"
+        :rules="rules"
         label-width="100px"
         label-position="right"
       >
@@ -188,7 +185,7 @@
           <el-select
             class="selectStyle"
             v-model="addForm.customerId"
-            placeholder="名称"
+            placeholder="请选择"
           >
             <el-option
               v-for="item in dealerList"
@@ -199,17 +196,77 @@
             </el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="存货分类" prop="mainId">
+        <el-form-item label="产品大类" prop="mainId">
           <el-select
             class="selectStyle"
             v-model="addForm.mainId"
             placeholder="请选择"
           >
             <el-option
-              v-for="item in selectList"
-              :key="item.value"
-              :label="item.dictValue"
-              :value="item.sysDictId"
+              v-for="item in categoryList"
+              :key="item.productCategoryId"
+              :label="item.productCategoryName"
+              :value="item.productCategoryId"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="一级区域" prop="oneParentId">
+          <el-select
+            class="selectStyle"
+            v-model="addForm.oneParentId"
+            placeholder="请选择"
+          >
+            <el-option
+              v-for="item in oneList"
+              :key="item.adminWebsitId"
+              :label="item.name"
+              :value="item.adminWebsitId"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="二级区域" prop="twoParentId">
+          <el-select
+            class="selectStyle"
+            v-model="addForm.twoParentId"
+            placeholder="请选择"
+          >
+            <el-option
+              v-for="item in twoList"
+              :key="item.adminWebsitId"
+              :label="item.name"
+              :value="item.adminWebsitId"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="三级区域" prop="threeParentId"
+          ><el-select
+            class="selectStyle"
+            v-model="addForm.threeParentId"
+            placeholder="请选择"
+          >
+            <el-option
+              v-for="item in threeList"
+              :key="item.adminWebsitId"
+              :label="item.name"
+              :value="item.adminWebsitId"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="对应业务员" prop="serviceId">
+          <el-select
+            class="selectStyle"
+            v-model="addForm.serviceId"
+            placeholder="请选择"
+          >
+            <el-option
+              v-for="(item, i) in userList"
+              :key="i"
+              :label="item.nickName"
+              :value="item.adminUserId"
             >
             </el-option>
           </el-select>
@@ -229,26 +286,45 @@ import {
   getDealerStockAdd,
   deleDealerStockList,
   getDictionaries,
+  getProductCategoryList,
+  getAdminWebsitByparent,
+  getAdminUserList,
+  getCustomerPtDetail,
+  getCustomerPtUpdate,
 } from "@/api/basic_data/dealer";
 import { getDealerList } from "@/api/basic_data/dealer";
 
 export default {
   data() {
     return {
+      title: "",
       dialogForm: false,
       addForm: {
-        customerName: "",
         customerId: "",
-        customerNumber: "",
+        oneParentId: "",
+        twoParentId: "",
+        threeParentId: "",
+        serviceId: "",
         mainId: "",
-        mainName: "",
       },
       rules: {
         mainId: [
-          { required: true, message: "请选择存货分类", trigger: "change" },
+          { required: true, message: "请选择存货分类", trigger: "blur" },
         ],
         customerId: [
-          { required: true, message: "请选择经销商", trigger: "change" },
+          { required: true, message: "请选择经销商", trigger: "blur" },
+        ],
+        oneParentId: [
+          { required: true, message: "请选择一级区域", trigger: "blur" },
+        ],
+        twoParentId: [
+          { required: true, message: "请选择二级区域", trigger: "blur" },
+        ],
+        threeParentId: [
+          { required: true, message: "请选择三级区域", trigger: "blur" },
+        ],
+        serviceId: [
+          { required: true, message: "请选择业务员", trigger: "blur" },
         ],
       },
 
@@ -258,23 +334,85 @@ export default {
 
       searchForm: {
         customerName: "",
-        mainId: "",
-        mainName: "",
       },
       dataList: [], // 列表数据
       listLoading: false, // 列表加载loading
       dealerList: [],
       selectList: [],
+      categoryList: [], //产品大类列表
+      oneList: [], //一级区域数据
+      twoList: [], //二级区域数据
+      threeList: [], //三级区域数据
+      userList: [], //业务员
       ids: [],
+      rowID: null, //编辑ID
     };
   },
   async created() {
     this.getList({ pageNum: 1, pageSize: 10 });
-    this.getDealerDataList({ pageNum: 1, pageSize: 10 });
+    this.getDealerDataList({ pageNum: -1, pageSize: 10 });
     this.getSelectList({ sysDictEnum: "PRODUCT_TYPE" });
+    this.getCategoryList();
+    this.getAdminWebsit(1);
   },
   computed: {},
+  watch: {
+    "addForm.oneParentId": async function (newValue) {
+      if (newValue) {
+        let res = await getAdminWebsitByparent({ parentId: newValue });
+        this.twoList = res.data;
+      }
+    },
+    "addForm.twoParentId": async function (newValue) {
+      if (newValue) {
+        let res = await getAdminWebsitByparent({ parentId: newValue });
+        this.threeList = res.data;
+      }
+    },
+    "addForm.threeParentId": async function (newValue) {
+      if (newValue) {
+        let res = await getAdminUserList({
+          pageNum: 1,
+          pageSize: 10,
+          isCustomer: 0,
+          adminWebsitId: newValue,
+        });
+        this.userList = res.data.records;
+      }
+    },
+  },
   methods: {
+    //编辑
+
+    async editFn(id) {
+      this.title = "编辑";
+      this.rowID = id;
+      let res = await getCustomerPtDetail({ id });
+      console.log(res);
+      this.addForm.customerId = res.data.customerId;
+      this.addForm.mainId = res.data.mainId;
+      this.addForm.oneParentId = res.data.adminWebsitId2;
+      this.addForm.twoParentId = res.data.adminWebsitId3;
+      this.addForm.threeParentId = res.data.adminCompanyId;
+      this.addForm.serviceId = res.data.serviceId;
+
+      this.dialogForm = true;
+    },
+    //获取业务员数据
+    async getUserList() {
+      // await getAdminUserList({ pageNum: 1 });
+    },
+    //根据父级查询部门
+    async getAdminWebsit(data) {
+      let res = await getAdminWebsitByparent({ parentId: data });
+      this.oneList = res.data;
+    },
+    //获取产品品类数据
+    async getCategoryList() {
+      let res = await getProductCategoryList();
+      console.log(res);
+      this.categoryList = res.data;
+    },
     // 筛选部分数据或者单个
     hanleSelect(selection) {
       // this.ids = selection.map((k) => {
@@ -293,45 +431,70 @@ export default {
     async deleFn(id) {
       this.ids.push(id);
       let res = this.ids.toString();
-
       await deleDealerStockList({ ids: res });
       this.getList({ pageNum: 1, pageSize: 10 });
       this.$message.success("删除成功");
     },
     addFn() {
+      this.title = "新增";
       this.dialogForm = true;
     },
     async addDataListFn() {
       await this.$refs.addForm.validate();
-
-      // let id = this.dealerList.filter((i) => {
-      //   return i.id === this.addForm.customerId;
-      // })[0];
-      // console.log(id, "id");
-      // let res = findElem(this.dealerList, "id", this.addForm.customerId);
-      // console.log(11111, res);
-      let res = this.dealerList.filter(
-        (v) => v.id === this.addForm.customerId
-      )[0];
-      console.log(res);
-      this.addForm.customerName = res.name;
-      this.addForm.customerNumber = res.number;
-      let res2 = this.selectList.filter(
-        (v) => v.sysDictId === this.addForm.mainId
-      )[0];
-      console.log(res2);
-      this.addForm.mainName = res2.dictValue;
       console.log(this.addForm);
+      let data = this.dealerList.filter((v) => {
+        return v.id === this.addForm.customerId;
+      });
+
+      let data2 = this.categoryList.filter((v) => {
+        return v.productCategoryId == this.addForm.mainId;
+      });
+      let data3 = this.userList.filter((v) => {
+        return v.adminUserId == this.addForm.serviceId;
+      });
+
+      let value = {
+        customerId: this.addForm.customerId,
+        customerName: data[0].name,
+        customerNumber: data[0].number,
+        mainId: this.addForm.mainId,
+        mainName: data2[0].productCategoryName,
+        serviceId: this.addForm.serviceId,
+        serviceName: data3[0].nickName,
+      };
 
-      await getDealerStockAdd({ ...this.addForm });
-      this.$message.success("添加成功");
-      await this.$refs.addForm.resetFields();
-      await this.getList({ pageNum: 1, pageSize: 10 });
+      if (this.title == "编辑") {
+        await getCustomerPtUpdate({ ...value, id: this.rowID });
+
+        this.$message.success("编辑成功");
+      } else {
+        await getDealerStockAdd(value);
+        this.$message.success("添加成功");
+      }
+      this.addForm.customerId = "";
+      this.addForm.mainId = "";
+      this.addForm.oneParentId = "";
+      this.addForm.twoParentId = "";
+      this.addForm.threeParentId = "";
+      this.addForm.serviceId = "";
+      this.userList = [];
+      this.twoList = [];
+      this.threeList = [];
+      this.getList({ pageNum: 1, pageSize: 10 });
       this.dialogForm = false;
     },
     //取消
     async cancelFn() {
-      await this.$refs.addForm.resetFields();
+      await this.$refs.addForm.clearValidate();
+      this.addForm.customerId = "";
+      this.addForm.mainId = "";
+      this.addForm.oneParentId = "";
+      this.addForm.twoParentId = "";
+      this.addForm.threeParentId = "";
+      this.addForm.serviceId = "";
+      this.userList = [];
+      this.twoList = [];
+      this.threeList = [];
       this.dialogForm = false;
     },
     //获取经销商数据
@@ -339,7 +502,6 @@ export default {
       const res = await getDealerList(data);
       this.dealerList = res.data.records;
     },
-
     // 更改每页数量
     handleSizeChange(val) {
       this.pageSize = val;
@@ -377,9 +539,9 @@ export default {
 </script>
 
 <style lang="scss" scoped>
-// ::v-deep .el-popover__reference {
-//   margin-left: 10px;
-// }
+::v-deep .el-popover__reference {
+  margin-left: 10px;
+}
 // ::v-deep .selectStyle .el-input--suffix {
 //   width: 200%;
 // }

+ 4 - 4
src/views/basic_data/logistics/logistics_list.vue

@@ -5,16 +5,16 @@
       <el-form
         ref="screenForm"
         :model="screenForm"
-        label-width="70px"
+        label-width="120px"
         size="small"
         label-position="left"
       >
         <el-row :gutter="20">
           <el-col :xs="24" :sm="12" :lg="6">
-            <el-form-item label="物流公司" prop="customerTel">
+            <el-form-item label="物流公司名称" prop="customerTel">
               <el-input
                 placeholder="请输入物流公司名称"
-                v-model="screenForm.customerTel"
+                v-model="screenForm.logisticsCompany"
               ></el-input>
             </el-form-item>
           </el-col>
@@ -22,7 +22,7 @@
             <el-form-item label="客服电话" prop="logisticsCompany">
               <el-input
                 placeholder="请输入客服电话"
-                v-model="screenForm.logisticsCompany"
+                v-model="screenForm.customerTel "
               ></el-input>
             </el-form-item>
           </el-col>

+ 19 - 13
src/views/basic_data/material/category_list.vue

@@ -1,16 +1,16 @@
 <template>
   <div class="app-container">
-    <div v-if="isShow">
+    <div >
       <!-- 筛选条件 -->
       <div>
-        <!-- <el-form label-width="70px" size="small" label-position="left">
+        <el-form  ref="screenForm"
+          :model="screenForm" label-width="70px" size="small" label-position="left">
           <el-row :gutter="20">
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="关键字" prop="account">
-                <el-input placeholder="请输入关键字"></el-input>
+              <el-form-item label="名称" prop="keyword">
+                <el-input placeholder="请输入名称" v-model="screenForm.keyword"></el-input>
               </el-form-item>
             </el-col>
-
             <el-col :xs="24" :sm="12" :lg="18" class="tr">
               <el-form-item label="">
                 <el-button size="small" @click="resetScreenForm"
@@ -22,7 +22,7 @@
               </el-form-item>
             </el-col>
           </el-row>
-        </el-form> -->
+        </el-form>
       </div>
       <div class="mymain-container">
         <div class="table">
@@ -105,7 +105,7 @@
               prop="updateTime"
               min-width="100"
             ></el-table-column>
-            <el-table-column
+            <!-- <el-table-column
               align="center"
               label="审核人"
               prop="examine"
@@ -128,19 +128,21 @@
               label="禁用日期"
               prop="disableDate"
               min-width="100"
-            ></el-table-column>
+            ></el-table-column> -->
           </el-table>
         </div>
-        <!-- 分页 -->
+       <!-- 分页 -->
         <div class="fr">
-          <!-- <el-pagination
-            :current-page="currentPage"
+          <el-pagination
+            @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="currentPage"
             :page-sizes="[10, 20, 30, 50]"
             :page-size="10"
             layout="total, sizes, prev, pager, next, jumper"
             :total="listTotal"
           >
-          </el-pagination> -->
+          </el-pagination>
         </div>
       </div>
     </div>
@@ -226,6 +228,10 @@ export default {
           disableDate: "",
         },
       ],
+      screenForm:{
+  keyword:""
+      }
+
     };
   },
   components: {
@@ -241,7 +247,7 @@ export default {
       let params = {
         pageNum: this.currentPage,
         pageSize: this.pageSize,
-        keyword: "",
+        keyword: this.screenForm.keyword,
       };
       getCategoryList(params).then((res) => {
         this.dataList = res.data.records;

+ 120 - 77
src/views/basic_data/material/components/modify_list-apply.vue

@@ -1,11 +1,16 @@
 <template>
   <div>
     <div>
-      <el-page-header @back="goBack" content="申请"> </el-page-header>
+      <el-page-header @back="goBack" content="存货调价单"> </el-page-header>
     </div>
     <br /><br />
     <div>
-      <el-form label-width="100px" size="small" label-position="left">
+      <el-form
+        ref="screenForm"
+        label-width="100px"
+        size="small"
+        label-position="left"
+      >
         <el-row :gutter="20">
           <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="单据编号">
@@ -30,7 +35,18 @@
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="调价部门">
-              <el-input placeholder="请输入" disabled></el-input>
+              <el-select
+                placeholder="请选择销售类型"
+                filterable
+                disabled
+                v-model="saleTypeIds"
+              >
+                <el-option
+                  v-for="item in typeList"
+                  :label="item.saleName"
+                  :value="item.id"
+                ></el-option>
+              </el-select>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
@@ -52,11 +68,15 @@
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="销售类型">
-              <el-select placeholder="请选择销售类型" v-model="saleTypeId">
+              <el-select
+                placeholder="请选择销售类型"
+                filterable
+                v-model="saleTypeId"
+              >
                 <el-option
                   v-for="item in typeList"
-                  :label="item.name"
-                  :value="item.name"
+                  :label="item.saleName"
+                  :value="item.id"
                 ></el-option>
               </el-select>
             </el-form-item>
@@ -68,35 +88,15 @@
           </el-col>
 
           <el-col :xs="24" :sm="12" :lg="6">
-            <el-form-item label="" class="fr">
-              <el-button size="small">清空</el-button>
-              <el-button size="small" type="primary" @click="hanleSbumit"
-                >提交</el-button
-              >
-            </el-form-item>
+            <el-form-item label="" class="fr"> </el-form-item>
           </el-col>
         </el-row>
       </el-form>
     </div>
-    <div class="btn-group clearfix">
-      <div class="fl">
-        <el-button
-          type="primary"
-          size="small"
-          @click="(centerDialogVisible = true), getMaterialList()"
-          >添加</el-button
-        >
-      </div>
-    </div>
     <div class="mymain-container">
       <!-- 列表 -->
       <div class="table">
-        <el-form
-          :model="items"
-          v-if="!detail.length"
-          size="small"
-          label-position="left"
-        >
+        <el-form v-if="!detail.length" size="small" label-position="left">
           <el-table
             v-loading="listLoading"
             :data="items"
@@ -134,11 +134,12 @@
                 <el-form-item>
                   <el-select
                     placeholder="请选择销售类型"
+                    filterable
                     v-model="scope.row.saleTypeId"
                   >
                     <el-option
                       v-for="item in typeList"
-                      :label="item.name"
+                      :label="item.saleName"
                       :value="item.id"
                     ></el-option>
                   </el-select>
@@ -212,7 +213,7 @@
             </el-table-column>
             <el-table-column
               align="center"
-              label="零售价"
+              label="格力折扣"
               prop="retailPrice"
               min-width="160"
               show-overflow-tooltip
@@ -224,7 +225,7 @@
             </el-table-column>
             <el-table-column
               align="center"
-              label="返利使用比例"
+              label="返利类型"
               prop="rebateUseRate"
               min-width="160"
               show-overflow-tooltip
@@ -280,7 +281,7 @@
                 <el-form-item>
                   <el-select
                     v-model="scope.row.isPromote"
-                    @change="hanleChange"
+
                     placeholder="请选择是否促销价"
                   >
                     <el-option
@@ -308,22 +309,22 @@
             </el-table-column>
             <el-table-column
               align="center"
-              label="支付钱包类型"
+              label="现金钱包"
               prop="wallets"
               min-width="160"
               show-overflow-tooltip
               ><template slot-scope="scope">
                 <el-form-item>
                   <el-select
-                    v-model="scope.row.isPublish"
-                    @change="hanleChange"
-                    placeholder="请选择支付钱包类型"
+                    v-model="scope.row.walletsId"
+                    @change="handelWallets($event,scope.$index)"
+                    placeholder="请选择现金钱包"
                   >
                     <el-option
                       v-for="item in scope.row.rebateList"
-                      :key="item.bool"
-                      :value="item.bool"
-                      :label="item.value"
+                      :key="item.walletRebateId"
+                      :value="item.walletRebateId"
+                      :label="item.name"
                     >
                     </el-option>
                   </el-select>
@@ -340,7 +341,7 @@
                 <el-form-item>
                   <el-select
                     v-model="scope.row.isPublish"
-                    @change="hanleChange"
+
                     placeholder="请选择是否发布"
                   >
                     <el-option
@@ -540,7 +541,7 @@
                 <el-form-item>
                   <el-select
                     v-model="scope.row.isPromote"
-                    @change="hanleChange"
+
                     placeholder="请选择是否促销价"
                   >
                     <el-option
@@ -573,17 +574,18 @@
               min-width="160"
               show-overflow-tooltip
               ><template slot-scope="scope">
+
                 <el-form-item>
                   <el-select
                     v-model="scope.row.isPublish"
-                    @change="hanleChange"
+
                     placeholder="请选择支付钱包类型"
                   >
                     <el-option
                       v-for="item in scope.row.rebateList"
-                      :key="item.bool"
-                      :value="item.bool"
-                      :label="item.value"
+                      :key="item.walletRebateId"
+                      :value="item.walletRebateId"
+                      :label="item.name"
                     >
                     </el-option>
                   </el-select>
@@ -600,7 +602,7 @@
                 <el-form-item>
                   <el-select
                     v-model="scope.row.isPublish"
-                    @change="hanleChange"
+
                     placeholder="请选择是否发布"
                   >
                     <el-option
@@ -626,7 +628,6 @@
           <el-form
             :model="form"
             ref="form"
-            :rules="rules"
             label-width="80px"
             :inline="false"
             size="normal"
@@ -651,27 +652,37 @@
         </el-dialog>
       </div>
     </div>
+    <div class="btn-group clearfix">
+      <el-button size="small"  @click="handleReseat">重置</el-button>
+      <el-button size="small" type="primary" @click="hanleSbumit"
+        >提交</el-button
+      >
+      <el-button
+        style="float: right"
+        type="primary"
+        size="small"
+        @click="(centerDialogVisible = true), getMaterialList()"
+        >添加</el-button
+      >
+    </div>
   </div>
 </template>
 
 <script>
 import {
   getProductRriceAdd,
-  getProductRriceConfirm,
   getProductRriceDetail,
-  getProductRriceEdit,
-  getProductRriceList,
-  getProductRriceRevoke,
-  getProductRriceSubmit,
   getTypeList,
-  // getTree,
   getMaterialList,
   getRebate,
+  getTree
 } from "@/api/basic_data/material";
-import { thisTypeAnnotation } from "@babel/types";
+
 export default {
   data() {
     return {
+      listLoading: false,
+      screenForm: {},
       base: {
         adminCompanyId: "",
         adminWebsitId: "",
@@ -694,23 +705,37 @@ export default {
       saleTypeId: "",
       remark: "",
       detail: [],
+      form: {},
+      startDate: "",
     };
   },
   mounted() {
     let params = {
       pageNum: 1,
-      pageSize: 10,
+      pageSize: -1,
       saleCode: "",
       saleName: "",
-      status: 1,
+      status: "",
     };
     getTypeList(params).then((res) => {
       this.typeList = res.data.records;
     });
+    getTree().then(res=>{
+      console.log(res,'bumeng');
+    })
   },
   methods: {
-    hanleChange(e) {
-      console.log(e);
+    handelWallets(e,index){
+      // console.log(e, 'hao' ,index);
+      this.items[index].wallets = [
+          {
+            billId: "",
+            id: "",
+            mainId: "",
+            parentId: "",
+            parentItemId: e,
+          },
+        ]
     },
     goBack() {
       this.$parent.show = 1;
@@ -732,6 +757,7 @@ export default {
       };
       getRebate(rebateParams).then((res) => {
         this.rebateList = res.data.records;
+        console.log(this.rebateList,'this.rebateList');
       });
       let params = {
         pageNum: 1,
@@ -743,8 +769,8 @@ export default {
       });
     },
     hanleAdd() {
-      this.centerDialogVisible = false;
-      this.items.push({
+      if (this.materialId) {
+          this.items.push({
         baseUnitId: "",
         batchPrice: "",
         billId: "",
@@ -763,15 +789,9 @@ export default {
         specification: "",
         startDate: "",
         wallets: [
-          {
-            billId: "44",
-            id: "",
-            mainId: "",
-            parentId: "",
-            parentItemId: "",
-          },
+
         ],
-        rebateList: this.rebateList,
+        rebateList: [...this.rebateList],
         isPublishArr: [
           {
             value: "是",
@@ -793,8 +813,14 @@ export default {
           },
         ],
       });
+      this.centerDialogVisible = false;
+      }else{
+        this.$errorMsg('请选择产品')
+      }
+
     },
     hanleSbumit() {
+
       const params = {
         ...this.base,
         items: this.items,
@@ -841,17 +867,17 @@ export default {
           ],
         };
         this.base = {
-          adminCompanyId: "5454",
-          adminWebsitId: "345",
-          billId: "34324",
-          examineNote: "234",
+          adminCompanyId: "",
+          adminWebsitId: "",
+          billId: "",
+          examineNote: "",
           examineResult: true,
-          examineStatus: "2342",
+          examineStatus: "",
           id: null,
-          operatorId: "234",
-          operatorName: "3223",
-          remark: "2332",
-          saleTypeId: "2332",
+          operatorId: "",
+          operatorName: "",
+          remark: "",
+          saleTypeId: "",
         };
 
         getProductRriceDetail({ id: res.data }).then((res) => {
@@ -863,6 +889,23 @@ export default {
         });
       });
     },
+    handleReseat(){
+        this.base= {
+        adminCompanyId: "",
+        adminWebsitId: "",
+        billId: "",
+        examineNote: "",
+        examineResult: true,
+        examineStatus: "",
+        id: null,
+        operatorId: "",
+        operatorName: "",
+        remark: "",
+        saleTypeId: "",
+      }
+      this.saleTypeId = ''
+       this.items= []
+    }
   },
 };
 </script>

+ 26 - 93
src/views/basic_data/material/machine_list.vue

@@ -21,24 +21,27 @@
           <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="型号" prop="type">
               <el-input
+                type="number"
                 placeholder="请输入型号"
-                v-model="screenForm.type"
+                v-model.number="screenForm.type"
               ></el-input>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="编码" prop="number">
               <el-input
+                type="number"
                 placeholder="请输入编码"
-                v-model="screenForm.number"
+                v-model.number="screenForm.number"
               ></el-input>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="体积" prop="volume">
               <el-input
+              type="number"
                 placeholder="请输入体积"
-                v-model="screenForm.volume"
+                v-model.number="screenForm.volume"
               ></el-input>
             </el-form-item>
           </el-col>
@@ -68,6 +71,7 @@
           cancel-button-text="不用了"
           icon="el-icon-info"
           icon-color="red"
+          :show-file-list="false"
           title="内容确定删除吗?"
           @onConfirm="hanleDeleteAll"
         >
@@ -81,21 +85,24 @@
         </el-popconfirm>
       </div>
       <div class="fr">
-        <el-upload
-          class="import-btn"
+
+
+        <!-- <el-upload
+          class="import-btn upload-demo"
           :action="baseURL + 'student/import'"
           :http-request="handleImport"
           :file-list="importFileList"
+          :show-file-list="false"
         >
           <el-button type="primary" size="small">导入</el-button>
-        </el-upload>
+        </el-upload> -->
         <el-button type="primary" size="small" @click="handleExport"
           >导出</el-button
         >
-        <el-button type="primary" size="small">打印</el-button>
+        <el-button  type="primary" size="small" icon="el-icon-printer" v-print="printObj">打 印</el-button>
       </div>
     </div>
-    <div class="mymain-container">
+    <div class="mymain-container" id="printMe">
       <!-- 列表 -->
       <div class="table">
         <el-table
@@ -279,13 +286,19 @@ import {
   getMachineDel,
   getMachineEdit,
   getDistList,
-  getMaterialList,
-
 } from "@/api/basic_data/material";
+import { number } from "yargs";
+import print from 'vue-print-nb'
 export default {
   mixins: [Mixin],
+    directives: {
+    print
+  },
   data() {
     return {
+       printObj: {
+        id: 'printMe'
+      },
       currentPage: 1, // 当前页码
       pageSize: 10, // 每页数量
       listTotal: 0, // 列表总数
@@ -318,90 +331,10 @@ export default {
         model: "",
         volume: "",
         type: "",
-
       },
       showDialogForm: false,
       dataList: [
-        {
-          name: "新风机XXX内机",
-          number: "DSAFSAF232312321",
-          code: "DSAFSAF232312321",
-          volume: "23M^3",
-          outName: "新风机XXX外机",
-          outNumber: "DSAFSAF232312321",
-          updateUser: "DSAFSAF232312321",
-          outVolume: "23M^3",
-          partsOne: "",
-          partsTwo: "",
-          create: "LID",
-          createDate: "2022-09-12 12:21",
-          update: "LID",
-          updateDate: "2022-09-12 12:21",
-        },
-        {
-          name: "新风机XXX内机",
-          number: "DSAFSAF232312321",
-          code: "DSAFSAF232312321",
-          volume: "23M^3",
-          outName: "新风机XXX外机",
-          outNumber: "DSAFSAF232312321",
-          updateUser: "DSAFSAF232312321",
-          outVolume: "23M^3",
-          partsOne: "",
-          partsTwo: "",
-          create: "LID",
-          createDate: "2022-09-12 12:21",
-          update: "LID",
-          updateDate: "2022-09-12 12:21",
-        },
-        {
-          name: "新风机XXX内机",
-          number: "DSAFSAF232312321",
-          code: "DSAFSAF232312321",
-          volume: "23M^3",
-          outName: "新风机XXX外机",
-          outNumber: "DSAFSAF232312321",
-          updateUser: "DSAFSAF232312321",
-          outVolume: "23M^3",
-          partsOne: "",
-          partsTwo: "",
-          create: "LID",
-          createDate: "2022-09-12 12:21",
-          update: "LID",
-          updateDate: "2022-09-12 12:21",
-        },
-        {
-          name: "新风机XXX内机",
-          number: "DSAFSAF232312321",
-          code: "DSAFSAF232312321",
-          volume: "23M^3",
-          outName: "新风机XXX外机",
-          outNumber: "DSAFSAF232312321",
-          updateUser: "DSAFSAF232312321",
-          outVolume: "23M^3",
-          partsOne: "",
-          partsTwo: "",
-          create: "LID",
-          createDate: "2022-09-12 12:21",
-          update: "LID",
-          updateDate: "2022-09-12 12:21",
-        },
-        {
-          name: "新风机XXX内机",
-          number: "DSAFSAF232312321",
-          code: "DSAFSAF232312321",
-          volume: "23M^3",
-          outName: "新风机XXX外机",
-          outNumber: "DSAFSAF232312321",
-          updateUser: "DSAFSAF232312321",
-          outVolume: "23M^3",
-          partsOne: "",
-          partsTwo: "",
-          create: "LID",
-          createDate: "2022-09-12 12:21",
-          update: "LID",
-          updateDate: "2022-09-12 12:21",
-        },
+
       ],
       searchForm: {
         name: "",
@@ -410,6 +343,8 @@ export default {
         volume: "",
       },
       type: null,
+      distList:[]
+
     };
   },
   methods: {
@@ -422,7 +357,6 @@ export default {
         model: row.model,
         volume: row.volume,
         type: row.type,
-
       };
       this.showDialogForm = true;
     },
@@ -518,7 +452,6 @@ export default {
         outsideMachineVolume: 2,
       };
     },
-
   },
 };
 </script>

+ 2 - 2
src/views/basic_data/material/material_list.vue

@@ -12,9 +12,9 @@
         >
           <el-row :gutter="20">
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="关键字" prop="keyword">
+              <el-form-item label="名称" prop="keyword">
                 <el-input
-                  placeholder="请输入关键字"
+                  placeholder="请输入名称"
                   v-model="screenForm.keyword"
                 ></el-input>
               </el-form-item>

+ 46 - 51
src/views/basic_data/supplier/components/supplier_list-detail.vue

@@ -164,7 +164,10 @@
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
               <el-form-item label="注册资金" prop="telephone">
-                <el-input placeholder="请输入"></el-input>
+                <el-input
+                  v-model="infoList.registerFund"
+                  placeholder="请输入"
+                ></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
@@ -216,12 +219,15 @@
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="负责人" prop="takerName">
-                <el-input placeholder="请输入"></el-input>
+              <el-form-item label="负责人" prop="">
+                <el-input
+                  v-model="infoList.staffName"
+                  placeholder="请输入"
+                ></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="供应商分类" prop="telephone">
+              <el-form-item label="供应商分类" prop="">
                 <el-input
                   v-model="infoList.supplierClassify"
                   placeholder="请输入"
@@ -229,17 +235,15 @@
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="供应类别" prop="telephone">
-                <el-select
+              <el-form-item label="供应类别" prop="">
+                <el-input
                   v-model="infoList.supplyClassify"
-                  placeholder="请选择"
-                >
-                  <el-option> </el-option>
-                </el-select>
+                  placeholder="请输入"
+                ></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="供应商等级" prop="telephone">
+              <el-form-item label="供应商等级" prop="">
                 <el-input
                   v-model="infoList.supplierGrade"
                   placeholder="请输入"
@@ -247,7 +251,7 @@
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="供应商分组" prop="telephone">
+              <el-form-item label="供应商分组" prop="">
                 <el-input
                   v-model="infoList.groupName"
                   placeholder="请输入"
@@ -255,7 +259,7 @@
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="公司类别" prop="telephone">
+              <el-form-item label="公司类别" prop="">
                 <el-input
                   v-model="infoList.companyClassify"
                   placeholder="请输入"
@@ -263,7 +267,7 @@
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="公司性质" prop="telephone">
+              <el-form-item label="公司性质" prop="">
                 <el-input
                   v-model="infoList.companyNature"
                   placeholder="请输入"
@@ -271,7 +275,7 @@
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="公司规模" prop="telephone">
+              <el-form-item label="公司规模" prop="">
                 <el-input
                   v-model="infoList.companyScale"
                   placeholder="请输入"
@@ -279,7 +283,7 @@
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="对应组织" prop="telephone">
+              <el-form-item label="对应组织" prop="">
                 <el-input
                   v-model="infoList.correspondOrgName"
                   placeholder="请输入"
@@ -304,49 +308,42 @@
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="默认价目表" prop="takerName">
-                <el-input
-                  v-model="infoList.number"
-                  placeholder="请输入"
-                ></el-input>
+              <el-form-item label="默认价目表" prop="">
+                <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="业务状态" prop="telephone">
-                <el-select v-model="infoList.useOrgName" placeholder="请选择">
-                  <el-option> </el-option>
-                </el-select>
+              <el-form-item label="业务状态" prop="">
+                <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="默认折扣表" prop="telephone">
+              <el-form-item label="默认折扣表" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="冻结范围" prop="telephone">
-                <el-select placeholder="请选择">
-                  <el-option> </el-option>
-                </el-select>
+              <el-form-item label="冻结范围" prop="">
+                <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="供货方" prop="telephone">
+              <el-form-item label="供货方" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="冻结人" prop="telephone">
+              <el-form-item label="冻结人" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="VMI仓库" prop="telephone">
+              <el-form-item label="VMI仓库" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="冻结日期" prop="telephone">
+              <el-form-item label="冻结日期" prop="">
                 <el-date-picker
                   type="datetime"
                   placeholder="选择日期时间"
@@ -357,27 +354,27 @@
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="VMI业务" prop="telephone">
+              <el-form-item label="VMI业务" prop="">
                 <el-checkbox></el-checkbox>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="启用供应商协同" prop="telephone">
+              <el-form-item label="启用供应商协同" prop="">
                 <el-checkbox></el-checkbox>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="汇总公司" prop="telephone">
+              <el-form-item label="汇总公司" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="保证金比例" prop="telephone">
+              <el-form-item label="保证金比例" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="默认联系人" prop="telephone">
+              <el-form-item label="默认联系人" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
@@ -399,49 +396,47 @@
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="单次预付额度" prop="takerName">
+              <el-form-item label="单次预付额度" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="发票类型" prop="telephone">
-                <el-select placeholder="请选择">
-                  <el-option> </el-option>
-                </el-select>
+              <el-form-item label="发票类型" prop="">
+                <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="税分类" prop="telephone">
+              <el-form-item label="税分类" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="默认税率" prop="telephone">
+              <el-form-item label="默认税率" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="结算方式" prop="telephone">
+              <el-form-item label="结算方式" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="描述" prop="telephone">
+              <el-form-item label="描述" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="付款条件" prop="telephone">
+              <el-form-item label="付款条件" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="经营类型" prop="telephone">
+              <el-form-item label="经营类型" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="收款方" prop="telephone">
+              <el-form-item label="收款方" prop="">
                 <el-input placeholder="请输入"></el-input>
               </el-form-item>
             </el-col>

+ 4 - 4
src/views/basic_data/taker/taker_car.vue

@@ -51,7 +51,7 @@
             type="primary"
             class="textColor"
             slot="reference"
-            >删除</el-button
+            >批量删除</el-button
           >
         </el-popconfirm>
       </div>
@@ -253,12 +253,12 @@ export default {
         ],
         mobile: [
           {
-            required: true,
+            required: false,
             message: "请输入联系电话",
             trigger: "blur",
           },
           {
-            required: true,
+            required: false,
             pattern:
               /^1(3[0-9]|4[01456879]|5[0-35-9]|6[2567]|7[0-8]|8[0-9]|9[0-35-9])\d{8}$/,
             message: "联系电话格式不正确",
@@ -266,7 +266,7 @@ export default {
           },
         ],
         // carType: [{ required: true, message: "车型不能为空", trigger: "blur" }],
-        // volume: [{ required: true, message: "体积不能为空", trigger: "blur" }],
+        volume: [{ required: true, message: "体积不能为空", trigger: "blur" }],
         carBrand: [
           { required: true, message: "车牌号不能为空", trigger: "blur" },
         ],

+ 57 - 37
src/views/basic_data/taker/taker_list.vue

@@ -27,9 +27,9 @@
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
-            <el-form-item label="电话" prop="telephone">
+            <el-form-item label="电话" prop="phoneKeyword">
               <el-input
-                v-model="searchForm.telephone"
+                v-model="searchForm.phoneKeyword"
                 placeholder="请输入电话"
               ></el-input>
             </el-form-item>
@@ -55,7 +55,6 @@
         <el-button type="primary" size="small" @click="exportFn"
           >导出</el-button
         >
-        <el-button type="primary" size="small">打印</el-button>
       </div>
     </div>
     <!-- 列表 -->
@@ -210,7 +209,7 @@
         label-width="120px"
       >
         <el-form-item label="经销商名称" prop="customerId">
-          <el-select v-model="addForm.customerId" placeholder="名称">
+          <!-- <el-select v-model="addForm.customerId" placeholder="名称">
             <el-option
               v-for="item in dealerList"
               :key="item.id"
@@ -218,7 +217,8 @@
               :value="item.id"
             >
             </el-option>
-          </el-select>
+          </el-select> -->
+          <el-input disabled v-model="addForm.customerName"></el-input>
         </el-form-item>
         <el-row>
           <el-col :span="12">
@@ -236,9 +236,22 @@
               <el-input v-model="addForm.phone"></el-input> </el-form-item
           ></el-col>
           <el-col :span="12">
-            <el-form-item label="备用电话" prop="sparePhone">
-              <el-input v-model="addForm.sparePhone"></el-input> </el-form-item
-          ></el-col>
+            <el-form-item label="验证码" prop="code">
+              <el-row :gutter="6">
+                <el-col :span="14">
+                  <el-input v-model="addForm.code" />
+                </el-col>
+                <el-col :span="9">
+                  <el-button v-show="show" type="info" @click="getCodeFn"
+                    >获取验证码</el-button
+                  >
+                  <el-button v-show="!show" type="info"
+                    >{{ count }}s后重新获取</el-button
+                  >
+                </el-col>
+              </el-row>
+            </el-form-item></el-col
+          >
         </el-row>
         <el-row>
           <el-col :span="12">
@@ -253,19 +266,9 @@
               </el-date-picker> </el-form-item
           ></el-col>
           <el-col :span="12">
-            <el-form-item label="验证码" prop="code">
-              <el-row :gutter="6">
-                <el-col :span="14">
-                  <el-input v-model="addForm.code" />
-                </el-col>
-                <el-col :span="9">
-                  <el-button type="info" @click="getCodeFn"
-                    >获取验证码</el-button
-                  >
-                </el-col>
-              </el-row>
-            </el-form-item></el-col
-          >
+            <el-form-item label="备用电话" prop="sparePhone">
+              <el-input v-model="addForm.sparePhone"></el-input> </el-form-item
+          ></el-col>
         </el-row>
         <el-form-item label="上传提货人附件" prop="fileUrl">
           <fileUpload :fileList="fileList" />
@@ -282,6 +285,7 @@
 </template>
 
 <script>
+import { mapGetters } from "vuex";
 import {
   getList,
   addDataList,
@@ -296,6 +300,9 @@ export default {
   components: {
     fileUpload,
   },
+  computed: {
+    ...mapGetters(["customerId", "customerName"]),
+  },
   data() {
     return {
       baseURL: process.env.VUE_APP_BASE_API,
@@ -305,7 +312,7 @@ export default {
       pageSize: 10, // 每页数量
       listTotal: 0, // 列表总数
       addForm: {
-        customerId: "",
+        customerName: "",
         takerName: "",
         identity: "",
         phone: "",
@@ -314,10 +321,13 @@ export default {
         expireTime: "",
         code: "",
       },
+      show: true, //验证码
+      count: "",
+      timer: null,
 
       rules: {
         customerId: [
-          { required: true, message: "请选择经销商", trigger: "blur" },
+          { required: false, message: "请选择经销商", trigger: "blur" },
         ],
         takerName: [
           { required: true, message: "请输入提货人姓名", trigger: "blur" },
@@ -352,7 +362,7 @@ export default {
         ],
         sparePhone: [
           {
-            required: true,
+            required: false,
             pattern:
               /^1(3[0-9]|4[01456879]|5[0-35-9]|6[2567]|7[0-8]|8[0-9]|9[0-35-9])\d{8}$/,
             message: "请输入备用电话",
@@ -370,7 +380,7 @@ export default {
       searchForm: {
         customerName: "",
         takerName: "",
-        telephone: "",
+        phoneKeyword: "",
       },
       dealerList: [],
       id: "", //重建之前的Id
@@ -379,7 +389,8 @@ export default {
   },
   async created() {
     await this.getDataList({ pageNum: 1, pageSize: 10 });
-    await this.getDealerDataList({ pageNum: 1, pageSize: 10 });
+
+    // await this.getDealerDataList({ pageNum: 1, pageSize: 10 });
   },
   methods: {
     //重建
@@ -387,7 +398,7 @@ export default {
       this.showOK = true;
       this.id = data.id;
       this.addForm = {
-        customerId: data.customerId,
+        customerName: data.customerName,
         takerName: data.takerName,
         identity: data.identity,
         phone: data.phone,
@@ -417,7 +428,6 @@ export default {
     cancelFn() {
       if (this.addForm.id) {
         this.addForm = {
-          customerId: "",
           takerName: "",
           identity: "",
           phone: "",
@@ -453,7 +463,18 @@ export default {
     //获取验证码
     async getCodeFn() {
       const res = await getCodeApi({ mobile: this.addForm.phone });
-      console.log(res);
+      const TIME_COUNT = 60; //倒计时的初始值
+      this.count = TIME_COUNT;
+      this.show = false;
+      this.timer = setInterval(() => {
+        if (this.count > 0 && this.count <= TIME_COUNT) {
+          this.count--;
+        } else {
+          this.show = true;
+          clearInterval(this.timer);
+          this.timer = null;
+        }
+      }, 1000);
     },
     //获取经销商数据
     async getDealerDataList(data) {
@@ -495,24 +516,23 @@ export default {
 
       await this.$refs.addForm.validate();
 
-      const res = this.dealerList.filter(
-        (v) => v.id === this.addForm.customerId
-      )[0];
-      console.log(res);
+      // const res = this.dealerList.filter(
+      //   (v) => v.id === this.addForm.customerId
+      // )[0];
+      // console.log(res);
 
       if (this.fileList.length == 1) {
         await addDataList({
           ...this.addForm,
-          orgNumber: res.useOrgNumber,
 
+          customerId: this.customerId,
           fileName: this.fileList[0].name,
           fileUrl: this.fileList[0].url,
         });
       } else {
         await addDataList({
           ...this.addForm,
-          orgNumber: res.useOrgNumber,
-
+          customerId: this.customerId,
           fileName: "",
           fileUrl: "",
         });
@@ -539,7 +559,7 @@ export default {
     },
     addFn() {
       this.addForm = {
-        customerId: "",
+        customerName: this.customerName,
         takerName: "",
         identity: "",
         phone: "",

+ 355 - 241
src/views/basic_data/warehouse/components/warehouse_list-detail.vue

@@ -1,245 +1,352 @@
 <template>
   <div>
-    <div class="sty">
-      <el-page-header @back="goBack" content="详情页面"> </el-page-header>
-    </div>
-    <el-card class="box-card">
-      <div slot="header" class="clearfix">
-        <span>组织信息</span>
+    <el-form label-width="120px" :inline="false" size="small" label-position="left">
+      <div class="sty">
+        <el-page-header @back="goBack" content="详情页面"> </el-page-header>
       </div>
-      <el-row>
-        <el-col :span="8"
-          ><span>创建组织</span
-          ><input type="text" v-model="detail.createOrgName"
-        /></el-col>
-        <el-col :span="8"
-          ><span>编码</span><input type="text" v-model="detail.useOrgNumber"
-        /></el-col>
-        <el-col :span="8"
-          ><span>名称</span><input type="text" v-model="detail.name"
-        /></el-col>
-      </el-row>
-    </el-card>
-    <el-card class="box-card">
-      <div slot="header" class="clearfix">
-        <span>基本信息</span>
-      </div>
-      <div class="baseInfo">
-        <div>
-          <div class="base-header">
-            <span>基本信息</span>
-          </div>
-          <el-row>
-            <el-col :span="24"
-              ><span class="marg-r">仓库属性</span>
-              <!-- <select name="" id="" class="selectStyle2">
-                <option value="">普通仓库</option>
-              </select>
-               -->
-              <input type="text" v-model="detail.stockProperty" />
-            </el-col>
-          </el-row>
-          <el-row>
-            <el-col :span="24"
-              ><span class="marg-r color">供应商</span
-              ><input v-model="detail.supplierName" type="text"
-            /></el-col>
-          </el-row>
-          <el-row>
-            <el-col :span="24"
-              ><span class="marg-r color">客户</span
-              ><textarea
-                v-model="detail.customerName"
-                name=""
-                id=""
-                cols="30"
-                rows="10"
-                class="textareaStyle"
-              ></textarea>
-            </el-col>
-          </el-row>
-          <el-row>
-            <el-col :span="24"
-              ><span class="marg-r">仓库地址</span
-              ><textarea
-                v-model="detail.address"
-                class="textareaStyle"
-                name=""
-                id=""
-                cols="30"
-                rows="10"
-              ></textarea>
-            </el-col>
-          </el-row>
-          <el-row>
-            <el-col :span="24"
-              ><span class="marg-r color">仓库负责人</span
-              ><input v-model="detail.principalName" type="text"
-            /></el-col>
-          </el-row>
-          <el-row>
-            <el-col :span="24"
-              ><span class="marg-r">联系电话</span
-              ><input type="text" v-model="detail.tel" />
-            </el-col>
-          </el-row>
-          <el-row>
-            <el-col :span="24"
-              ><span class="marg-r">描述</span
-              ><textarea
-                v-model="detail.description"
-                class="textareaStyle"
-                name=""
-                id=""
-                cols="30"
-                rows="10"
-              ></textarea>
-            </el-col>
-          </el-row>
-          <el-row>
-            <el-col :span="24"
-              ><span class="marg-r">分组</span
-              ><input v-model="detail.groupName" type="text"
-            /></el-col>
-          </el-row>
-          <el-row>
-            <el-col :span="24"
-              ><span class="marg-r">管易仓</span
-              ><input v-model="detail.gysStock" type="checkbox"
-            /></el-col>
-          </el-row>
-          <el-row>
-            <el-col :span="24"
-              ><span class="marg-r">管易仓编码</span
-              ><input v-model="detail.gysStockNumber" type="text"
-            /></el-col>
-          </el-row>
-          <el-row>
-            <el-col :span="24"
-              ><span class="marg-r">第三方仓储类型</span>
-              <input type="text" v-model="detail.thirdStockType" />
-              <!-- <select name="" id="" class="selectStyle2">
-                <option value="">正常</option>
-              </select> -->
-            </el-col>
-          </el-row>
-          <el-row>
-            <el-col :span="24"
-              ><span class="marg-r">第三方仓库编码</span
-              ><input v-model="detail.thirdStockNo" type="text"
-            /></el-col>
-          </el-row>
+      <el-card class="box-card">
+        <div slot="header" class="clearfix">
+          <span>组织信息</span>
         </div>
-        <div>
-          <div class="base-header">
-            <span>库存状态</span>
-          </div>
-          <el-row>
-            <el-col :span="24"
-              ><span class="marg-r">库存状态类型</span>
-              <input type="text" v-model="stockStatusType" />
+        <el-row :gutter="20">
+          <el-col :xs="24" :sm="8" :lg="8">
+            <el-form-item label="创建组织" size="small">
+              <el-input
+                v-model="detail.createOrgName"
+                :readonly="isReadonly"
+                size="small"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="8" :lg="8">
+            <el-form-item label="编码" size="small">
+              <el-input
+                v-model="detail.useOrgNumber"
+                :readonly="isReadonly"
+                size="small"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="8" :lg="8">
+            <el-form-item label="名称" size="small">
+              <el-input v-model="detail.name" :readonly="isReadonly" size="small"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-card>
+      <el-card class="box-card">
+        <div slot="header" class="clearfix">
+          <span>基本信息</span>
+        </div>
+        <div class="baseInfo">
+          <el-row :gutter="40">
+            <el-col :span="12" :offset="0">
+              <div>
+                <div class="base-header">
+                  <span>基本信息</span>
+                </div>
+                <el-row>
+                  <el-col :span="24"
+                    ><span class="marg-r"></span>
+
+                    <el-form-item label="仓库属性" size="small">
+                      <el-input
+                        v-model="detail.stockProperty"
+                        :readonly="isReadonly"
+                        size="small"
+                      ></el-input>
+                    </el-form-item>
+                  </el-col>
+                </el-row>
+                <el-row>
+                  <el-col :span="24">
+                    <el-form-item label="供应商" size="small">
+                      <el-input
+                        v-model="detail.supplierName"
+                        :readonly="isReadonly"
+                        size="small"
+                      ></el-input>
+                    </el-form-item>
+                  </el-col>
+                </el-row>
+                <el-row>
+                  <el-col :span="24">
+                    <el-form-item label="客户" size="small">
+                      <el-input
+                        v-model="detail.customerName"
+                        :readonly="isReadonly"
+                        size="small"
+                      ></el-input>
+                    </el-form-item>
+                  </el-col>
+                </el-row>
+                <el-row>
+                  <el-col :span="24"
+                    >
+
+                    <el-form-item label="仓库地址" size="small">
+                      <el-input
+                        v-model="detail.address"
+                        :readonly="isReadonly"
+                        size="small"
+                      ></el-input>
+                    </el-form-item>
+
+                  </el-col>
+                </el-row>
+                <el-row>
+                  <el-col :span="24"
+                    >
+
+                       <el-form-item label="仓库负责人" size="small">
+                      <el-input
+                        v-model="detail.principalName"
+                        :readonly="isReadonly"
+                        size="small"
+                      ></el-input>
+                    </el-form-item>
+
+                  </el-col>
+                </el-row>
+                <el-row>
+                  <el-col :span="24"
+                    >
+                     <el-form-item label="联系电话" size="small">
+                      <el-input
+                        v-model="detail.tel"
+                        :readonly="isReadonly"
+                        size="small"
+                      ></el-input>
+                    </el-form-item>
+
+                  </el-col>
+                </el-row>
+                <el-row>
+                  <el-col :span="24"
+                    >
+
+                           <el-form-item label="描述" size="small">
+                      <el-input
+                        v-model="detail.description"
+                        :readonly="isReadonly"
+                        size="small"
+                      ></el-input>
+                    </el-form-item>
+
+                  </el-col>
+                </el-row>
+                <el-row>
+                  <el-col :span="24"
+                    >
+                     <el-form-item label="分组" size="small">
+                      <el-input
+                        v-model="detail.groupName"
+                        :readonly="isReadonly"
+                        size="small"
+                      ></el-input>
+                    </el-form-item>
+
+                   </el-col>
+                </el-row>
+                <el-row>
+                  <el-col :span="24"
+                    >
+                       <el-form-item label="管易仓" size="small">
+                      <el-input
+                        :value="detail.gysStock?'是':'否'"
+                        :readonly="isReadonly"
+                        size="small"
+                      ></el-input>
+                    </el-form-item>
+
+
+                  </el-col>
+                </el-row>
+                <el-row>
+                  <el-col :span="24"
+                    >
+                         <el-form-item label="管易仓编码" size="small">
+                      <el-input
+                        v-model="detail.gysStockNumber"
+                        :readonly="isReadonly"
+                        size="small"
+                      ></el-input>
+                    </el-form-item>
+
+
+
+                  </el-col>
+                </el-row>
+                <el-row>
+                  <el-col :span="24"
+                    >
+                      <el-form-item label="第三方仓储类型" size="small">
+                      <el-input
+                        v-model="detail.thirdStockType"
+                        :readonly="isReadonly"
+                        size="small"
+                      ></el-input>
+                    </el-form-item>
+
+                  </el-col>
+                </el-row>
+                <el-row>
+                  <el-col :span="24"
+                    >
+
+                        <el-form-item label="第三方仓库编码" size="small">
+                      <el-input
+                        v-model="detail.thirdStockNo"
+                        :readonly="isReadonly"
+                        size="small"
+                      ></el-input>
+                    </el-form-item>
+                    </el-col>
+                </el-row>
+              </div>
             </el-col>
-          </el-row>
-          <el-row>
-            <el-col :span="24"
-              ><span class="marg-r color">默认库存状态</span
-              ><input v-model="detail.defStockStatusName" type="text"
-            /></el-col>
-          </el-row>
-          <el-row>
-            <el-col :span="24"
-              ><span class="marg-r color">默认收料状态</span
-              ><input v-model="detail.defReceiveStatusName" type="text"
-            /></el-col>
-          </el-row>
-          <div class="base-header">
-            <span>控制</span>
-          </div>
-          <el-row>
-            <el-row>
-              <el-col :span="24"
-                ><span class="marg-r">允许客户查询</span><input type="checkbox"
-              /></el-col>
-            </el-row>
-            <el-row>
-              <el-col :span="8"
-                ><span class="marg-r">允许即时库存负库存</span
-                ><input
-                  type="checkbox"
-                  :checked="detail.allowMinusQty !== 'false' ? false : true"
-              /></el-col>
-              <el-col :span="8"
-                ><span class="marg-r">允许MRP计划</span
-                ><input
-                  type="checkbox"
-                  :checked="detail.allowMrpPlan !== 'false' ? false : true"
-              /></el-col>
-            </el-row>
-            <el-row>
-              <el-col :span="8"
-                ><span class="marg-r">允许锁库</span
-                ><input
-                  type="checkbox"
-                  :checked="detail.allowLock !== 'false' ? false : true"
-              /></el-col>
-              <el-col :span="8"
-                ><span class="marg-r">参与预警</span
-                ><input
-                  type="checkbox"
-                  :checked="detail.availableAlert !== 'false' ? false : true"
-              /></el-col>
-            </el-row>
-            <el-row>
-              <el-col :span="8"
-                ><span class="marg-r">启用仓位管理</span
-                ><input
-                  type="checkbox"
-                  :checked="detail.openLocation !== 'false' ? false : true"
-              /></el-col>
-              <el-col :span="8"
-                ><span class="marg-r">参与拣货</span
-                ><input
-                  type="checkbox"
-                  :checked="detail.availablePicking !== 'false' ? false : true"
-              /></el-col>
-            </el-row>
-            <el-row>
-              <el-col :span="8"
-                ><span class="marg-r">不参与可发量统计</span
-                ><input
-                  type="checkbox"
-                  :checked="detail.notExpQty !== 'false' ? false : true"
-              /></el-col>
-              <el-col :span="8"> </el-col>
-            </el-row>
-          </el-row>
-          <el-row>
-            <el-col :span="24"
-              ><span class="marg-r">拣货优先级(1~9999)</span
-              ><input v-model="detail.sortingPriority" type="text"
-            /></el-col>
-          </el-row>
-          <el-row>
-            <el-col :span="24"
-              ><span class="marg-r color">仓位维度数据列表显示格式</span>
-              <input type="text" v-model="detail.loclistFormatter" />
+            <el-col :span="12" :offset="0">
+              <div>
+                <div class="base-header">
+                  <span>库存状态</span>
+                </div>
+                <el-row>
+                  <el-col :span="24"
+                    >
+                      <el-form-item label="库存状态类型" size="small">
+                      <el-input
+                        v-model="stockStatusType"
+                        :readonly="isReadonly"
+                        size="small"
+                      ></el-input>
+                    </el-form-item>
+                  </el-col>
+                </el-row>
+                <el-row>
+                  <el-col :span="24"
+                    >
+                       <el-form-item label="默认库存状态" size="small">
+                      <el-input
+                        v-model="detail.defStockStatusName"
+                        :readonly="isReadonly"
+                        size="small"
+                      ></el-input>
+                    </el-form-item>
+
+                    </el-col>
+                </el-row>
+                <el-row>
+                  <el-col :span="24"
+                    >
+
+                        <el-form-item label="默认收料状态" size="small">
+                      <el-input
+                        v-model="detail.defReceiveStatusName"
+                        :readonly="isReadonly"
+                        size="small"
+                      ></el-input>
+                    </el-form-item>
+
+                    </el-col>
+                </el-row>
+                <div class="base-header">
+                  <span>控制</span>
+                </div>
+                <el-row>
+
+                  <el-row>
+                       <el-col :span="12"
+                      >
+                    <el-form-item label="允许客户查询" size="small">
+                        <el-radio :readonly="isReadonly" v-model="detail.allowMinusQty" :label="true">{{''}}</el-radio>
+                    </el-form-item>
+
+                     </el-col>
+                    <el-col :span="12"
+                      >
+                    <el-form-item label="允许即时库存负库存" size="small">
+                        <el-radio :readonly="isReadonly" v-model="detail.allowMinusQty" :label="true">{{''}}</el-radio>
+                    </el-form-item>
+                     </el-col>
+                    <el-col :span="12"
+                      >
+                        <el-form-item label="允许MRP计划" size="small">
+                        <el-radio :readonly="isReadonly" v-model="detail.allowMrpPlan" :label="true">{{''}}</el-radio>
+                    </el-form-item>
+                     </el-col>
+                  </el-row>
+                  <el-row>
+                    <el-col :span="12"
+                      >
+                           <el-form-item label="允许锁库" size="small">
+                        <el-radio :readonly="isReadonly" v-model="detail.allowLock" :label="true">{{''}}</el-radio>
+                    </el-form-item>
+                     </el-col>
+                    <el-col :span="12"
+                      >
+                            <el-form-item label="参与预警" size="small">
+                        <el-radio :readonly="isReadonly" v-model="detail.availableAlert" :label="true">{{''}}</el-radio>
+                    </el-form-item>
+                     </el-col>
+                  </el-row>
+                  <el-row>
+                    <el-col :span="12"
+                      >
+                           <el-form-item label="启用仓位管理" size="small">
+                        <el-radio :readonly="isReadonly" v-model="detail.openLocation" :label="true">{{''}}</el-radio>
+                    </el-form-item>
+
+                      </el-col>
+                    <el-col :span="12"
+                      >
+                          <el-form-item label="参与拣货" size="small">
+                        <el-radio :readonly="isReadonly" v-model="detail.availablePicking" :label="true">{{''}}</el-radio>
+                    </el-form-item>
+
+                      </el-col>
+                  </el-row>
+                  <el-row>
+                    <el-col :span="12"
+                      >
+                         <el-form-item label="不参与可发量统计" size="small">
+                        <el-radio :readonly="isReadonly" v-model="detail.notExpQty" :label="true">{{''}}</el-radio>
+                    </el-form-item>
+
+                      </el-col>
+                    <el-col :span="12"> </el-col>
+                  </el-row>
+                </el-row>
+                <el-row>
+                  <el-col :span="24"
+                    >
+                        <el-form-item label="拣货优先级(1~9999)" size="small">
+                      <el-input
+                        v-model="detail.sortingPriority"
+                        :readonly="isReadonly"
+                        size="small"
+                      ></el-input>
+                    </el-form-item>
+                  </el-col>
+                </el-row>
+                <el-row>
+                  <el-col :span="24"
+                    >
+                      <el-form-item label="仓位维度数据列表显示格式" size="small">
+                      <el-input
+                        v-model="detail.loclistFormatter"
+                        :readonly="isReadonly"
+                        size="small"
+                      ></el-input>
+                    </el-form-item>
+                  </el-col>
+                </el-row>
+
+              </div>
             </el-col>
           </el-row>
-          <!-- <div class="base-header">
-            <span>状态</span>
-          </div> -->
-          <!-- <el-row>
-            <el-col :span="24"
-              ><span class="marg-r">数据状态</span
-              ><select name="" id="" class="selectStyle2">
-                <option value="">暂存</option>
-              </select></el-col
-            >
-          </el-row> -->
         </div>
-        <div></div>
-      </div>
-    </el-card>
+      </el-card>
+    </el-form>
   </div>
 </template>
 
@@ -251,6 +358,7 @@ export default {
     detail: {
       type: Object,
       default: {},
+      isReadonly:true
     },
   },
   computed: {
@@ -302,6 +410,12 @@ export default {
 </script>
 
 <style lang="scss" scoped>
+.flex {
+  display: flex;
+  div {
+    width: 120px;
+  }
+}
 .baseWidth {
   width: 46%;
 }
@@ -357,13 +471,13 @@ export default {
     width: 100px;
   }
 }
-.baseInfo {
-  display: flex;
-  justify-content: space-between;
-  > div {
-    width: 33%;
-  }
-}
+// .baseInfo {
+//   display: flex;
+//   justify-content: space-between;
+//   > div {
+//     width: 33%;
+//   }
+// }
 .sty {
   margin-bottom: 20px;
 }

+ 4 - 4
src/views/basic_data/warehouse/warehouse_book.vue

@@ -39,24 +39,24 @@
           />
           <el-table-column
             align="center"
-            label="最大预约单量"
+            label="最大预约单量(1天)"
             prop="number"
             min-width="160"
             show-overflow-tooltip
           >
             <template slot-scope="scope">
-              <el-input v-model="scope.row.number" :disabled="scope.row.isDisabled"></el-input>
+              <el-input type="number" v-model.number="scope.row.number" :disabled="scope.row.isDisabled"></el-input>
             </template>
           </el-table-column>
           <el-table-column
             align="center"
-            label="最大预约台数"
+            label="最大预约台数(1天)"
             prop="towerNum"
             min-width="160"
             show-overflow-tooltip
           >
             <template slot-scope="scope">
-              <el-input v-model="scope.row.towerNum" :disabled="scope.row.isDisabled"></el-input>
+              <el-input type="number" v-model.number="scope.row.towerNum" :disabled="scope.row.isDisabled"></el-input>
             </template>
           </el-table-column>
 

+ 6 - 4
src/views/basic_data/warehouse/warehouse_cost.vue

@@ -42,9 +42,9 @@
       >
         <el-row :gutter="20">
           <el-col :xs="24" :sm="12" :lg="6">
-            <el-form-item label="条件" prop="customerName">
+            <el-form-item label="经销商名称" prop="customerName">
               <el-input
-                placeholder="请输入筛选条件"
+                placeholder="请输入经销商名称"
                 v-model="screenForm.customerName"
               ></el-input>
             </el-form-item>
@@ -230,7 +230,7 @@
     <el-dialog
       title="仓库费规则配置"
       :visible.sync="showDialog"
-      width="30%"
+      width="50%"
       :show-close="false"
       :close-on-click-modal="false"
     >
@@ -263,7 +263,9 @@
             type="number"
             v-model="dialogForm.freeDay"
             class="inputStyle"
-          />天内可免费受存储管理费用. 当超过
+          />天内可免费受存储管理费用.
+          <br/>
+          当超过
           <el-input
             type="number"
             v-model="dialogForm.freeDay"

+ 2 - 2
src/views/basic_data/warehouse/warehouse_list.vue

@@ -12,9 +12,9 @@
         >
           <el-row :gutter="20">
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="关键字" prop="name">
+              <el-form-item label="名称" prop="name">
                 <el-input
-                  placeholder="请输入关键字"
+                  placeholder="请输入名称"
                   v-model="screenForm.name"
                 ></el-input>
               </el-form-item>

+ 11 - 34
src/views/basic_data/warehouse/warehouse_site.vue

@@ -41,8 +41,8 @@
     <!-- 按钮 -->
     <div class="btn-group clearfix">
       <div class="fl">
-        <el-button type="primary" size="small" @click="newData">新增</el-button>
-        <!-- <el-button type="primary" size="small" @click="showDialogForm = true,type=2">编辑</el-button> -->
+        <el-button type="primary" size="small" @click="newData(),type=1">新增</el-button>
+
         <el-button type="primary" size="small">删除</el-button>
       </div>
     </div>
@@ -76,13 +76,13 @@
             align="center"
             label="仓位名称"
             prop="kingDeeStocks"
-            min-width="300"
-            :formatter="formDatas"
+            min-width="400"
+
             show-overflow-tooltip
           >
             <template slot-scope="scope">
               <template v-if="scope.row.kingDeeStocks.length > 1">
-                <el-tag type="danger" v-for="item in scope.row.kingDeeStocks">
+                <el-tag type="danger"  style="margin-right: 10px;" v-for="item in scope.row.kingDeeStocks">
                   {{ item.name }}
                 </el-tag>
               </template>
@@ -153,7 +153,7 @@
               <el-button
                 type="text"
                 class="textColor"
-                @click="editFn(scope.row.id, scope.row)"
+                @click="editFn(scope.row.id, scope.row),type = 2"
                 >编辑</el-button
               >
               <el-popconfirm
@@ -305,9 +305,7 @@ export default {
     };
   },
   methods: {
-    addFn() {
-      this.showDialogForm = true;
-    },
+
     newData() {
       this.showDialogForm = true;
       this.type = 1;
@@ -323,10 +321,8 @@ export default {
     },
     //显示编辑,编辑数据初始化
     editFn(id, row) {
-      console.log(row);
       this.type = 2;
       const arr = []
-
        if (row.kingDeeStocks.length>1) {
          row.kingDeeStocks.forEach(el => {
            arr.push(el.id)
@@ -341,42 +337,23 @@ export default {
         stockCordon: row.stockCordon,
         stockIds: row.stockIds === undefined ? arr: row.stockIds,
       };
-
-
-
-
       this.showDialogForm = true;
     },
-    formDatas(row) {
-      console.log(row.kingDeeStocks);
-      let str = "";
-      //       row.kingDeeStocks.forEach(item => {
-      //           str+= item.name
-      //       });
-      // return str
-      // let a = (row && row.kingDeeStocks) || []
-      // let arr = []
-      // console.log(a);
-      //   a.forEach(item => {
 
-      //       arr.push(item)
-      //   });
-      //   return arr.join(',')
-    },
     hanleInfo() {
-      if (this.type === 1) {
+      console.log(this.type);
+      if (this.type == 1) {
         addStock(this.diaLogForm).then((res) => {
           this.$successMsg("保存成功");
           this.showDialogForm = false;
           this.getList();
         });
-      } else {
+      } else if(this.type ==2) {
         const params = {
           ...this.diaLogForm,
         };
-        console.log(params, 123);
         updateStock(params).then((res) => {
-          this.$successMsg("保存成功");
+          this.$successMsg("编辑成功");
           this.showDialogForm = false;
           this.getList();
         });

+ 19 - 11
src/views/sales_policy/components/AddCondition.vue

@@ -1,9 +1,7 @@
 <template>
   <el-container>
     <el-header height="50px" class="header">
-
       <el-page-header @back="handleBack" content="详情页面">
-
       </el-page-header>
     </el-header>
     <div class="line">
@@ -75,12 +73,25 @@
             <el-row>
               <el-form-item label="配置比例设置"> </el-form-item>
             </el-row>
+       <el-col
+              :xs="24"
+              :sm="8"
+              :lg="8"
+
+            >
+              <el-form-item label="限定机型">
+                <el-input
+                  size="small"
+                  v-model="limit"
+                ></el-input>
+              </el-form-item>
+              </el-col>
 
             <el-col
               :xs="24"
               :sm="8"
               :lg="8"
-              v-for="(len, index) in conditionBox"
+              v-for="(len, index) in conditionBox.length-1"
             >
               <el-form-item :label="'配提' + (index + 1) + '比例'">
                 <el-input
@@ -164,6 +175,7 @@
     <el-dialog :visible.sync="VisibleModle" width="70%" center>
       <div>
         <el-container>
+
           <el-header height="">
             <el-form label-width="0" :inline="false" size="small">
               <el-col :xs="24" :sm="8" :lg="8" :offset="0">
@@ -413,9 +425,6 @@ export default {
   },
   created() {
     this.getCommonApi();
-
-    console.log(this.$parent.codeId, "codeid");
-
   },
    computed: mapState({
     comCode: (state) => state.sales.code,
@@ -431,7 +440,7 @@ export default {
       if (this.$parent.isShow==10) {
           this.$parent.isShow = 8
       }else{
-        this.$parent.isShow =2
+        this.$parent.isCondition =0
       }
 
     },
@@ -464,8 +473,6 @@ export default {
       this.conditionBox.push([{}]);
     },
     handleSubmit() {
-
-      console.log(this.comCode);
       var tableData = [];
       for (let i = 0; i < this.conditionBox.length; i++) {
         for (let j = 0; j < this.conditionBox[i].length; j++) {
@@ -480,11 +487,12 @@ export default {
         this.$errorMsg("请选择机型");
         return;
       }
-      var pop = [];
+      var pop = [this.limit];
       for (const key in this.popArr) {
 
         pop.push(this.popArr[key]);
       }
+      console.log(pop.join(":"));
       const params = {
         id: "",
         policyConditionMaterials: tableData,
@@ -494,7 +502,7 @@ export default {
       };
       addPoliyCondition(params).then((res) => {
         this.$successMsg("添加成功");
-        this.$parent.isShow = 2
+        this.$parent.isCondition = 0
         this.$parent.isFlag = 1
         this.$emit('handleSubmitCon',this.comCode)
       });

+ 45 - 38
src/views/sales_policy/components/AddPolicy.vue

@@ -1,5 +1,6 @@
 <template>
   <div>
+    <div v-show="isCondition==0">
     <el-header height="50px" class="header">
       <el-page-header
         @back="($parent.isShow = 1), ($parent.isFlag = '')"
@@ -56,7 +57,7 @@
               </el-form-item>
             </el-col>
             <el-col :xs="24" :ms="12" :lg="12">
-              <el-form-item label="支付钱包类型" prop="name">
+              <el-form-item label="产品品类" prop="name">
                 <el-select v-model="value" placeholder="请选择">
                   <el-option
                     v-for="(item, index) in walletList"
@@ -119,6 +120,7 @@
                 :action="baseURL + 'student/import'"
                 :http-request="handleImport"
                 :file-list="importFileList"
+                :show-file-list="false"
               >
                 <el-button size="small">导入货品价格表</el-button>
               </el-upload>
@@ -169,7 +171,7 @@
           </el-table-column>
           <el-table-column label="支付钱包" align="center">
             <template slot-scope="scope">
-                <el-tag type="success" size="small" v-for=" item  in  scope.row.walletRelaList">{{item.walletName}}</el-tag>
+                <el-tag style="margin:5px" type="success" size="small" v-for=" item  in  scope.row.walletRelaList">{{item.walletName}}</el-tag>
             </template>
           </el-table-column>
           <el-table-column fixed="right" label="操作" align="center">
@@ -212,8 +214,8 @@
               <h4 style="display: inline-block; margin-right: 20px">
                 条件信息
               </h4>
-              <el-button size="small" @click="$parent.isShow = 3"
-                >管理条件</el-button
+              <el-button size="small" @click="isCondition=1"
+                >添加</el-button
               ></el-col
             >
           </el-row>
@@ -237,6 +239,9 @@
           >
           </el-table-column>
           <el-table-column prop="name" label="限定条件" align="center">
+            <template slot-scope="scope">
+              限定条件{{scope.$index+1}}
+            </template>
           </el-table-column>
           <el-table-column
             fixed="right"
@@ -245,7 +250,7 @@
             align="center"
           >
             <template slot-scope="scope">
-              <el-button type="text" size="small">删除</el-button>
+              <el-button type="text" size="small" @click="handleCondition(scope.row.id,scope.$index)">删除</el-button>
             </template>
           </el-table-column>
         </el-table>
@@ -264,6 +269,8 @@
       </div>
     </div>
   </div>
+  <AddCondition v-show="isCondition==1"  @handleSubmitCon="handleSubmitCon"/>
+  </div>
 </template>
 
 <script>
@@ -274,12 +281,13 @@ import {
   getTypeList,
   getWalletList,
   getMaterialList,
+  deleteCondition,
   getConditionList,
   deleteMaterialPolicy,
 } from "@/api/supply/sales";
 import { downloadFiles, handleImport } from "@/utils/util";
 import Transfer from "./Transfer";
-import Pagination from "@/components/Pagination";
+import AddCondition from "./AddCondition";
 import ImageUpload from "@/components/Common/image-upload.vue";
 
 export default {
@@ -288,6 +296,7 @@ export default {
     return {
       input: "",
       baseURL: "",
+      isCondition:0,
       searchForm: {
         code: "",
         endTime: "",
@@ -327,32 +336,27 @@ export default {
     comCode: (state) => {
       return state.sales.code;
     },
-    newForm:(state) => {
-      return state.sales.searchForm;
-    },
-    imgFile:(state) => {
-      return state.sales.fileList;
-    },
+    // newForm:(state) => {
+    //   return state.sales.searchForm;
+    // },
+    // imgFile:(state) => {
+    //   return state.sales.fileList;
+    // },
   }),
+  beforeUpdate() {
+    this.searchForm.code = this.comCode
+  },
   created() {
 
     this.getCommonApi();
     if (this.$parent.isFlag) {
-      const params = {
-        policyId: this.comCode,
-      };
-      // 获取条件政策
-      getConditionList(params).then((res) => {
-        this.conditionList = res.data;
-        console.log(res.data, "jsfdkljslkj");
-      });
+
       // this.handletwoList()
     }
   },
+
   updated() {
-    this.searchForm = this.newForm
-    this.searchForm.code = this.comCode;
-    this.fileList = this.imgFile
+
   },
   methods: {
     ...mapMutations('sales',['initData']),
@@ -360,6 +364,12 @@ export default {
     hanleDownloadFiles() {
       downloadFiles("/policy/download");
     },
+    handleCondition(id,index){
+      deleteCondition({id}).then(res=>{
+            this.conditionList.splice(index,1)
+        this.$successMsg('删除成功')
+      })
+    },
     getCommonApi() {
       // this.handletwoList()
       const params = {
@@ -387,6 +397,15 @@ export default {
         this.walletList = res.data.records;
       });
     },
+     handleSubmitCon(){
+       const params = {
+        policyId: this.comCode,
+      };
+      // 获取条件政策
+      getConditionList(params).then((res) => {
+        this.conditionList = res.data;
+      });
+  },
     // 导入
     async handleImport(param) {
       this.importLoading = true;
@@ -443,22 +462,10 @@ export default {
       console.log(policyCustomers, "选择的经销商");
       if (policyCustomers.length) {
         var arr = [];
-        var arr = [
-          {
-            customerId: "",
-            customerName: "",
-            customerNumber: "",
-            id: "",
-            lastOrderTime: "",
-            limitTakeNum: 0,
-            policyId: "",
-            policyTitle: "",
-            remark: "",
-          },
-        ];
+
         policyCustomers.forEach((el) => {
           arr.push({
-            customerId: "",
+            customerId: el.id,
             customerName: el.name,
             customerNumber: el.number,
             lastOrderTime: "",
@@ -509,7 +516,7 @@ export default {
   },
   components: {
     Transfer,
-    Pagination,
+    AddCondition,
     ImageUpload,
   },
 };

+ 17 - 41
src/views/sales_policy/components/Examine.vue

@@ -111,41 +111,8 @@
           </el-table-column>
           <el-table-column label="支付钱包" align="center">
             <template slot-scope="scope">
-              <el-tag
-                type="danger"
-                size="small"
-                v-if="scope.row.walletCommonly == 1"
-              >
-                允许普通钱包
-              </el-tag>
-              <el-tag type="danger" size="small" v-else
-                >不允许使用普通钱包</el-tag
-              >
-              <el-tag
-                type="danger"
-                size="small"
-                v-if="scope.row.walletDeduct == 1"
-              >
-                允许抵扣钱包</el-tag
-              >
-              <el-tag type="danger" size="small" v-else>不允许抵扣钱包</el-tag>
-              <el-tag
-                type="danger"
-                size="small"
-                v-if="scope.row.walletRebate == 1"
-              >
-                允许返利钱包
-              </el-tag>
-              <el-tag type="danger" size="small" v-else>不允许返利钱包</el-tag>
-              <el-tag
-                type="danger"
-                size="small"
-                v-if="scope.row.walletSpecial == 1"
-                >允许特殊钱包</el-tag
-              >
-              <el-tag type="danger" size="small" v-else>
-                不允许特殊钱包
-              </el-tag>
+                               <el-tag style="margin:5px" type="success" size="small" v-for=" item  in  scope.row.walletRelaList">{{item.walletName}}</el-tag>
+
             </template>
           </el-table-column>
         </el-table>
@@ -190,6 +157,9 @@
           >
           </el-table-column>
           <el-table-column prop="name" label="限定条件" align="center">
+            <template slot-scope="scope">
+              限定条件{{scope.$index+1}}
+            </template>
           </el-table-column>
 
         </el-table>
@@ -247,10 +217,10 @@
           >
           </el-pagination>
         </div>
-        <div class="descriptions" v-if="$parent.isShow == 8 ">
+        <div class="descriptions" v-if="$parent.isShow == 8  && detail.examineStatus == 'SAVE'">
           <el-row>
             <el-col :span="6">审核人</el-col>
-            <el-col :span="6">{{ detail.code }}</el-col>
+            <el-col :span="6">{{$store.getters.name}}</el-col>
             <el-col :span="6">审核结果</el-col>
             <el-col :span="6">
               <template>
@@ -265,9 +235,9 @@
             <el-col :span="4">审批说明</el-col>
             <el-col :span="20" class="col" style="padding: 0">
               <el-input
-                type="textarea"
-                style="height: 100%"
-                autosize
+
+                  size="small"
+
                 placeholder="请输入内容"
                 v-model="remark"
               >
@@ -333,7 +303,9 @@ export default {
       custoList: [],
     };
   },
-  created() {},
+  created() {
+
+  },
   methods: {
     getList() {
       this.listLoading = true;
@@ -426,4 +398,8 @@ export default {
 .col {
   height: 100px;
 }
+.el-input.is-active .el-input__inner, .el-input__inner:focus {
+    border-color: #fff;
+    outline: 0;
+}
 </style>

+ 7 - 9
src/views/sales_policy/components/Transfer.vue

@@ -3,7 +3,7 @@
     <slot name="header">
       <el-row class="radio">
         <el-radio-group v-model="region">
-          <el-radio label="0">全部经销商</el-radio>
+          <el-radio label="">全部经销商</el-radio>
           <el-radio label="1">地区</el-radio>
           <el-radio label="2">指定</el-radio>
         </el-radio-group>
@@ -127,7 +127,7 @@ export default {
   data() {
     return {
       type: "",
-      radio: "0",
+      radio: "",
       leftData: [],
       dataL: [],
       dataR: [],
@@ -139,8 +139,7 @@ export default {
         },
       ],
       value: "",
-     region: "",
-
+      region: "",
       keyword: "",
     };
   },
@@ -152,15 +151,13 @@ export default {
       const customerParams = {
         pageNum: this.currentPage,
         pageSize: this.pageSize,
-        keyword: this.keyword,
-        region: this.region,
+        keyword: this.region == 1 || this.region =='' ? '' : this.keyword,
+        region: this.region == 1 ? this.keyword : "",
       };
-
-
       // 获取经销商列表
       getCrList(customerParams).then((res) => {
         this.dataL = res.data.records;
-        console.log(res,'获取经销商列表');
+        console.log(res, "获取经销商列表");
 
         this.listTotal = res.data.total;
       });
@@ -201,6 +198,7 @@ export default {
       }
     },
     handleSubmit() {
+
       this.$emit("handleAddPolicy", this.dataR);
     },
   },

+ 15 - 13
src/views/sales_policy/policy_list.vue

@@ -211,9 +211,9 @@
         </el-table-column>
         <el-table-column label="状态" width="120" align="center">
           <template slot-scope="scope">
-            <el-tag v-if="scope.row.examineStatus == 'WAIT'">待审核</el-tag>
-            <el-tag v-else-if="scope.row.examineStatus == 'OK'">通过 </el-tag>
-            <el-tag v-else>失败</el-tag>
+            <el-tag v-if="scope.row.status == '1'">已生效</el-tag>
+            <el-tag v-else-if="scope.row.status == '0'">未生效 </el-tag>
+
           </template>
         </el-table-column>
         <el-table-column
@@ -254,14 +254,14 @@
         >
         </el-table-column>
         <el-table-column
-          prop="examineBy"
+          prop="createBy"
           label="制表人"
           width="120"
           align="center"
         >
         </el-table-column>
         <el-table-column
-          prop="examineBy"
+          prop="createTime"
           label="制表日期"
           width="120"
           align="center"
@@ -291,7 +291,7 @@
     </div>
   </div>
   <AddPolicy v-else-if="isShow == 2" />
-  <AddCondition v-else-if="isShow == 3 || isShow == 6" :id="id" />
+  <!-- <AddCondition v-else-if="isShow == 3 || isShow == 6" :id="id" /> -->
   <Examine v-else />
 </template>
 
@@ -302,7 +302,6 @@ import {
   deletePolicy,
   getpolicySubmit,
   toExamine,
-  getConditionList,
 } from "@/api/supply/sales";
 import Minxin from "@/mixin";
 import { downloadFiles, handleImport } from "@/utils/util";
@@ -368,9 +367,11 @@ export default {
   computed: mapState({
     comCode: (state) => state.sales.code,
   }),
+  watch:{
+
+  },
   created() {},
   methods: {
-    // ...mapActions("sales", ["hanlenewInfo"]),
     hanlenewInfo() {
       this.isShow = 2;
       this.$store.dispatch("sales/hanlenewInfo");
@@ -425,7 +426,7 @@ export default {
       };
       downloadFiles("/policy/export", screenData);
     },
-    importFileList() {},
+
     // 导入
     async handleImport(param) {
       this.importLoading = true;
@@ -448,13 +449,14 @@ export default {
       }
     },
     handlesubmit(e) {
-      if (e.examineStatus == "SAVE") {
         getpolicySubmit({ policyId: e.id }).then((res) => {
           this.$successMsg("已提交");
         });
-      } else {
-        this.$errorMsg("未满足条件");
-      }
+      // if (e.examineStatus == "SAVE") {
+
+      // } else {
+      //   this.$errorMsg("未满足条件");
+      // }
     },
     hanleExamine(e) {
       if (e.examineStatus == "WAIT") {

+ 31 - 12
src/views/sales_rebate/salestype_list.vue

@@ -15,7 +15,8 @@
           </el-col>
           <el-col :xs="24" :ms="6" :lg="6">
             <el-form-item prop='status'>
-              <el-select v-model="screenForm.status" placeholder="请选择" size="small">
+              <el-select v-model="screenForm.status" placeholder="状态" size="small">
+
                 <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
                 </el-option>
               </el-select>
@@ -48,8 +49,10 @@
           <el-table-column align="center" :label="col.lable" :prop="col.prop" :min-width="col.widht"
             show-overflow-tooltip v-if="col.prop == 'status'">
             <template slot-scope="scope">
-              <el-switch v-model="scope.row.status" disabled :active-text="scope.row.status ? '已启用' : '已禁用'">
+              <div style="z-index:99">
+                <el-switch v-model="scope.row.status" disabled  :active-text="scope.row.status ? '已启用' : '已禁用'">
               </el-switch>
+              </div>
             </template>
           </el-table-column>
           <el-table-column v-else align="center" :label="col.lable" :prop="col.prop" :min-width="col.widht"
@@ -60,14 +63,26 @@
         <el-table-column align="center" fixed="right" label="操作" min-width="160">
           <template slot-scope="scope">
             <el-button type="text" size="small" @click="hanleEdit(scope.row)">编辑</el-button>
-            <el-button type="text" size="small" @click="hanleDateil(scope.row)">详情</el-button>
+            <!-- <el-button type="text" size="small" @click="hanleDateil(scope.row)">详情</el-button> -->
             <el-popconfirm title="这是一段内容确定删除吗?" style="margin-left: 10px;">
               <el-button slot="reference" type="text" size="small" @click="hanleDatele(scope.row.id)">删除</el-button>
             </el-popconfirm>
           </template>
         </el-table-column>
       </el-table>
-      <Pagination />
+        <!-- 分页 -->
+      <div style="margin:20px 0">
+        <el-pagination
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="currentPage"
+          :page-sizes="[10, 20, 30, 50]"
+          :page-size="10"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="listTotal"
+        >
+        </el-pagination>
+      </div>
     </div>
     <div>
       <el-dialog :visible.sync="dialogVisible" width="50%">
@@ -114,7 +129,7 @@
         screenForm: {
           saleCode: '',
           saleName: '',
-          status: 1
+          status: ''
         },
         dialogForm: {
           id: '',
@@ -139,14 +154,10 @@
             lable: "销售类型名称",
             widht: 160
           },
-          {
-            prop: "outType",
-            lable: "出库类型",
-            widht: 160
-          },
+
           {
             prop: "mainName",
-            lable: "品类",
+            lable: "产品大类",
             widht: 160
           },
           {
@@ -176,6 +187,9 @@
           },
         ],
         options: [{
+            value: '',
+            label: '状态'
+          },{
             value: 1,
             label: '已启用'
           },
@@ -198,6 +212,7 @@
         }
         getTypeList(params).then(res => {
           this.dataList = res.data.records
+           this.listTotal = res.data.total;
           this.listLoading = false
         })
       },
@@ -275,4 +290,8 @@
   };
 </script>
 
-<style scoped></style>
+<style scoped>
+.el-switch.is-disabled{
+  opacity:inherit;
+}
+</style>

+ 19 - 7
src/views/setting/account.vue

@@ -136,26 +136,33 @@
             <el-option :label="item.name" :value="item.adminRoleId" v-for="(item, index) in roleList" :key="index"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="部门" prop="department" v-show="accountType === 0">
+        <el-form-item label="部门" prop="department" v-show="roleObj.type === 0">
           <el-tree
             :data="departmentList"
             show-checkbox
+            :check-strictly="true"
             node-key="adminWebsitId"
             ref="tree"
             highlight-current
             :props="props">
           </el-tree>
         </el-form-item>
-        <el-form-item label="经销商" prop="dealer" v-show="accountType === 0">
+        <el-form-item label="经销商" prop="dealer" v-show="roleObj.type === 0 && roleObj.name === '经销商'">
           <el-select v-model="AccountForm.dealer" placeholder="请选择经销商" style="width: 100%;">
             <el-option :label="item.name" :value="item.id" v-for="(item, index) in dealerList" :key="index"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="商户" prop="merchant" v-show="accountType === 1 || accountType === 2">
+        <el-form-item label="商户" prop="merchant" v-show="roleObj.type === 1 || roleObj.type === 2">
           <el-select v-model="AccountForm.merchant" placeholder="请选择商户" style="width: 100%;">
             <el-option :label="item.adminCompanyName" :value="item.adminCompanyId" v-for="(item, index) in merchantList" :key="index"></el-option>
           </el-select>
         </el-form-item>
+        <el-form-item label="集团公司" prop="isGroup" v-show="roleObj.type === 0 && roleObj.name === '经销商'">
+          <el-radio-group v-model="AccountForm.isGroup">
+            <el-radio :label="false">否</el-radio>
+            <el-radio :label="true">是</el-radio>
+          </el-radio-group>
+        </el-form-item>
         <el-form-item label="密码" prop="newPassword">
           <el-input v-model="AccountForm.newPassword" ref="password1" autocomplete="off" placeholder="请输入密码" :type="passwordType1"></el-input>
           <span class="show-pwd" @click="showPwd(1)">
@@ -271,6 +278,7 @@ export default {
         merchant: '', // 商户
         dealer: '', //经销商
         role: '', // 角色组
+        isGroup: false,
         newPassword: '', // 新密码
         confirmPassword: '', // 确认密码
       },
@@ -326,8 +334,8 @@ export default {
         ],
       },
 
-      accountType: '',
       roleList: [], // 角色列表
+      roleObj: {}, // 选中的角色
       merchantList: [],
       dealerList: [],
 
@@ -342,7 +350,7 @@ export default {
     'AccountForm.role'() {
       if(this.AccountForm.role) {
         let index = findElem(this.roleList, 'adminRoleId', this.AccountForm.role);
-        this.accountType = this.roleList[index].type;
+        this.roleObj = this.roleList[index];
       }
     }
   },
@@ -505,6 +513,7 @@ export default {
           this.AccountForm.nickName = res.data.nickName;
           this.AccountForm.merchant = res.data.companyWechatId;
           this.AccountForm.dealer = res.data.customerId;
+          this.AccountForm.isGroup = res.data.isGroupCompany;
           this.$refs.tree.setCheckedKeys(res.data.adminWebsitIds || []);
         })
       }
@@ -528,9 +537,12 @@ export default {
             roleId: this.AccountForm.role,
             password: this.AccountForm.newPassword,
           }
-          if(this.accountType === 0) {
+          if(this.roleObj.type === 0) {
             params.adminWebsitIds = this.$refs.tree.getCheckedKeys();
-            params.customerId = this.AccountForm.dealer;
+            if(this.roleObj.name === '经销商') {
+              params.customerId = this.AccountForm.dealer;
+              params.isGroupCompany = this.AccountForm.isGroup;
+            }
           }else {
             params.adminCompanyId = this.AccountForm.merchant;
           }

+ 15 - 14
src/views/supply/apply/apply_list.vue

@@ -92,21 +92,21 @@
             <el-table-column align="center" label="制单日期" prop="createTime" min-width="160" show-overflow-tooltip></el-table-column>
             <el-table-column align="center" label="审核人" prop="approvalName" min-width="100" show-overflow-tooltip></el-table-column>
             <el-table-column align="center" label="审核日期" prop="approvalTime" min-width="160" show-overflow-tooltip></el-table-column>
-            <el-table-column align="center" label="审核状态" prop="status" min-width="100" show-overflow-tooltip>
+            <el-table-column align="center" label="审核状态" prop="examineStatus" min-width="100" show-overflow-tooltip>
               <template slot-scope="scope">
-                {{scope.row.status | statusFilter}}
+                {{scope.row.examineStatus | statusFilter}}
               </template>
             </el-table-column>
             <el-table-column align="center" label="操作" width="180" fixed="right">
               <template slot-scope="scope">
-                <el-popconfirm style="margin-right: 10px;" title="确定申请吗?" @onConfirm="handleSubmit(scope.row.id, 2)" v-if="scope.row.status === 1" >
+                <el-popconfirm style="margin-right: 10px;" title="确定申请吗?" @onConfirm="handleSubmit(scope.row.id, 'WAIT')" v-if="scope.row.examineStatus === 'SAVE'" >
                   <el-button slot="reference" type="text">申请</el-button>
                 </el-popconfirm>
-                <el-popconfirm style="margin-right: 10px;" title="确定撤回吗?" @onConfirm="handleSubmit(scope.row.id, 1)" v-if="scope.row.status === 2" >
+                <el-popconfirm style="margin-right: 10px;" title="确定撤回吗?" @onConfirm="handleSubmit(scope.row.id, 'SAVE')" v-if="scope.row.examineStatus === 'WAIT'" >
                   <el-button slot="reference" type="text">撤回</el-button>
                 </el-popconfirm>
-                <el-button type="text" @click="toForm(scope.row)" v-if="scope.row.status === 1">编辑</el-button>
-                <el-button type="text" @click="toExamine(scope.row)" v-if="scope.row.status === 2">审单</el-button>
+                <el-button type="text" @click="toForm(scope.row)" v-if="scope.row.examineStatus === 'SAVE'">编辑</el-button>
+                <el-button type="text" @click="toExamine(scope.row)" v-if="scope.row.examineStatus === 'WAIT'">审单</el-button>
                 <el-button type="text" @click="toDetail(scope.row)">详情</el-button>
                 <el-popconfirm style="margin-left: 10px;" title="确定删除吗?" @onConfirm="handleDelete(scope.row.id)" >
                   <el-button slot="reference" type="text">删除</el-button>
@@ -175,10 +175,11 @@ export default {
         status: '',
       },
       statusList: [
-        { label: '已保存', value: 1 },
-        { label: '待审核', value: 2 },
-        { label: '审核通过', value: 3 },
-        { label: '审核驳回', value: 4 },
+        { label: '已保存', value: 'SAVE' },
+        { label: '待审核', value: 'WAIT' },
+        { label: '审核通过', value: 'OK' },
+        { label: '审核驳回', value: 'FAIL' },
+        { label: '已关闭', value: 'CLOSE' },
       ],
 
       queryItem: {},
@@ -199,7 +200,7 @@ export default {
         specification: this.screenForm.model,
         startTime: this.screenForm.date ? this.screenForm.date[0] : '',
         endTime: this.screenForm.date ? this.screenForm.date[1] : '',
-        status: this.screenForm.status,
+        examineStatus: this.screenForm.status,
       }
     },
   },
@@ -237,7 +238,7 @@ export default {
         specification: this.screenForm.model,
         startTime: this.screenForm.date ? this.screenForm.date[0] : '',
         endTime: this.screenForm.date ? this.screenForm.date[1] : '',
-        status: this.screenForm.status,
+        examineStatus: this.screenForm.status,
       };
       getApplyList(params).then((res) => {
         this.dataList = res.data.records;
@@ -305,8 +306,8 @@ export default {
     },
 
     // 申请/撤回
-    handleSubmit(id, status) {
-      submitApply({id, status}).then(res => {
+    handleSubmit(id, examineStatus) {
+      submitApply({id, examineStatus}).then(res => {
         this.$successMsg();
         this.getList();
       })

+ 142 - 105
src/views/supply/apply/components/apply_detail.vue

@@ -2,56 +2,118 @@
   <div class="detail-container">
     <el-page-header @back="goBack" content="详情"></el-page-header>
 
-    <div id="printData">
+    <div class="main-title">
+      <div class="title">发货申请单信息</div>
+    </div>
+
+    <div class="diy-table-1">
+      <el-row>
+        <el-col :span="8" class="item">
+          <div class="label">发货申请单号</div>
+          <div class="value">{{detailData.id}}</div>
+        </el-col>
+        <el-col :span="8" class="item">
+          <div class="label">申请日期</div>
+          <div class="value">{{detailData.createTime}}</div>
+        </el-col>
+        <el-col :span="8" class="item">
+          <div class="label">单据状态</div>
+          <div class="value">{{detailData.examineStatus | statusFilter}}</div>
+        </el-col>
+        <el-col :span="8" class="item">
+          <div class="label">经销商编号</div>
+          <div class="value">{{detailData.customerNumber}}</div>
+        </el-col>
+        <el-col :span="8" class="item">
+          <div class="label">经销商名称</div>
+          <div class="value">{{detailData.customerName}}</div>
+        </el-col>
+        <el-col :span="8" class="item">
+          <div class="label">仓库</div>
+          <div class="value">{{detailData.correspondName}}</div>
+        </el-col>
+        <el-col :span="24" class="item">
+          <div class="label">备注</div>
+          <div class="value">{{detailData.remark}}</div>
+        </el-col>
+        <el-col :span="24" class="item file">
+          <div class="label">附件</div>
+          <div class="value">
+            <div class="file-list">
+              <div class="file-item">
+                <el-image v-if="checkFileType(detailData.fileUrl) == 'image'" class="img" :src="imageURL + detailData.fileUrl" :preview-src-list="[imageURL + detailData.fileUrl]"></el-image>
+                <div v-else class="box2" @click="openLink(detailData.fileUrl)">
+                  <img src="@/assets/common/word.png" v-if="checkFileType(detailData.fileUrl) == 'word'" />
+                  <img src="@/assets/common/excel.png" v-if="checkFileType(detailData.fileUrl) == 'excel'" />
+                  <img src="@/assets/common/ppt.png" v-if="checkFileType(detailData.fileUrl) == 'ppt'" />
+                  <img src="@/assets/common/pdf.png" v-if="checkFileType(detailData.fileUrl) == 'pdf'" />
+                  <div class="name ellipsis-3">{{ detailData.fileName }}</div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </el-col>
+        <el-col :span="6" class="item">
+          <div class="label">制单人</div>
+          <div class="value">{{detailData.createBy}}</div>
+        </el-col>
+        <el-col :span="6" class="item">
+          <div class="label">制单日期</div>
+          <div class="value">{{detailData.createTime}}</div>
+        </el-col>
+        <el-col :span="6" class="item">
+          <div class="label">审核人</div>
+          <div class="value">{{detailData.approvalName}}</div>
+        </el-col>
+        <el-col :span="6" class="item">
+          <div class="label">审核日期</div>
+          <div class="value">{{detailData.approvalTime}}</div>
+        </el-col>
+        <el-col :span="24" class="item">
+          <div class="label">审批说明</div>
+          <div class="value">{{detailData.approvalRemark}}</div>
+        </el-col>
+      </el-row>
+    </div>
+
+    <div class="main-title">
+      <div class="title">货品信息</div>
+    </div>
+
+    <div class="table" style="margin-top: 20px">
+      <el-table :data="detailData.orders" element-loading-text="Loading" border fit highlight-current-row stripe max-height="400">
+        <el-table-column align="center" label="序号" type="index" width="50"></el-table-column>
+        <el-table-column align="center" label="销售类型" prop="saleTypeName" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="发货仓库" prop="stockIds" min-width="160" show-overflow-tooltip>
+          <template slot-scope="scope">
+            <el-tag size="mini" style="margin: 0 5px;" v-for="(item, index) in scope.row.stockIds" :key="index">{{item.name}}</el-tag>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="库存数" prop="stockNumber" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="销售订单号" prop="retailOrderId" min-width="180" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="产品编码" prop="materialCode" min-width="120" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="规格型号" prop="specification" min-width="160" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="计量单位" prop="unit" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="申请数量" prop="invoiceNum" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="审批数量" prop="approvalNumber" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="备注" prop="remark" min-width="160" show-overflow-tooltip></el-table-column>
+      </el-table>
+    </div>
+
+    <div v-if="isExamine">
       <div class="main-title">
-        <div class="title">发货申请单信息</div>
+        <div class="title">审批记录</div>
       </div>
-
       <div class="diy-table-1">
-        <el-row>
-          <el-col :span="8" class="item">
-            <div class="label">发货申请单号</div>
-            <div class="value">{{detailData.id}}</div>
-          </el-col>
-          <el-col :span="8" class="item">
-            <div class="label">申请日期</div>
-            <div class="value">{{detailData.createTime}}</div>
-          </el-col>
-          <el-col :span="8" class="item">
-            <div class="label">单据状态</div>
-            <div class="value">{{detailData.status | statusFilter}}</div>
-          </el-col>
-          <el-col :span="8" class="item">
-            <div class="label">经销商编号</div>
-            <div class="value">{{detailData.customerNumber}}</div>
-          </el-col>
-          <el-col :span="8" class="item">
-            <div class="label">经销商名称</div>
-            <div class="value">{{detailData.customerName}}</div>
-          </el-col>
-          <el-col :span="8" class="item">
-            <div class="label">仓库</div>
-            <div class="value">{{detailData.correspondName}}</div>
-          </el-col>
-          <el-col :span="24" class="item">
-            <div class="label">备注</div>
-            <div class="value">{{detailData.remark}}</div>
-          </el-col>
-          <el-col :span="6" class="item">
-            <div class="label">制单人</div>
-            <div class="value">{{detailData.createBy}}</div>
-          </el-col>
-          <el-col :span="6" class="item">
-            <div class="label">制单日期</div>
-            <div class="value">{{detailData.createTime}}</div>
-          </el-col>
-          <el-col :span="6" class="item">
-            <div class="label">审核人</div>
+        <el-row :gutter="0">
+          <el-col :span="12" class="item">
+            <div class="label">审批人</div>
             <div class="value">{{detailData.approvalName}}</div>
           </el-col>
-          <el-col :span="6" class="item">
-            <div class="label">审核日期</div>
-            <div class="value">{{detailData.approvalTime}}</div>
+          <el-col :span="12" class="item">
+            <div class="label">审批结果</div>
+            <div class="value">{{detailData.examineStatus | statusFilter}}</div>
           </el-col>
           <el-col :span="24" class="item">
             <div class="label">审批说明</div>
@@ -59,54 +121,6 @@
           </el-col>
         </el-row>
       </div>
-
-      <div class="main-title">
-        <div class="title">货品信息</div>
-      </div>
-
-      <div class="table" style="margin-top: 20px">
-        <el-table :data="detailData.orders" element-loading-text="Loading" border fit highlight-current-row stripe max-height="400">
-          <el-table-column align="center" label="序号" type="index" width="50"></el-table-column>
-          <el-table-column align="center" label="销售类型" prop="saleTypeName" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="发货仓库" prop="stockIds" min-width="160" show-overflow-tooltip>
-            <template slot-scope="scope">
-              <el-tag size="mini" style="margin: 0 5px;" v-for="(item, index) in scope.row.stockIds" :key="index">{{item.name}}</el-tag>
-            </template>
-          </el-table-column>
-          <el-table-column align="center" label="库存数" prop="stockNumber" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="销售订单号" prop="retailOrderId" min-width="180" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="产品编码" prop="materialCode" min-width="120" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="规格型号" prop="specification" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="计量单位" prop="unit" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="申请数量" prop="invoiceNum" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="审批数量" prop="approvalNumber" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="备注" prop="remark" min-width="160" show-overflow-tooltip></el-table-column>
-        </el-table>
-      </div>
-
-      <div v-if="isExamine">
-        <div class="main-title">
-          <div class="title">审批记录</div>
-        </div>
-        <div class="diy-table-1">
-          <el-row :gutter="0">
-            <el-col :span="12" class="item">
-              <div class="label">审批人</div>
-              <div class="value">{{detailData.approvalName}}</div>
-            </el-col>
-            <el-col :span="12" class="item">
-              <div class="label">审批结果</div>
-              <div class="value">{{detailData.status | statusFilter}}</div>
-            </el-col>
-            <el-col :span="24" class="item">
-              <div class="label">审批说明</div>
-              <div class="value">{{detailData.approvalRemark}}</div>
-            </el-col>
-          </el-row>
-        </div>
-      </div>
-      
     </div>
     
     <div class="page-footer">
@@ -185,23 +199,21 @@
 </template>
 
 <script>
-import print from 'vue-print-nb'
 import { getApplyDetail } from "@/api/supply/apply";
+import { getFileUrl } from '@/api/common';
 
 export default {
   name: 'ApplyDetail',
   componentName: 'ApplyDetail',
   props: ['listItem'],
-  directives: {
-    print
-  },
   filters: {
     statusFilter(val) {
       const statusList = [
-        { label: '已保存', value: 1 },
-        { label: '待审核', value: 2 },
-        { label: '审核通过', value: 3 },
-        { label: '审核驳回', value: 4 },
+        { label: '已保存', value: 'SAVE' },
+        { label: '待审核', value: 'WAIT' },
+        { label: '审核通过', value: 'OK' },
+        { label: '审核驳回', value: 'FAIL' },
+        { label: '已关闭', value: 'CLOSE' },
       ];
       let obj = statusList.find(o => o.value == val);
       return obj ? obj.label : ''
@@ -209,9 +221,7 @@ export default {
   },
   data() {
     return {
-      printObj: {
-        id: 'printData'
-      },
+      imageURL: this.$imageUrl,
       detailData: {},
 
       isShowDeliverDialog: false,
@@ -234,7 +244,7 @@ export default {
       }
     },
     isExamine() {
-      return this.detailData.status === 3 || this.detailData.status === 4
+      return this.detailData.examineStatus === 'OK' || this.detailData.examineStatus === "FAIL"
     },
   },
 
@@ -255,6 +265,33 @@ export default {
       })
     },
 
+    // 检查文件类型
+    checkFileType(url) {
+      if(!url) return '';
+			const fileSuffix = url.substring(url.lastIndexOf(".") + 1);
+
+			if (['jpg', 'jpeg', 'png'].includes(fileSuffix)) {
+				return 'image';
+			}else if (['doc', 'docx', 'dot', 'wps', 'wpt'].includes(fileSuffix)) {
+				return 'word';
+			}else if(['xls', 'xlsx', 'xlt', 'et', 'ett'].includes(fileSuffix)) {
+				return 'excel';
+			}else if(['ppt', 'pptx', 'dps', 'dpt', 'pot', 'pps'].includes(fileSuffix)) {
+				return 'ppt';
+			}else if(['pdf'].includes(fileSuffix)) {
+				return 'pdf';
+			}else {
+        return '';
+      }
+		},
+
+    // 打开链接
+    openLink(url) {
+      getFileUrl({key: url}).then(res => {
+        window.open(res.data);
+      })
+    },
+
     // 打开 直调发货
     openDeliverDialog() {
       this.isShowDeliverDialog = true;

+ 7 - 6
src/views/supply/apply/components/apply_examine.vue

@@ -18,7 +18,7 @@
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">单据状态</div>
-          <div class="value">{{detailData.status | statusFilter}}</div>
+          <div class="value">{{detailData.examineStatus | statusFilter}}</div>
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">经销商编号</div>
@@ -137,10 +137,11 @@ export default {
   filters: {
     statusFilter(val) {
       const statusList = [
-        { label: '已保存', value: 1 },
-        { label: '待审核', value: 2 },
-        { label: '审核通过', value: 3 },
-        { label: '审核驳回', value: 4 },
+        { label: '已保存', value: 'SAVE' },
+        { label: '待审核', value: 'WAIT' },
+        { label: '审核通过', value: 'OK' },
+        { label: '审核驳回', value: 'FAIL' },
+        { label: '已关闭', value: 'CLOSE' },
       ];
       let obj = statusList.find(o => o.value == val);
       return obj ? obj.label : ''
@@ -248,7 +249,7 @@ export default {
       this.formLoading = true;
       examineApply({
         id: this.listItem.id,
-        status: this.examineForm.status ? 3 : 4,
+        examineStatus: this.examineForm.status ? 'OK' : 'FAIL',
         approvalRemark: this.examineForm.remark,
         orders: this.goodsList
       }).then(res => {

+ 38 - 45
src/views/supply/apply/components/apply_form.vue

@@ -8,9 +8,9 @@
 
     <el-form ref="mainForm" :model="mainForm" :rules="mainFormRules" label-width="90px" size="small" label-position="right">
       <el-row :gutter="20">
-        <el-col :xs="24" :sm="12" :lg="8" v-if="listItem">
+        <el-col :xs="24" :sm="12" :lg="8">
           <el-form-item label="订单号" prop="id">
-            <el-input v-model="listItem.id" readonly></el-input>
+            <el-input v-model="mainForm.orderNum" placeholder="系统自动生成" readonly></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8" style="height: 51px;">
@@ -24,23 +24,23 @@
             </el-date-picker>
           </el-form-item>
         </el-col>
-        <el-col :xs="24" :sm="12" :lg="8" v-if="listItem">
-          <el-form-item label="制单人" prop="serviceName">
-            <el-input v-model="listItem.serviceName" readonly></el-input>
-          </el-form-item>
-        </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
-          <el-form-item label="经销商" prop="dealer">
-            <el-select v-model="mainForm.dealer" placeholder="请选择经销商" style="width: 100%;">
-              <el-option :label="item.name" :value="item.id" v-for="(item, index) in dealerList" :key="index"></el-option>
-            </el-select>
+          <el-form-item label="制单人" prop="createMan">
+            <el-input v-model="mainForm.createMan" readonly></el-input>
           </el-form-item>
         </el-col>
-        <el-col :xs="24" :sm="24" :lg="24">
+        <el-col :xs="24" :sm="24" :lg="16">
           <el-form-item label="备注" prop="remark">
             <el-input v-model="mainForm.remark" placeholder="请输入备注"></el-input>
           </el-form-item>
         </el-col>
+        <el-col :xs="24" :sm="12" :lg="8">
+          <el-form-item label="经销商" prop="jxsNum">
+            <el-select v-model="mainForm.jxsNum" placeholder="请选择经销商" style="width: 100%;" disabled>
+              <el-option :label="item.name" :value="item.id" v-for="(item, index) in dealerList" :key="index"></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
         <el-col :xs="24" :sm="8" :lg="8">
           <el-form-item label="附件" prop="fileUrl">
             <fileUpload :fileList="fileList" />
@@ -76,11 +76,7 @@
           </template>
         </el-table-column>
         <el-table-column align="center" label="已申请数量" prop="alreadyInvoiceNum" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="未申请数量" min-width="100" show-overflow-tooltip>
-          <template slot-scope="scope">
-            {{scope.row.qty - scope.row.alreadyInvoiceNum}}
-          </template>
-        </el-table-column>
+        <el-table-column align="center" label="未申请数量" prop="refundableQty" min-width="100" show-overflow-tooltip> </el-table-column>
         <el-table-column align="center" label="备注" prop="remark" min-width="160" show-overflow-tooltip>
           <template slot-scope="scope">
             <el-input v-model="scope.row.remark" size="small"></el-input>
@@ -88,7 +84,7 @@
         </el-table-column>
         <el-table-column align="center" label="操作" width="100" fixed="right">
           <template slot-scope="scope">
-            <el-button type="text" @click="deleteItem(scope.row.orderId)">删除</el-button>
+            <el-button type="text" @click="deleteItem(scope.$index)">删除</el-button>
           </template>
         </el-table-column>
       </el-table>
@@ -96,7 +92,8 @@
     
     <div class="page-footer">
       <div class="footer" :class="classObj">
-        <el-button type="primary" @click="clickSubmitForm">保 存</el-button>
+        <el-button type="primary" @click="clickSubmitForm('SAVE')">保 存</el-button>
+        <el-button type="primary" @click="clickSubmitForm('WAIT')">提交审核</el-button>
         <el-popconfirm title="确定关闭吗?" @onConfirm="goBack" style="margin-left: 10px;">
           <el-button slot="reference">关 闭</el-button>
         </el-popconfirm>
@@ -149,21 +146,13 @@
             </template>
           </el-table-column>
           <el-table-column align="center" label="已申请数量" prop="alreadyInvoiceNum" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="未申请数量" min-width="100" show-overflow-tooltip>
-            <template slot-scope="scope">
-              {{scope.row.qty - scope.row.alreadyInvoiceNum}}
-            </template>
-          </el-table-column>
+          <el-table-column align="center" label="未申请数量" prop="refundableQty" min-width="100" show-overflow-tooltip></el-table-column>
           <el-table-column align="center" label="总库存数量" prop="stockAdequate" min-width="100" show-overflow-tooltip>
             <template slot-scope="scope">
               {{scope.row.stockAdequate | stockFilter}}
             </template>
           </el-table-column>
-          <el-table-column align="center" label="对应库存数量" prop="stockCorrespond" min-width="110" show-overflow-tooltip>
-            <template slot-scope="scope">
-              {{scope.row.stockCorrespond | stockFilter}}
-            </template>
-          </el-table-column>
+          <el-table-column align="center" label="对应库存数量" prop="stockCorrespond" min-width="110" show-overflow-tooltip></el-table-column>
         </el-table>
         <div class="pagination clearfix" style="margin-top: 10px">
           <div class="fr">
@@ -213,17 +202,16 @@ export default {
   data() {
     return {
       mainForm: {
+        orderNum: '',
         date: '',
-        dealer: '',
+        jxsNum: '',
         remark: '',
+        createMan: '',
       },
       mainFormRules: {
         date: [
           { required: true, message: '请选择单据日期', trigger: 'change' }
         ],
-        dealer: [
-          { required: true, message: '请选择经销商', trigger: 'change' }
-        ],
       },
       dealerList: [],
       fileList: [],
@@ -263,6 +251,9 @@ export default {
     this.getDealerList();
     if(this.listItem) {
       this.getDetail();
+    }else {
+      this.mainForm.jxsNum = JSON.parse(localStorage.getItem("supply_user")).customerId;
+      this.mainForm.createMan = JSON.parse(localStorage.getItem("supply_user")).nickName;
     }
   },
 
@@ -276,8 +267,10 @@ export default {
     getDetail() {
       getApplyDetail({id: this.listItem.id}).then(res => {
         let data = res.data;
+        this.mainForm.orderNum = data.id;
         this.mainForm.date = data.orderTime;
-        this.mainForm.dealer = data.customerNumber;
+        this.mainForm.jxsNum = data.customerNumber;
+        this.mainForm.createMan = data.createBy;
         this.mainForm.remark = data.remark;
         this.screenForm.warehouse = data.correspondId;
         this.fileList = data.fileUrl ? [{
@@ -326,7 +319,8 @@ export default {
         stockId: this.screenForm.warehouse,
         mainId: this.screenForm.type,
         id: this.screenForm.orderNum,
-        // examineStatus: 'OK',
+        examineStatus: 'OK',
+        type: 1,
       }).then(res => {
         let goodsList = [];
         res.data.records.forEach(item => {
@@ -342,6 +336,7 @@ export default {
             qty: item.qty,
             invoiceNum: item.invoiceNum,
             alreadyInvoiceNum: item.alreadyInvoiceNum,
+            refundableQty: item.refundableQty,
             stockAdequate: item.stockAdequate,
             stockCorrespond: item.stockCorrespond,
           })
@@ -460,14 +455,15 @@ export default {
     },
 
     // 删除产品
-    deleteItem(id) {
-      this.goodsList = this.goodsList.filter((item) => {
-        return item.orderId != id
-      })
+    deleteItem(index) {
+      this.goodsList.splice(index, 1);
+      // this.goodsList = this.goodsList.filter((item) => {
+      //   return item.orderId != id
+      // })
     },
 
     // 保存
-    clickSubmitForm() {
+    clickSubmitForm(status) {
       this.$refs.mainForm.validate((valid) => {
         if (valid) {
           for(let i=0; i<this.goodsList.length; i++) {
@@ -483,12 +479,10 @@ export default {
             }
           }
 
-          let customerName = this.dealerList[findElem(this.dealerList, 'id', this.mainForm.dealer)].name;
           let correspondName = this.warehouseList[findElem(this.warehouseList, 'id', this.screenForm.warehouse)].name;
           let params = {
+            id: this.listItem ? this.listItem.id : '',
             orderTime: this.mainForm.date + ' 00:00:00',
-            customerNumber: this.mainForm.dealer,
-            customerName,
             remark: this.mainForm.remark,
             fileUrl: this.fileList && this.fileList.length > 0 ? this.fileList[0].url : '',
             fileName: this.fileList && this.fileList.length > 0 ? this.fileList[0].name : '',
@@ -496,10 +490,9 @@ export default {
             correspondId: this.screenForm.warehouse,
             correspondName,
             orders: this.goodsList,
-            status: 1, // 1保存 2待审核 3通过 4驳回
+            examineStatus: status,
           }
           if(this.listItem) {
-            params.id = this.listItem.id;
             editApply(params).then(res => {
               this.$successMsg('编辑成功');
               this.goBack();

+ 118 - 19
src/views/supply/engin/components/engin_examine.vue

@@ -66,7 +66,16 @@
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">合同有效期</div>
-          <div class="value">{{detailData.contractExpireDate}}</div>
+          <div class="value">
+            <el-date-picker
+              v-model="detailData.contractExpireDate"
+              type="date"
+              prefix-icon="none"
+              value-format="yyyy-MM-dd"
+              style="width: 100%;"
+              placeholder="选择日期">
+            </el-date-picker>
+          </div>
         </el-col>
         <el-col :span="16" class="item">
           <div class="label">备注</div>
@@ -84,11 +93,11 @@
     </div>
 
     <div class="table" style="margin-top: 20px">
-      <el-table :data="detailData.items" element-loading-text="Loading" border fit highlight-current-row stripe max-height="400">
+      <el-table :data="goodsList" element-loading-text="Loading" border fit highlight-current-row stripe max-height="400">
         <el-table-column align="center" label="序号" type="index" width="50"></el-table-column>
         <el-table-column align="center" label="销售类型" prop="saleTypeId" min-width="160" show-overflow-tooltip>
           <template slot-scope="scope">
-            <el-select v-model="scope.row.saleTypeId" placeholder="选择销售类型" size="small" @change="changeWallet(scope.$index)">
+            <el-select v-model="scope.row.saleTypeId" placeholder="选择销售类型" size="small" @change="changeSaleType(scope.$index)">
               <el-option
                 v-for="item in salesTypeList"
                 :key="item.id"
@@ -98,17 +107,34 @@
             </el-select>
           </template>
         </el-table-column>
-        <el-table-column align="center" label="产品编码" prop="materialNumber" min-width="160" show-overflow-tooltip>
-          
+        <el-table-column align="center" label="产品名称" prop="materialNumber" min-width="160" show-overflow-tooltip>
+          <template slot-scope="scope">
+            <el-select v-model="scope.row.materialNumber" placeholder="选择产品" size="small" @change="changeGoods(scope.$index)">
+              <el-option
+                v-for="item in retailProductList"
+                :key="item.number"
+                :label="item.name"
+                :value="item.number">
+              </el-option>
+            </el-select>
+          </template>
         </el-table-column>
-        <el-table-column align="center" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="规格型号" prop="specification" min-width="160" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="产品编码" prop="materialNumber" min-width="120" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="规格型号" prop="specification" min-width="200" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="单位" prop="baseUnitId" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="单价" prop="price" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="数量" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="单价" prop="price" min-width="100" show-overflow-tooltip>
+          <template slot-scope="scope">
+            <el-input v-model="scope.row.price" size="small" type="number"></el-input>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="数量" prop="qty" min-width="100" show-overflow-tooltip>
+          <template slot-scope="scope">
+            <el-input v-model="scope.row.qty" size="small" type="number"></el-input>
+          </template>
+        </el-table-column>
         <el-table-column align="center" label="订单金额" min-width="100" show-overflow-tooltip>
           <template slot-scope="scope">
-            {{scope.row.price * scope.row.qty}}
+            {{(scope.row.price || 0) * (scope.row.qty || 0)}}
           </template>
         </el-table-column>
         <el-table-column align="center" label="备注" prop="remark" min-width="200" show-overflow-tooltip>
@@ -117,7 +143,13 @@
           </template>
         </el-table-column>
         <el-table-column align="center" label="税率" prop="taxRate" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="操作" width="100" fixed="right">
+          <template slot-scope="scope">
+            <el-button type="text" @click="deleteItem(scope.$index)">删除</el-button>
+          </template>
+        </el-table-column>
       </el-table>
+      <div class="add"><el-button type="text" icon="el-icon-plus" @click="addGoods">添加产品</el-button></div>
     </div>
 
     <div class="main-title">
@@ -162,7 +194,7 @@
 </template>
 
 <script>
-import { getEnginDetail } from "@/api/supply/engin";
+import { getEnginDetail, getRetailProductList, examineEngin } from "@/api/supply/engin";
 import { getTypeList } from "@/api/common";
 
 export default {
@@ -185,6 +217,7 @@ export default {
   data() {
     return {
       detailData: {},
+      goodsList: [],
       userName: JSON.parse(localStorage.getItem("supply_user")).nickName,
 
       formLoading: false,
@@ -194,6 +227,7 @@ export default {
       },
 
       salesTypeList: [],
+      retailProductList: [],
     }
   },
 
@@ -212,6 +246,7 @@ export default {
   created() {
     this.getDetail();
     this.getTypeList();
+    this.getRetailProductList();
   },
 
   methods: {
@@ -224,6 +259,7 @@ export default {
     getDetail() {
       getEnginDetail({id: this.listItem.enginInfoId}).then(res => {
         this.detailData = res.data;
+        this.goodsList = res.data.items;
       })
     },
 
@@ -237,18 +273,64 @@ export default {
       });
     },
 
-    // 修改返利钱包
-    changeWallet(index) {
-      if(this.goodsList[index].customerWalletId2) {
-        let obj = this.flWalletList.find(o => o.customerWalletId == this.goodsList[index].customerWalletId2);
-        this.goodsList[index].rebateRate = obj.rebateRate;
-      }else {
-        this.goodsList[index].rebateRate = '';
+    // 获取商品列表
+    getRetailProductList() {
+      getRetailProductList({
+        pageNum: 1,
+        pageSize: -1,
+      }).then(res => {
+        this.retailProductList = res.data.records;
+      })
+    },
+
+    // 修改销售类型
+    changeSaleType(index) {
+      if(this.goodsList[index].saleTypeId) {
+        let obj = this.salesTypeList.find(o => o.id == this.goodsList[index].saleTypeId);
+        this.goodsList[index].saleTypeName = obj.saleName;
+        this.goodsList[index].saleTypeCode = obj.saleCode;
       }
     },
 
-    clickSubmitForm() {
+    // 修改产品
+    changeGoods(index) {
+      if(this.goodsList[index].materialNumber) {
+        let obj = this.retailProductList.find(o => o.number == this.goodsList[index].materialNumber);
+        this.goodsList[index].materialName = obj.name;
+        this.goodsList[index].materialId = obj.materialId;
+        this.goodsList[index].specification = obj.specification;
+        this.goodsList[index].baseUnitId = obj.baseUnit;
+        this.goodsList[index].price = obj.batchPrice;
+        this.goodsList[index].taxRate = obj.taxRate;
+        this.goodsList[index].mainId = obj.mainId;
+      }
+    },
+
+    // 添加产品
+    addGoods() {
+      this.goodsList.push({})
+    },
+
+    // 删除产品
+    deleteItem(index) {
+      this.goodsList.splice(index, 1);
+    },
 
+    clickSubmitForm() {
+      this.formLoading = true;
+      examineEngin({
+        enginInfoId: this.listItem.enginInfoId,
+        examineStatus: this.examineForm.status ? 'OK' : 'FAIL',
+        examineNote: this.examineForm.remark,
+        contractExpireDate: this.detailData.contractExpireDate,
+        items: this.goodsList,
+      }).then(res => {
+        this.$successMsg('审批成功');
+        this.goBack();
+        this.$parent.getList();
+      }).finally(res => {
+        this.formLoading = false;
+      })
     },
 
   }
@@ -274,4 +356,21 @@ export default {
       padding-left: 10px;
     }
   }
+
+  .add {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    border: 1px solid #EBEEF5;
+    border-top: none;
+    height: 50px;
+  }
+
+  ::v-deep input::-webkit-outer-spin-button,
+  ::v-deep input::-webkit-inner-spin-button {
+    -webkit-appearance: none;
+  }
+  ::v-deep input[type='number'] {
+    -moz-appearance: textfield;
+  }
 </style>

+ 315 - 55
src/views/supply/engin/components/engin_form.vue

@@ -6,17 +6,17 @@
       <div class="title">工程信息单</div>
     </div>
 
-    <el-form ref="mainForm" :model="mainForm" label-width="100px" size="small" label-position="left">
+    <el-form ref="mainForm" :model="mainForm" :rules="mainFormRules" label-width="100px" size="small" label-position="left">
       <el-row :gutter="20">
         <el-col :xs="24" :sm="12" :lg="8">
-          <el-form-item label="工程信息单" prop="warehouse">
-            <el-input v-model="mainForm.remark" placeholder="请输入工程信息单"></el-input>
+          <el-form-item label="工程信息单" prop="orderNum">
+            <el-input v-model="mainForm.orderNum" placeholder="系统自动生成" readonly></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8" style="height: 51px;">
-          <el-form-item label="单据日期" prop="date">
+          <el-form-item label="单据日期" prop="orderDate">
             <el-date-picker
-              v-model="mainForm.date"
+              v-model="mainForm.orderDate"
               type="date"
               value-format="yyyy-MM-dd"
               style="width: 100%;"
@@ -25,75 +25,78 @@
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
-          <el-form-item label="品类" prop="warehouse">
-            <el-input v-model="mainForm.remark" placeholder="请输入品类"></el-input>
+          <el-form-item label="产品大类" prop="mainId">
+            <el-select v-model="mainForm.mainId" placeholder="选择产品大类" style="width: 100%">
+              <el-option v-for="item in typeList" :key="item.dictCode" :label="item.dictValue" :value="item.dictCode"></el-option>
+            </el-select>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
-          <el-form-item label="经销商编码" prop="warehouse">
-            <el-input v-model="mainForm.remark" placeholder="请输入经销商编码"></el-input>
+          <el-form-item label="经销商编码" prop="jxsNum">
+            <el-input v-model="mainForm.jxsNum" placeholder="请输入经销商编码" readonly></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
-          <el-form-item label="项目名称" prop="warehouse">
-            <el-input v-model="mainForm.remark" placeholder="请输入项目名称"></el-input>
+          <el-form-item label="项目名称" prop="enginName">
+            <el-input v-model="mainForm.enginName" placeholder="请输入项目名称"></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
-          <el-form-item label="单据类型" prop="warehouse">
-            <el-input v-model="mainForm.remark" placeholder="请输入单据类型"></el-input>
+          <el-form-item label="单据类型" prop="orderType">
+            <el-input v-model="mainForm.orderType" placeholder="请输入单据类型"></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
-          <el-form-item label="经销商名称" prop="warehouse">
-            <el-input v-model="mainForm.remark" placeholder="请输入经销商名称"></el-input>
+          <el-form-item label="经销商名称" prop="jxsName">
+            <el-input v-model="mainForm.jxsName" placeholder="请输入经销商名称" readonly></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
-          <el-form-item label="使用单位" prop="warehouse">
-            <el-input v-model="mainForm.remark" placeholder="请输入使用单位"></el-input>
+          <el-form-item label="使用单位" prop="company">
+            <el-input v-model="mainForm.company" placeholder="请输入使用单位"></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
-          <el-form-item label="安装地址" prop="warehouse">
-            <el-input v-model="mainForm.remark" placeholder="请输入安装地址"></el-input>
+          <el-form-item label="安装地址" prop="address">
+            <el-input v-model="mainForm.address" placeholder="请输入安装地址"></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
-          <el-form-item label="工程编号" prop="warehouse">
-            <el-input v-model="mainForm.remark" placeholder="请输入工程编号"></el-input>
+          <el-form-item label="工程编号" prop="enginNum">
+            <el-input v-model="mainForm.enginNum" placeholder="请输入工程编号"></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
-          <el-form-item label="厂工程编码" prop="warehouse">
-            <el-input v-model="mainForm.remark" placeholder="请输入厂工程编码"></el-input>
+          <el-form-item label="厂工程编码" prop="factoryNum">
+            <el-input v-model="mainForm.factoryNum" placeholder="请输入厂工程编码"></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
-          <el-form-item label="工程登录类型" prop="warehouse">
-            <el-input v-model="mainForm.remark" placeholder="请输入工程登录类型"></el-input>
+          <el-form-item label="工程登录类型" prop="loginType">
+            <el-input v-model="mainForm.loginType" placeholder="请输入工程登录类型"></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="24" :lg="16">
-          <el-form-item label="备注" prop="warehouse">
+          <el-form-item label="备注" prop="remark">
             <el-input v-model="mainForm.remark" placeholder="请输入备注"></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
-          <el-form-item label="业务员" prop="warehouse">
-            <el-input v-model="mainForm.remark" placeholder="请输入业务员"></el-input>
+          <el-form-item label="业务员" prop="salesMan">
+            <el-input v-model="mainForm.salesMan" placeholder="请输入业务员" readonly></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
-          <el-form-item label="制单人" prop="warehouse">
-            <el-input v-model="mainForm.remark" placeholder="请输入制单人"></el-input>
+          <el-form-item label="制单人" prop="createMan">
+            <el-input v-model="mainForm.createMan" placeholder="请输入制单人" readonly></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8" style="height: 51px;">
-          <el-form-item label="制单日期" prop="date">
+          <el-form-item label="制单日期" prop="createDate">
             <el-date-picker
-              v-model="mainForm.date"
+              v-model="mainForm.createDate"
               type="date"
+              readonly
               value-format="yyyy-MM-dd"
               style="width: 100%;"
               placeholder="选择日期">
@@ -101,9 +104,9 @@
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8" style="height: 51px;">
-          <el-form-item label="合同有效期" prop="date">
+          <el-form-item label="合同有效期" prop="contractDate">
             <el-date-picker
-              v-model="mainForm.date"
+              v-model="mainForm.contractDate"
               type="date"
               value-format="yyyy-MM-dd"
               style="width: 100%;"
@@ -116,29 +119,72 @@
 
     <div class="main-title">
       <div class="title">货品信息</div>
-      <el-button type="primary" size="small" icon="el-icon-plus">添加货品</el-button>
     </div>
 
     <div class="table" style="margin-top: 20px">
-      <el-table :data="detailData.kingDeeTransferItems" element-loading-text="Loading" border fit highlight-current-row stripe max-height="400">
+      <el-table :data="goodsList" element-loading-text="Loading" border fit highlight-current-row stripe max-height="400">
         <el-table-column align="center" label="序号" type="index" width="50"></el-table-column>
-        <el-table-column align="center" label="销售类型" prop="materialName" min-width="160" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="产品编码" prop="model" min-width="160" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="产品名称" prop="baseUnitId" min-width="160" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="规格型号" prop="qty" min-width="160" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="单位" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="单价" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="数量" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="订单金额" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="备注" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="税率" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="销售类型" prop="saleTypeId" min-width="160" show-overflow-tooltip>
+          <template slot-scope="scope">
+            <el-select v-model="scope.row.saleTypeId" placeholder="选择销售类型" size="small" @change="changeSaleType(scope.$index)">
+              <el-option
+                v-for="item in salesTypeList"
+                :key="item.id"
+                :label="item.saleName"
+                :value="item.id">
+              </el-option>
+            </el-select>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="产品名称" prop="materialNumber" min-width="160" show-overflow-tooltip>
+          <template slot-scope="scope">
+            <el-select v-model="scope.row.materialNumber" placeholder="选择产品" size="small" @change="changeGoods(scope.$index)">
+              <el-option
+                v-for="item in retailProductList"
+                :key="item.number"
+                :label="item.name"
+                :value="item.number">
+              </el-option>
+            </el-select>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="产品编码" prop="materialNumber" min-width="120" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="规格型号" prop="specification" min-width="200" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="单位" prop="baseUnitId" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="单价" prop="price" min-width="100" show-overflow-tooltip>
+          <template slot-scope="scope">
+            <el-input v-model="scope.row.price" size="small" type="number"></el-input>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="数量" prop="qty" min-width="100" show-overflow-tooltip>
+          <template slot-scope="scope">
+            <el-input v-model="scope.row.qty" size="small" type="number"></el-input>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="订单金额" min-width="100" show-overflow-tooltip>
+          <template slot-scope="scope">
+            {{(scope.row.price || 0) * (scope.row.qty || 0)}}
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="备注" prop="remark" min-width="200" show-overflow-tooltip>
+          <template slot-scope="scope">
+            <el-input v-model="scope.row.remark" size="small"></el-input>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="税率" prop="taxRate" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="操作" width="100" fixed="right">
+          <template slot-scope="scope">
+            <el-button type="text" @click="deleteItem(scope.$index)">删除</el-button>
+          </template>
+        </el-table-column>
       </el-table>
+      <div class="add"><el-button type="text" icon="el-icon-plus" @click="addGoods">添加产品</el-button></div>
     </div>
     
     <div class="page-footer">
       <div class="footer" :class="classObj">
-        <el-button type="primary" @click="clickSubmitForm">保 存</el-button>
-        <el-button type="primary" @click="clickSubmitForm">提交审核</el-button>
+        <el-button type="primary" @click="clickSubmitForm(1)">保 存</el-button>
+        <el-button type="primary" @click="clickSubmitForm(2)">提交审核</el-button>
         <el-popconfirm title="确定关闭吗?" @onConfirm="goBack" style="margin-left: 10px;">
           <el-button slot="reference">关 闭</el-button>
         </el-popconfirm>
@@ -149,7 +195,8 @@
 </template>
 
 <script>
-import { getDetail } from "@/api/supply/engin";
+import { getEnginDetail, getRetailProductList, addEngin, editEngin, submitEngin } from "@/api/supply/engin";
+import { getDictList, getTypeList } from '@/api/common'
 
 export default {
   name: 'EnginForm',
@@ -157,10 +204,38 @@ export default {
   props: ['listItem'],
   data() {
     return {
-      detailData: {},
+      goodsList: [],
       mainForm: {
-
+        orderNum: '',
+        orderDate: '',
+        mainId: '102',
+        jxsNum: '',
+        enginName: '',
+        orderType: '',
+        jxsName: '',
+        company: '',
+        address: '',
+        enginNum: '',
+        factoryNum: '',
+        loginType: '',
+        remark: '',
+        salesMan: '',
+        createMan: '',
+        createDate: '',
+        contractDate: '',
+      },
+      mainFormRules: {
+        orderDate: [{ required: true, message: '请选择单据日期', trigger: 'change' }],
+        jxsNum: [{ required: true, message: '请输入经销商编码', trigger: 'blur' }],
+        enginName: [{ required: true, message: '请输入项目名称', trigger: 'blur' }],
+        jxsName: [{ required: true, message: '请输入经销商名称', trigger: 'blur' }],
+        company: [{ required: true, message: '请输入使用单位', trigger: 'blur' }],
+        address: [{ required: true, message: '请输入安装地址', trigger: 'blur' }],
       },
+
+      typeList: [],
+      salesTypeList: [],
+      retailProductList: [],
     }
   },
 
@@ -174,10 +249,22 @@ export default {
         openSidebar: this.sidebar.opened
       }
     },
+    
   },
 
   created() {
-    this.getDetail();
+    this.getDictList();
+    this.getTypeList();
+    this.getRetailProductList();
+    if(this.listItem) {
+      this.getDetail();
+    }else {
+      this.mainForm.jxsNum = JSON.parse(localStorage.getItem("supply_user")).customerId;
+      this.mainForm.jxsName = JSON.parse(localStorage.getItem("supply_user")).customerName;
+      this.mainForm.createMan = JSON.parse(localStorage.getItem("supply_user")).nickName;
+      this.mainForm.createDate = this.getDate(0);
+      this.mainForm.contractDate = this.getDate(1);
+    }
   },
 
   methods: {
@@ -186,15 +273,171 @@ export default {
       this.$emit('backListFormDetail');
     },
 
+    getDate(addYear) {
+      var date = new Date();
+      var seperator1 = "-";
+      var year = date.getFullYear() + addYear;
+      var month = date.getMonth() + 1;
+      var strDate = date.getDate();
+      if (month >= 1 && month <= 9) {
+          month = "0" + month;
+      }
+      if (strDate >= 0 && strDate <= 9) {
+          strDate = "0" + strDate;
+      }
+      var currentdate = year + seperator1 + month + seperator1 + strDate;
+      return currentdate;
+    },
+
     // 获取详情
     getDetail() {
-      getDetail({id: this.listItem.id}).then(res => {
-        this.detailData = res.data;
+      getEnginDetail({id: this.listItem.enginInfoId}).then(res => {
+        let data = res.data;
+        this.mainForm.orderNum = data.enginInfoNo;
+        this.mainForm.orderDate = data.orderDate;
+        this.mainForm.mainId = data.productCategoryId;
+        this.mainForm.jxsNum = data.customerId;
+        this.mainForm.enginName = data.projectName;
+        this.mainForm.orderType = data.orderType;
+        this.mainForm.jxsName = data.customerName;
+        this.mainForm.company = data.useUnit;
+        this.mainForm.address = data.installAddress;
+        this.mainForm.enginNum = data.projectNo;
+        this.mainForm.factoryNum = data.enginFactoryNo;
+        this.mainForm.loginType = data.enginSignType;
+        this.mainForm.remark = data.remark;
+        this.mainForm.salesMan = data.serviceId;
+        this.mainForm.createMan = data.createName;
+        this.mainForm.createDate = data.createTime;
+        this.mainForm.contractDate = data.contractExpireDate;
+
+        this.goodsList = data.items;
+      })
+    },
+
+    // 获取产品大类列表
+    getDictList() {
+      getDictList({sysDictEnum: 'PRODUCT_TYPE'}).then(res => {
+        this.typeList = res.data;
+      })
+    },
+
+    // 获取销售类型列表
+    getTypeList() {
+      getTypeList({
+        pageNum: 1,
+        pageSize: -1,
+      }).then((res) => {
+        this.salesTypeList = res.data.records;
+      });
+    },
+
+    // 获取商品列表
+    getRetailProductList() {
+      getRetailProductList({
+        pageNum: 1,
+        pageSize: -1,
+      }).then(res => {
+        this.retailProductList = res.data.records;
       })
     },
 
-    clickSubmitForm() {
+    // 修改销售类型
+    changeSaleType(index) {
+      if(this.goodsList[index].saleTypeId) {
+        let obj = this.salesTypeList.find(o => o.id == this.goodsList[index].saleTypeId);
+        this.goodsList[index].saleTypeName = obj.saleName;
+        this.goodsList[index].saleTypeCode = obj.saleCode;
+      }
+    },
+
+    // 修改产品
+    changeGoods(index) {
+      if(this.goodsList[index].materialNumber) {
+        let obj = this.retailProductList.find(o => o.number == this.goodsList[index].materialNumber);
+        this.goodsList[index].materialName = obj.name;
+        this.goodsList[index].materialId = obj.materialId;
+        this.goodsList[index].specification = obj.specification;
+        this.goodsList[index].baseUnitId = obj.baseUnit;
+        this.goodsList[index].price = obj.batchPrice;
+        this.goodsList[index].taxRate = obj.taxRate;
+        this.goodsList[index].mainId = obj.mainId;
+      }
+    },
+
+    // 添加产品
+    addGoods() {
+      this.goodsList.push({})
+    },
+
+    // 删除产品
+    deleteItem(index) {
+      this.goodsList.splice(index, 1);
+    },
 
+    clickSubmitForm(type) {
+      this.$refs.mainForm.validate((valid) => {
+        if (valid) {
+          for(let i=0; i<this.goodsList.length; i++) {
+            if(!this.goodsList[i].saleTypeId) {
+              this.$errorMsg('请选择销售类型');
+              return;
+            }
+          }
+          for(let i=0; i<this.goodsList.length; i++) {
+            if(!this.goodsList[i].materialNumber) {
+              this.$errorMsg('请选择产品');
+              return;
+            }
+          }
+          for(let i=0; i<this.goodsList.length; i++) {
+            if(!this.goodsList[i].qty) {
+              this.$errorMsg('请输入数量');
+              return;
+            }
+          }
+
+          let params = {
+            orderDate: this.mainForm.orderDate + ' 00:00:00',
+            productCategoryId: this.mainForm.mainId,
+            projectName: this.mainForm.enginName,
+            orderType: this.mainForm.orderType,
+            useUnit: this.mainForm.company,
+            installAddress: this.mainForm.address,
+            projectNo: this.mainForm.enginNum,
+            enginFactoryNo: this.mainForm.factoryNum,
+            enginSignType: this.mainForm.loginType,
+            remark: this.mainForm.remark,
+            contractExpireDate: this.mainForm.contractDate,
+            items: this.goodsList
+          }
+          if(type === 1) {
+            if(this.listItem) {
+              params.enginInfoId = this.listItem.enginInfoId;
+              editEngin(params).then(res => {
+                this.$successMsg('编辑成功');
+                this.goBack();
+                this.$parent.getList();
+              })
+            }else {
+              addEngin(params).then(res => {
+                this.$successMsg('保存成功');
+                this.goBack();
+                this.$parent.getList();
+              })
+            }
+          }else {
+            if(this.listItem) {
+              params.enginInfoId = this.listItem.enginInfoId;
+            }
+            submitEngin(params).then(res => {
+              this.$successMsg('提交审核成功');
+              this.goBack();
+              this.$parent.getList();
+            })
+          }
+        }
+      })
     },
   }
 }
@@ -219,4 +462,21 @@ export default {
       padding-left: 10px;
     }
   }
+
+  .add {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    border: 1px solid #EBEEF5;
+    border-top: none;
+    height: 50px;
+  }
+
+  ::v-deep input::-webkit-outer-spin-button,
+  ::v-deep input::-webkit-inner-spin-button {
+    -webkit-appearance: none;
+  }
+  ::v-deep input[type='number'] {
+    -moz-appearance: textfield;
+  }
 </style>

+ 32 - 6
src/views/supply/engin/engin_list.vue

@@ -89,7 +89,7 @@
         <div class="table">
           <el-table v-loading="listLoading" :data="dataList" element-loading-text="Loading" border fit highlight-current-row stripe>
             <el-table-column align="center" label="工程信息单" prop="enginInfoNo" min-width="200" show-overflow-tooltip></el-table-column>
-            <el-table-column align="center" label="单据日期" prop="createTime" min-width="160" show-overflow-tooltip></el-table-column>
+            <el-table-column align="center" label="单据日期" prop="orderDate" min-width="160" show-overflow-tooltip></el-table-column>
             <el-table-column align="center" label="经销商编码" prop="customerId" min-width="120" show-overflow-tooltip></el-table-column>
             <el-table-column align="center" label="经销商名称" prop="customerName" min-width="160" show-overflow-tooltip></el-table-column>
             <el-table-column align="center" label="工程名称" prop="projectName" min-width="160" show-overflow-tooltip></el-table-column>
@@ -108,12 +108,18 @@
                 {{scope.row.examineStatus | statusFilter}}
               </template>
             </el-table-column>
-            <el-table-column align="center" label="操作" width="160" fixed="right">
+            <el-table-column align="center" label="操作" width="180" fixed="right">
               <template slot-scope="scope">
+                <el-popconfirm style="margin-right: 10px;" title="确定申请吗?" @onConfirm="handleSubmit(scope.row.enginInfoId)" v-if="scope.row.examineStatus === 'SAVE'" >
+                  <el-button slot="reference" type="text">申请</el-button>
+                </el-popconfirm>
+                <el-popconfirm style="margin-right: 10px;" title="确定撤回吗?" @onConfirm="handleWithdraw(scope.row.enginInfoId)" v-if="scope.row.examineStatus === 'WAIT'" >
+                  <el-button slot="reference" type="text">撤回</el-button>
+                </el-popconfirm>
                 <el-button type="text" @click="toForm(scope.row)" v-if="scope.row.examineStatus === 'SAVE'">编辑</el-button>
-                <el-button type="text" @click="toExamine(scope.row)" v-if="scope.row.examineStatus === 'SAVE'">审批</el-button>
+                <el-button type="text" @click="toExamine(scope.row)" v-if="scope.row.examineStatus === 'WAIT'">审批</el-button>
                 <el-button type="text" @click="toDetail(scope.row)">详情</el-button>
-                <el-popconfirm v-if="scope.row.status" style="margin-left: 10px;" title="确定删除吗?" @onConfirm="handleDelete(scope.row.id)" >
+                <el-popconfirm style="margin-left: 10px;" title="确定删除吗?" @onConfirm="handleDelete(scope.row.enginInfoId)" >
                   <el-button slot="reference" type="text">删除</el-button>
                 </el-popconfirm>
               </template>
@@ -144,7 +150,7 @@
 </template>
 
 <script>
-import { getEnginList } from "@/api/supply/engin";
+import { getEnginList, applyEngin, withdrawEngin, deleteEngin } from "@/api/supply/engin";
 import EnginDetail from "@/views/supply/engin/components/engin_detail";
 import EnginForm from "@/views/supply/engin/components/engin_form";
 import EnginExamine from "@/views/supply/engin/components/engin_examine";
@@ -309,8 +315,28 @@ export default {
       this.isShowExamine = false;
     },
 
-    handleDelete(id) {
+    // 申请
+    handleSubmit(id) {
+      applyEngin({id}).then(res => {
+        this.$successMsg();
+        this.getList();
+      })
+    },
 
+    // 撤回
+    handleWithdraw(id) {
+      withdrawEngin({id}).then(res => {
+        this.$successMsg();
+        this.getList();
+      })
+    },
+
+    // 删除
+    handleDelete(id) {
+      deleteEngin({id}).then(res => {
+        this.$successMsg();
+        this.getList();
+      })
     }
   }
 }

+ 1 - 1
src/views/supply/policy/components/policy_list.vue

@@ -198,7 +198,7 @@
 </template>
 <script>
 import Mixin from "@/mixin/index";
-import { getList } from "@/api/supply/retail";
+import { getList } from "@/api/supply/policy";
 import { downloadFiles } from "@/utils/util";
 
 export default {

+ 3 - 3
src/views/supply/policy/components/retail_detail.vue

@@ -114,13 +114,13 @@
         </el-row>
       </div>
     </div>
-
+<!--
     <div class="page-footer">
       <div class="footer" :class="classObj">
         <el-button type="primary" @click="openDeliverDialog">直调发货</el-button>
         <el-button @click="goBack">关 闭</el-button>
       </div>
-    </div>
+    </div> -->
 
     <el-dialog title="直调发货" :visible.sync="isShowDeliverDialog" width="80%">
       <el-form ref="deliverForm" :model="deliverForm" label-width="70px" size="small" label-position="left">
@@ -193,7 +193,7 @@
 </template>
 
 <script>
-import { getDetail } from "@/api/supply/retail";
+import { getDetail } from "@/api/supply/policy";
 
 export default {
   name: 'RetailDetail',

+ 214 - 83
src/views/supply/policy/components/retail_examine.vue

@@ -10,35 +10,35 @@
       <el-row>
         <el-col :span="8" class="item">
           <div class="label">订单号</div>
-          <div class="value">{{detailData.id}}</div>
+          <div class="value">{{ detailData.id }}</div>
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">订单日期</div>
-          <div class="value">{{detailData.theTime}}</div>
+          <div class="value">{{ detailData.theTime }}</div>
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">单据状态</div>
-          <div class="value">{{detailData.examineStatus | statusFilter}}</div>
+          <div class="value">{{ detailData.examineStatus | statusFilter }}</div>
         </el-col>
         <el-col :span="16" class="item">
           <div class="label">备注</div>
-          <div class="value">{{detailData.remark}}</div>
+          <div class="value">{{ detailData.remark }}</div>
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">业务员</div>
-          <div class="value">{{detailData.serviceName}}</div>
+          <div class="value">{{ detailData.serviceName }}</div>
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">制单人</div>
-          <div class="value">{{detailData.createName}}</div>
+          <div class="value">{{ detailData.createName }}</div>
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">审核人</div>
-          <div class="value">{{detailData.examineName}}</div>
+          <div class="value">{{ detailData.examineName }}</div>
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">关闭人</div>
-          <div class="value">{{detailData.closeName}}</div>
+          <div class="value">{{ detailData.closeName }}</div>
         </el-col>
       </el-row>
     </div>
@@ -48,41 +48,162 @@
     </div>
 
     <div class="table" style="margin-top: 20px">
-      <el-table :data="detailData.retailOrderItemList" element-loading-text="Loading" border fit highlight-current-row stripe max-height="400">
-        <el-table-column align="center" label="序号" type="index" width="50"></el-table-column>
-        <el-table-column align="center" label="销售类型" prop="saleTypeName" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="产品编码" prop="materialCode" min-width="160" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="规格型号" prop="specification" min-width="160" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="单位" prop="unit" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="单价" prop="price" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="数量" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="订单金额" prop="totalAmount" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="返利类型" prop="walletRebateName" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="返利金额" prop="rebateAmount" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="格力折扣" prop="deductAmount" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="现金钱包" prop="walletRebateName2" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="实付金额" prop="payAmount" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="是否直调" prop="isDirectTransfer" min-width="100" show-overflow-tooltip>
+      <el-table
+        :data="detailData.retailOrderItemList"
+        element-loading-text="Loading"
+        border
+        fit
+        highlight-current-row
+        stripe
+        max-height="400"
+      >
+        <el-table-column
+          align="center"
+          label="序号"
+          type="index"
+          width="50"
+        ></el-table-column>
+        <el-table-column
+          align="center"
+          label="销售类型"
+          prop="saleTypeName"
+          min-width="100"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          align="center"
+          label="产品编码"
+          prop="materialCode"
+          min-width="160"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          align="center"
+          label="产品名称"
+          prop="materialName"
+          min-width="160"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          align="center"
+          label="规格型号"
+          prop="specification"
+          min-width="160"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          align="center"
+          label="单位"
+          prop="unit"
+          min-width="100"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          align="center"
+          label="单价"
+          prop="price"
+          min-width="100"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          align="center"
+          label="数量"
+          prop="qty"
+          min-width="100"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          align="center"
+          label="订单金额"
+          prop="totalAmount"
+          min-width="100"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          align="center"
+          label="返利类型"
+          prop="walletRebateName"
+          min-width="100"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          align="center"
+          label="返利金额"
+          prop="rebateAmount"
+          min-width="100"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          align="center"
+          label="格力折扣"
+          prop="deductAmount"
+          min-width="100"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          align="center"
+          label="现金钱包"
+          prop="walletRebateName2"
+          min-width="100"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          align="center"
+          label="实付金额"
+          prop="payAmount"
+          min-width="100"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          align="center"
+          label="是否直调"
+          prop="isDirectTransfer"
+          min-width="100"
+          show-overflow-tooltip
+        >
           <template slot-scope="scope">
-            {{scope.row.isDirectTransfer ? '是':'否'}}
+            {{ scope.row.isDirectTransfer ? "是" : "否" }}
           </template>
         </el-table-column>
-        <el-table-column align="center" label="直调数量" prop="directTransferQty" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="原订单数量" prop="oldQty" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="备注" prop="remark" min-width="160" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="税率" prop="tax" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column
+          align="center"
+          label="直调数量"
+          prop="directTransferQty"
+          min-width="100"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          align="center"
+          label="原订单数量"
+          prop="oldQty"
+          min-width="100"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          align="center"
+          label="备注"
+          prop="remark"
+          min-width="160"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          align="center"
+          label="税率"
+          prop="tax"
+          min-width="100"
+          show-overflow-tooltip
+        ></el-table-column>
       </el-table>
     </div>
 
     <div class="main-title">
       <div class="title">审批信息</div>
-    </div> 
+    </div>
     <div class="diy-table-1">
       <el-row :gutter="0">
         <el-col :span="12" class="item">
           <div class="label">审批人</div>
-          <div class="value">{{userName}}</div>
+          <div class="value">{{ userName }}</div>
         </el-col>
         <el-col :span="12" class="item">
           <div class="label">审批结果</div>
@@ -95,39 +216,48 @@
         </el-col>
         <el-col :span="24" class="item">
           <div class="label">审批说明</div>
-          <div class="value"><el-input v-model="mainForm.remark" placeholder="请输入内容"></el-input></div>
+          <div class="value">
+            <el-input
+              v-model="mainForm.remark"
+              placeholder="请输入内容"
+            ></el-input>
+          </div>
         </el-col>
       </el-row>
     </div>
-    
+
     <div class="page-footer">
       <div class="footer" :class="classObj">
-        <el-button type="primary" @click="clickSubmitForm" :loading="formLoading">{{ formLoading ? '提交中 ...' : '提 交' }}</el-button>
+        <el-button
+          type="primary"
+          @click="clickSubmitForm"
+          :loading="formLoading"
+          >{{ formLoading ? "提交中 ..." : "提 交" }}</el-button
+        >
         <el-button @click="goBack">关 闭</el-button>
       </div>
     </div>
-
   </div>
 </template>
 
 <script>
-import { getDetail, examineData } from "@/api/supply/retail";
+import { getDetail, examineData } from "@/api/supply/policy";
 
 export default {
-  name: 'RetailExamine',
-  componentName: 'RetailExamine',
-  props: ['listItem'],
+  name: "RetailExamine",
+  componentName: "RetailExamine",
+  props: ["listItem"],
   filters: {
     statusFilter(val) {
       const statusList = [
-        { label: '已保存', value: 'SAVE' },
-        { label: '待审核', value: 'WAIT' },
-        { label: '审核通过', value: 'OK' },
-        { label: '审核驳回', value: 'FAIL' },
+        { label: "已保存", value: "SAVE" },
+        { label: "待审核", value: "WAIT" },
+        { label: "审核通过", value: "OK" },
+        { label: "审核驳回", value: "FAIL" },
       ];
-      let obj = statusList.find(o => o.value == val);
-      return obj ? obj.label : ''
-    }
+      let obj = statusList.find((o) => o.value == val);
+      return obj ? obj.label : "";
+    },
   },
   data() {
     return {
@@ -137,20 +267,20 @@ export default {
       formLoading: false,
       mainForm: {
         status: true,
-        remark: '',
-      }
-    }
+        remark: "",
+      },
+    };
   },
 
   computed: {
     sidebar() {
-      return this.$store.state.app.sidebar
+      return this.$store.state.app.sidebar;
     },
     classObj() {
       return {
         hideSidebar: !this.sidebar.opened,
-        openSidebar: this.sidebar.opened
-      }
+        openSidebar: this.sidebar.opened,
+      };
     },
   },
 
@@ -161,14 +291,14 @@ export default {
   methods: {
     // 返回列表
     goBack() {
-      this.$emit('backListFormDetail');
+      this.$emit("backListFormDetail");
     },
 
     // 获取详情
     getDetail() {
-      getDetail({id: this.listItem.id}).then(res => {
+      getDetail({ id: this.listItem.id }).then((res) => {
         this.detailData = res.data;
-      })
+      });
     },
 
     // 提交审批
@@ -176,38 +306,39 @@ export default {
       this.formLoading = true;
       examineData({
         id: this.listItem.id,
-        examineStatus: this.mainForm.status ? 'OK' : 'FAIL',
+        examineStatus: this.mainForm.status ? "OK" : "FAIL",
         examineRemark: this.mainForm.remark,
-      }).then(res => {
-        this.$successMsg('审批成功');
-        this.goBack();
-        this.$parent.getList();
-      }).finally(res => {
-        this.formLoading = false;
       })
+        .then((res) => {
+          this.$successMsg("审批成功");
+          this.goBack();
+          this.$parent.getList();
+        })
+        .finally((res) => {
+          this.formLoading = false;
+        });
     },
-
-  }
-}
+  },
+};
 </script>
 
 <style scoped lang="scss">
-  .detail-container {
-    width: 100%;
-    height: 100%;
-  }
-  .main-title {
-    display: flex;
-    justify-content: space-between;
-    align-items: center;
-    margin-top: 20px;
-    height: 60px;
-    border-bottom: 1px solid #DCDFE6;
-    margin-bottom: 20px;
-    .title {
-      font-size: 16px;
-      font-weight: 600;
-      padding-left: 10px;
-    }
+.detail-container {
+  width: 100%;
+  height: 100%;
+}
+.main-title {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  margin-top: 20px;
+  height: 60px;
+  border-bottom: 1px solid #dcdfe6;
+  margin-bottom: 20px;
+  .title {
+    font-size: 16px;
+    font-weight: 600;
+    padding-left: 10px;
   }
-</style>
+}
+</style>

+ 30 - 24
src/views/supply/policy/components/retail_form.vue

@@ -18,7 +18,7 @@
       label-position="right"
     >
       <el-row :gutter="20">
-        <el-col :xs="24" :sm="12" :lg="8">
+        <!-- <el-col :xs="24" :sm="12" :lg="8">
           <el-form-item label="订单号" prop="id">
             <el-input
               v-model="mainForm.id"
@@ -26,7 +26,7 @@
               readonly
             ></el-input>
           </el-form-item>
-        </el-col>
+        </el-col> -->
         <el-col
           :xs="24"
           :sm="12"
@@ -304,7 +304,7 @@
             >
               <el-option label="不使用" value=""></el-option>
               <el-option
-                v-for="item in xjWalletList"
+                v-for="item in comxjWalletList(scope.row.walletRelaList)"
                 :key="item.customerWalletId"
                 :label="item.name"
                 :value="item.customerWalletId"
@@ -455,6 +455,7 @@
                   placeholder="选择销售类型"
                   style="width: 100%"
                 >
+                 <el-option label="不使用" value=""></el-option>
                   <el-option
                     v-for="item in ztypeList"
                     :key="item.id"
@@ -566,24 +567,7 @@
                 </el-select>
               </el-form-item>
             </el-col>
-            <el-col :xs="24" :sm="8" :lg="8">
-              <el-form-item>
-                <el-input
-                  v-model="screenForm.type"
-                  placeholder="产品编码"
-                  size="small"
-                ></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :xs="24" :sm="8" :lg="8">
-              <el-form-item>
-                <el-input
-                  v-model="screenForm.type"
-                  placeholder="产品名称"
-                  size="small"
-                ></el-input>
-              </el-form-item>
-            </el-col>
+
             <el-col :xs="24" :sm="8" :lg="8">
               <el-form-item label="销售类型">
                 <el-select
@@ -591,6 +575,7 @@
                   placeholder="选择销售类型"
                   style="width: 100%"
                 >
+             <el-option label="不使用" value=""></el-option>
                   <el-option
                     v-for="item in ztypeList"
                     :key="item.id"
@@ -705,7 +690,7 @@ import {
   getConditionList,
   getConditionDetail,
   getpolicyTypeList,
-} from "@/api/supply/retail";
+} from "@/api/supply/policy";
 import { getDictList } from "@/api/common";
 import { findElem } from "@/utils/util";
 
@@ -831,6 +816,22 @@ export default {
         openSidebar: this.sidebar.opened,
       };
     },
+    comxjWalletList(){
+      return (c)=>{
+          const walle =[]
+          const ovalVall = c == undefined || !c.length ? []: c
+          for (let i = 0; i < this.xjWalletList.length; i++) {
+                for (let j = 0; j < ovalVall.length; j++) {
+                    if (this.xjWalletList[i].walletRebateId ==ovalVall[j].walletId) {
+                            walle.push(this.xjWalletList[i])
+                    }
+                }
+          }
+         return  walle
+
+
+      }
+    }
   },
 
   created() {
@@ -936,7 +937,9 @@ export default {
         type: "COMMONLY",
       }).then((res) => {
         this.xjWalletList = res.data;
+
       });
+
       getWalletList({
         customerId: JSON.parse(localStorage.getItem("supply_user")).customerId,
         type: "REBATE",
@@ -1124,8 +1127,9 @@ export default {
             }
           }
         }
-        this.cusIndex = 0
+        this.cusIndex = 0;
         this.isShowDialog = false;
+        console.log(this.goodsList,'goodsList');
       } else {
         this.$errorMsg("请选择");
       }
@@ -1134,7 +1138,6 @@ export default {
     deleteItem(index) {
       this.goodsList.splice(index, 1);
     },
-
     // 修改返利钱包
     changeWallet(index) {
       if (this.goodsList[index].customerWalletId2) {
@@ -1176,7 +1179,9 @@ export default {
     clickSubmitForm() {
       this.$refs.mainForm.validate((valid) => {
         if (valid) {
+
           for (let i = 0; i < this.goodsList.length; i++) {
+                     console.log(this.goodsList[i].customerWalletId,45454554);
             if (!this.goodsList[i].customerWalletId) {
               this.$errorMsg("请选择现金钱包");
               return;
@@ -1195,6 +1200,7 @@ export default {
             type: 2, // 1:普通零售单,2:政策零售单
             retailOrderItemList: this.goodsList,
             policyId: this.screenForm.policyId,
+
           };
           if (this.listItem) {
             params.id = this.listItem.id;

+ 4 - 4
src/views/supply/policy/components/retail_return.vue

@@ -77,7 +77,7 @@
 
     <div class="main-title">
       <div class="title">退订信息</div>
-    </div> 
+    </div>
     <div class="diy-table-1">
       <el-row :gutter="0">
         <el-col :span="12" class="item">
@@ -94,7 +94,7 @@
         </el-col>
       </el-row>
     </div>
-    
+
     <div class="page-footer">
       <div class="footer" :class="classObj">
         <el-button type="primary" @click="clickSubmitForm" :loading="formLoading">{{ formLoading ? '提交中 ...' : '提 交' }}</el-button>
@@ -106,7 +106,7 @@
 </template>
 
 <script>
-import { getDetail, returnData } from "@/api/supply/retail";
+import { getDetail, returnData } from "@/api/supply/policy";
 
 export default {
   name: 'RetailReturn',
@@ -220,4 +220,4 @@ export default {
       padding-left: 10px;
     }
   }
-</style>
+</style>

+ 14 - 10
src/views/supply/policy/policy_list.vue

@@ -716,31 +716,36 @@ export default {
               fixed="right"
             >
               <template slot-scope="scope">
-                <!-- <el-button
+                <el-button
                   type="text"
-                  @click="toForm(scope.row)"
+                  @click="toExamine(scope.row)"
                   v-if="scope.row.examineStatus === 'SAVE'"
                   >申请</el-button
-                > -->
+                >
                 <el-button type="text" @click="toForm(scope.row)"
                   >编辑</el-button
                 >
                 <el-popconfirm
+                  v-if="scope.row.examineStatus == 'WAIT'"
                   style="margin-left: 10px"
                   title="确定撤回?"
                   @onConfirm="handleCancel(scope.row.id)"
                 >
                   <el-button slot="reference" type="text">撤回</el-button>
                 </el-popconfirm>
-                <el-button     style="margin-left: 10px" type="text" @click="toDetail(scope.row)"
+                <el-button
+                  style="margin-left: 10px"
+                  type="text"
+                  @click="toDetail(scope.row)"
                   >详情</el-button
                 >
                 <el-popconfirm
                   style="margin-left: 10px"
-                  title="确定删除?"
-                  @onConfirm="handleDelete(scope.row.id)"
+                  title="确定关闭吗?"
+                  @onConfirm="handleClose(scope.row.id)"
+                  v-if="!scope.row.closeTime"
                 >
-                  <el-button slot="reference" type="text">删除</el-button>
+                  <el-button slot="reference" type="text">关闭</el-button>
                 </el-popconfirm>
               </template>
             </el-table-column>
@@ -791,7 +796,7 @@ import {
   closeData,
   submitData,
   submitCancel,
-} from "@/api/supply/retail";
+} from "@/api/supply/policy";
 import RetailDetail from "./components/retail_detail";
 import RetailForm from "./components/retail_form";
 import RetailExamine from "./components/retail_examine";
@@ -830,7 +835,6 @@ export default {
         status: "",
       },
       statusList: [
-
         { label: "已保存", value: "SAVE" },
         { label: "待审核", value: "WAIT" },
         { label: "审核通过", value: "OK" },
@@ -931,7 +935,7 @@ export default {
     // 进入表单
     toForm(item) {
       this.queryItem = item;
-      console.log(item,99999);
+      console.log(item, 99999);
       this.isShowForm = true;
     },
 

+ 84 - 37
src/views/supply/retail/components/retail_detail.vue

@@ -124,14 +124,14 @@
     </div>
 
     <el-dialog title="直调发货" :visible.sync="isShowDeliverDialog" width="80%">
-      <el-form ref="deliverForm" :model="deliverForm" label-width="70px" size="small" label-position="left">
+      <el-form ref="deliverForm" :model="deliverForm" :rules="deliverFormRules" label-width="80px" size="small" label-position="left">
         <el-row :gutter="20">
-          <el-col :xs="24" :sm="8" :lg="8">
-            <el-form-item label="工程订单" prop="orderNum">
-              <el-input v-model="deliverForm.orderNum" placeholder="请输入工程订单"></el-input>
+          <el-col :xs="12" :sm="6" :lg="6">
+            <el-form-item label="发货单号" prop="orderNum">
+              <el-input v-model="deliverForm.orderNum" placeholder="请输入发货单号"></el-input>
             </el-form-item>
           </el-col>
-          <el-col :xs="24" :sm="8" :lg="8" style="height: 51px;">
+          <el-col :xs="12" :sm="6" :lg="6" style="height: 51px;">
             <el-form-item label="发货日期" prop="date">
               <el-date-picker
                 v-model="deliverForm.date"
@@ -142,15 +142,17 @@
               </el-date-picker>
             </el-form-item>
           </el-col>
-          <el-col :xs="24" :sm="8" :lg="8">
+          <el-col :xs="12" :sm="6" :lg="6">
             <el-form-item label="发货仓库" prop="warehouse">
-              <el-select v-model="deliverForm.warehouse" placeholder="请选择发货仓库">
-                <el-option
-                  v-for="item in warehouseList"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value">
-                </el-option>
+              <el-select v-model="deliverForm.warehouse" placeholder="请选择发货仓库" style="width: 100%" filterable @change="changeWarehouse">
+                <el-option v-for="item in warehouseList" :key="item.id" :label="item.name" :value="item.id"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="12" :sm="6" :lg="6">
+            <el-form-item label="选择仓位" prop="position">
+              <el-select v-model="deliverForm.position" placeholder="请选择仓位" style="width: 100%" filterable>
+                <el-option v-for="item in positionList" :key="item.value" :label="item.label" :value="item.value"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
@@ -158,30 +160,24 @@
       </el-form>
 
       <div class="table" style="margin-top: 20px">
-        <el-table :data="detailData.retailOrderItemList" element-loading-text="Loading" border fit highlight-current-row stripe max-height="400">
+        <el-table :data="goodsList" element-loading-text="Loading" border fit highlight-current-row stripe max-height="400">
           <el-table-column align="center" label="序号" type="index" width="50"></el-table-column>
-          <el-table-column align="center" label="销售类型" prop="saleTypeName" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="产品编码" prop="materialCode" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="规格型号" prop="specification" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="单位" prop="unit" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="单价" prop="price" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="数量" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="订单金额" prop="totalAmount" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="返利类型" prop="walletRebateName" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="返利金额" prop="rebateAmount" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="格力折扣" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="现金钱包" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="实付金额" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="是否直调" prop="isDirectTransfer" min-width="100" show-overflow-tooltip>
-            <template slot-scope="scope">
-              {{scope.row.isDirectTransfer ? '是':'否'}}
-            </template>
-          </el-table-column>
-          <el-table-column align="center" label="直调数量" prop="directTransferQty" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="原订单数量" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="备注" prop="remark" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="税率" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="销售类型" prop="saleTypeName" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="产品编码" prop="materialCode" min-width="160" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="规格型号" prop="specification" min-width="160" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="单位" prop="unit" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="数量" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="直调数量" prop="adjustNum" min-width="100" show-overflow-tooltip>
+          <template slot-scope="scope">
+            <el-input v-model="scope.row.adjustNum" size="small"></el-input>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="单价" prop="price" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="金额" prop="totalAmount" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="返利" prop="rebateAmount" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="实付金额" prop="payAmount" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="备注" prop="remark" min-width="160" show-overflow-tooltip></el-table-column>
         </el-table>
       </div>
       <span slot="footer" class="dialog-footer">
@@ -194,7 +190,7 @@
 </template>
 
 <script>
-import { getDetail } from "@/api/supply/retail";
+import { getDetail, getWarehouseList } from "@/api/supply/retail";
 
 export default {
   name: 'RetailDetail',
@@ -220,8 +216,27 @@ export default {
       deliverForm: {
         orderNum: '',
         date: '',
+        warehouse: '',
+        position: '',
+      },
+      deliverFormRules: {
+        orderNum: [
+          { required: true, message: '请输入发货单号', trigger: 'blur' }
+        ],
+        date: [
+          { required: true, message: '请选择发货日期', trigger: 'change' }
+        ],
+        warehouse: [
+          { required: true, message: '请选择发货仓库', trigger: 'change' }
+        ],
+        position: [
+          { required: true, message: '请选择仓位', trigger: 'change' }
+        ],
       },
       warehouseList: [],
+      positionList: [],
+
+      goodsList: [],
     }
   },
 
@@ -261,9 +276,30 @@ export default {
       })
     },
 
+    // 获取仓库列表
+    getWarehouseList() {
+      getWarehouseList({
+        pageNum: 1,
+        pageSize: -1,
+      }).then(res => {
+        this.warehouseList = res.data.records;
+      })
+    },
+
+    // 更改仓库
+    changeWarehouse() {
+      getPositionList({
+        correspondId: this.deliverForm.warehouse
+      }).then(res => {
+        this.positionList = res.data;
+      })
+    },
+
     // 打开 直调发货
     openDeliverDialog() {
       this.isShowDeliverDialog = true;
+      this.goodsList = this.detailData.retailOrderItemList;
+      // this.getWarehouseList();
     },
 
     // 关闭 直调发货
@@ -273,7 +309,18 @@ export default {
 
     // 提交 直调发货
     submitDeliverForm() {
+      this.$refs.deliverForm.validate((valid) => {
+        if (valid) {
+          for(let i=0; i<this.goodsList.length; i++) {
+            if(!this.goodsList[i].adjustNum) {
+              this.$errorMsg('请输入直调数量');
+              return;
+            }
+          }
+
 
+        }
+      })
     },
 
   }

+ 2 - 4
src/views/supply/retail/components/retail_form.vue

@@ -79,8 +79,7 @@
         </el-table-column>
         <el-table-column align="center" label="返利钱包" prop="customerWalletId2" min-width="160" show-overflow-tooltip>
           <template slot-scope="scope">
-            <el-select v-model="scope.row.customerWalletId2" placeholder="选择返利钱包" size="small" @change="changeWallet(scope.$index)">
-              <el-option label="不使用" value=""></el-option>
+            <el-select v-model="scope.row.customerWalletId2" placeholder="选择返利钱包" size="small" clearable @change="changeWallet(scope.$index)">
               <el-option
                 v-for="item in flWalletList"
                 :key="item.customerWalletId"
@@ -102,8 +101,7 @@
         </el-table-column>
         <el-table-column align="center" label="现金钱包" prop="customerWalletId" min-width="160" show-overflow-tooltip>
           <template slot-scope="scope">
-            <el-select v-model="scope.row.customerWalletId" placeholder="选择现金钱包" size="small">
-              <el-option label="不使用" value=""></el-option>
+            <el-select v-model="scope.row.customerWalletId" placeholder="选择现金钱包" size="small" clearable>
               <el-option
                 v-for="item in xjWalletList"
                 :key="item.customerWalletId"