14 Revize 3cc7ba6aa2 ... 564c463518

Autor SHA1 Zpráva Datum
  linwenxin 564c463518 no message před 1 dnem
  Howie 1ed1d30c76 sync: 同步供应链项目 před 1 rokem
  Howie 631537b1ca fix: 账户管理解经销商接口限制最大获取300条数据 před 1 rokem
  Howie 004087bf2a fix: 解决同步冲突 před 1 rokem
  Howie 85694582d2 sync: 同步供应链项目 před 1 rokem
  Howie da8fe04282 feat: 菜单搜索功能 před 1 rokem
  Howie b75cabd203 feat: 用户管理新增搜索 před 1 rokem
  Howie e1bc8f2751 feat: 只有经销商才显示商用经销商 před 1 rokem
  Howie 41707ea226 feat: 账户管理新增是否商用经销商 před 1 rokem
  Howie eacdc81d74 feat:商用登录工程审核的经销商名称、经销商编码针对业务员跟商家隐藏,审核员可见 před 1 rokem
  Howie 9a2ce212ed fix: 台账经销商导出去掉经销商名称参数 před 1 rokem
  Howie e108b1e500 ui: 隐藏导航栏家用工程机登录 před 1 rokem
  Howie 2c79daa452 feat:销售执行明细汇总计算发货数量汇总 před 1 rokem
  FengChaoYu 00e33fbe1f no message před 1 rokem
100 změnil soubory, kde provedl 3152 přidání a 28987 odebrání
  1. 2 2
      .env.development
  2. 1 1
      .env.staging
  3. 1 27296
      package-lock.json
  4. 2 3
      package.json
  5. 5 0
      src/App.vue
  6. 7 0
      src/api/basic_data/dealer.js
  7. 32 1
      src/api/common.js
  8. 17 0
      src/api/dealerHistoryWalletBalance2.js
  9. 17 0
      src/api/existingCostProduct.js
  10. 7 0
      src/api/finance/account_list.js
  11. 13 1
      src/api/finance/receivable_list.js
  12. 9 0
      src/api/frock.js
  13. 10 0
      src/api/guangFoInventory.js
  14. 25 0
      src/api/lajizhan.js
  15. 62 0
      src/api/referCostPrice.js
  16. 39 5
      src/api/setting.js
  17. 9 1
      src/api/stock.js
  18. 8 0
      src/api/supply/reserve.js
  19. 5 1
      src/components/Common/image-upload.vue
  20. 77 87
      src/components/NotifyBox/index.vue
  21. 1 1
      src/components/SalesDialog/SalesDialog.vue
  22. 1 1
      src/components/template/import_mixin.js
  23. 121 45
      src/components/template/template-page-1.vue
  24. 28 0
      src/layout/components/Navbar.vue
  25. 5 5
      src/main.js
  26. 3 6
      src/mixin/print.js
  27. 12 1
      src/permission.js
  28. 3 1
      src/settings.js
  29. 4 0
      src/styles/index.scss
  30. 1 1
      src/utils/common.js
  31. 2 2
      src/utils/lbs.js
  32. 1 1
      src/utils/request.js
  33. 1 1
      src/views/basic_data/dailyWarehouseRent.vue
  34. 6 8
      src/views/basic_data/dealer/components/dealer_list-detail.vue
  35. 1 1
      src/views/basic_data/dealer/dealer_deposit.vue
  36. 15 15
      src/views/basic_data/dealer/dealer_list.vue
  37. 1 1
      src/views/basic_data/dealer/dealer_stock.vue
  38. 1 1
      src/views/basic_data/logistics/logistics_list.vue
  39. 1 1
      src/views/basic_data/material/classify_list.vue
  40. 1 1
      src/views/basic_data/material/machine_list.vue
  41. 3 3
      src/views/basic_data/material/modify_list.vue
  42. 2 2
      src/views/basic_data/material/price_list.vue
  43. 4 4
      src/views/basic_data/material/relation_list.vue
  44. 55 31
      src/views/basic_data/numerusClausus.vue
  45. 1 1
      src/views/basic_data/partya/partyaList.vue
  46. 1 1
      src/views/basic_data/priceSalesType.vue
  47. 1 1
      src/views/basic_data/priceType.vue
  48. 1 1
      src/views/basic_data/sectorAllocation.vue
  49. 2 2
      src/views/basic_data/stock/Issue_list.vue
  50. 519 0
      src/views/basic_data/stock/electricalStorageCharges.vue
  51. 1 1
      src/views/basic_data/stock/material_list.vue
  52. 42 22
      src/views/basic_data/stock/stock_fee_list.vue
  53. 1 1
      src/views/basic_data/stock/warehousing_list.vue
  54. 1 1
      src/views/basic_data/taker/taker_car.vue
  55. 1 1
      src/views/basic_data/taker/taker_list.vue
  56. 1 1
      src/views/basic_data/warehouse/warehouse_cost.vue
  57. 64 52
      src/views/basic_data/warehouse/warehouse_site.vue
  58. 287 104
      src/views/commercialEngineering/components/base.vue
  59. 131 83
      src/views/commercialEngineering/components/examine.vue
  60. 1 0
      src/views/commercialEngineering/components/geographicalPosi.vue
  61. 219 48
      src/views/commercialEngineering/components/loginSuccess.vue
  62. 26 48
      src/views/commercialEngineering/components/model.vue
  63. 1 1
      src/views/commercialEngineering/components/operate.vue
  64. 20 0
      src/views/commercialEngineering/crossDistrict/crossDistrictForm.vue
  65. 89 62
      src/views/commercialEngineering/crossDistrict/crossDistrictkList.vue
  66. 3 1
      src/views/commercialEngineering/crossDistrict/examine.vue
  67. 3 1
      src/views/commercialEngineering/frock/examine.vue
  68. 1 1
      src/views/commercialEngineering/frock/frockForm.vue
  69. 116 73
      src/views/commercialEngineering/frock/frockList.vue
  70. 6 4
      src/views/commercialEngineering/homeDecoration/examine.vue
  71. 22 2
      src/views/commercialEngineering/homeDecoration/homeDecorationForm.vue
  72. 84 90
      src/views/commercialEngineering/homeDecoration/homeDecorationList.vue
  73. 42 28
      src/views/commercialEngineering/mixin/index.js
  74. 12 0
      src/views/commercialEngineering/mixin/list.js
  75. 70 0
      src/views/commercialEngineering/summaryTable/index_1.vue
  76. 79 0
      src/views/commercialEngineering/summaryTable/index_2.vue
  77. 16 59
      src/views/commercialEngineering/summaryTable/summaryTableList.vue
  78. 1 1
      src/views/deposit_commerce/components/deposit-apply-surrender.vue
  79. 2 2
      src/views/deposit_home/components/deposit-apply-surrender.vue
  80. 90 307
      src/views/deposit_home/components/deposit_list-detail.vue
  81. 1 1
      src/views/deposit_home/components/deposit_replenish.vue
  82. 296 385
      src/views/deposit_home/components/refund_list-detail.vue
  83. 1 1
      src/views/deposit_home/components/refund_reexamine.vue
  84. 3 3
      src/views/deposit_home/components/refund_replenish.vue
  85. 1 1
      src/views/deposit_home/deposit_list.vue
  86. 2 2
      src/views/deposit_home/refund_list.vue
  87. 1 1
      src/views/engin_deposit/components/deposit-apply-surrender.vue
  88. 3 2
      src/views/finance/account_list.vue
  89. 1 1
      src/views/finance/change_apply.vue
  90. 27 30
      src/views/finance/components/credit_list-detail.vue
  91. 13 2
      src/views/finance/components/receivable_list-add.vue
  92. 11 1
      src/views/finance/components/receivable_list-detail.vue
  93. 66 0
      src/views/finance/dealerHistoryWalletBalance2.vue
  94. 1 1
      src/views/finance/rebate_form.vue
  95. 142 17
      src/views/finance/receivable_list.vue
  96. 0 3
      src/views/finance/standbook_list.vue
  97. 1 1
      src/views/issue.vue
  98. 1 1
      src/views/logisticsBill/components/ExceptionBox.vue
  99. 1 1
      src/views/merchant/create_account.vue
  100. 2 2
      src/views/merchant/merchant_list.vue

+ 2 - 2
.env.development

@@ -3,5 +3,5 @@ ENV = 'development'
 
 # base api
 # 121.43.111.127 192.168.31.6
-VUE_APP_BASE_API = 'http://120.79.36.253:20005/'
-# VUE_APP_BASE_API = 'https://gyl.greeapps.com/supply_api/'
+# VUE_APP_BASE_API = 'http://120.79.36.253/api'
+VUE_APP_BASE_API = 'https://gyl.greeapps.com/supply_api/'

+ 1 - 1
.env.staging

@@ -5,5 +5,5 @@ ENV = 'staging'
 
 # base api
 VUE_APP_BASE_API = 'http://120.79.36.253:20005/'
-#VUE_APP_BASE_API = 'http://hg.zfire.top/api/'
+
 

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 27296
package-lock.json


+ 2 - 3
package.json

@@ -15,13 +15,12 @@
     "test:ci": "npm run lint && npm run test:unit"
   },
   "dependencies": {
-    "@zjlib/element-plugins": "^2.7.1",
+    "@zjlib/element-plugins": "^2.8.6",
+    "@zjlib/element-ui2": "^1.0.3",
     "axios": "0.18.1",
     "clipboard": "^2.0.8",
     "concurrent-tasks": "^1.0.7",
-    "core-js": "^3.6.5",
     "echarts": "^5.1.1",
-    "element-ui": "2.13.2",
     "file-saver": "^2.0.5",
     "js-cookie": "2.2.0",
     "normalize.css": "7.0.0",

+ 5 - 0
src/App.vue

@@ -13,3 +13,8 @@ export default {
   methods: {}
 }
 </script>
+<style>
+.teshudeshangchuananniu {
+  color: #fff !important;
+}
+</style>

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

@@ -6,6 +6,13 @@ export function getDealerListV2(params) {
     data: params
   })
 }
+export function getDealerListV3(params) {
+  return request({
+    url: `/StageCustomer/list/v3?moduleId=${params.moduleId}`,
+    method: 'post',
+    data: params
+  })
+}
 export function exportDealerListV2(data, name) {
   return postBlob({
     url: '/customer/user/export/v2',

+ 32 - 1
src/api/common.js

@@ -104,7 +104,29 @@ export function getCategoryList(params) {
     params
   })
 }
-
+// 强制仓库展示
+export function getStockForceDetail(params) {
+  return request({
+    url: '/stock/force/detail',
+    method: 'post',
+    params
+  })
+}
+// 添加强制仓库
+export function updateStockForceDetail(data) {
+  return request({
+    url: '/stock/force/update',
+    method: 'post',
+    data
+  })
+}
+export function delTockForceDetail(data) {
+  return request({
+    url: '/stock/force/del',
+    method: 'post',
+    data
+  })
+}
 // 联查单据
 export function checkOrder(params) {
   return request({
@@ -122,6 +144,15 @@ export function getSalesmanList(params) {
     params
   })
 }
+// 获取业务员列表
+export function getSalesmanListService(params) {
+  return request({
+    url: '/admin/user/listService',
+    method: 'get',
+    params
+  })
+}
+
 
 // 更新发票
 export function updateReceipt(params) {

+ 17 - 0
src/api/dealerHistoryWalletBalance2.js

@@ -0,0 +1,17 @@
+import request, { postBlob } from '@/utils/request'
+
+export function walletHistoryList(params) {
+  return request({
+    url: `/wallet/history/list?moduleId=${params.moduleId}`,
+    method: 'post',
+    data: params
+  })
+}
+
+export function walletHistoryListExport(data, name) {
+  return postBlob({
+    url: '/wallet/history/list/export',
+    data,
+    name
+  })
+}

+ 17 - 0
src/api/existingCostProduct.js

@@ -0,0 +1,17 @@
+import request, { postBlob } from '@/utils/request'
+
+export function stockManagerListStockToCostPriceV2(data) {
+  return request({
+    url: `/stock/manager/listStockToCostPriceV2?moduleId=${data.moduleId}`,
+    method: 'post',
+    data
+  })
+}
+
+export function stockManagerListStockToCostPriceV2Export(data, name) {
+  return postBlob({
+    url: '/stock/manager/listStockToCostPriceV2/export',
+    data,
+    name
+  })
+}

+ 7 - 0
src/api/finance/account_list.js

@@ -7,6 +7,13 @@ export function getFinanceStandingBookListV2(params) {
   })
 }
 
+export function financeStandingBookV2Export(data, name) {
+  return postBlob({
+    url: '/finance/standing/book/v2/export',
+    data,
+    name
+  })
+}
 
 // 台账列表
 export function getFinanceStandingBookList(params) {

+ 13 - 1
src/api/finance/receivable_list.js

@@ -104,4 +104,16 @@ export function financeOtherReceClose(data) {
     method: 'get',
     params: data
   })
-}
+}
+
+export function financeReceImportDataImport(data) {
+  return handleImport('finance/rece/import/dataImport', data.formdata, data.id || '')
+}
+
+export function financeOtherReceCancelApply(params) {
+  return request({
+    url: '/finance/other/rece/cancelApply',
+    method: 'post',
+    params: params
+  })
+}

+ 9 - 0
src/api/frock.js

@@ -134,3 +134,12 @@ export function getHistory(params) {
     params
   })
 }
+
+// 商用工程登录单-检查登录额
+export function checkTradeLoginLimit(params) {
+  return request({
+    url: `/trade/login/order/check/limit`,
+    method: 'post',
+    data: params
+  })
+}

+ 10 - 0
src/api/guangFoInventory.js

@@ -0,0 +1,10 @@
+import request from '@/utils/request'
+
+// 广佛库存列表
+export function stockStartAccStock(params) {
+  return request({
+    url: '/stock/startAcc/stock',
+    method: 'get',
+    params
+  })
+}

+ 25 - 0
src/api/lajizhan.js

@@ -0,0 +1,25 @@
+import request, { postBlob } from '@/utils/request'
+
+export function loginOrderRecycleList(params) {
+  return request({
+    url: `/trade/login/order/recycle/list?moduleId=${params.moduleId}`,
+    method: 'post',
+    data: params
+  })
+}
+
+export function loginOrderRecycleDel(data) {
+  return request({
+    url: '/trade/login/order/recycle/del',
+    method: 'post',
+    data
+  })
+}
+
+export function loginOrderRecycleRestore(data) {
+  return request({
+    url: '/trade/login/order/recycle/restore',
+    method: 'post',
+    data
+  })
+}

+ 62 - 0
src/api/referCostPrice.js

@@ -0,0 +1,62 @@
+import request, { postBlob, getBlob, handleImport } from '@/utils/request'
+
+export function materialReferPriceSave(data) {
+  return request({
+    url: `/material/refer/price/save`,
+    method: 'post',
+    data
+  })
+}
+
+export function materialReferPriceDetail(params) {
+  return request({
+    url: `/material/refer/price/detail`,
+    method: 'post',
+    params
+  })
+}
+
+export function materialReferPriceDelete(params) {
+  return request({
+    url: `/material/refer/price/delete`,
+    method: 'post',
+    params
+  })
+}
+
+export function materialReferPriceList(params) {
+  return request({
+    url: `/material/refer/price/list?moduleId=${params.moduleId}`,
+    method: 'post',
+    data: params
+  })
+}
+
+export function materialReferPriceListExport(data, name) {
+  return postBlob({
+    url: '/material/refer/price/list/export',
+    data,
+    name
+  })
+}
+
+
+export function materialReferPriceDownload(data, name) {
+  return getBlob({
+    url: 'material/refer/price/download',
+    data,
+    name
+  })
+}
+
+export function materialReferPriceImport(data) {
+  return handleImport('/material/refer/price/import', data.formdata, data.id || '')
+}
+
+export function stockManagerAllPrice(params) {
+  return request({
+    url: `/stock/manager/allPrice`,
+    method: 'post',
+    params
+  })
+}

+ 39 - 5
src/api/setting.js

@@ -1,4 +1,4 @@
-import request from '@/utils/request'
+import request, { getBlob } from '@/utils/request'
 
 // 获取个人信息
 export function getUserInfo(params) {
@@ -493,7 +493,7 @@ export function getRoleChecked(params) {
   })
 }
 
- // 切换账号权限
+// 切换账号权限
 export function setUserChanging(params) {
   return request({
     url: '/admin/user/changing',
@@ -502,7 +502,6 @@ export function setUserChanging(params) {
   })
 }
 
-
 // 嘉贤子帐号列表
 export function getJiaXianUserList(params) {
   return request({
@@ -512,7 +511,6 @@ export function getJiaXianUserList(params) {
   })
 }
 
-
 // 新建嘉贤经销商子账号
 export function addJiaXianUser(params) {
   return request({
@@ -560,8 +558,44 @@ export function getDetailGongCheng(params) {
 // 删除程经销商子账号
 export function delUserGongCheng(params) {
   return request({
-    url: '/admin//user/user/child/delGongCheng',
+    url: '/admin/user/child/delGongCheng',
+    method: 'post',
+    params
+  })
+}
+
+// 导出
+export function exportListGongCheng(data, name) {
+  return getBlob({
+    url: '/admin/user/listGongCheng/export',
+    data,
+    name
+  })
+}
+
+// 仓库品类选择列表
+export function stockForceUserList(params) {
+  return request({
+    url: '/stock/forceUser/list',
+    method: 'get',
+    params
+  })
+}
+
+// 添加账号强制仓
+export function stockForceUserAdd(data) {
+  return request({
+    url: '/stock/forceUser/add',
     method: 'post',
+    data
+  })
+}
+
+// 
+export function stockForceUserForceStockList(params) {
+  return request({
+    url: '/stock/forceUser/forceStockList',
+    method: 'get',
     params
   })
 }

+ 9 - 1
src/api/stock.js

@@ -330,4 +330,12 @@ export function downloadkunCunDownload(data, name) {
     data,
     name
   })
-}
+}
+
+export function saleStorageFeeListStorageFee(params) {
+  return request({
+    url: '/sale/storageFee/listStorageFee',
+    method: 'get',
+    params
+  })
+}

+ 8 - 0
src/api/supply/reserve.js

@@ -68,6 +68,14 @@ export function getGoodsList(params) {
     params
   })
 }
+// 批量预留单关闭
+export function closeList(params) {
+  return request({
+    url: '/reserve/closeList',
+    method: 'post',
+    params
+  })
+}
 
 // 新增
 export function addData(params) {

+ 5 - 1
src/components/Common/image-upload.vue

@@ -33,6 +33,7 @@
           </el-image>
           <div v-show="item.hover" class="mask">
             <i v-if="checkFileType(item.url) == 'image'" class="el-icon-zoom-in" @click="previewImage(item.url)" />
+            <i v-if="checkFileType(item.url) != 'image'" class="el-icon-zoom-in" @click="previewVideo(item.url)" />
             <i class="el-icon-upload2" @click="uploadImage(item.url)" />
             <i class="el-icon-delete" @click="deleteImage(item.url)" />
           </div>
@@ -154,7 +155,10 @@ export default {
       const fileSuffix = name.substring(name.lastIndexOf('.') + 1)
       return `${date}${uuid}.${fileSuffix}`
     },
-
+   //预览视频
+   previewVideo(url){
+      window.open(this.$imageUrl+url)
+    },
     // 检查文件类型
     checkFileType(url) {
       if (!url) return ''

+ 77 - 87
src/components/NotifyBox/index.vue

@@ -13,8 +13,7 @@
       <el-radio-button :label="2">返利确认单</el-radio-button>
       <el-radio-button :label="3">物流通知</el-radio-button>
       <el-radio-button :label="4">到货通知</el-radio-button>
-      <el-radio-button :label="5">货满订单</el-radio-button>
-
+      <!-- <el-radio-button :label="5">货满订单</el-radio-button> -->
     </el-radio-group>
     <!-- 系统通知 -->
     <div v-show="type === 0" class="table">
@@ -33,9 +32,22 @@
         <el-table-column align="center" label="标题" prop="title" min-width="160" show-overflow-tooltip />
         <el-table-column align="center" label="来源" prop="source" min-width="160" show-overflow-tooltip />
         <el-table-column align="center" label="时间" prop="issueTime" min-width="160" show-overflow-tooltip />
+        <el-table-column align="center" label="是否已读" prop="isTopRead" min-width="160" show-overflow-tooltip>
+          <template slot-scope="scope">
+            {{ scope.row.isTopRead ? '已读' : '未读' }}
+          </template>
+        </el-table-column>
         <el-table-column align="center" label="操作" min-width="160" show-overflow-tooltip>
           <template slot-scope="scope">
-            <el-button type="text" class="textColor" @click="lookInDialog(scope.row.id)">查看</el-button>
+            <el-button
+              :style="{
+                color: scope.row.readFlag ? '#c0c4cc' : ''
+              }"
+              type="text"
+              class="textColor"
+              @click="lookInDialog(scope.row.id)"
+              >查看</el-button
+            >
           </template>
         </el-table-column>
       </el-table>
@@ -97,40 +109,32 @@
               <el-input v-model="invoiceOrderForm.invoiceId" placeholder="请输入发货单" />
             </el-form-item>
           </el-col>
-          <el-col
-            :xs="24"
-            :sm="12"
-            :lg="8"
-          ><el-form-item prop="time" label="发货单时间">
-            <el-date-picker
-              v-model="invoiceOrderForm.time"
-              style="width: 100%"
-              type="daterange"
-              value-format="yyyy-MM-dd HH:mm:ss"
-              range-separator="至"
-              start-placeholder="开始日期"
-              end-placeholder="结束日期"
-            /></el-form-item></el-col>
-          <el-col
-            :xs="24"
-            :sm="12"
-            :lg="8"
-          ><el-form-item prop="userName" label="收货客户">
-            <el-input v-model="invoiceOrderForm.userName" placeholder="请输入收货客户" /> </el-form-item></el-col>
-          <el-col
-            :xs="24"
-            :sm="12"
-            :lg="8"
-          ><el-form-item prop="address" label="收货地址">
-            <el-input v-model="invoiceOrderForm.address" placeholder="请输入收货地址" /> </el-form-item></el-col>
-          <el-col
-            :xs="24"
-            :sm="12"
-            :lg="8"
-          ><el-form-item prop="remark" label="内容"> <el-input v-model="invoiceOrderForm.remark" placeholder="请输入内容" /> </el-form-item></el-col>
-          <el-col :xs="24" :sm="12" :lg="8" style="text-align: right;">
-            <el-button size="mini" @click="handleReset($event,'invoiceOrde')">重置</el-button>
-            <el-button size="mini" type="primary" @click="currentPage = 1,getListInvoiceOrder()">查询</el-button>
+          <el-col :xs="24" :sm="12" :lg="8"
+            ><el-form-item prop="time" label="发货单时间">
+              <el-date-picker
+                v-model="invoiceOrderForm.time"
+                style="width: 100%"
+                type="daterange"
+                value-format="yyyy-MM-dd HH:mm:ss"
+                range-separator="至"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期" /></el-form-item
+          ></el-col>
+          <el-col :xs="24" :sm="12" :lg="8"
+            ><el-form-item prop="userName" label="收货客户">
+              <el-input v-model="invoiceOrderForm.userName" placeholder="请输入收货客户" /> </el-form-item
+          ></el-col>
+          <el-col :xs="24" :sm="12" :lg="8"
+            ><el-form-item prop="address" label="收货地址">
+              <el-input v-model="invoiceOrderForm.address" placeholder="请输入收货地址" /> </el-form-item
+          ></el-col>
+          <el-col :xs="24" :sm="12" :lg="8"
+            ><el-form-item prop="remark" label="内容">
+              <el-input v-model="invoiceOrderForm.remark" placeholder="请输入内容" /> </el-form-item
+          ></el-col>
+          <el-col :xs="24" :sm="12" :lg="8" style="text-align: right">
+            <el-button size="mini" @click="handleReset($event, 'invoiceOrde')">重置</el-button>
+            <el-button size="mini" type="primary" @click=";(currentPage = 1), getListInvoiceOrder()">查询</el-button>
           </el-col>
         </el-row>
       </el-form>
@@ -180,7 +184,7 @@
                 <div style="display: flex">
                   <el-input v-model="specification" clearable style="margin-right: 10px" placeholder="请输入规格型号" />
                   <el-button @click="handleReset">重置</el-button>
-                  <el-button type="primary" size="mini" @click="currentPage = 1,getArrivalNotice()">查询</el-button>
+                  <el-button type="primary" size="mini" @click=";(currentPage = 1), getArrivalNotice()">查询</el-button>
                 </div>
               </el-form-item>
             </el-col>
@@ -252,7 +256,12 @@
             <el-col :span="8">
               <el-form-item prop="stockOrderSpecification" label="机型">
                 <div style="display: flex">
-                  <el-input v-model="stockOrderSpecification" clearable style="margin-right: 10px" placeholder="请输入机型" />
+                  <el-input
+                    v-model="stockOrderSpecification"
+                    clearable
+                    style="margin-right: 10px"
+                    placeholder="请输入机型"
+                  />
                 </div>
               </el-form-item>
             </el-col>
@@ -260,7 +269,7 @@
               <el-form-item prop="stockTimes" label="日期">
                 <el-date-picker
                   v-model="stockTimes"
-                  style="width: 100%;"
+                  style="width: 100%"
                   type="daterange"
                   value-format="yyyy-MM-dd HH:mm:ss"
                   range-separator="至"
@@ -270,8 +279,10 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <div style="float: right;"> <el-button size="mini" @click="handleReset($event, 'stockCost')">重置</el-button>
-                <el-button type="primary" size="mini" @click="currentPage = 1,getStockCostList()">查询</el-button></div>
+              <div style="float: right">
+                <el-button size="mini" @click="handleReset($event, 'stockCost')">重置</el-button>
+                <el-button type="primary" size="mini" @click=";(currentPage = 1), getStockCostList()">查询</el-button>
+              </div>
             </el-col>
           </el-row>
         </el-form>
@@ -286,50 +297,21 @@
             highlight-current-row
             stripe
           >
-            <el-table-column
-              type="index"
-              align="left"
-              min-width="50"
-              label="序号"
-            />
-            <el-table-column
-              property="orderId"
-              align="left"
-              min-width="150"
-              label="订单号"
-              show-overflow-tooltip
-            >
+            <el-table-column type="index" align="left" min-width="50" label="序号" />
+            <el-table-column property="orderId" align="left" min-width="150" label="订单号" show-overflow-tooltip>
               <template slot-scope="scope">
                 <el-link type="primary" :underline="false" @click="handleToDaily(scope.row.orderId)">{{
                   scope.row.orderId
                 }}</el-link>
               </template>
             </el-table-column>
-            <el-table-column
-              property="specification"
-              align="left"
-              min-width="250"
-              label="机型"
-              show-overflow-tooltip
-            />
-            <el-table-column
-              property="full"
-              align="left"
-              min-width="120"
-              label="是否已生成仓租"
-              show-overflow-tooltip
-            >
+            <el-table-column property="specification" align="left" min-width="250" label="机型" show-overflow-tooltip />
+            <el-table-column property="full" align="left" min-width="120" label="是否已生成仓租" show-overflow-tooltip>
               <template slot-scope="scope">
-                {{ scope.row.full =='YES'? '是': '否' }}
+                {{ scope.row.full == 'YES' ? '是' : '否' }}
               </template>
             </el-table-column>
-            <el-table-column
-              property="fullTime"
-              align="left"
-              min-width="150"
-              label="货满日期"
-              show-overflow-tooltip
-            />
+            <el-table-column property="fullTime" align="left" min-width="150" label="货满日期" show-overflow-tooltip />
             <el-table-column property="fullNum" align="left" min-width="80" label="计算天数" show-overflow-tooltip />
             <el-table-column align="center" label="操作" min-width="80" show-overflow-tooltip fixed="right">
               <template slot-scope="scope">
@@ -373,10 +355,10 @@
                 :preview-src-list="[imageURL + item.url]"
               />
               <div v-else class="box2" @click="openLink(item.url)">
-                <img v-if="checkFileType(item.url) == 'word'" src="@/assets/common/word.png">
-                <img v-if="checkFileType(item.url) == 'excel'" src="@/assets/common/excel.png">
-                <img v-if="checkFileType(item.url) == 'ppt'" src="@/assets/common/ppt.png">
-                <img v-if="checkFileType(item.url) == 'pdf'" src="@/assets/common/pdf.png">
+                <img v-if="checkFileType(item.url) == 'word'" src="@/assets/common/word.png" />
+                <img v-if="checkFileType(item.url) == 'excel'" src="@/assets/common/excel.png" />
+                <img v-if="checkFileType(item.url) == 'ppt'" src="@/assets/common/ppt.png" />
+                <img v-if="checkFileType(item.url) == 'pdf'" src="@/assets/common/pdf.png" />
                 <div class="name ellipsis-3">{{ item.name }}</div>
               </div>
             </div>
@@ -473,7 +455,14 @@ export default {
         remark: '',
         userName: ''
       },
-      fnArr: ['getDataList', 'getFileList', 'getRebateList', 'getListInvoiceOrder', 'getArrivalNotice', 'getStockCostList']
+      fnArr: [
+        'getDataList',
+        'getFileList',
+        'getRebateList',
+        'getListInvoiceOrder',
+        'getArrivalNotice',
+        'getStockCostList'
+      ]
     }
   },
   computed: {
@@ -529,7 +518,6 @@ export default {
         readFlag: false
       }
       const res = await getNoticeList(data)
-      console.log(res)
       this.dataList = res.data.records
       this.listTotal = res.data.total
     },
@@ -649,9 +637,10 @@ export default {
     },
     // 查看
     async lookInDialog(id) {
-      const res = await getNoticeDetail({ id })
+      const res = await getNoticeDetail({ id, isTopRead: true })
       this.detailData = res.data
       this.inDialog = true
+      this.getDataList()
     },
     // 下载
     async downloadFn(id) {
@@ -680,14 +669,14 @@ export default {
     },
     handleJump(id) {
       // this.$router.push({ path: `/supply/pickup/sum_list?id=${id}` })
-      this.$router.push({name: 'exwarehouseSum_list', query:{id}})
+      this.$router.push({ name: 'exwarehouseSum_list', query: { id } })
       this.type = 0
       this.$emit('reset')
       this.$store.commit('user/showMessage', 'no')
     },
     handleToDaily(orderId) {
       // this.$router.push({ path: `/basic_data/dailyWarehouseRent?orderId=${orderId}` })
-      this.$router.push({ name: 'dailyWarehouseRent', query:{orderId}})
+      this.$router.push({ name: 'dailyWarehouseRent', query: { orderId } })
       this.type = 0
       this.$emit('reset')
       this.$store.commit('user/showMessage', 'no')
@@ -697,7 +686,8 @@ export default {
 </script>
 
 <style lang="scss" scoped>
-::v-deep .el-form-item--mini .el-form-item__content, ::v-deep .el-form-item--mini .el-form-item__label{
+::v-deep .el-form-item--mini .el-form-item__content,
+::v-deep .el-form-item--mini .el-form-item__label {
   line-height: 27px;
 }
 ::v-deep .el-range-editor--mini .el-range-separator {

+ 1 - 1
src/components/SalesDialog/SalesDialog.vue

@@ -321,7 +321,7 @@ export default {
 <!--                <el-popconfirm-->
 <!--                  style="margin-left: 10px"-->
 <!--                  title="删除?"-->
-<!--                  @onConfirm="handleDel(row)"-->
+<!--                  @confirm="handleDel(row)"-->
 <!--                >-->
 <!--                  <el-button slot="reference" type="text" size="mini">提审</el-button>-->
 <!--                </el-popconfirm>-->

+ 1 - 1
src/components/template/import_mixin.js

@@ -35,7 +35,7 @@ export default {
                 })
             }}
           >
-            <span>{name}</span>
+            <span class="teshudeshangchuananniu">{name}</span>
           </el-upload>
         )
       }

+ 121 - 45
src/components/template/template-page-1.vue

@@ -24,7 +24,7 @@
       :moreParameters="moreParameters"
       :ellipsis="ellipsis"
       :pofx="pofx"
-      :pageSizes="[15, 30, 50, 100, 200 ,300]"
+      :pageSizes="[15, 30, 50, 100, 200, 300]"
       @columnWidthChange="columnWidthChange"
       @columnListChange="columnListChange"
     >
@@ -560,64 +560,140 @@ export default {
     export() {
       // filter(k=> k.exportField.isExport!==false) 是不否导出
       // filter(item => (item.show === undefined ? item.exportField.isShow : item.show)) 是不否展示、导出
-      this.columnList = this.$refs.zjpage.columnList.filter(k=> k.exportField.isExport!==false)
+      this.columnList = this.$refs.zjpage.columnList.filter(k => k.exportField.isExport !== false)
     },
-    exportDetermine(data) {
+    async exportDetermine(data) {
       if (!this.exportList) {
         return
       }
       const loading = this.$loading({
         lock: true,
-        text: 'Loading',
+        text: '正在导出',
         spinner: 'el-icon-loading',
         background: 'rgba(0, 0, 0, 0.7)'
       })
-      this.evens[0][0].loading = true
+
       var { querylist, ...p } = this.getParams()
-      this.exportList(
-        {
-          ...this.parameter,
-          pageSize: -1,
-          ...p,
-          params: querylist.map(item => {
-            item.param = item.param.replace(/>=/g, '')
-            item.param = item.param.replace(/<=/g, '')
-            if (
-              // item.compare === '=' &&
-              typeof item.value == 'string' &&
-              (~item.value.indexOf(',') || ~item.value.indexOf(','))
-            ) {
-              // 去除换行
-              var str = item.value.replace(/\\n/g, '')
-              // 去除空格
-              str = str.replace(/[\t\r\f\n\s]*/g, '')
-              // 转中文逗号
-              str = str.replace(/,/g, ',')
-              // 切割为数组
-              item.value = str.split(',')
-            }
-            return item
-          }),
-          exportFields: data
-        },
-        `${this.moduleName}.xlsx`
-      )
-        .then(res => {
-          this.$message({
-            message: '导出成功',
-            type: 'success'
-          })
-          this.columnList = []
-          this.evens[0][0].loading = false
-          loading.close()
+
+      var pms = {
+        ...this.parameter,
+        ...p,
+        pageSize: 1,
+        params: querylist.map(item => {
+          item.param = item.param.replace(/>=/g, '')
+          item.param = item.param.replace(/<=/g, '')
+          if (
+            // item.compare === '=' &&
+            typeof item.value === 'string' &&
+            (~item.value.indexOf(',') || ~item.value.indexOf(','))
+          ) {
+            // 去除换行
+            var str = item.value.replace(/\\n/g, '')
+            // 去除空格
+            str = str.replace(/[\t\r\f\n\s]*/g, '')
+            // 转中文逗号
+            str = str.replace(/,/g, ',')
+            // 切割为数组
+            item.value = str.split(',')
+          }
+          return item
         })
-        .catch(err => {
-          this.$message.error('导出失败')
+      }
+      var newPms = {}
+      var res = await this.getList(pms, data => {
+        newPms = data
+      })
+      // alert('接收到数据断点')
+      if (res.code == 200) {
+        if (res?.data?.records?.length) {
+          this.exportList(
+            {
+              ...pms,
+              ...newPms,
+              pageSize: -1,
+              exportFields: data
+            },
+            `${this.moduleName}.xlsx`
+          )
+            .then(res => {
+              this.$message({
+                message: '导出成功',
+                type: 'success'
+              })
+              this.columnList = []
+              loading.close()
+            })
+            .catch(err => {
+              this.$message.error('导出失败')
+              this.columnList = []
+              loading.close()
+            })
+        } else {
+          this.$message.error('导出条件没有查到任何符合条件的数据,请调整查询条件再导出。')
           this.columnList = []
-          this.evens[0][0].loading = false
           loading.close()
-        })
+        }
+      } else {
+        this.columnList = []
+        loading.close()
+      }
     },
+    //exportDetermine(data) {
+    //  if (!this.exportList) {
+    //    return
+    //  }
+    //  const loading = this.$loading({
+    //    lock: true,
+    //    text: 'Loading',
+    //    spinner: 'el-icon-loading',
+    //    background: 'rgba(0, 0, 0, 0.7)'
+    //  })
+    //  this.evens[0][0].loading = true
+    //  var { querylist, ...p } = this.getParams()
+    //  this.exportList(
+    //    {
+    //      ...this.parameter,
+    //      pageSize: -1,
+    //      ...p,
+    //      params: querylist.map(item => {
+    //        item.param = item.param.replace(/>=/g, '')
+    //        item.param = item.param.replace(/<=/g, '')
+    //        if (
+    //          // item.compare === '=' &&
+    //          typeof item.value == 'string' &&
+    //          (~item.value.indexOf(',') || ~item.value.indexOf(','))
+    //        ) {
+    //          // 去除换行
+    //          var str = item.value.replace(/\\n/g, '')
+    //          // 去除空格
+    //          str = str.replace(/[\t\r\f\n\s]*/g, '')
+    //          // 转中文逗号
+    //          str = str.replace(/,/g, ',')
+    //          // 切割为数组
+    //          item.value = str.split(',')
+    //        }
+    //        return item
+    //      }),
+    //      exportFields: data
+    //    },
+    //    `${this.moduleName}.xlsx`
+    //  )
+    //    .then(res => {
+    //      this.$message({
+    //        message: '导出成功',
+    //        type: 'success'
+    //      })
+    //      this.columnList = []
+    //      this.evens[0][0].loading = false
+    //      loading.close()
+    //    })
+    //    .catch(err => {
+    //      this.$message.error('导出失败')
+    //      this.columnList = []
+    //      this.evens[0][0].loading = false
+    //      loading.close()
+    //    })
+    //},
     refreshList(bool) {
       this.$refs.zjpage.refresh()
     }

+ 28 - 0
src/layout/components/Navbar.vue

@@ -16,6 +16,14 @@
           ></i>
         </el-tooltip>
       </div> -->
+      <div style="margin: 0 20px">
+          <el-autocomplete
+            v-model="pathurl"
+            :fetch-suggestions="querySearchAsync"
+            placeholder="搜索菜单"
+            @select="handleSelect"
+          ></el-autocomplete>
+        </div>
       <div v-if="isHongGe" class="right-menu-item" style="display: flex">
         <el-select v-model="changeNum" filterable :disabled="!isHongGe" @change="handleChangeArea">
           <el-option v-for="item in areaOpti" :key="item.value" :label="item.label" :value="item.value" />
@@ -138,6 +146,7 @@ import { getNoticeListCount } from '@/api/notice'
 import { getNoticeList } from '@/api/stock'
 import { getListOrderTrack } from '@/api/supply/pickup'
 import { getListInvoiceOrder } from '@/api/dashboard'
+import { pages } from '@/settings'
 
 import { bindEngineAccount, checkEngineAccount, setUserChanging } from '@/api/setting'
 import mixin from '@/mixin'
@@ -153,6 +162,7 @@ export default {
   mixins: [mixin],
   data() {
     return {
+      pathurl: '',
       noticeType: 1,
       intivalId: '',
       timer: '',
@@ -257,6 +267,24 @@ export default {
     getList() {
       // this.getNoticeList()
     },
+
+    querySearchAsync(queryString, cb) {
+      var data = pages.filter(item => ~item.meta.title.indexOf(queryString))
+      cb(
+        data.map(item => ({
+          value: item.meta.title,
+          path: item.path
+        }))
+      )
+    },
+    handleSelect(item) {
+      if (item.path) {
+        this.$router.push({
+          path: item.path
+        })
+      }
+      this.pathurl = ''
+    },
     handleChangeNotice(e) {
       if (e === 2) {
         this.currentPage2 = 1

+ 5 - 5
src/main.js

@@ -1,10 +1,10 @@
 import Vue from 'vue'
 import 'normalize.css/normalize.css' // A modern alternative to CSS resets
 // import './plugins/jquery.hiwprint.js'
-import ElementUI from 'element-ui'
-import 'element-ui/lib/theme-chalk/index.css'
-// import locale from 'element-ui/lib/locale/lang/en' // lang i18n
-import { Loading } from 'element-ui'
+import ElementUI from '@zjlib/element-ui2'
+import '@zjlib/element-ui2/lib/theme-chalk/index.css'
+// import locale from '@zjlib/element-ui2/lib/locale/lang/en' // lang i18n
+import { Loading } from '@zjlib/element-ui2'
 let loading
 function startLoading() {
   loading = Loading.service({
@@ -41,7 +41,7 @@ Vue.use(ElementPlugins)
 Vue.use(AMap)
 AMap.initAMapApiLoader({
   // 高德的key
-  key: '5894bf90997454b0df3c3d60cab12f64',
+  key: 'df9bfabcba60cc6e7ad45ae9923a682d',
   version: '2.0',
   plugins: ['AMap.Geocoder', 'AMap.AutoComplete', 'AMap.PlaceSearch', 'AMap.DistrictSearch']
 })

+ 3 - 6
src/mixin/print.js

@@ -123,7 +123,6 @@ export default {
       let loadingLen
       // 兼容多个打印数据
       ids = ids instanceof Array ? ids : [ids]
-      console.log(ids)
       // 清空之前打印的数据
       this.outputData = []
       // 筛选id
@@ -244,7 +243,6 @@ export default {
           }
           funcType = addPrints
         }
-        console.log(requestParams,'ddsd');
         const promise = await funcType(requestParams)
         // 清空当前克隆数据,避免重复添加次数
         this.clonelData = []
@@ -299,7 +297,8 @@ export default {
       refEnginRecordNo = data.refEnginRecordNo || data.invoicePickBeans[0].refEnginRecordNo || ''
       let remark
       remark = funcType === 'getDtailPrintDis' ? data.invoicePickBeans[0].remark || '' : data.remark || ''
-      console.log(data.invoicePickBeans[0], 'oo')
+      let createTime_
+      createTime_ = funcType === 'getDtailPrintDis' ? data.invoicePickBeans[0].approvalTime || '' : data.createTime || ''
       const tuiHuoRen = data.createBy
       let address = null
       if (data.pickType === 2) {
@@ -325,11 +324,10 @@ export default {
           for (let e = newInvoicePickBeans.length; e > 0; e--) {
             const tempData = newInvoicePickBeans[e - 1]
             total += Math.abs(+tempData.refundableQty)
-
             // 添加表格数据
             table.push({
               id: tempData.id,
-              createTime: tempData.id ? this.dateToDayFilter(data.createTime) : '',
+              createTime: tempData.id ? this.dateToDayFilter(createTime_) : '',
               enginOrderType:
                 tempData.orderType == 'HOME' ||
                 tempData.orderType == 'TRADE' ||
@@ -357,7 +355,6 @@ export default {
           tiTui: data.type === 2 ? `退货人` : `提货人`,
           takerPhone: data.takerPhone || '',
           pickTypeName: data.pickType === null ? '' : data.pickType === 1 ? '商家自提' : '物流配送',
-
           headerRemark: remark,
           total_num: data.total_num,
           total: total,

+ 12 - 1
src/permission.js

@@ -1,6 +1,6 @@
 import router from './router'
 import store from './store'
-import { Message } from 'element-ui'
+import { Message } from '@zjlib/element-ui2'
 import { getToken } from '@/utils/auth' // get token from cookie
 import NProgress from 'nprogress' // progress bar
 import 'nprogress/nprogress.css' // progress bar style
@@ -17,6 +17,8 @@ const lay = {
   component: Layout,
   children: []
 }
+import { pages } from './settings'
+
 // 递归找最后一级页面
 function getc(obj) {
   if (!obj.children || !obj.children.length) {
@@ -105,6 +107,9 @@ function buildRoute(route, parentUrl = '') {
         roles.push(role.code)
       }
       item.meta.roles = roles
+      if (!pages.find(ite => ite.path === item.path)) {
+        pages.push(item)
+      }
     } else if (type == 1) {
       item.component = RouterView
       item.children = route.children.filter(item => item.type !== 3).map(child => buildRoute(child, item.path))
@@ -112,9 +117,15 @@ function buildRoute(route, parentUrl = '') {
   } else {
     if (type == 4) {
       item.component = IframeView
+      if (!pages.find(ite => ite.path === item.path)) {
+        pages.push(item)
+      }
     } else if (type == 2) {
       try {
         item.component = _import(`${fullUrl}`)
+        if (!pages.find(ite => ite.path === item.path)) {
+          pages.push(item)
+        }
       } catch (e) {
         console.log(e)
       }

+ 3 - 1
src/settings.js

@@ -23,5 +23,7 @@ module.exports = {
    * @type {boolean} true | false
    * @description Whether show breadcrumb
    */
-  breadcrumb: false
+  breadcrumb: false,
+
+  pages: []
 }

+ 4 - 0
src/styles/index.scss

@@ -479,3 +479,7 @@ input[type='number']::-webkit-outer-spin-button {
     text-overflow: ellipsis;
   }
 }
+
+.el-select-dropdown {
+  z-index: 999999 !important;
+}

+ 1 - 1
src/utils/common.js

@@ -1,4 +1,4 @@
-import { MessageBox, Message, Notification } from 'element-ui'
+import { MessageBox, Message, Notification } from '@zjlib/element-ui2'
 
 export const successMsg = msg => {
   Message({

+ 2 - 2
src/utils/lbs.js

@@ -68,7 +68,7 @@ export function axiosMapZb(params) {
     url: `https://restapi.amap.com/v3/place/around`,
     method: 'get',
     params: {
-      key: 'b772f8b0ace6bc96c04ae8e48f241e36',
+      key: '428a7111e02ea8367a3b34804eaa025b',
       ...params
     }
   })
@@ -80,7 +80,7 @@ export function getIPAdd() {
     try {
       getIPs(ip => {
         axios
-          .get('https://restapi.amap.com/v3/ip?output=json&key=b772f8b0ace6bc96c04ae8e48f241e36&ip=' + ip)
+          .get('https://restapi.amap.com/v3/ip?output=json&key=428a7111e02ea8367a3b34804eaa025b&ip=' + ip)
           .then(r)
           .catch(j)
       })

+ 1 - 1
src/utils/request.js

@@ -1,5 +1,5 @@
 import axios from 'axios'
-import { MessageBox, Message } from 'element-ui'
+import { MessageBox, Message } from '@zjlib/element-ui2'
 import store from '@/store'
 import { getToken } from '@/utils/auth'
 

+ 1 - 1
src/views/basic_data/dailyWarehouseRent.vue

@@ -138,7 +138,7 @@ export default {
             {this.$checkBtnRole('tichu', this.$route.meta.roles) ? (
               <el-popconfirm
                 title='确定剔除吗?'
-                onOnConfirm={() => {
+                onConfirm={() => {
                   updateOrderFull({ id: row.orderFullCostId }).then(res => {
                     this.$refs.pageRef.refreshList()
 

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

@@ -35,7 +35,7 @@
           <!-- </el-form> -->
         </div>
       </el-card>
-      <br>
+      <br />
       <el-card class="">
         <div slot="header" class="clearfix">
           <strong>基本信息</strong>
@@ -232,7 +232,7 @@
         </div>
       </el-card>
     </el-form>
-    <br>
+    <br />
     <el-card>
       <div slot="header" class="clearfix">
         <strong>信用额度</strong>
@@ -252,7 +252,7 @@
         </el-row>
       </div>
     </el-card>
-    <br>
+    <br />
     <el-card>
       <div slot="header" class="clearfix">
         <strong>标签信息</strong>
@@ -343,7 +343,7 @@
         </el-form>
       </div>
     </el-card>
-    <br>
+    <br />
     <el-card>
       <div slot="header" class="clearfix">
         <strong>售后系统关联信息</strong>
@@ -351,10 +351,8 @@
       <!-- type="flex" justify="center" align="middle" class="" -->
       <el-row class="flex">
         <el-col :span="2">售后系统编号</el-col>
-        <el-col
-          :span="3"
-          style="margin: 0 20px"
-        ><el-input v-model="infoList.afterNumber" placeholder="请输入售后系统编号" size="mini" clearable />
+        <el-col :span="3" style="margin: 0 20px"
+          ><el-input v-model="infoList.afterNumber" placeholder="请输入售后系统编号" size="mini" clearable />
         </el-col>
         <el-col :span="4">售后系统绑定状态</el-col>
         <el-col :span="3">{{ infoList.binding === 'YES' ? '是' : '否' }}</el-col>

+ 1 - 1
src/views/basic_data/dealer/dealer_deposit.vue

@@ -119,7 +119,7 @@
                 <el-button type="text" size="mini" @click="logFn(scope.row.id)">记录</el-button>
                 <el-popconfirm
                 class="import-btn"
-                  @onConfirm="deleFn(scope.row.id)"
+                  @confirm="deleFn(scope.row.id)"
                   v-if="$checkBtnRole('del', $route.meta.roles)"
                   title="这是一段内容确定删除吗?"
                 >

+ 15 - 15
src/views/basic_data/dealer/dealer_list.vue

@@ -42,32 +42,32 @@ export default {
           [
             {
               name: '导出提贷物流存货类别',
-              click: (p) => {
+              click: p => {
                 const loading = this.$loading({
                   lock: true,
                   text: 'Loading',
                   spinner: 'el-icon-loading',
                   background: 'rgba(0, 0, 0, 0.7)'
                 })
-                exportJiaXianV2({
-                  pageNum: 1,
-                  pageSize: -1,
-                  params: this.$refs.pageRef.getParams().querylist
-                }, `${this.$route.meta.title}`)
+                exportJiaXianV2(
+                  {
+                    pageNum: 1,
+                    pageSize: -1,
+                    params: this.$refs.pageRef.getParams().querylist
+                  },
+                  `${this.$route.meta.title}`
+                )
                   .then(_res => {
                     this.$message({
                       message: '导出成功',
                       type: 'success'
                     })
                   })
-                  .catch(_err => {
-
-                  }).finally(() => loading.close()
-                  )
+                  .catch(_err => {})
+                  .finally(() => loading.close())
               }
             }
           ]
-
         ]
       ],
       // 表格属性
@@ -104,11 +104,11 @@ export default {
     operation() {
       return (_h, { row, index, column }) => {
         return (
-          <div class='operation-btns'>
+          <div class="operation-btns">
             <el-button
-              size='mini'
-              type='text'
-              onClick={ () => {
+              size="mini"
+              type="text"
+              onClick={() => {
                 this.visible = true
                 this.detailsId = row.id
               }}

+ 1 - 1
src/views/basic_data/dealer/dealer_stock.vue

@@ -285,7 +285,7 @@ export default {
               </el-button>
             ) : null}
             {this.$checkBtnRole('del', this.$route.meta.roles) ? (
-              <el-popconfirm onOnConfirm={() => this.deleFn(row.id)} title="这是一段内容确定删除吗?">
+              <el-popconfirm onConfirm={() => this.deleFn(row.id)} title="这是一段内容确定删除吗?">
                 <el-button style="font-size:12px" type="text" size="mini" slot="reference">
                   删除
                 </el-button>

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

@@ -164,7 +164,7 @@ export default {
                 icon="el-icon-info"
                 icon-color="red"
                 title="内容确定删除吗?"
-                onOnConfirm={() => this.hanleDelete(row.id)}
+                onConfirm={() => this.hanleDelete(row.id)}
               >
                 <el-button slot="reference" type="text" size="mini" class="textColor el-popover-left">
                   删除

+ 1 - 1
src/views/basic_data/material/classify_list.vue

@@ -107,7 +107,7 @@
                     icon="el-icon-info"
                     icon-color="red"
                     title="内容确定删除吗?"
-                    @onConfirm="hanleDelete(scope.row.id)"
+                    @confirm="hanleDelete(scope.row.id)"
                   >
                     <el-button
                       slot="reference"

+ 1 - 1
src/views/basic_data/material/machine_list.vue

@@ -253,7 +253,7 @@ export default {
                 icon="el-icon-info"
                 icon-color="red"
                 title="内容确定删除吗?"
-                onOnConfirm={() => this.hanleDeleteAll(row.id)}
+                onConfirm={() => this.hanleDeleteAll(row.id)}
               >
                 <el-button slot="reference" type="text" size="mini" class="textColor el-popover-left">
                   删除

+ 3 - 3
src/views/basic_data/material/modify_list.vue

@@ -270,7 +270,7 @@ export default {
           <div class="operation-btns">
             {row.examineStatus == '保存' ? (
               <el-popconfirm
-                onOnConfirm={async () => {
+                onConfirm={async () => {
                   this.handleGetPriceSubmit(row.updPriceBillId)
                 }}
                 title="是否确定需要提审该项内容?"
@@ -285,7 +285,7 @@ export default {
 
             {row.examineStatus == '待审核' ? (
               <el-popconfirm
-                onOnConfirm={async () => {
+                onConfirm={async () => {
                   this.approvalFn(row.updPriceBillId)
                 }}
                 title="是否确定需要审批该项内容?"
@@ -313,7 +313,7 @@ export default {
             )}
             {row.examineStatus == '审核通过' ? (
               <el-popconfirm
-                onOnConfirm={async() => {
+                onConfirm={async() => {
                   productUpdPriceReview({ id: row.updPriceBillId }).then(() => {
                     this.$successMsg('弃审成功')
                     this.$refs.pageRef.refreshList()

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

@@ -120,7 +120,7 @@ export default {
           <div class="operation-btns">
             {row.isRevoke === '否' ? (
               <el-popconfirm
-                onOnConfirm={async () => {
+                onConfirm={async () => {
                   this.handleRevoke(row.id)
                 }}
                 title="是否确定需要作废该项内容?"
@@ -135,7 +135,7 @@ export default {
 
             {this.$checkBtnRole('del', this.$route.meta.roles) ? (
               <el-popconfirm
-                onOnConfirm={async () => {
+                onConfirm={async () => {
                   this.handleDelete(row.id)
                 }}
                 title="是否确定需要删除该项内容?"

+ 4 - 4
src/views/basic_data/material/relation_list.vue

@@ -285,9 +285,9 @@ export default {
                 cancel-button-text="不用了"
                 icon="el-icon-info"
                 icon-color="red"
-                
+
                 title="内容确定删除吗?"
-                onOnConfirm={() => this.hanleDelete(row.id)}
+                onConfirm={() => this.hanleDelete(row.id)}
               >
                 <el-button slot="reference"  size="mini" type="text" class="textColor el-popover-left">
                   删除
@@ -443,12 +443,12 @@ export default {
       this.showDialogForm = false
     },
     hanleDelete(id) {
-    
+
         getProductDel({ ids: id }).then(res => {
           this.$successMsg('删除成功')
           this.$refs.pageRef.refreshList()
         })
-     
+
     },
     handleExport() {
       let screenData = {

+ 55 - 31
src/views/basic_data/numerusClausus.vue

@@ -18,9 +18,28 @@
       :close-on-click-modal="false"
       @close="handleClose"
     >
-      <el-form ref="formData" :model="formData" :rules="rules" label-width="150px" :inline="false" size="mini" :disabled="isDetail">
+      <el-form
+        ref="formData"
+        :model="formData"
+        :rules="rules"
+        label-width="150px"
+        :inline="false"
+        size="mini"
+        :disabled="isDetail"
+      >
         <el-form-item label="商家信息" prop="customerId">
-          <el-select v-model="formData.customerId" placeholder="请选择" clearable filterable style="width: 100%;" @change="handleChange">
+          <el-select
+            v-model="formData.customerId"
+            placeholder="请选择"
+            clearable
+            filterable
+            remote
+            reserve-keyword
+            :remote-method="remoteMethod"
+            :loading="loading"
+            style="width: 100%"
+            @change="handleChange"
+          >
             <el-option v-for="item in customerList" :key="item.id" :label="item.name" :value="item.id" />
           </el-select>
         </el-form-item>
@@ -78,6 +97,7 @@ export default {
   mixins: [import_mixin, add_callback_mixin],
   data() {
     return {
+      loading: false,
       visible: false,
       // 事件组合
       optionsEvensGroup: [
@@ -97,7 +117,7 @@ export default {
           [
             {
               name: '批量删除',
-              click: async() => {
+              click: async () => {
                 if (this.recordSelected.length === 0) {
                   this.$message.error('请选择需要删除的数据')
                   return
@@ -139,24 +159,12 @@ export default {
       },
       customerList: [],
       rules: {
-        customerId: [
-          { required: true, message: '请选择', trigger: 'change' }
-        ],
-        customerNumber: [
-          { required: true, message: '请填写', trigger: 'change' }
-        ],
-        homeLoginLimit: [
-          { required: true, message: '请填写', trigger: 'change' }
-        ],
-        spanLoginLimit: [
-          { required: true, message: '请填写', trigger: 'change' }
-        ],
-        workLoginLimit: [
-          { required: true, message: '请填写', trigger: 'change' }
-        ],
-        state: [
-          { required: true, message: '请选择', trigger: 'change' }
-        ]
+        customerId: [{ required: true, message: '请选择', trigger: 'change' }],
+        customerNumber: [{ required: true, message: '请填写', trigger: 'change' }],
+        homeLoginLimit: [{ required: true, message: '请填写', trigger: 'change' }],
+        spanLoginLimit: [{ required: true, message: '请填写', trigger: 'change' }],
+        workLoginLimit: [{ required: true, message: '请填写', trigger: 'change' }],
+        state: [{ required: true, message: '请选择', trigger: 'change' }]
       },
       isDetail: false
     }
@@ -180,10 +188,10 @@ export default {
     operation() {
       return (_h, { row, index, column }) => {
         return (
-          <div class='operation-btns'>
+          <div class="operation-btns">
             <el-button
-              size='mini'
-              type='text'
+              size="mini"
+              type="text"
               onClick={() => {
                 this.getDealerListV2()
                 this.getMerchantLoginQuotaLimitDetail(row.id)
@@ -193,8 +201,8 @@ export default {
               编辑
             </el-button>
             <el-button
-              size='mini'
-              type='text'
+              size="mini"
+              type="text"
               onClick={() => {
                 this.getDealerListV2()
                 this.getMerchantLoginQuotaLimitDetail(row.id)
@@ -206,15 +214,15 @@ export default {
             </el-button>
             {
               <el-popconfirm
-                title='确定删除吗?'
-                onOnConfirm={() => {
+                title="确定删除吗?"
+                onConfirm={() => {
                   delMerchantLoginQuotaLimit([row.id]).then(res => {
                     this.$refs.pageRef.refreshList()
                     this.$successMsg('删除成功')
                   })
                 }}
               >
-                <el-button slot='reference' type='text' size='mini'>
+                <el-button slot="reference" type="text" size="mini">
                   删除
                 </el-button>
               </el-popconfirm>
@@ -238,12 +246,28 @@ export default {
         }
       })
     },
-    getDealerListV2() {
+    remoteMethod(e) {
+      this.loading = true
+      this.getDealerListV2(e)
+    },
+    getDealerListV2(e) {
+      let params = []
+      if (e) {
+        params = [
+          {
+            param: 'a.name',
+            compare: 'like',
+            value: e
+          }
+        ]
+      }
       getDealerListV2({
         pageNum: 1,
-        pageSize: 100
+        pageSize: 200,
+        params
       }).then(res => {
         this.customerList = res.data.records
+        this.loading = false
       })
     },
     handleChange(e) {

+ 1 - 1
src/views/basic_data/partya/partyaList.vue

@@ -133,7 +133,7 @@ export default {
             {
               <el-popconfirm
                 title='确定删除吗?'
-                onOnConfirm={() => {
+                onConfirm={() => {
                   delFirstPartyCustomerManagement({ idList: row.id }).then(res => {
                     this.$refs.pageRef.refreshList()
 

+ 1 - 1
src/views/basic_data/priceSalesType.vue

@@ -221,7 +221,7 @@ export default {
               }}
             >编辑</el-button>
             <el-popconfirm
-              onOnConfirm={() => {
+              onConfirm={() => {
                 delPriceSalesRela([row.priceSaleTypeRelaId]).then(res => {
                   this.$successMsg('删除成功')
                   this.$refs.pageRef.refreshList()

+ 1 - 1
src/views/basic_data/priceType.vue

@@ -166,7 +166,7 @@ export default {
               }}
             >编辑</el-button>
             <el-popconfirm
-              onOnConfirm={() => {
+              onConfirm={() => {
                 delProductPrice([row.priceTypeId]).then(res => {
                   this.$successMsg('删除成功')
                   this.$refs.pageRef.refreshList()

+ 1 - 1
src/views/basic_data/sectorAllocation.vue

@@ -41,7 +41,7 @@
               <el-popconfirm
                 style="margin-left: 10px"
                 title="这是一段内容确定删除吗?"
-                @onConfirm="handleDelete(row.id)"
+                @confirm="handleDelete(row.id)"
               >
                 <el-button slot="reference" type="text" size="mini">删除</el-button>
               </el-popconfirm>

+ 2 - 2
src/views/basic_data/stock/Issue_list.vue

@@ -7,7 +7,7 @@
     :optionsEvensGroup="optionsEvensGroup"
     :columnParsing="columnParsing"
   >
-   
+
   </template-page>
 </template>
 
@@ -70,7 +70,7 @@ export default {
       return (h, { row, index, column }) => {
         return (
           <div class="operation-btns">
-            <el-popconfirm title="弃审吗?" onOnConfirm={() => this.handleUnapprove(row.id, row.billNo)}>
+            <el-popconfirm title="弃审吗?" onConfirm={() => this.handleUnapprove(row.id, row.billNo)}>
               <el-button slot="reference" type="text" size="mini">
                 弃审
               </el-button>

+ 519 - 0
src/views/basic_data/stock/electricalStorageCharges.vue

@@ -0,0 +1,519 @@
+<template>
+  <div class="app-container">
+    <!-- 筛选条件 -->
+    <div class="screen-container">
+      <Collapse :screen-form="screenForm">
+        <template #right_btn>
+          <el-button size="mini" @click="resetScreenForm">清空</el-button>
+          <el-button size="mini" type="primary" @click="submitScreenForm">搜索</el-button>
+        </template>
+        <template #search>
+          <el-form ref="screenForm" :model="screenForm" label-width="120px" size="mini" label-position="left">
+            <el-row :gutter="20">
+              <el-col :xs="24" :sm="12" :lg="6">
+                <el-form-item label="发货申请" prop="orderNo">
+                  <el-input v-model="screenForm.orderNo" placeholder="请输入发货申请" />
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :lg="6">
+                <el-form-item label="销售出库单号" prop="id">
+                  <el-input v-model="screenForm.id" placeholder="请输入销售出库单号" />
+                </el-form-item>
+              </el-col>
+              <!-- <el-col :xs="24" :sm="12" :lg="6">
+                <el-form-item label="订单类型" prop="orderType">
+                  <el-select v-model="screenForm.orderType" clearable filterable>
+                    <el-option v-for="item in orderType" :key="item.value" :label="item.label" :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col> -->
+              <el-col :xs="24" :sm="12" :lg="6">
+                <el-form-item label="订单号" prop="mainOrderId">
+                  <el-input v-model="screenForm.mainOrderId" placeholder="请输入订单号" />
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :lg="6">
+                <el-form-item label="订单日期" prop="orderDate">
+                  <el-date-picker
+                    v-model="screenForm.orderDate"
+                    type="datetimerange"
+                    :default-time="['00:00:00', '23:59:59']"
+                    range-separator="至"
+                    style="width: 100%"
+                    value-format="yyyy-MM-dd HH:mm:ss"
+                    start-placeholder="开始日期"
+                    end-placeholder="结束日期"
+                  >
+                  </el-date-picker>
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :lg="6">
+                <el-form-item label="发货单日期" prop="invoiceDate">
+                  <el-date-picker
+                    v-model="screenForm.invoiceDate"
+                    type="datetimerange"
+                    :default-time="['00:00:00', '23:59:59']"
+                    range-separator="至"
+                    style="width: 100%"
+                    value-format="yyyy-MM-dd HH:mm:ss"
+                    start-placeholder="开始日期"
+                    end-placeholder="结束日期"
+                  >
+                  </el-date-picker>
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :lg="6">
+                <el-form-item label="仓库" prop="correspondId">
+                  <el-select v-model="screenForm.correspondId" clearable filterable multiple>
+                    <el-option
+                      v-for="(item, index) in warehouseList"
+                      :key="index"
+                      :label="item.name"
+                      :value="item.id"
+                    />
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :lg="6">
+                <el-form-item label="经销商名称" prop="customerName">
+                  <el-input v-model="screenForm.customerName" placeholder="请输入经销商名称" />
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :lg="6">
+                <el-form-item label="经销商编码" prop="customerNumber">
+                  <el-input v-model="screenForm.customerNumber" placeholder="请输入经销商编码" />
+                </el-form-item>
+              </el-col>
+              <!-- <el-col :xs="24" :sm="12" :lg="6">
+                <el-form-item label="物料名称" prop="materialName">
+                  <el-input
+                    v-model="screenForm.materialName"
+                    placeholder="请输入物料名称"
+                  />
+                </el-form-item>
+              </el-col> -->
+              <el-col :xs="24" :sm="12" :lg="6">
+                <el-form-item label="物料编码" prop="materialNumber">
+                  <el-input v-model="screenForm.materialNumber" placeholder="请输入物料编码" />
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :lg="6">
+                <el-form-item label="规格型号" prop="specification">
+                  <el-input v-model="screenForm.specification" placeholder="请输入规格型号" />
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :lg="6">
+                <el-form-item label="发货审核时间" prop="approvalDate">
+                  <el-date-picker
+                    v-model="screenForm.approvalDate"
+                    type="datetimerange"
+                    :default-time="['00:00:00', '23:59:59']"
+                    range-separator="至"
+                    style="width: 100%"
+                    value-format="yyyy-MM-dd HH:mm:ss"
+                    start-placeholder="开始日期"
+                    end-placeholder="结束日期"
+                  >
+                  </el-date-picker>
+                </el-form-item>
+              </el-col>
+
+              <el-col :xs="24" :sm="12" :lg="6">
+                <el-form-item label="出库状态" prop="saleExamineStatus">
+                  <el-select v-model="screenForm.saleExamineStatus" clearable filterable>
+                    <el-option
+                      v-for="(item, index) in statusList"
+                      :key="index"
+                      :label="item.label"
+                      :value="item.value"
+                    />
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :lg="6">
+                <el-form-item label="出库审核时间" prop="saleDate">
+                  <el-date-picker
+                    v-model="screenForm.saleDate"
+                    type="datetimerange"
+                    :default-time="['00:00:00', '23:59:59']"
+                    range-separator="至"
+                    style="width: 100%"
+                    value-format="yyyy-MM-dd HH:mm:ss"
+                    start-placeholder="开始日期"
+                    end-placeholder="结束日期"
+                  >
+                  </el-date-picker>
+                </el-form-item>
+              </el-col>
+              <el-col :xs="24" :sm="12" :lg="6">
+                <el-form-item label="存货类别" prop="categoryNum">
+                  <el-select v-model="screenForm.categoryNum" clearable filterable multiple>
+                    <el-option
+                      v-for="(item, index) in categoryList"
+                      :key="index"
+                      :label="item.name"
+                      :value="item.number"
+                    />
+                  </el-select>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-form>
+        </template>
+      </Collapse>
+    </div>
+    <div class="mymain-container">
+      <div class="btn-group clearfix">
+        <div>
+          <ExportButton :ex-url="'/sale/storageFee/listStorageFeeExport'" :ex-params="exParams" />
+        </div>
+      </div>
+      <div class="table">
+        <el-table
+          v-loading="listLoading"
+          :data="dataList"
+          element-loading-text="Loading"
+          border
+          fit
+          highlight-current-row
+          stripe
+          show-summary
+          :summary-method="$getSummaries"
+        >
+          <!-- <el-table-column align="left" label="订单类型" prop="orderType" min-width="150" show-overflow-tooltip>
+            <template slot-scope="scope">
+              {{ filterOderType(scope.row.orderType) }}
+            </template>
+          </el-table-column> -->
+          <el-table-column align="left" label="订单号" prop="mainOrderId" min-width="150" show-overflow-tooltip />
+          <el-table-column align="left" label="订单日期" prop="theTime" min-width="150" show-overflow-tooltip />
+          <el-table-column align="left" label="订单审核时间" prop="examineTime" min-width="150" show-overflow-tooltip />
+          <el-table-column
+            align="left"
+            label="预留时间"
+            prop="reservedCreateTime"
+            min-width="150"
+            show-overflow-tooltip
+          />
+          <el-table-column align="left" label="预留单号" prop="reservedId" min-width="150" show-overflow-tooltip />
+          <el-table-column align="left" label="发货单号" prop="invoiceId" min-width="150" show-overflow-tooltip />
+          <el-table-column align="left" label="发货单日期" prop="orderTime" min-width="150" show-overflow-tooltip />
+          <el-table-column
+            align="left"
+            label="发货审核时间"
+            prop="approvalTime"
+            min-width="150"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="left"
+            label="出库状态"
+            prop="salesExamineStatus"
+            min-width="150"
+            show-overflow-tooltip
+          >
+            <template slot-scope="scope">
+              {{ filterExamineStatus(scope.row.salesExamineStatus) }}
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="left"
+            label="出库审核时间"
+            prop="salesApprovalTime"
+            min-width="150"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="left"
+            label="出库审核人"
+            prop="salesApprovalName"
+            min-width="150"
+            show-overflow-tooltip
+          />
+          <el-table-column align="left" label="仓库" prop="correspondName" min-width="150" show-overflow-tooltip />
+          <el-table-column align="left" label="客户编号" prop="customerNumber" min-width="150" show-overflow-tooltip />
+          <el-table-column align="left" label="客户名称" prop="customerName" min-width="150" show-overflow-tooltip />
+          <el-table-column align="left" label="存货编号" prop="materialCode" min-width="150" show-overflow-tooltip />
+          <el-table-column align="left" label="存货类别" prop="k3CategoryName" min-width="150" show-overflow-tooltip />
+          <el-table-column align="left" label="规格型号" prop="specification" min-width="150" show-overflow-tooltip />
+          <el-table-column align="right" label="订单数量" prop="qty" min-width="150" show-overflow-tooltip />
+          <el-table-column align="right" label="价税合计" prop="payAmount" min-width="150" show-overflow-tooltip />
+          <el-table-column align="right" label="折扣额" prop="payRebateAmount" min-width="150" show-overflow-tooltip />
+          <el-table-column align="right" label="合计" prop="totalAmount" min-width="150" show-overflow-tooltip />
+          <el-table-column align="right" label="发货数量" prop="refundableQty" min-width="150" show-overflow-tooltip />
+          <el-table-column align="right" label="未发货数量" prop="sendQty" min-width="150" show-overflow-tooltip />
+        </el-table>
+      </div>
+    </div>
+    <div class="pagination clearfix">
+      <div class="fr">
+        <el-pagination
+          :current-page="currentPage"
+          :page-sizes="[10, 20, 30, 50]"
+          :page-size="10"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="listTotal"
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+        />
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { saleStorageFeeListStorageFee } from '@/api/stock'
+import { getCategoryList } from '@/api/common'
+import { getWarehouseList } from '@/api/supply/apply'
+
+export default {
+  data() {
+    return {
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      dataList: null, // 列表数据
+      listLoading: false, // 列表加载loading
+      screenForm: {
+        correspondId: [],
+        categoryNum: [],
+        customerName: '',
+        customerNumber: '',
+        endTime: '',
+        id: '',
+        invoiceEndTime: '',
+        invoiceStartTime: '',
+        mainOrderId: '',
+        materialName: '',
+        materialNumber: '',
+        orderNo: '',
+        orderType: '',
+        specification: '',
+        startTime: '',
+        orderDate: [],
+        invoiceDate: [],
+        approvalDate: [],
+        saleDate: [],
+        saleExamineStatus: ''
+      },
+      typeList: [],
+      statusList: [
+        { value: 'SAVE', label: '保存' },
+        { value: 'WAIT', label: '待审核' },
+        { value: 'OK', label: '通过' },
+        { value: 'FAIL', label: '不通过' },
+        { value: 'CLOSE', label: '关闭' }
+      ],
+      warehouseList: [],
+      categoryList: [],
+      isCollapse: true,
+      orderType: [
+        {
+          value: 'TRADE',
+          label: '商用'
+        },
+        {
+          value: 'HOME',
+          label: '家用'
+        },
+        {
+          value: 'RETAIL',
+          label: '零售'
+        },
+
+        {
+          value: 'RETAIL_POLICY',
+          label: '政策'
+        },
+        {
+          value: 'PERMU_HOME',
+          label: '置换家用'
+        },
+        {
+          value: 'PERMU_TRADE',
+          label: '置换商用'
+        },
+        {
+          value: 'PERMU_RETAIL',
+          label: '置换零售'
+        },
+        {
+          value: 'PERMU_RETAIL_POLICY',
+          label: '置换政策'
+        },
+        {
+          value: 'REQUISITION_RETAIL',
+          label: '调拨零售'
+        },
+        {
+          value: 'REQUISITION_RETAIL_POLICY',
+          label: '调拨政策'
+        },
+        {
+          value: 'REQUISITION_TRADE',
+          label: '调拨商用'
+        },
+        {
+          value: 'REQUISITION_HOME',
+          label: '调拨家用'
+        }
+      ],
+      examineStatus: [
+        {
+          value: 'SAVE',
+          label: '保存'
+        },
+        {
+          value: 'WAIT',
+          label: '待审核'
+        },
+        {
+          value: 'OK',
+          label: '通过'
+        },
+        {
+          value: 'FAIL',
+          label: '不通过'
+        },
+        {
+          value: 'CLOSE',
+          label: '关闭'
+        }
+      ]
+    }
+  },
+
+  computed: {
+    exParams() {
+      return {
+        categoryNum: this.screenForm.categoryNum.join(','),
+        correspondId: this.screenForm.correspondId.join(','),
+        customerName: this.screenForm.customerName,
+        customerNumber: this.screenForm.customerNumber,
+        endTime: this.screenForm.orderDate ? this.screenForm.orderDate[1] : '',
+        id: this.screenForm.id,
+        invoiceEndTime: this.screenForm.invoiceDate ? this.screenForm.invoiceDate[1] : '',
+        invoiceStartTime: this.screenForm.invoiceDate ? this.screenForm.invoiceDate[0] : '',
+        approvalStartTime: this.screenForm.approvalDate ? this.screenForm.approvalDate[0] : '',
+        approvalEndTime: this.screenForm.approvalDate ? this.screenForm.approvalDate[1] : '',
+        saleStartTime: this.screenForm.saleDate ? this.screenForm.saleDate[0] : '',
+        saleEndTime: this.screenForm.saleDate ? this.screenForm.saleDate[1] : '',
+        saleExamineStatus: this.screenForm.saleExamineStatus,
+        mainOrderId: this.screenForm.mainOrderId,
+        materialName: this.screenForm.materialName,
+        materialNumber: this.screenForm.materialNumber,
+        orderNo: this.screenForm.orderNo,
+        orderType: this.screenForm.orderType,
+        specification: this.screenForm.specification,
+        startTime: this.screenForm.orderDate ? this.screenForm.orderDate[0] : ''
+      }
+    },
+    filterOderType() {
+      return type => {
+        if (this.orderType.length && type) {
+          return this.orderType.find(e => e.value === type).label
+        }
+      }
+    },
+    filterExamineStatus() {
+      return status => {
+        if (this.examineStatus.length && status) {
+          return this.examineStatus.find(e => e.value === status).label
+        }
+      }
+    }
+  },
+
+  created() {
+    this.getList()
+  },
+  methods: {
+    getList() {
+      const params = {
+        pageNum: this.currentPage,
+        pageSize: this.pageSize,
+        categoryNum: this.screenForm.categoryNum.join(','),
+        correspondId: this.screenForm.correspondId.join(','),
+        customerName: this.screenForm.customerName,
+        customerNumber: this.screenForm.customerNumber,
+        endTime: this.screenForm.orderDate ? this.screenForm.orderDate[1] : '',
+        id: this.screenForm.id,
+        invoiceEndTime: this.screenForm.invoiceDate ? this.screenForm.invoiceDate[1] : '',
+        invoiceStartTime: this.screenForm.invoiceDate ? this.screenForm.invoiceDate[0] : '',
+        approvalStartTime: this.screenForm.approvalDate ? this.screenForm.approvalDate[0] : '',
+        approvalEndTime: this.screenForm.approvalDate ? this.screenForm.approvalDate[1] : '',
+        saleStartTime: this.screenForm.saleDate ? this.screenForm.saleDate[0] : '',
+        saleEndTime: this.screenForm.saleDate ? this.screenForm.saleDate[1] : '',
+        saleExamineStatus: this.screenForm.saleExamineStatus,
+        mainOrderId: this.screenForm.mainOrderId,
+        materialName: this.screenForm.materialName,
+        materialNumber: this.screenForm.materialNumber,
+        orderNo: this.screenForm.orderNo,
+        orderType: this.screenForm.orderType,
+        specification: this.screenForm.specification,
+        startTime: this.screenForm.orderDate ? this.screenForm.orderDate[0] : ''
+      }
+      this.listLoading = true
+      saleStorageFeeListStorageFee(params).then(res => {
+        res.data.records.forEach(item => {
+          item.sums1 = ['qty', 'sendQty', 'directTransferQty', 'hasSendQty', 'refundableQty']
+          item.sums2 = ['price', 'totalAmount', 'payAmount', 'rebateAmount', 'payRebateAmount', 'totalDiscAmount']
+        })
+
+        this.dataList = res.data.records
+        this.listTotal = res.data.total
+        this.listLoading = false
+        console.log(res, this.dataList)
+      })
+      this.getWarehouseList()
+      this.getCategoryList()
+    },
+    // 获取仓库列表
+    getWarehouseList() {
+      getWarehouseList({
+        pageNum: 1,
+        pageSize: -1
+      }).then(res => {
+        this.warehouseList = res.data.records
+      })
+    },
+
+    // 获取存货类别列表
+    getCategoryList() {
+      getCategoryList({
+        pageNum: 1,
+        pageSize: -1
+      }).then(res => {
+        this.categoryList = res.data.records
+      })
+    },
+
+    // 提交筛选表单
+    submitScreenForm() {
+      this.currentPage = 1
+      this.getList()
+    },
+
+    // 重置筛选表单
+    resetScreenForm() {
+      this.$refs.screenForm.resetFields()
+      this.currentPage = 1
+      this.getList()
+    },
+
+    // 更改每页数量
+    handleSizeChange(val) {
+      this.pageSize = val
+      this.currentPage = 1
+      this.getList()
+    },
+
+    // 更改当前页
+    handleCurrentChange(val) {
+      this.currentPage = val
+      this.getList()
+    }
+  }
+}
+</script>

+ 1 - 1
src/views/basic_data/stock/material_list.vue

@@ -87,7 +87,7 @@ export default {
       return (h, { row, index, column }) => {
         return (
           <div class="operation-btns">
-            <el-popconfirm title="弃审吗?" onOnConfirm={() => this.handleUnapprove(row.id, row.billNo)}>
+            <el-popconfirm title="弃审吗?" onConfirm={() => this.handleUnapprove(row.id, row.billNo)}>
               <el-button slot="reference" type="text" size="mini">
                 弃审
               </el-button>

+ 42 - 22
src/views/basic_data/stock/stock_fee_list.vue

@@ -38,7 +38,7 @@
                   <el-date-picker
                     v-model="screenForm.orderDate"
                     type="datetimerange"
-                    :default-time="['00:00:00','23:59:59']"
+                    :default-time="['00:00:00', '23:59:59']"
                     range-separator="至"
                     style="width: 100%"
                     value-format="yyyy-MM-dd HH:mm:ss"
@@ -53,7 +53,7 @@
                   <el-date-picker
                     v-model="screenForm.invoiceDate"
                     type="datetimerange"
-:default-time="['00:00:00','23:59:59']"
+                    :default-time="['00:00:00', '23:59:59']"
                     range-separator="至"
                     style="width: 100%"
                     value-format="yyyy-MM-dd HH:mm:ss"
@@ -108,7 +108,7 @@
                   <el-date-picker
                     v-model="screenForm.approvalDate"
                     type="datetimerange"
-:default-time="['00:00:00','23:59:59']"
+                    :default-time="['00:00:00', '23:59:59']"
                     range-separator="至"
                     style="width: 100%"
                     value-format="yyyy-MM-dd HH:mm:ss"
@@ -136,7 +136,7 @@
                   <el-date-picker
                     v-model="screenForm.saleDate"
                     type="datetimerange"
-:default-time="['00:00:00','23:59:59']"
+                    :default-time="['00:00:00', '23:59:59']"
                     range-separator="至"
                     style="width: 100%"
                     value-format="yyyy-MM-dd HH:mm:ss"
@@ -146,6 +146,18 @@
                   </el-date-picker>
                 </el-form-item>
               </el-col>
+              <el-col :xs="24" :sm="12" :lg="6">
+                <el-form-item label="存货类别" prop="categoryNum">
+                  <el-select v-model="screenForm.categoryNum" clearable filterable multiple>
+                    <el-option
+                      v-for="(item, index) in categoryList"
+                      :key="index"
+                      :label="item.name"
+                      :value="item.number"
+                    />
+                  </el-select>
+                </el-form-item>
+              </el-col>
             </el-row>
           </el-form>
         </template>
@@ -219,6 +231,7 @@
             min-width="150"
             show-overflow-tooltip
           />
+          <el-table-column align="left" label="存货类别" prop="k3CategoryName" min-width="150" show-overflow-tooltip />
           <el-table-column align="left" label="仓库" prop="correspondName" min-width="150" show-overflow-tooltip />
           <el-table-column align="left" label="客户编号" prop="customerNumber" min-width="150" show-overflow-tooltip />
           <el-table-column align="left" label="客户名称" prop="customerName" min-width="150" show-overflow-tooltip />
@@ -230,6 +243,10 @@
           <el-table-column align="right" label="合计" prop="totalAmount" min-width="150" show-overflow-tooltip />
           <el-table-column align="right" label="发货数量" prop="refundableQty" min-width="150" show-overflow-tooltip />
           <el-table-column align="right" label="未发货数量" prop="sendQty" min-width="150" show-overflow-tooltip />
+          <el-table-column align="right" label="起算日期" prop="startCalculationTime" min-width="150" show-overflow-tooltip />
+          <el-table-column align="right" label="结算日期" prop="endCalculationTime" min-width="150" show-overflow-tooltip />
+          <el-table-column align="right" label="计算天数" prop="calculationDays" min-width="150" show-overflow-tooltip />
+          <el-table-column align="right" label="仓租金额" prop="warehouseRent" min-width="150" show-overflow-tooltip />
         </el-table>
       </div>
     </div>
@@ -281,6 +298,7 @@ export default {
         invoiceDate: [],
         approvalDate: [],
         saleDate: [],
+        categoryNum: [],
         saleExamineStatus: ''
       },
       typeList: [],
@@ -376,22 +394,23 @@ export default {
         correspondId: this.screenForm.correspondId.join(','),
         customerName: this.screenForm.customerName,
         customerNumber: this.screenForm.customerNumber,
-        endTime: this.screenForm.orderDate?this.screenForm.orderDate[1] :'',
+        endTime: this.screenForm.orderDate ? this.screenForm.orderDate[1] : '',
         id: this.screenForm.id,
-        invoiceEndTime: this.screenForm.invoiceDate?this.screenForm.invoiceDate[1]:'',
-        invoiceStartTime:this.screenForm.invoiceDate? this.screenForm.invoiceDate[0]:'',
-        approvalStartTime:this.screenForm.approvalDate? this.screenForm.approvalDate[0]:'',
-        approvalEndTime:this.screenForm.approvalDate? this.screenForm.approvalDate[1]:'',
-        saleStartTime:this.screenForm.saleDate? this.screenForm.saleDate[0]:'',
-        saleEndTime:this.screenForm.saleDate? this.screenForm.saleDate[1]:'',
+        invoiceEndTime: this.screenForm.invoiceDate ? this.screenForm.invoiceDate[1] : '',
+        invoiceStartTime: this.screenForm.invoiceDate ? this.screenForm.invoiceDate[0] : '',
+        approvalStartTime: this.screenForm.approvalDate ? this.screenForm.approvalDate[0] : '',
+        approvalEndTime: this.screenForm.approvalDate ? this.screenForm.approvalDate[1] : '',
+        saleStartTime: this.screenForm.saleDate ? this.screenForm.saleDate[0] : '',
+        saleEndTime: this.screenForm.saleDate ? this.screenForm.saleDate[1] : '',
         saleExamineStatus: this.screenForm.saleExamineStatus,
+        categoryNum: this.screenForm.categoryNum.join(','),
         mainOrderId: this.screenForm.mainOrderId,
         materialName: this.screenForm.materialName,
         materialNumber: this.screenForm.materialNumber,
         orderNo: this.screenForm.orderNo,
         orderType: this.screenForm.orderType,
         specification: this.screenForm.specification,
-        startTime:this.screenForm.orderDate? this.screenForm.orderDate[0]:''
+        startTime: this.screenForm.orderDate ? this.screenForm.orderDate[0] : ''
       }
     },
     filterOderType() {
@@ -421,22 +440,23 @@ export default {
         correspondId: this.screenForm.correspondId.join(','),
         customerName: this.screenForm.customerName,
         customerNumber: this.screenForm.customerNumber,
-        endTime: this.screenForm.orderDate?this.screenForm.orderDate[1] :'',
+        endTime: this.screenForm.orderDate ? this.screenForm.orderDate[1] : '',
         id: this.screenForm.id,
-        invoiceEndTime: this.screenForm.invoiceDate?this.screenForm.invoiceDate[1]:'',
-        invoiceStartTime:this.screenForm.invoiceDate? this.screenForm.invoiceDate[0]:'',
-        approvalStartTime:this.screenForm.approvalDate? this.screenForm.approvalDate[0]:'',
-        approvalEndTime:this.screenForm.approvalDate? this.screenForm.approvalDate[1]:'',
-        saleStartTime:this.screenForm.saleDate? this.screenForm.saleDate[0]:'',
-        saleEndTime:this.screenForm.saleDate? this.screenForm.saleDate[1]:'',
+        invoiceEndTime: this.screenForm.invoiceDate ? this.screenForm.invoiceDate[1] : '',
+        invoiceStartTime: this.screenForm.invoiceDate ? this.screenForm.invoiceDate[0] : '',
+        approvalStartTime: this.screenForm.approvalDate ? this.screenForm.approvalDate[0] : '',
+        approvalEndTime: this.screenForm.approvalDate ? this.screenForm.approvalDate[1] : '',
+        saleStartTime: this.screenForm.saleDate ? this.screenForm.saleDate[0] : '',
+        saleEndTime: this.screenForm.saleDate ? this.screenForm.saleDate[1] : '',
         saleExamineStatus: this.screenForm.saleExamineStatus,
+        categoryNum: this.screenForm.categoryNum.join(','),
         mainOrderId: this.screenForm.mainOrderId,
         materialName: this.screenForm.materialName,
         materialNumber: this.screenForm.materialNumber,
         orderNo: this.screenForm.orderNo,
         orderType: this.screenForm.orderType,
         specification: this.screenForm.specification,
-        startTime:this.screenForm.orderDate? this.screenForm.orderDate[0]:''
+        startTime: this.screenForm.orderDate ? this.screenForm.orderDate[0] : ''
       }
       this.listLoading = true
       getListStorageFee(params).then(res => {
@@ -448,7 +468,7 @@ export default {
         this.dataList = res.data.records
         this.listTotal = res.data.total
         this.listLoading = false
-        console.log(res,this.dataList)
+        console.log(res, this.dataList)
       })
       this.getWarehouseList()
       this.getCategoryList()
@@ -480,7 +500,7 @@ export default {
 
     // 重置筛选表单
     resetScreenForm() {
-        this.$refs.screenForm.resetFields()
+      this.$refs.screenForm.resetFields()
       this.currentPage = 1
       this.getList()
     },

+ 1 - 1
src/views/basic_data/stock/warehousing_list.vue

@@ -70,7 +70,7 @@ export default {
       return (h, { row, index, column }) => {
         return (
           <div class="operation-btns">
-            <el-popconfirm title="弃审吗?" onOnConfirm={() => this.handleUnapprove(row.id, row.billNo)}>
+            <el-popconfirm title="弃审吗?" onConfirm={() => this.handleUnapprove(row.id, row.billNo)}>
               <el-button slot="reference" type="text" size="mini">
                 弃审
               </el-button>

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

@@ -189,7 +189,7 @@ export default {
           <div class="operation-btns">
             {this.$checkBtnRole('del', this.$route.meta.roles) ? (
               <el-popconfirm
-                onOnConfirm={async () => {
+                onConfirm={async () => {
                   this.delFn(row.id)
                 }}
                 title="是否确定需要删除该项内容?"

+ 1 - 1
src/views/basic_data/taker/taker_list.vue

@@ -250,7 +250,7 @@ export default {
 
             {this.$checkBtnRole('del', this.$route.meta.roles) ? (
               <el-popconfirm
-                onOnConfirm={async() => {
+                onConfirm={async() => {
                   this.deleFn(row.id)
                 }}
                 title='是否确定需要删除该项内容?'

+ 1 - 1
src/views/basic_data/warehouse/warehouse_cost.vue

@@ -236,7 +236,7 @@ export default {
                 icon="el-icon-info"
                 icon-color="red"
                 title="内容确定删除吗?"
-                onOnConfirm={() => this.hanleDelete(row.id)}
+                onConfirm={() => this.hanleDelete(row.id)}
               >
                 <el-button slot="reference" type="text"  size="mini" class="textColor el-popover-left">
                   删除

+ 64 - 52
src/views/basic_data/warehouse/warehouse_site.vue

@@ -17,7 +17,9 @@
       :show-close="false"
       :close-on-click-modal="false"
     >
-      <el-form ref="diaLogForm" :model="diaLogForm" label-width="120px" size="small" label-position="left">
+      <el-form ref="diaLogForm" :model="diaLogForm" :rules="diaLogRules"
+               label-width="120px" size="small" label-position="left"
+      >
         <el-form-item label="仓库名称" prop="name">
           <el-input v-model="diaLogForm.name" />
         </el-form-item>
@@ -51,6 +53,16 @@
           </div>
           <div class="weight">注:设置后商家下单的仓库可以选择对应仓库的品类</div>
         </el-form-item>
+        <!-- <el-form-item label="强制仓品类" prop="qiangzhiCategoryIds">
+          <div>
+            <el-checkbox-group v-model="diaLogForm.qiangzhiCategoryIds">
+              <el-checkbox v-for="(item, index) in dataList" :key="index" :label="item.id">
+                {{ item.name }}
+              </el-checkbox>
+            </el-checkbox-group>
+          </div>
+        </el-form-item> -->
+
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button @click="onClose">取 消</el-button>
@@ -76,6 +88,9 @@ import {
   exportListStockV2,
   getStockDetailStock
 } from '@/api/basic_data/warehouse'
+import { findElem } from '@/utils/util'
+import { addApply, editApply } from '@/api/supply/apply'
+
 export default {
   components: { TemplatePage, Popu },
   mixins: [import_mixin, add_callback_mixin],
@@ -164,7 +179,12 @@ export default {
         stockIds: [],
         updateBy: '',
         updateTime: '',
-        categoryIds: []
+        categoryIds: [],
+        // qiangzhiCategoryIds: []
+      },
+      diaLogRules: {
+        name: [{ required: true, trigger: 'blur', message: '请输入' }],
+        stockIds: [{ required: true, trigger: 'change', message: '请选择' }]
       },
       showDialogForm: false,
       screenForm: {
@@ -199,11 +219,11 @@ export default {
     operation() {
       return (h, { row, index, column }) => {
         return (
-          <div class='operation-btns'>
+          <div class="operation-btns">
             {this.$checkBtnRole('edit', this.$route.meta.roles) ? (
               <el-button
-                size='mini'
-                type='text'
+                size="mini"
+                type="text"
                 onClick={() => {
                   this.getDataList()
                   this.editFn(row.id)
@@ -214,16 +234,16 @@ export default {
             ) : null}
             {this.$checkBtnRole('del', this.$route.meta.roles) ? (
               <el-popconfirm
-                confirm-button-text='好的'
-                cancel-button-text='不用了'
-                icon='el-icon-info'
-                icon-color='red'
-                title='内容确定删除吗?'
-                onOnConfirm={() => {
+                confirm-button-text="好的"
+                cancel-button-text="不用了"
+                icon="el-icon-info"
+                icon-color="red"
+                title="内容确定删除吗?"
+                onConfirm={() => {
                   this.hanleDelete(row.id)
                 }}
               >
-                <el-button size='mini' slot='reference' type='text' class='textColor el-popover-left'>
+                <el-button size="mini" slot="reference" type="text" class="textColor el-popover-left">
                   删除
                 </el-button>
               </el-popconfirm>
@@ -234,19 +254,8 @@ export default {
     },
 
     onClose() {
-      this.diaLogForm = {
-        id: null,
-        type: '1',
-        name: '',
-        remark: '',
-        status: 1,
-        stockCordon: 0,
-        stockIds: [],
-        updateBy: '',
-        updateTime: '',
-        categoryIds: []
 
-      }
+      this.$refs.diaLogForm.resetFields()
       this.addOff(() => {
         this.showDialogForm = false
       })()
@@ -285,7 +294,8 @@ export default {
           stockCordon: row.stockCordon,
           type: row.type + '',
           stockIds: row.stockIds === undefined ? arr : row.stockIds,
-          categoryIds: row.kingDeeCategories !== null ? row.kingDeeCategories.map(k => k.id) : []
+          categoryIds: row.kingDeeCategories !== null ? row.kingDeeCategories.map(k => k.id) : [],
+          // qiangzhiCategoryIds: row.stockForceCategories?.map(k => k.categoryId) || []
         }
         this.showDialogForm = true
       })
@@ -300,33 +310,28 @@ export default {
       this.dataList = res.data
     },
     hanleInfo() {
-      if (this.type == 1) {
-        addStock(this.diaLogForm).then(res => {
-          this.$successMsg('保存成功')
-          this.showDialogForm = false
-          this.$refs.pageRef.refreshList()
-        })
-      } else {
-        const params = {
-          ...this.diaLogForm
+      this.$refs.diaLogForm.validate(valid => {
+        if (valid) {
+          if (this.type == 1) {
+            addStock(this.diaLogForm).then(res => {
+              this.$successMsg('保存成功')
+              this.showDialogForm = false
+              this.$refs.pageRef.refreshList()
+              this.onClose()
+            })
+          } else {
+            const params = {
+              ...this.diaLogForm
+            }
+            updateStock(params).then(res => {
+              this.$successMsg('编辑成功')
+              this.showDialogForm = false
+              this.$refs.pageRef.refreshList()
+              this.onClose()
+            })
+          }
         }
-        updateStock(params).then(res => {
-          this.$successMsg('编辑成功')
-          this.showDialogForm = false
-          this.$refs.pageRef.refreshList()
-        })
-      }
-      this.diaLogForm = {
-        name: '',
-        remark: '',
-        type: '1',
-        status: 0,
-        stockCordon: 0,
-        stockIds: [],
-        updateBy: '',
-        updateTime: '',
-        categoryIds: []
-      }
+      })
     },
     // 删除数据
     hanleDelete(id) {
@@ -343,25 +348,32 @@ export default {
 ::v-deep .el-date-editor {
   width: 100%;
 }
+
 ::v-deep .el-select {
   width: 100%;
 }
+
 ::v-deep .el-col-9 .el-button {
   padding: 5px;
 }
+
 ::v-deep .el-dialog__header {
   background-color: #dddddd;
 }
+
 .base {
   padding: 20px 20px 0;
 }
+
 .table {
   margin-top: 12px;
 }
+
 .right {
   float: right;
 }
-.weight{
+
+.weight {
   font-weight: 700;
 }
 </style>

+ 287 - 104
src/views/commercialEngineering/components/base.vue

@@ -11,7 +11,7 @@
         <el-col v-if="['cross'].includes(pageType)" :xs="24" :sm="24" :lg="24" class="item">
           <div class="label">项目性质*:</div>
           <div class="value">
-            <el-radio-group v-model="formData.orderType" size="mini" style="width: 100%" @change="initTradeData">
+            <el-radio-group v-model="formData.orderType" style="width: 100%" @change="initTradeData">
               <el-radio
                 v-for="item in [
                   { label: '工装', value: 'WORK' },
@@ -28,31 +28,30 @@
         <el-col :xs="24" :sm="['add'].includes(module) ? 12 : 24" :lg="['add'].includes(module) ? 12 : 24" class="item">
           <div class="label">销售公司名称:</div>
           <div class="value">
-            <el-input v-model="formData.salesCompanyName" disabled placeholder="请填写" size="mini" clearable />
+            <el-input v-model="formData.salesCompanyName" disabled placeholder="请填写" clearable />
+            <CopyButton v-if="module !== 'add'" :copyText="formData.salesCompanyName" />
           </div>
         </el-col>
         <template v-if="!['add'].includes(module)">
           <el-col :xs="24" :sm="12" :lg="8" class="item">
             <div class="label">工程登录类型:</div>
             <div class="value">
-              <el-input
-                :value="formData.orderType === 'WORK' ? '工装' : '家装'"
-                placeholder="请填写"
-                size="mini"
-                clearable
-              />
+              <el-input :value="formData.orderType === 'WORK' ? '工装' : '家装'" placeholder="请填写" clearable />
+              <CopyButton v-if="module !== 'add'" :copyText="formData.orderType" />
             </div>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="8" class="item">
             <div class="label">项目编号:</div>
             <div class="value">
-              <el-input v-model="formData.projectNo" placeholder="请填写" size="mini" clearable />
+              <el-input v-model="formData.projectNo" placeholder="请填写" clearable />
+              <CopyButton v-if="module !== 'add'" :copyText="formData.projectNo" />
             </div>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="8" class="item">
             <div class="label">登录时间:</div>
             <div class="value">
-              <el-input v-model="formData.createTime" placeholder="请填写" size="mini" clearable />
+              <el-input v-model="formData.createTime" placeholder="请填写" clearable />
+              <CopyButton v-if="module !== 'add'" :copyText="formData.createTime" />
             </div>
           </el-col>
         </template>
@@ -73,6 +72,10 @@
                 :value="item.value"
               />
             </el-select>
+            <CopyButton
+              v-if="module !== 'add'"
+              :copyText="getCopyText(commonData.dict['TRADE_PROJECT_AREA'], formData.projectArea)"
+            />
           </div>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="12" class="item">
@@ -86,48 +89,53 @@
                 :value="item.value"
               />
             </el-select>
+            <CopyButton v-if="module !== 'add'" :copyText="getCopyText(commonData.salesmanList, formData.serviceId)" />
           </div>
         </el-col>
         <el-col
-          v-if="['frock', 'cross'].includes(pageType) && formData.orderType === 'WORK'"
+          v-if="pageType === 'frock' || (pageType === 'cross' && formData.orderType === 'WORK')"
           :xs="24"
-          :sm="module === 'detail' ? 24 : 12"
-          :lg="module === 'detail' ? 24 : 12"
+          :sm="!['add', 'edit'].includes(module) ? 24 : 12"
+          :lg="!['add', 'edit'].includes(module) ? 24 : 12"
           class="item"
         >
           <div class="label">甲方名称*:</div>
           <div class="value">
-            <el-select v-model="formData.partyAId" placeholder="请选择" clearable filterable @change="handlePartyA">
+            <div style="flex: 1; cursor: pointer" @click="dialogVisible = true" v-if="formData.partyA">
+              {{ formData.partyA }}
+            </div>
+            <div style="flex: 1; cursor: pointer; opacity: 0.6" @click="dialogVisible = true" v-else>请选择</div>
+            <!-- <el-select v-model="formData.partyAId" placeholder="请选择" clearable filterable @change="handlePartyA">
               <el-option
                 v-for="item in commonData.PartyAList"
                 :key="item.value"
                 :label="item.label"
                 :value="item.value"
               />
-            </el-select>
+            </el-select> -->
+            <CopyButton v-if="module !== 'add'" :copyText="formData.partyA" />
+            <!-- dialogVisible -->
           </div>
         </el-col>
-        <el-col   v-if="['home'].includes(pageType)" :xs="24" :sm="12" :lg="12" class="item">
+        <el-col
+          v-if="['add', 'edit'].includes(module) && (pageType === 'home' || formData.orderType === 'HOME')"
+          :xs="24"
+          :sm="12"
+          :lg="12"
+          class="item"
+        >
           <div class="label" />
           <div class="value" />
         </el-col>
         <el-col :xs="24" :sm="12" :lg="module === 'edit' ? 12 : 8" class="item">
           <div class="label">经销商*:</div>
           <div class="value">
-            <el-input
-              v-if="isCustomer"
-              v-model="formData.customerName"
-              disabled
-              placeholder="请填写"
-              size="mini"
-              clearable
-            />
+            <el-input v-if="isCustomer" v-model="formData.customerName" disabled placeholder="请填写" clearable />
             <el-input
               v-if="!isCustomer && !isTradeExaminer"
               v-model="formData.customerName"
               disabled
               placeholder="请填写"
-              size="mini"
               clearable
             />
             <el-select
@@ -136,6 +144,10 @@
               placeholder="请选择"
               clearable
               filterable
+              remote
+              reserve-keyword
+              :remote-method="remoteMethod"
+              :loading="loading"
               @change="handleCustomer"
             >
               <el-option
@@ -145,36 +157,46 @@
                 :value="item.value"
               />
             </el-select>
+            <CopyButton
+              v-if="module !== 'add' && isTradeExaminer"
+              :copyText="getCopyText(commonData.customerList, formData.customerId)"
+            />
+            <CopyButton v-if="module !== 'add' && !isTradeExaminer" :copyText="formData.customerName" />
           </div>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8" class="item">
           <div class="label">经销商联系人*:</div>
           <div class="value">
-            <el-input v-model="formData.customerLinkName" placeholder="请填写" size="mini" clearable />
+            <el-input v-model="formData.customerLinkName" placeholder="请填写" clearable />
+            <CopyButton v-if="module !== 'add'" :copyText="formData.customerLinkName" />
           </div>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8" class="item">
           <div class="label">经销商联系电话*:</div>
           <div class="value">
-            <el-input v-model="formData.customerLinkMobile" maxlength="11" placeholder="请填写" size="mini" clearable />
+            <el-input v-model="formData.customerLinkMobile" maxlength="11" placeholder="请填写" clearable />
+            <CopyButton v-if="module !== 'add'" :copyText="formData.customerLinkMobile" />
           </div>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8" class="item">
           <div class="label">经销商办公地址*:</div>
           <div class="value">
-            <el-input v-model="formData.customerAddress" placeholder="请填写" size="mini" clearable />
+            <el-input v-model="formData.customerAddress" placeholder="请填写" clearable />
+            <CopyButton v-if="module !== 'add'" :copyText="formData.customerAddress" />
           </div>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8" class="item">
           <div class="label">跟进经销商*:</div>
           <div class="value">
-            <el-input v-model="formData.followCustomer" placeholder="请填写" size="mini" clearable />
+            <el-input v-model="formData.followCustomer" placeholder="请填写" clearable />
+            <CopyButton v-if="module !== 'add'" :copyText="formData.followCustomer" />
           </div>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8" class="item">
           <div class="label">跟进经销商电话*:</div>
           <div class="value">
-            <el-input v-model="formData.followCustomerMobile" placeholder="请填写" size="mini" clearable />
+            <el-input v-model="formData.followCustomerMobile" placeholder="请填写" clearable />
+            <CopyButton v-if="module !== 'add'" :copyText="formData.followCustomerMobile" />
           </div>
         </el-col>
         <el-col
@@ -186,7 +208,8 @@
         >
           <div class="label">工程项目名称*:</div>
           <div class="value">
-            <el-input v-model="formData.projectName" placeholder="请填写" size="mini" clearable />
+            <el-input v-model="formData.projectName" placeholder="请填写" clearable />
+            <CopyButton v-if="module !== 'add'" :copyText="formData.projectName" />
           </div>
         </el-col>
         <el-col
@@ -197,7 +220,8 @@
         >
           <div class="label">工程联系人*:</div>
           <div class="value">
-            <el-input v-model="formData.enginLinkName" placeholder="请填写" size="mini" clearable />
+            <el-input v-model="formData.enginLinkName" placeholder="请填写" clearable />
+            <CopyButton v-if="module !== 'add'" :copyText="formData.enginLinkName" />
           </div>
         </el-col>
         <el-col
@@ -208,7 +232,8 @@
         >
           <div class="label">电话*:</div>
           <div class="value">
-            <el-input v-model="formData.enginLinkMobile" placeholder="请填写" size="mini" clearable />
+            <el-input v-model="formData.enginLinkMobile" placeholder="请填写" clearable />
+            <CopyButton v-if="module !== 'add'" :copyText="formData.enginLinkMobile" />
           </div>
         </el-col>
         <el-col
@@ -220,70 +245,80 @@
         >
           <div class="label" style="height: auto">工程项目名称*:</div>
           <div class="value my-center" style="height: 100%">
-            <el-radio-group v-model="formData.homeProjectNameRadio" size="mini">
+            <el-radio-group v-model="formData.homeProjectNameRadio">
               <el-radio label="AREA">
-                <el-input
-                  v-model="formData.homeProjectNameArea"
-                  class="my-width"
-                  placeholder="请填写"
-                  size="mini"
-                  clearable
-                />小区
-                <el-input
-                  v-model="formData.homeProjectNameSeat"
-                  class="my-width"
-                  placeholder="请填写"
-                  size="mini"
-                  clearable
-                />座
-                <el-input
-                  v-model="formData.homeProjectNameNumber"
-                  class="my-width"
-                  placeholder="请填写"
-                  size="mini"
-                  clearable
-                />号
+                <el-input v-model="formData.homeProjectNameArea" class="my-width" placeholder="请填写" clearable />小区
+                <el-input v-model="formData.homeProjectNameSeat" class="my-width" placeholder="请填写" clearable />座
+                <el-input v-model="formData.homeProjectNameNumber" class="my-width" placeholder="请填写" clearable />号
+                <CopyButton
+                  v-if="module !== 'add'"
+                  :copyText="
+                    formData.homeProjectNameArea +
+                    '小区' +
+                    formData.homeProjectNameSeat +
+                    '座' +
+                    formData.homeProjectNameNumber +
+                    '号'
+                  "
+                />
               </el-radio>
               <el-radio label="SELF">
                 <el-input
                   v-model="formData.homeProjectNameArea2"
                   class="my-width"
                   placeholder="请填写"
-                  size="mini"
                   clearable
                 />(业主名称)自建房
+                <CopyButton v-if="module !== 'add'" :copyText="formData.homeProjectNameArea2 + '(业主名称)自建房'" />
               </el-radio>
               <el-radio label="VILLA">
-                <el-input
-                  v-model="formData.homeProjectNameArea3"
-                  class="my-width"
-                  placeholder="请填写"
-                  size="mini"
-                  clearable
-                />小区
+                <el-input v-model="formData.homeProjectNameArea3" class="my-width" placeholder="请填写" clearable />小区
                 <el-input
                   v-model="formData.homeProjectNameNumber3"
                   class="my-width"
                   placeholder="请填写"
-                  size="mini"
                   clearable
                 />号别墅
+                <CopyButton
+                  v-if="module !== 'add'"
+                  :copyText="formData.homeProjectNameArea3 + '小区' + formData.homeProjectNameNumber3 + '号'"
+                />
               </el-radio>
             </el-radio-group>
           </div>
         </el-col>
+        <el-col
+          v-if="
+            (['home'].includes(pageType) || formData.orderType === 'HOME') &&
+            !['add', 'edit'].includes(module) &&
+            formData.isOld == true
+          "
+          :xs="24"
+          :sm="24"
+          :lg="24"
+          class="item"
+        >
+          <div class="label" style="height: auto">旧单工程项目名称*:</div>
+          <div class="value" style="height: 100%">
+            <el-input v-model="formData.projectName" placeholder="请填写" clearable />
+            <CopyButton v-if="module !== 'add'" :copyText="formData.projectName" />
+          </div>
+        </el-col>
         <el-col :xs="24" :sm="24" :lg="24" class="item">
           <div class="label">工程(建筑)地址*:</div>
           <div class="value">
             <el-select v-model="formData.provinceId" placeholder="请选择省" class="my-width" @change="changeProvince">
               <el-option v-for="item in provinceList" :key="item.lbsId" :label="item.name" :value="item.lbsId" />
             </el-select>
+
             <el-select v-model="formData.cityId" placeholder="请选择市" class="my-width" @change="changeCity">
               <el-option v-for="item in cityList" :key="item.lbsId" :label="item.name" :value="item.lbsId" />
             </el-select>
+
             <el-select v-model="formData.areaId" placeholder="请选择区" class="my-width" @change="changeArea">
               <el-option v-for="item in areaList" :key="item.lbsId" :label="item.name" :value="item.lbsId" />
             </el-select>
+
             <el-select v-model="formData.streetId" placeholder="请选择街道" class="my-width" @change="changeStreet">
               <el-option v-for="item in streetList" :key="item.lbsId" :label="item.name" :value="item.lbsId" />
             </el-select>
@@ -292,14 +327,16 @@
         <el-col :xs="24" :sm="24" :lg="24" class="item">
           <div class="label">详细地址*:</div>
           <div class="value">
-            <!-- <el-input v-model="formData.positionAddress" placeholder="定位地址" size="mini" clearable disabled /> -->
-            <geographicalPosi
+            <!-- <el-input v-model="formData.positionAddress" placeholder="定位地址"   clearable disabled /> -->
+            <!-- <geographicalPosi
               style="margin: 0 20px 0 0"
               v-if="module !== 'detail' && !['cross'].includes(pageType)"
               :form-data="formData"
               @selectPosi="handleSelectPosi"
-            />
-            <el-input v-model="formData.address" placeholder="请填写详细地址" size="mini" clearable />
+            /> -->
+            <el-input v-model="formData.address" placeholder="请填写详细地址" clearable />
+            <CopyButton v-if="module !== 'add'" :copyText="formData.address" />
+
             <i
               v-if="formData.positionAddress && !['cross'].includes(pageType)"
               class="el-icon-s-promotion"
@@ -307,7 +344,7 @@
             />
           </div>
         </el-col>
-        <template>
+        <!-- <template>
           <el-col v-if="module !== 'add'" :xs="24" :sm="24" :lg="24" class="item" style="height: 400px">
             <div class="label" style="height: auto">地图位置</div>
             <div class="value" style="height: auto; padding: 0">
@@ -315,6 +352,7 @@
                 eid="bMap"
                 :zoom="zoom"
                 :center="center"
+                :isWheel="true"
                 :markers="markers"
                 :electronic-fence="electronicFence"
                 @getPolygons="getPolygons"
@@ -330,11 +368,11 @@
               </zj-amap-polygon>
             </div>
           </el-col>
-        </template>
+        </template> -->
         <el-col :xs="24" :sm="24" :lg="24" class="item">
           <div class="label">项目类别*:</div>
           <div class="value">
-            <el-radio-group v-model="formData.projectCategory" size="mini">
+            <el-radio-group v-model="formData.projectCategory">
               <el-radio v-for="item in commonData.dict['TRADE_LOGIN_CATEGORY']" :key="item.value" :label="item.value">
                 {{ item.label }}
               </el-radio>
@@ -343,23 +381,28 @@
         </el-col>
         <el-col :xs="24" :sm="12" :lg="12" class="item">
           <div class="label">图纸上传:</div>
-          <div class="value" style="justify-content: flex-end; position: relative">
-            <FileUpload v-if="module !== 'detail'" :file-list="formData.fileList" size="mini" :limit="1" class="file" />
+          <div class="value" style="justify-content: flex-end; position: relative; overflow: hidden">
+            <FileUpload
+              v-if="module !== 'detail' && module !== 'examine'"
+              :file-list="formData.fileList"
+              :limit="2"
+              class="file"
+            />
             <el-link
-              v-if="module == 'detail' && formData.fileList && formData.fileList.length"
+              v-if="(module == 'detail' || module == 'examine') && formData.fileList && formData.fileList.length"
               style="position: absolute; left: 5px"
               type="primary"
               :underline="false"
               @click="openPdf(formData.fileList[0])"
-              >{{ formData.fileList[0].name }}下载</el-link
+              >{{ formData.fileList[0].fileName }}</el-link
             >
-            <!-- <el-input v-model="formData.drawUpload"  size="mini" clearable /> -->
+            <!-- <el-input v-model="formData.drawUpload"    clearable /> -->
           </div>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="12" class="item">
           <div class="label">类型</div>
           <div class="value">
-            <el-radio-group v-model="formData.type" size="mini">
+            <el-radio-group v-model="formData.type">
               <el-radio v-for="item in commonData.dict['TRADE_LOGIN_TYPE']" :key="item.value" :label="item.value">
                 {{ item.label }}
               </el-radio>
@@ -369,13 +412,15 @@
         <el-col :xs="24" :sm="12" :lg="12" class="item">
           <div class="label">建筑面积㎡*:</div>
           <div class="value">
-            <el-input v-model="formData.extent" placeholder="请填写" size="mini" clearable />
+            <el-input v-model="formData.extent" placeholder="请填写" clearable />
+            <CopyButton v-if="module !== 'add'" :copyText="formData.extent" />
           </div>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="12" class="item">
           <div class="label">空调使用面积㎡*:</div>
           <div class="value">
-            <el-input v-model="formData.useExtent" placeholder="请填写" size="mini" clearable />
+            <el-input v-model="formData.useExtent" placeholder="请填写" clearable />
+            <CopyButton v-if="module !== 'add'" :copyText="formData.useExtent" />
           </div>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="12" class="item">
@@ -391,6 +436,7 @@
             >
               <el-option v-for="item in tradeParentList" :key="item.id" :label="item.name" :value="item.id" />
             </el-select>
+            <CopyButton v-if="module !== 'add'" :copyText="formData.tradeParentName" />
           </div>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="12" class="item">
@@ -406,12 +452,14 @@
             >
               <el-option v-for="item in tradeList" :key="item.id" :label="item.name" :value="item.id" />
             </el-select>
+            <CopyButton v-if="module !== 'add'" :copyText="formData.tradeName" />
           </div>
         </el-col>
         <el-col v-if="['frock', 'home'].includes(pageType)" :xs="24" :sm="24" :lg="24" class="item">
           <div class="label">项目性质*:</div>
           <div class="value">
             {{ pageType === 'frock' ? '工程' : '家装' }}
+            <CopyButton v-if="module !== 'add'" :copyText="pageType === 'frock' ? '工程' : '家装'" />
           </div>
         </el-col>
         <el-col :xs="24" :sm="24" :lg="24" class="item">
@@ -425,12 +473,16 @@
                 :value="item.value"
               />
             </el-select>
+            <CopyButton
+              v-if="module !== 'add'"
+              :copyText="getCopyText(commonData.dict['LOGIN_MACHINE_TYPE'], formData.machineType)"
+            />
           </div>
         </el-col>
         <el-col :xs="24" :sm="24" :lg="24" class="item">
           <div class="label">成功机率*:</div>
           <div class="value">
-            <el-radio-group v-model="formData.successRate" size="mini">
+            <el-radio-group v-model="formData.successRate">
               <el-radio v-for="item in commonData.dict['SUCCESS_RATE']" :key="item.value" :label="item.value">
                 {{ item.label }}
               </el-radio>
@@ -448,18 +500,19 @@
               style="width: 100%"
               placeholder="选择日期"
             />
+            <CopyButton v-if="module !== 'add'" :copyText="formData.preSignDate" />
           </div>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="12" class="item">
           <div class="label">预计设备金额*:</div>
           <div class="value">
-            <el-input v-model="formData.preDeviceAmount" placeholder="请填写" size="mini" clearable />万
+            <el-input type="number" v-model.number="formData.preDeviceAmount" placeholder="请填写" clearable />万
           </div>
         </el-col>
         <el-col :xs="24" :sm="24" :lg="24" class="item">
           <div class="label">工程跟进状态*:</div>
           <div class="value">
-            <el-radio-group v-model="formData.status" size="mini">
+            <el-radio-group v-model="formData.status">
               <el-radio v-for="item in commonData.dict['FOLLOW_STATUS']" :key="item.value" :label="item.value">
                 {{ item.label }}
               </el-radio>
@@ -469,7 +522,8 @@
         <el-col v-if="['detail', 'examine'].includes(module)" :xs="24" :sm="24" :lg="24" class="item">
           <div class="label">订单状态:</div>
           <div class="value">
-            <el-input :value="orderTypeEume[formData.orderStatus]" placeholder="请填写" size="mini" clearable />
+            <el-input :value="orderTypeEume[formData.orderStatus]" placeholder="请填写" clearable />
+            <CopyButton v-if="module !== 'add'" :copyText="orderTypeEume[formData.orderStatus]" />
           </div>
         </el-col>
         <el-col :xs="24" :sm="24" :lg="24" class="item">
@@ -482,6 +536,7 @@
               :rows="4"
               placeholder="请输入备注"
             />
+            <CopyButton v-if="module !== 'add'" :copyText="formData.remark" />
           </div>
         </el-col>
         <el-col :xs="24" :sm="24" :lg="24" class="item">
@@ -496,9 +551,23 @@
               :rows="3"
               placeholder="请输入内容"
             />
+            <CopyButton v-if="module !== 'add'" :copyText="formData.otherInfo" />
           </div>
         </el-col>
       </el-row>
+
+      <el-dialog
+        title="选择甲方"
+        :visible.sync="dialogVisible"
+        width="1000px"
+        :before-close="handleClose"
+        v-if="dialogVisible"
+        :append-to-body="true"
+      >
+        <div style="height: 600px">
+          <template-page ref="pageRef__" :get-list="getList" :operation="operation()"> </template-page>
+        </div>
+      </el-dialog>
     </div>
   </div>
 </template>
@@ -511,11 +580,14 @@ import GeographicalPosi from './geographicalPosi.vue'
 import FileUpload from '@/components/Common/file-upload.vue'
 import { mapGetters } from 'vuex'
 import { getPositionProject, getHistory } from '@/api/frock'
-
+import { getDealerListV3 } from '@/api/basic_data/dealer'
+import TemplatePage from '@/components/template/template-page-1.vue'
+import { getFirstPartyCustomerManagementList } from '@/api/basic_data/partya'
 export default {
   components: {
     FileUpload,
-    GeographicalPosi
+    GeographicalPosi,
+    TemplatePage
   },
   props: {
     // 标题
@@ -569,17 +641,35 @@ export default {
       region: {
         G: ['广州市', '清远市', '韶关市'],
         F: ['佛山市', '肇庆市', '云浮市']
-      }
+      },
+      // 特殊处理市区
+      specialCity: {
+        '1608754035946549250': '东莞市',
+        '1608754032574328834': '中山市',
+        '1608756901402767362': '儋州市',
+        '1608756898412228610': '三沙市',
+        '1608757977963163649': '嘉峪关市'
+      },
+      loading: false,
+      dialogVisible: false
     }
   },
   computed: {
-    ...mapGetters(['isTradeExaminer', 'isCustomer', 'customerNumber', 'customerId', 'customerName'])
+    ...mapGetters(['isTradeExaminer', 'isCustomer', 'customerNumber', 'customerId', 'customerName']),
+    getCopyText() {
+      return (arr = [], id = '') => {
+        if (id && arr.length) {
+          return String(arr.find(k => k.value === id)?.label || id)
+        }
+        return String(id)
+      }
+    }
   },
   watch: {
     async 'formData.id'(newValue, oldValue) {
       if (newValue) {
         if (this.isTradeExaminer) {
-          this.getPositionProject()
+          // this.getPositionProject()
         } else {
           this.markers = [
             {
@@ -617,11 +707,16 @@ export default {
           this.formData.homeProjectNameSeat = ''
           this.formData.homeProjectNameNumber = ''
         }
-
         await this.getCallbackPosition(null, this.formData.provinceId, 'province', 'lbsId')
         await this.getCallbackPosition(this.formData.provinceId, this.formData.cityId, 'city', 'lbsId')
         await this.getCallbackPosition(this.formData.cityId, this.formData.areaId, 'area', 'lbsId')
-        await this.getCallbackPosition(this.formData.areaId, this.formData.streetId, 'street', 'lbsId')
+        const temp = this.areaList.find(k => this.formData.cityId == k.value)
+        if (!temp && !temp?.parentLbsId && !Object.keys(this.specialCity).includes(temp?.parentLbsId)) {
+          await this.getCallbackPosition(this.formData.areaId, this.formData.streetId, 'street', 'lbsId')
+        }
+        if (this.module !== 'add' && this.isTradeExaminer && this.formData.customerId && this.formData.customerName) {
+          this.getDealerListV3(this.formData.customerName)
+        }
       }
     }
   },
@@ -644,21 +739,43 @@ export default {
     }
     if (this.pageType === 'home' || this.formData.orderType === 'HOME') {
       this.initTradeData('HOME')
-    }else{
+    } else {
       this.getTradeConfigList()
     }
   },
   methods: {
-    initTradeData(e){
-      if ( e === 'HOME') {
+    getList: getFirstPartyCustomerManagementList,
+    handleClose() {
+      this.dialogVisible = false
+    },
+    operation() {
+      return (h, { row, index, column }) => {
+        return (
+          <div class="operation-btns">
+            <el-button
+              size="mini"
+              type="text"
+              onClick={() => {
+                this.formData.partyA = row.name
+                this.formData.partyAId = row.id
+                this.dialogVisible = false
+              }}
+            >
+              确定选中
+            </el-button>
+          </div>
+        )
+      }
+    },
+    initTradeData(e) {
+      if (e === 'HOME') {
         this.getTradeConfigList()
         this.formData.tradeParentId = '1689529426267607042'
-      this.formData.tradeId = '1689529478943870978'
-      }else{
+        this.formData.tradeId = '1689529478943870978'
+      } else {
         this.formData.tradeParentId = ''
-      this.formData.tradeId = ''
+        this.formData.tradeId = ''
       }
-
     },
     // 获取省市区街道
     getAutonaviRegion(level = 0, id = null) {
@@ -673,7 +790,7 @@ export default {
             this.provinceList = res.data
           }
         } else if (level === 1) {
-          if (this.formData.province === '广东省') {
+          if (this.formData.province === '广东省' && ['frock', 'home'].includes(this.pageType)) {
             this.cityList = res.data.filter(k => {
               if (this.formData.projectArea) {
                 return this.region[this.formData.projectArea].includes(k.name)
@@ -691,7 +808,11 @@ export default {
       })
     },
     handleProjectArea(e) {
-      if (this.formData.provinceId && this.formData.province === '广东省') {
+      if (
+        ['frock', 'home'].includes(this.pageType) &&
+        this.formData.provinceId &&
+        this.formData.province === '广东省'
+      ) {
         this.getAutonaviRegion(1, this.formData.provinceId)
       }
     },
@@ -736,6 +857,9 @@ export default {
       this.formData.cityId = ''
       this.formData.areaId = ''
       this.formData.streetId = ''
+      this.formData.city = ''
+      this.formData.area = ''
+      this.formData.street = ''
       this.cityList = []
       this.areaList = []
       this.streetList = []
@@ -747,6 +871,8 @@ export default {
     changeCity(value) {
       this.formData.areaId = ''
       this.formData.streetId = ''
+      this.formData.area = ''
+      this.formData.street = ''
       this.areaList = []
       this.streetList = []
       this.getAutonaviRegion(2, value)
@@ -757,7 +883,24 @@ export default {
     changeArea(value) {
       this.areaValue = value
       this.formData.streetId = ''
+      this.formData.street = ''
       this.streetList = []
+      // 特殊处理市
+      const temps = this.areaList.filter(k => {
+        return k.lbsId === value
+      })
+      if (
+        value &&
+        this.areaList.length &&
+        temps.length &&
+        temps[0]?.parentLbsId &&
+        Object.keys(this.specialCity).includes(temps[0]?.parentLbsId)
+      ) {
+        this.streetList = temps
+        this.formData.streetId = value
+        this.handleArea(value, 'street')
+        return
+      }
       this.getAutonaviRegion(3, value)
       this.handleArea(value, 'area')
     },
@@ -821,10 +964,10 @@ export default {
           return
         }
         this.tradeParentList = res.data
-          const item = this.tradeParentList.find(k => k.id === this.formData.tradeParentId)
-          if (item && item.childList) {
-            this.tradeList = item.childList
-          }
+        const item = this.tradeParentList.find(k => k.id === this.formData.tradeParentId)
+        if (item && item.childList) {
+          this.tradeList = item.childList
+        }
       })
     },
     handleService(e) {
@@ -875,7 +1018,10 @@ export default {
       await this.getCallbackPosition(null, province, 'province')
       await this.getCallbackPosition(this.formData.provinceId, city, 'city')
       await this.getCallbackPosition(this.formData.cityId, area, 'area')
-      await this.getCallbackPosition(this.formData.areaId, street, 'street')
+      const temp = this.areaList.find(k => this.formData.cityId == k.value)
+      if (!temp && !temp?.parentLbsId && !Object.keys(this.specialCity).includes(temp?.parentLbsId)) {
+        await this.getCallbackPosition(this.formData.areaId, street, 'street')
+      }
     },
 
     /**
@@ -888,6 +1034,13 @@ export default {
       const { data } = await getAutonaviRegion({ parentLbsId: id })
       this[name + 'List'] = data
       const temp = data.find(k => k[way] == value)
+      // 特殊处理市
+      if (name === 'area' && Object.keys(this.specialCity).includes(temp.parentLbsId)) {
+        this.streetList = [temp]
+        this.formData.streetId = temp.lbsId
+        this.handleArea(temp.lbsId, 'street')
+        return
+      }
       this.formData[name] = temp && temp.name
       this.formData[name + 'Id'] = temp && temp.lbsId
     },
@@ -906,6 +1059,35 @@ export default {
         this.formData.customerLinkMobile = res.data.linkMobile || ''
         this.formData.customerAddress = res.data.address || ''
       })
+    },
+    remoteMethod(e) {
+      this.loading = false
+      this.getDealerListV3(e)
+    },
+    getDealerListV3(e) {
+      getDealerListV3({
+        pageNum: 1,
+        pageSize: 100,
+        params: [
+          {
+            param: 'a.name',
+            compare: 'like',
+            value: e
+          }
+        ]
+      })
+        .then(res => {
+          this.commonData.customerList = res.data.records.map(k => {
+            return {
+              number: k.number,
+              label: k.name,
+              value: k.id
+            }
+          })
+        })
+        .finally(() => {
+          this.loading = false
+        })
     }
   }
 }
@@ -927,6 +1109,7 @@ export default {
 }
 .diy-table-1 .item .value {
   border-right: 1px solid #ccc;
+  justify-content: space-between;
 }
 ::v-deep .el-select {
   width: 100% !important;

+ 131 - 83
src/views/commercialEngineering/components/examine.vue

@@ -26,104 +26,95 @@
                 size="mini"
                 clearable
               >
-                <el-button slot="append" @click="handleFocus">引入</el-button>
+                <CopyButton :copyText="formData.successLoginProject" />
+                <el-button v-if="module !== 'detail'" slot="append" @click="handleFocus">引入</el-button>
               </el-input>
             </el-col>
-            <el-col :span="7" class="flex-box">
-              <div class="flex-box-title">经销商编号</div>
+            <template
+              v-if="(pageType == 'home' && !isCustomer) || (['frock', 'cross'].includes(pageType) && isTradeExaminer)"
+            >
+              <el-col :span="7" class="flex-box">
+                <div class="flex-box-title">经销商编号</div>
+                <el-input
+                  v-model="formData.successCustomerNumber"
+                  class="my-input"
+                  placeholder="请填写"
+                  size="mini"
+                  clearable
+                />
+                <CopyButton :copyText="formData.successCustomerNumber" />
+              </el-col>
+              <el-col :span="7" class="flex-box">
+                <div class="flex-box-title">经销商名称</div>
+                <el-input
+                  v-model="formData.successCustomerName"
+                  class="my-input"
+                  placeholder="请填写"
+                  size="mini"
+                  clearable
+                />
+                <CopyButton :copyText="formData.successCustomerName" />
+              </el-col>
+            </template>
+            <el-col v-if="!isCustomer" :span="7" class="flex-box">
+              <div class="flex-box-title">业务员编号</div>
               <el-input
-                v-model="formData.customerNumber2"
+                v-model="formData.successServiceNumber"
                 class="my-input"
                 placeholder="请填写"
                 size="mini"
                 clearable
               />
+              <CopyButton :copyText="formData.successServiceNumber" />
             </el-col>
-            <el-col :span="7" class="flex-box">
-              <div class="flex-box-title">经销商名称</div>
-              <el-input v-model="formData.customerName2" class="my-input" placeholder="请填写" size="mini" clearable />
-            </el-col>
-            <el-col :span="7" class="flex-box">
-              <div class="flex-box-title">业务员编号</div>
-              <el-input v-model="formData.serviceNumber2" class="my-input" placeholder="请填写" size="mini" clearable />
-            </el-col>
-            <el-col :span="7" class="flex-box">
+            <el-col v-if="!isCustomer" :span="7" class="flex-box">
               <div class="flex-box-title">业务员名称</div>
-              <el-input v-model="formData.serviceName2" class="my-input" placeholder="请填写" size="mini" clearable />
+              <el-input
+                v-model="formData.successServiceName"
+                class="my-input"
+                placeholder="请填写"
+                size="mini"
+                clearable
+              />
+              <CopyButton :copyText="formData.successServiceName" />
             </el-col>
           </div>
         </el-col>
         <el-col :xs="12" :sm="12" :lg="12" class="item">
           <div class="label">审核备注{{ formData.loginStatus === 'REJECT' ? '*' : '' }}</div>
           <div class="value">
-            <el-select v-if="!['frock', 'cross'].includes(pageType)" v-model="formData.examineNote" placeholder="请选择" size="mini" clearable style="width: 100%">
+            <!-- <el-select v-if="!['frock', 'cross'].includes(pageType)" v-model="formData.examineNote" placeholder="请选择" size="mini" clearable style="width: 100%">
               <el-option
                 v-for="item in commonData.dict['TRADE_EXAMINE_NOTE']"
                 :key="item.value"
                 :label="item.label"
                 :value="item.value"
               />
-            </el-select>
-            <el-input
-              v-model="formData.note"
-              placeholder="请填写"
-              size="mini"
-              clearable
-            />
+            </el-select> -->
+            <el-input v-model="formData.note" placeholder="请填写" size="mini" clearable />
+            <CopyButton :copyText="formData.note" />
           </div>
         </el-col>
         <el-col :xs="12" :sm="12" :lg="12" class="item">
           <div class="label">共同跟进项目编号</div>
           <div class="value">
             <el-input v-model="formData.commonFollowProject" placeholder="请填写" size="mini" clearable />
+            <CopyButton :copyText="formData.commonFollowProject" />
           </div>
         </el-col>
-        <el-col :xs="24" :sm="24" :lg="24" class="item">
+        <el-col :xs="24" :sm="24" :lg="24" class="item" v-if="shenheshangchuan">
           <div class="label" style="height: auto">审核上传</div>
           <div class="value" style="height: auto">
-            <ImageUpload v-if="module !== 'detail'" class="mg-b" :file-list="formData.files" />
-            <template v-else>
-              <div
-                v-for="item in formData.files"
-                :key="item.fileUrl"
-                style="display: flex; width: 120px; height: 120px; align-items: center; justify-content: center"
-              >
-                <el-image
-                  v-if="checkFileType(item.fileUrl) == 'image'"
-                  ref="img"
-                  :src="$imageUrl + item.fileUrl"
-                  fit="cover"
-                  :preview-src-list="[$imageUrl + item.fileUrl]"
-                  class="elImageClose"
-                />
-                <div
-                  style="
-                    display: flex;
-                    width: 120px;
-                    height: 120px;
-                    align-items: center;
-                    justify-content: center;
-                    cursor: pointer;
-                  "
-                  @click="openPdf(item)"
-                >
-                  <img v-if="checkFileType(item.fileUrl) == 'word'" class="file" src="@/assets/common/word.png">
-                  <img v-if="checkFileType(item.fileUrl) == 'excel'" class="file" src="@/assets/common/excel.png">
-                  <img v-if="checkFileType(item.fileUrl) == 'ppt'" class="file" src="@/assets/common/ppt.png">
-                  <img
-                    v-if="checkFileType(item.fileUrl) == 'pdf'"
-                    class="file"
-                    style="cursor: pointer"
-                    src="@/assets/common/pdf.png"
-                  >
-
-                  <img v-if="checkFileType(item.fileUrl) == 'file'" class="file aaa" src="@/assets/common/zip.jpeg">
-                </div>
-              </div>
-            </template>
+            <ImageUpload class="mg-b" :file-list="formData.files" :multiple="true" />
             <div style="margin-left: 20px">注:可上传文件、附件</div>
           </div>
         </el-col>
+        <el-col :xs="24" :sm="24" :lg="24" class="item" v-if="formData.oldFileName && formData.oldFileUrl">
+          <div class="label" style="height: auto">旧单附件</div>
+          <div class="value" style="padding: 10px">
+            <el-link :href="formData.oldFileUrl" target="_blank">{{ formData.oldFileName }}</el-link>
+          </div>
+        </el-col>
       </el-row>
     </div>
 
@@ -142,8 +133,11 @@
 import { getLoginHomeDecorationList } from '@/api/homeDecoration'
 import { getLoginCrossDistrictList } from '@/api/crossDistrict'
 import { getLoginFrockList } from '@/api/frock'
+import { mapGetters } from 'vuex'
+
 import ImageUpload from '@/components/Common/image-upload.vue'
 import LoginSuccess from './loginSuccess.vue'
+
 export default {
   components: {
     ImageUpload,
@@ -183,20 +177,42 @@ export default {
       showDialog: false
     }
   },
+  computed: {
+    ...mapGetters(['isTradeExaminer', 'isCustomer']),
+    shenheshangchuan() {
+      var data = JSON.parse(localStorage.getItem('supply_user') || '{}')
+      return data?.isTradeExaminer
+        ? true
+        : data?.isService && this.$route.name === 'crossDistrictkList'
+        ? true
+        : this.module === 'detail'
+        ? false
+        : true
+    }
+  },
   watch: {
-    async 'formData.id'(newValue, oldValue) {
-      console.log(3333)
-       this.getData()
+    'formData.id': {
+      immediate: true,
+      handler() {
+        if (this.formData.id) {
+          if (this.formData.files.length) {
+            console.log(this.formData.files)
+            this.formData.files = this.showImage(this.formData.files)
+          }
+          this.getData()
+        }
+      }
     }
   },
+
   methods: {
     handleSuccess(val) {
       const res = val[0]
       this.formData.successLoginProject = res.projectNo
-      this.formData.customerNumber2 = res.customerNumber
-      this.formData.customerName2 = res.customerName
-      this.formData.serviceName2 = res.serviceName
-      this.formData.serviceNumber2 = res.serviceNumber
+      this.formData.successCustomerNumber = res.customerNumber
+      this.formData.successCustomerName = res.customerName
+      this.formData.successServiceName = res.serviceName
+      this.formData.successServiceNumber = res.serviceNumber
     },
     handleCancel() {
       this.showDialog = false
@@ -205,6 +221,20 @@ export default {
       this.showDialog = true
     },
     onSbumit() {},
+    showImage(arr = []) {
+      const newArr = []
+      arr &&
+        arr.forEach(k => {
+          if (k.fileUrl && k.fileUrl !== '0') {
+            newArr.push({
+              hover: false,
+              name: '',
+              url: k.fileUrl
+            })
+          }
+        })
+      return newArr
+    },
     // 检查文件类型
     checkFileType(url) {
       if (!url) return ''
@@ -237,6 +267,7 @@ export default {
       document.body.removeChild(link)
     },
     getData() {
+      console.log(333)
       if (!this.formData.successLoginProject) return
       const params = {
         pageNum: 1,
@@ -256,10 +287,18 @@ export default {
       }
       objFn[this.pageType](params).then(res => {
         if (res.data.records && res.data.records.length) {
-          this.formData.customerNumber2 = res.data.records[0].customerNumber
-          this.formData.customerName2 = res.data.records[0].customerName
-          this.formData.serviceName2 = res.data.records[0].serviceName
-          this.formData.serviceNumber2 = res.data.records[0].serviceNumber
+          if (!this.formData.successCustomerNumber) {
+            this.formData.successCustomerNumber = res.data.records[0].customerNumber
+          }
+          if (!this.formData.successCustomerName) {
+            this.formData.successCustomerName = res.data.records[0].customerName
+          }
+          if (!this.formData.successServiceName) {
+            this.formData.successServiceName = res.data.records[0].serviceName
+          }
+          if (!this.formData.successServiceNumber) {
+            this.formData.successServiceNumber = res.data.records[0].serviceNumber
+          }
         }
       })
     }
@@ -271,35 +310,43 @@ export default {
 .diy-table-1 {
   border: 1px solid #cccc;
 }
+
 .diy-table-1 .item {
   border-bottom: 1px solid #ccc;
 }
+
 .diy-table-1 .item .label {
   width: 150px;
   border-right: 1px solid #ccc;
 }
-.diy-table-1 .item .value{
+
+.diy-table-1 .item .value {
   border-right: 1px solid #ccc;
 }
 
 ::v-deep .el-radio {
   margin-right: 120px;
 }
+
 .flex-box {
   display: flex;
   align-items: center;
   margin: 5px 20px;
+
   &-title {
     width: 100px;
   }
 }
+
 ::v-deep .my-input > input {
   padding-left: 10px !important;
   border: 1px solid #dcdfe6 !important;
 }
+
 .mg-b {
   margin: 10px 0;
 }
+
 ::v-deep .el-image-viewer__close {
   top: 106px;
   right: 40px;
@@ -307,14 +354,15 @@ export default {
   height: 40px;
   font-size: 40px;
 }
+
 ::v-deep .el-radio__inner {
-    border: 2px solid #ccc;
-    border-radius: 100%;
-    width: 14px;
-    height: 14px;
-    background-color: #FFF;
-    cursor: pointer;
-    -webkit-box-sizing: border-box;
-    box-sizing: border-box;
+  border: 2px solid #ccc;
+  border-radius: 100%;
+  width: 14px;
+  height: 14px;
+  background-color: #fff;
+  cursor: pointer;
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
 }
 </style>

+ 1 - 0
src/views/commercialEngineering/components/geographicalPosi.vue

@@ -38,6 +38,7 @@
           <zj-amap-polygon
             :markers="markers"
             :zoom="zoom"
+            :isWheel="true"
             :center="center"
             :electronic-fence="false"
             @getGeocoder="getGeocoder"

+ 219 - 48
src/views/commercialEngineering/components/loginSuccess.vue

@@ -9,17 +9,80 @@
     :modal-append-to-body="false"
     :append-to-body="true"
   >
-    <div v-if="showDialog" style="height: 60vh">
-      <template-page
-        ref="pageRefTable"
-        :pofx="true"
-        :get-list="getList"
-        :column-parsing="columnParsing"
-        :operation-column-width="200"
-        :table-attributes="tableAttributes"
-        :table-events="tableEvents"
-        :replace-or-not-map="false"
-      />
+    <div v-if="showDialog">
+      <div>
+        <el-form ref="searchForm" :model="searchForm" label-width="100px" size="mini" label-position="left">
+          <el-row :gutter="20">
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="项目编号" prop="project_no">
+                <el-input v-model="searchForm.project_no" placeholder="请输入" />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="工程项目名称" prop="project_name">
+                <el-input v-model="searchForm.project_name" placeholder="请输入" />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="经销商名称" prop="customer_name">
+                <el-input v-model="searchForm.customer_name" placeholder="请输入" />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="业务员" prop="service_name">
+                <el-input v-model="searchForm.service_name" placeholder="请输入" />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="工程类型" prop="order_type">
+                <el-select v-model="searchForm.order_type" clearable placeholder="请选择">
+                  <el-option
+                    v-for="(key,value) in orderType"
+                    :key="key"
+                    :label="key"
+                    :value="value"
+                  />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="18">
+              <div class="fr">
+                <el-button type="primary" size="mini" @click="getList">搜索</el-button>
+                <el-button type="primary" size="mini" @click="handleClear">清空</el-button>
+              </div>
+            </el-col>
+          </el-row>
+        </el-form>
+      </div>
+      <!-- 列表 -->
+
+      <div class="mymain-container">
+        <zj-table
+          ref="table"
+          :table-attributes="{
+            height: 400,
+            ...tableAttributes, selectColumn: true
+          }"
+          :table-events="tableEvents"
+          :is-drop="true"
+          :columns="columns"
+          :table-data="dataList"
+        />
+
+        <div class="pagination clearfix" style="margin-top: 20px">
+          <div class="fr">
+            <el-pagination
+              :current-page="currentPage"
+              :page-sizes="[10, 20, 30, 50]"
+              :page-size="10"
+              layout="total, sizes, prev, pager, next, jumper"
+              :total="listTotal"
+              @size-change="handleSizeChange"
+              @current-change="handleCurrentChange"
+            />
+          </div>
+        </div>
+      </div>
     </div>
     <div slot="footer" class="dialog-footer">
       <el-button size="mini" @click="cancel">取 消</el-button>
@@ -29,13 +92,10 @@
 </template>
 
 <script>
-import TemplatePage from '@/components/template/template-page-1.vue'
-import { getLoginHomeDecorationList } from '@/api/homeDecoration'
 import { getLoginCrossDistrictList } from '@/api/crossDistrict'
-import { getLoginFrockList } from '@/api/frock'
+import { getLoginList } from '@/api/summaryTable'
+
 export default {
-  components: { TemplatePage },
-  mixins: [],
   props: {
     pageType: {
       type: String,
@@ -52,32 +112,106 @@ export default {
   },
   data() {
     return {
-      // 表格属性
-      tableAttributes: {
-        // 启用勾选列
-        selectColumn: true,
-        selectable: this.selectable
+      orderType: {
+        WORK: '工装',
+        HOME: '家装'
       },
-      // 表格事件
+      statusType: {
+        ING: '跟进中',
+        LOSS: '已丢单',
+        SIGN: '签订合同'
+      },
+      currentPage: 1, // 当前页码
+      pageSize: 15, // 每页数量
+      recordSelected: [],
+      searchForm: {
+        project_no: '',
+        project_name: '',
+        customer_name: '',
+        service_name: '',
+        order_type: ''
+      },
+      dataList: [],
+      listLoading: false,
+      listTotal: 0,
+      tableAttributes: { selectable: this.selectable },
       tableEvents: {
         'selection-change': this.selectionChange,
         select: (selection, row) => {
-          this.$refs.pageRefTable.$refs.zjpage.$refs.tableEl.$refs.tableView.clearSelection()
-          this.$refs.pageRefTable.$refs.zjpage.$refs.tableEl.$refs.tableView.toggleRowSelection(row)
+          this.$refs.table.$refs.tableView.clearSelection()
+          this.$refs.table.$refs.tableView.toggleRowSelection(row)
         }
-      },
-      recordSelected: []
+
+      }
     }
   },
-  computed: {},
-  watch: {
-    showDialog: {
-      handler(nl, ol) {
-        // console.log(this.pageType, this.formData, 9999)
-      }
+  computed: {
+    columns() {
+      return [
+        {
+          columnAttributes: {
+            label: '项目编号',
+            prop: 'projectNo'
+          }
+        },
+        {
+          columnAttributes: {
+            label: '工程项目名称',
+            prop: 'projectName',
+            width: 200
+          }
+        },
+        {
+          columnAttributes: {
+            label: '经销商名称',
+            prop: 'customerName',
+            minWidth: 200
+          }
+        },
+        // {
+        //   columnAttributes: {
+        //     label: '经销商编号',
+        //     prop: 'customerNumber'
+        //   }
+        // },
+        {
+          columnAttributes: {
+            label: '业务员',
+            prop: 'serviceName'
+          }
+        },
+        {
+          columnAttributes: {
+            label: '工程类型',
+            prop: ''
+          },
+          render: (h, { column, row, index }) => {
+            return (
+              <div style="margin:0 10px">
+                {this.orderType[row.orderType] || row.orderType}
+              </div>
+            )
+          }
+        }
+        // {
+        //   columnAttributes: {
+        //     label: '跟进状态',
+        //     prop: ''
+        //   },
+        //   render: (h, { column, row, index }) => {
+        //     return (
+        //       <div style="margin:0 10px">
+        //         {this.statusType[row.status] || row.status}
+        //       </div>
+        //     )
+        //   }
+        // }
+      ]
     }
   },
-  created() {},
+  created() {
+    this.getList()
+  },
   methods: {
     selectable(row, index) {
       if (this.formData.id == row.id) {
@@ -86,28 +220,50 @@ export default {
         return true
       }
     },
-    // 表格列解析渲染数据更改
-    columnParsing(item, defaultData) {
-      return defaultData
-    },
     // 监听勾选变化
     selectionChange(data) {
       this.recordSelected = data
     },
-    getList(...p) {
+    getList() {
       this.recordSelected = []
-      if (['home', 'frock'].includes(this.pageType)) {
-        p[0].params = [...p[0].params, { param: 'a.order_status', compare: '=', value: 'OK' }]
-      }
-      if (this.pageType === 'home') {
-        return getLoginHomeDecorationList(...p)
+      const params = {
+        pageSize: this.pageSize,
+        pageNum: this.currentPage,
+        params: [{ param: 'a.order_status', compare: '=', value: 'OK' }, {
+          param: 'a.is_span',
+          compare: '=',
+          value: ['home', 'frock'].includes(this.pageType) ? 0 : 1
+        }]
       }
-      if (this.pageType === 'cross') {
-        return getLoginCrossDistrictList(...p)
+      for (const key in this.searchForm) {
+        if (this.searchForm[key]) {
+          params.params.push(
+            { param: `a.${key}`, compare: '=', value: this.searchForm[key] }
+          )
+        }
       }
-      if (this.pageType === 'frock') {
-        return getLoginFrockList(...p)
+      const fn = {
+        1: getLoginCrossDistrictList,
+        2: getLoginList
       }
+      fn[this.pageType === 'cross' ? 1 : 2](params).then(res => {
+        this.dataList = res.data.records
+        this.listTotal = res.data.total
+      }).finally(() => {
+        this.listLoading = false
+      })
+    },
+    // 更改每页数量
+    handleSizeChange(val) {
+      this.pageSize = val
+      this.currentPage = 1
+      this.getList()
+    },
+
+    // 更改当前页
+    handleCurrentChange(val) {
+      this.currentPage = val
+      this.getList()
     },
     cancel() {
       this.$emit('cancel')
@@ -115,9 +271,24 @@ export default {
     confirm() {
       this.$emit('success', this.recordSelected)
       this.cancel()
+    },
+    handleClear() {
+      this.searchForm = {
+        project_no: '',
+        project_name: '',
+        customer_name: '',
+        service_name: '',
+        order_type: ''
+      }
+      this.getList()
     }
   }
 }
 </script>
 
-<style scoped></style>
+<style scoped lang="scss">
+::v-deep .el-table th.el-table__cell .el-checkbox__input {
+  display: none;
+}
+
+</style>

+ 26 - 48
src/views/commercialEngineering/components/model.vue

@@ -170,56 +170,28 @@ export default {
             label: '物料名称*',
             prop: 'materialName'
           },
-          // render: (h, { row, column, index }) => {
-          //   return (
-          //     <el-select
-          //       value={row.materialName}
-          //       clearable
-          //       style="width: 100%;padding: 5px;"
-          //       onInput={e => (row.materialName = e)}
-          //       onChange={e => this.setCheckeData(e, row)}
-          //       filterable
-          //       size="mini"
-          //       remote
-          //       reserve-keyword
-          //       placeholder="请输入物料名称"
-          //       remote-method={e => this.remoteMethod(e, 'name')}
-          //       loading={this.loading}
-          //     >
-          //       {this.k3List.map(k => {
-          //         return <el-option key={k.id} label={k.name} value={k.id}></el-option>
-          //       })}
-          //     </el-select>
-          //   )
-          // }
+          render: (h, { row, column, index }) => {
+            return (
+              <div style="display:flex;justify-content: space-between;align-items: center;">
+              <div> {row.materialName}</div>
+              <CopyButton copyText={row.materialName} />
+            </div>
+            )
+          }
         },
         {
           columnAttributes: {
             label: '规格型号*',
             prop: 'specification'
           },
-          // render: (h, { row, column, index }) => {
-          //   return (
-          //     <el-select
-          //       value={row.specification}
-          //       clearable
-          //       style="width: 100%;padding: 5px;"
-          //       onInput={e => (row.specification = e)}
-          //       onChange={e => this.setCheckeData(e, row)}
-          //       filterable
-          //       size="mini"
-          //       remote
-          //       reserve-keyword
-          //       placeholder="请输入规格型号"
-          //       remote-method={e => this.remoteMethod(e, 'specification')}
-          //       loading={this.loading}
-          //     >
-          //       {this.k3List.map(k => {
-          //         return <el-option key={k.id} label={k.specification} value={k.id}></el-option>
-          //       })}
-          //     </el-select>
-          //   )
-          // }
+          render: (h, { row, column, index }) => {
+            return (
+             <div style="display:flex;justify-content: space-between;align-items: center;">
+              <div> {row.specification}</div>
+              <CopyButton copyText={row.specification} />
+             </div>
+            )
+          }
         },
         {
           columnAttributes: {
@@ -228,20 +200,25 @@ export default {
           },
           render: (h, { row, column, index }) => {
             return (
-              <el-input
-                style="padding: 5px;"
+             <div>
+               <el-input
+                style="padding: 5px;width:90%"
                 value={row.itemRemark}
                 onInput={e => (row.itemRemark = e)}
                 placeholder="请输入备注"
                 size="mini"
                 clearable
-              ></el-input>
+              >
+              </el-input>
+              <CopyButton copyText={row.itemRemark} />
+
+             </div>
             )
           }
         },
         {
           columnAttributes: {
-            label: '数量',
+            label: '数量*',
             prop: 'qty'
           },
           render: (h, { row, column, index }) => {
@@ -251,6 +228,7 @@ export default {
                 type="number"
                 value={row.qty}
                 placeholder="请输入数量"
+                min={1}
                 onInput={e => (row.qty = e)}
                 size="mini"
                 clearable

+ 1 - 1
src/views/commercialEngineering/components/operate.vue

@@ -25,7 +25,7 @@
       <div v-if="operateType === 'replace'">
         <div class="flex-box">
           <div class="flex-box-title">业务员</div>
-          <el-select v-model="formData.serviceId" placeholder="请选择" clearable size="mini">
+          <el-select v-model="formData.serviceId" placeholder="请选择" clearable size="mini" filterable>
             <el-option v-for="item in salesmanList" :key="item.value" :label="item.label" :value="item.value" />
           </el-select>
         </div>

+ 20 - 0
src/views/commercialEngineering/crossDistrict/crossDistrictForm.vue

@@ -31,7 +31,27 @@ export default {
         }
       }
       params.joinData()
+      if(!this.verificationModel())return
+
       if (params.orderType === 'HOME' && params.homeProjectNameRadio) {
+        if (params.homeProjectNameRadio == 'AREA') {
+          if (!params.homeProjectNameArea || !params.homeProjectNameSeat || !params.homeProjectNameNumber) {
+            this.$errorMsg('工程项目名称信息有误,请填写完整信息。')
+            return
+          }
+        }
+        if (params.homeProjectNameRadio == 'SELF') {
+          if (!params.homeProjectNameArea2) {
+            this.$errorMsg('工程项目名称信息有误,请填写完整信息。')
+            return
+          }
+        }
+        if (params.homeProjectNameRadio == 'VILLA') {
+          if (!params.homeProjectNameArea3 || !params.homeProjectNameNumber3) {
+            this.$errorMsg('工程项目名称信息有误,请填写完整信息。')
+            return
+          }
+        }
         params.projectName = {
           'AREA': params.homeProjectNameArea + '小区' + params.homeProjectNameSeat + '座' + params.homeProjectNameNumber + '号',
           'SELF': params.homeProjectNameArea2 + '(业主名称)自建房',

+ 89 - 62
src/views/commercialEngineering/crossDistrict/crossDistrictkList.vue

@@ -10,7 +10,7 @@
     :options-evens-group="optionsEvensGroup"
     :table-attributes="tableAttributes"
     :table-events="tableEvents"
-    :replaceOrNotMap ="false"
+    :replaceOrNotMap="false"
     :ellipsis="false"
 
   >
@@ -25,7 +25,9 @@
       <Detail v-if="['detail'].includes(module)" :detail-id="detailId" :module="module" @updateList="handleClose" />
       <Examine v-if="['examine'].includes(module)" :detail-id="detailId" :module="module" @updateList="handleClose" />
     </Popu>
-    <Operate v-if="operateVisible" :operate-visible="operateVisible" :operate-type="operateType" :operate-title="operateTitle" :detail-id="detailId" :record-selected="recordSelected" @close="handleClose" />
+    <Operate v-if="operateVisible" :operate-visible="operateVisible" :operate-type="operateType"
+             :operate-title="operateTitle" :detail-id="detailId" :record-selected="recordSelected" @close="handleClose"
+    />
 
   </template-page>
 </template>
@@ -36,15 +38,17 @@ import import_mixin from '@/components/template/import_mixin.js'
 import add_callback_mixin from '@/components/template/add_callback_mixin.js'
 import Popu from '@/components/template/popu.vue'
 import CrossDistrictForm from './crossDistrictForm.vue'
+import list_mixin from '../mixin/list'
 import Detail from './detail.vue'
 import Examine from './examine.vue'
 import Operate from '../components/operate.vue'
 import { mapGetters } from 'vuex'
 
 import { getLoginCrossDistrictList, exportLoginCrossDistrict } from '@/api/crossDistrict'
+
 export default {
   components: { TemplatePage, Popu, CrossDistrictForm, Detail, Examine, Operate },
-  mixins: [import_mixin, add_callback_mixin],
+  mixins: [import_mixin, add_callback_mixin, list_mixin],
   data() {
     return {
       visible: false,
@@ -77,9 +81,13 @@ export default {
           [
             {
               name: '添加记录',
-              click: this.addOn(() => {
-                this.visible = true
-              })
+              click: () => {
+                this.checkTradeLogin(() => {
+                  this.addOn(() => {
+                    this.visible = true
+                  })()
+                }, { isSpan: true})
+              }
             }
           ]
         ],
@@ -96,7 +104,7 @@ export default {
                         return
                       }
                       for (let index = 0; index < this.recordSelected.length; index++) {
-                        if (!(this.recordSelected[index].orderStatus == '已审核' && this.recordSelected[index].status == '跟进中')) {
+                        if (!(this.recordSelected[index].orderStatus == 'OK' && this.recordSelected[index].status == 'ING')) {
                           this.$message.error('请选择审核通过并且跟进中的数据')
                           return
                         }
@@ -118,7 +126,7 @@ export default {
                         return
                       }
                       for (let index = 0; index < this.recordSelected.length; index++) {
-                        if (this.recordSelected[index].orderStatus !== '已审核') {
+                        if (this.recordSelected[index].orderStatus !== 'OK') {
                           this.$message.error('请选择审核通过的数据')
                           return
                         }
@@ -133,36 +141,36 @@ export default {
             ]
             : []
         })(),
-              [
-                [
-                  {
-                    name: '删除',
-                    click: () => {
-                      if (this.recordSelected.length === 0) {
-                        this.$message.error('请选择需要删除的数据')
-                        return
-                      }
-                      if(!this.isTradeExaminer){
-                        for (let index = 0; index < this.recordSelected.length; index++) {
-                        if (this.recordSelected[index].orderStatus !== '保存') {
-                          this.$message.error('请选择保存的数据')
-                          return
-                        }
-                      }
-                      }
-                      // for (let index = 0; index < this.recordSelected.length; index++) {
-                      //   if (this.recordSelected[index].orderStatus !== '已审核') {
-                      //     this.$message.error('请选择审核通过的数据')
-                      //     return
-                      //   }
-                      // }
-                      this.operateType = 'delete'
-                      this.operateTitle = '删除'
-                      this.operateVisible = true
+        [
+          [
+            {
+              name: '删除',
+              click: () => {
+                if (this.recordSelected.length === 0) {
+                  this.$message.error('请选择需要删除的数据')
+                  return
+                }
+                if (!this.isTradeExaminer) {
+                  for (let index = 0; index < this.recordSelected.length; index++) {
+                    if (this.recordSelected[index].orderStatus !== 'SAVE') {
+                      this.$message.error('请选择保存的数据')
+                      return
                     }
                   }
-                ]
-              ]
+                }
+                // for (let index = 0; index < this.recordSelected.length; index++) {
+                //   if (this.recordSelected[index].orderStatus !== '已审核') {
+                //     this.$message.error('请选择审核通过的数据')
+                //     return
+                //   }
+                // }
+                this.operateType = 'delete'
+                this.operateTitle = '删除'
+                this.operateVisible = true
+              }
+            }
+          ]
+        ]
       ]
     }
   },
@@ -181,16 +189,31 @@ export default {
     columnParsing(item, defaultData) {
       if (item.colName === 'project_no') {
         defaultData.render = (h, { row, index, column }) => {
-          return (<el-link type='primary' underline={false} onClick={() => {
-            const page = this.$router.resolve({
-              path: '/commercialEngineering/crossDistrictkList',
-              query: {
-                detailId: row.id,
-                module: 'detail'
-              }
-            })
-            window.open(page.href, '_blank')
-          }}>{row.projectNo}</el-link>)
+          return (
+            <div style="padding:0 6px;cursor: pointer;" class={{ 'text-view': true, 'text-view-copy': column.isCopy }}>
+              <el-link
+                type="primary"
+                underline={false}
+                onClick={() => {
+                  const page = this.$router.resolve({
+                    path: '/commercialEngineering/crossDistrictkList',
+                    query: {
+                      detailId: row.id,
+                      module: 'detail'
+                    }
+                  })
+                  window.open(page.href, '_blank')
+                }}
+              >
+                {row.projectNo}
+              </el-link>
+              {column.isCopy ? (
+                <i
+                  class={['el-icon-document-copy', column.columnCopyClass]}
+                  data-clipboard-text={row[column.columnAttributes.prop]}
+                ></i>
+              ) : null}
+            </div>)
         }
       }
       return defaultData
@@ -202,11 +225,11 @@ export default {
     operation() {
       return (h, { row, index, column }) => {
         return (
-          <div class='operation-btns'>
-               {!this.isTradeExaminer && ((row.orderStatus === 'OK') && row.status === 'ING' && !row.isApplyUpdate) ? (
+          <div class="operation-btns">
+            {!this.isTradeExaminer && ((row.orderStatus === 'OK') && row.status === 'ING' && !row.isApplyUpdate) ? (
               <el-button
-                size='mini'
-                type='text'
+                size="mini"
+                type="text"
                 onClick={() => {
                   this.detailId = row.id
                   this.operateType = 'apply'
@@ -217,10 +240,10 @@ export default {
                 申请修改
               </el-button>
             ) : null}
-            {this.isTradeExaminer && (row.orderStatus === 'WAIT' || row.orderStatus === 'OK' || row.orderStatus === 'FAIL') ? (
+            {this.isTradeExaminer && row.orderStatus !== 'SAVE' ? (
               <el-button
-                size='mini'
-                type='text'
+                size="mini"
+                type="text"
                 onClick={() => {
                   this.content = '审核'
                   this.module = 'examine'
@@ -243,10 +266,13 @@ export default {
             >
               详情
             </el-button> */}
-            {(row.orderStatus === 'SAVE' || row.orderStatus === 'RETURN')
+            {(this.isTradeExaminer &&
+              (row.orderStatus === 'SAVE' || row.orderStatus === 'RETURN' || row.status === 'ING')) ||
+            row.orderStatus === 'SAVE' ||
+            row.orderStatus === 'RETURN'
               ? <el-button
-                size='mini'
-                type='text'
+                size="mini"
+                type="text"
                 onClick={() => {
                   this.content = '编辑'
                   this.module = 'edit'
@@ -254,24 +280,25 @@ export default {
                   this.visible = true
                 }}
               >
-              编辑
+                编辑
               </el-button> : null
             }
             {row.orderStatus === 'OK' && row.status === 'ING'
-              ? <el-button size='mini' type='text' onClick={() => {
+              ? <el-button size="mini" type="text" onClick={() => {
                 this.operateType = 'update'
                 this.operateTitle = '更新'
                 this.recordSelected = [row]
                 this.operateVisible = true
-              }}>
-              更新
+              }}
+              >
+                更新
               </el-button> : null
             }
 
             {this.isTradeExaminer && ((row.orderStatus === 'OK' || row.orderStatus === 'FAIL') && row.isApplyUpdate) ? (
               <el-button
-                size='mini'
-                type='text'
+                size="mini"
+                type="text"
                 onClick={() => {
                   this.detailId = row.id
                   this.operateType = 'examine'

+ 3 - 1
src/views/commercialEngineering/crossDistrict/examine.vue

@@ -51,6 +51,8 @@ export default {
         }
       }
       params.joinData()
+      if(!this.verificationModel())return
+
       if (this.formData.files.length) {
         params.files = this.formData.files.map(k => {
           return {
@@ -65,7 +67,7 @@ export default {
         return
       }
 
-      if (params.loginStatus === 'REJECT' && !params.examineNote && !params.note) {
+      if (params.loginStatus === 'REJECT' && !params.note) {
         this.$errorMsg('请填写审核备注')
         return
       }

+ 3 - 1
src/views/commercialEngineering/frock/examine.vue

@@ -49,6 +49,8 @@ export default {
         }
       }
       params.joinData()
+      if(!this.verificationModel())return
+
       if (this.formData.files.length) {
         params.files = this.formData.files.map(k => {
           return {
@@ -63,7 +65,7 @@ export default {
         return
       }
 
-      if (params.loginStatus === 'REJECT' && !params.examineNote) {
+      if (params.loginStatus === 'REJECT' && !params.note) {
         this.$errorMsg('请填写审核备注')
         return
       }

+ 1 - 1
src/views/commercialEngineering/frock/frockForm.vue

@@ -33,7 +33,7 @@ export default {
       if (params.fileList.length) {
         params.drawUpload = params.fileList[0].url
       }
-
+      if(!this.verificationModel())return
       if (type === 1) {
         submitLoginFrock(params).then(res => {
           this.commonFn('提交成功')

+ 116 - 73
src/views/commercialEngineering/frock/frockList.vue

@@ -16,7 +16,7 @@
     <Popu v-if="visible">
       <el-page-header slot="head" :content="content" @back="handleClose" />
       <FrockForm
-        v-if="['add', 'edit','apply'].includes(module)"
+        v-if="['add', 'edit', 'apply'].includes(module)"
         :detail-id="detailId"
         :module="module"
         @updateList="handleClose"
@@ -24,7 +24,15 @@
       <Detail v-if="['detail'].includes(module)" :detail-id="detailId" :module="module" @updateList="handleClose" />
       <Examine v-if="['examine'].includes(module)" :detail-id="detailId" :module="module" @updateList="handleClose" />
     </Popu>
-    <Operate v-if="operateVisible" :operate-visible="operateVisible" :operate-type="operateType" :operate-title="operateTitle" :detail-id="detailId" :record-selected="recordSelected" @close="handleClose" />
+    <Operate
+      v-if="operateVisible"
+      :operate-visible="operateVisible"
+      :operate-type="operateType"
+      :operate-title="operateTitle"
+      :detail-id="detailId"
+      :record-selected="recordSelected"
+      @close="handleClose"
+    />
   </template-page>
 </template>
 
@@ -37,11 +45,14 @@ import FrockForm from './frockForm.vue'
 import Detail from './detail.vue'
 import Examine from './examine.vue'
 import Operate from '../components/operate.vue'
+import list_mixin from '../mixin/list'
+
 import { getLoginFrockList, exportLoginFrock } from '@/api/frock'
 import { mapGetters } from 'vuex'
+
 export default {
   components: { TemplatePage, Popu, FrockForm, Detail, Examine, Operate },
-  mixins: [import_mixin, add_callback_mixin],
+  mixins: [import_mixin, add_callback_mixin, list_mixin],
   data() {
     return {
       visible: false,
@@ -73,9 +84,13 @@ export default {
           [
             {
               name: '添加记录',
-              click: this.addOn(() => {
-                this.visible = true
-              })
+              click: () => {
+                this.checkTradeLogin(() => {
+                  this.addOn(() => {
+                    this.visible = true
+                  })()
+                }, { isSpan: false, orderType: 'WORK' })
+              }
             }
           ]
         ],
@@ -94,7 +109,12 @@ export default {
                       }
 
                       for (let index = 0; index < this.recordSelected.length; index++) {
-                        if (!(this.recordSelected[index].orderStatus == '已审核' && this.recordSelected[index].status == '跟进中')) {
+                        if (
+                          !(
+                            this.recordSelected[index].orderStatus == 'OK' &&
+                            this.recordSelected[index].status == 'ING'
+                          )
+                        ) {
                           this.$message.error('请选择审核通过并且跟进中的数据')
                           return
                         }
@@ -116,7 +136,7 @@ export default {
                         return
                       }
                       for (let index = 0; index < this.recordSelected.length; index++) {
-                        if (this.recordSelected[index].orderStatus !== '已审核') {
+                        if (this.recordSelected[index].orderStatus !== 'OK') {
                           this.$message.error('请选择审核通过的数据')
                           return
                         }
@@ -131,36 +151,36 @@ export default {
             ]
             : []
         })(),
-              [
-                [
-                  {
-                    name: '删除',
-                    click: () => {
-                      if (this.recordSelected.length === 0) {
-                        this.$message.error('请选择需要删除的数据')
-                        return
-                      }
-                      if(!this.isTradeExaminer){
-                        for (let index = 0; index < this.recordSelected.length; index++) {
-                        if (this.recordSelected[index].orderStatus !== '保存') {
-                          this.$message.error('请选择保存的数据')
-                          return
-                        }
-                      }
-                      }
-                      // for (let index = 0; index < this.recordSelected.length; index++) {
-                      //   if (this.recordSelected[index].orderStatus !== '已审核') {
-                      //     this.$message.error('请选择审核通过的数据')
-                      //     return
-                      //   }
-                      // }
-                      this.operateType = 'delete'
-                      this.operateTitle = '删除'
-                      this.operateVisible = true
+        [
+          [
+            {
+              name: '删除',
+              click: () => {
+                if (this.recordSelected.length === 0) {
+                  this.$message.error('请选择需要删除的数据')
+                  return
+                }
+                if (!this.isTradeExaminer) {
+                  for (let index = 0; index < this.recordSelected.length; index++) {
+                    if (this.recordSelected[index].orderStatus !== 'SAVE') {
+                      this.$message.error('请选择保存的数据')
+                      return
                     }
                   }
-                ]
-              ]
+                }
+                // for (let index = 0; index < this.recordSelected.length; index++) {
+                //   if (this.recordSelected[index].orderStatus !== '已审核') {
+                //     this.$message.error('请选择审核通过的数据')
+                //     return
+                //   }
+                // }
+                this.operateType = 'delete'
+                this.operateTitle = '删除'
+                this.operateVisible = true
+              }
+            }
+          ]
+        ]
       ]
     }
   },
@@ -179,16 +199,32 @@ export default {
     columnParsing(item, defaultData) {
       if (item.colName === 'project_no') {
         defaultData.render = (h, { row, index, column }) => {
-          return (<el-link type='primary' underline={false} onClick={() => {
-            const page = this.$router.resolve({
-              path: '/commercialEngineering/frockList',
-              query: {
-                detailId: row.id,
-                module: 'detail'
-              }
-            })
-            window.open(page.href, '_blank')
-          }}>{row.projectNo}</el-link>)
+          return (
+            <div style="padding:0 6px;cursor: pointer;" class={{ 'text-view': true, 'text-view-copy': column.isCopy }}>
+              <el-link
+                type="primary"
+                underline={false}
+                onClick={() => {
+                  const page = this.$router.resolve({
+                    path: '/commercialEngineering/frockList',
+                    query: {
+                      detailId: row.id,
+                      module: 'detail'
+                    }
+                  })
+                  window.open(page.href, '_blank')
+                }}
+              >
+                {row.projectNo}
+              </el-link>
+              {column.isCopy ? (
+                <i
+                  class={['el-icon-document-copy', column.columnCopyClass]}
+                  data-clipboard-text={row[column.columnAttributes.prop]}
+                ></i>
+              ) : null}
+            </div>
+          )
         }
       }
       return defaultData
@@ -201,11 +237,11 @@ export default {
     operation() {
       return (h, { row, index, column }) => {
         return (
-          <div class='operation-btns'>
-                {!this.isTradeExaminer && ((row.orderStatus === 'OK') && row.status === 'ING' && !row.isApplyUpdate) ? (
+          <div class="operation-btns">
+            {!this.isTradeExaminer && row.orderStatus === 'OK' && row.status === 'ING' && !row.isApplyUpdate ? (
               <el-button
-                size='mini'
-                type='text'
+                size="mini"
+                type="text"
                 onClick={() => {
                   this.detailId = row.id
                   this.operateType = 'apply'
@@ -216,10 +252,10 @@ export default {
                 申请修改
               </el-button>
             ) : null}
-            {this.isTradeExaminer && (row.orderStatus === 'WAIT' || row.orderStatus === 'OK' || row.orderStatus === 'FAIL') ? (
+            {this.isTradeExaminer && row.orderStatus !== 'SAVE' ? (
               <el-button
-                size='mini'
-                type='text'
+                size="mini"
+                type="text"
                 onClick={() => {
                   this.content = '审核'
                   this.module = 'examine'
@@ -245,10 +281,13 @@ export default {
               </el-button>
             } */}
 
-            {(row.orderStatus === 'SAVE' || row.orderStatus === 'RETURN')
-              ? <el-button
-                size='mini'
-                type='text'
+            {(this.isTradeExaminer &&
+              (row.orderStatus === 'SAVE' || row.orderStatus === 'RETURN' || row.status === 'ING')) ||
+            row.orderStatus === 'SAVE' ||
+            row.orderStatus === 'RETURN' ? (
+              <el-button
+                size="mini"
+                type="text"
                 onClick={() => {
                   this.content = '编辑'
                   this.module = 'edit'
@@ -256,24 +295,28 @@ export default {
                   this.visible = true
                 }}
               >
-              编辑
-              </el-button> : null
-            }
-            {row.orderStatus === 'OK' && row.status === 'ING'
-              ? <el-button size='mini' type='text' onClick={() => {
-                this.operateType = 'update'
-                this.operateTitle = '更新'
-                this.recordSelected = [row]
-                this.operateVisible = true
-              }}>
-              更新
-              </el-button> : null
-            }
+                编辑
+              </el-button>
+            ) : null}
+            {row.orderStatus === 'OK' && row.status === 'ING' ? (
+              <el-button
+                size="mini"
+                type="text"
+                onClick={() => {
+                  this.operateType = 'update'
+                  this.operateTitle = '更新'
+                  this.recordSelected = [row]
+                  this.operateVisible = true
+                }}
+              >
+                更新
+              </el-button>
+            ) : null}
 
-            {this.isTradeExaminer && ((row.orderStatus === 'OK' || row.orderStatus === 'FAIL') && row.isApplyUpdate) ? (
+            {this.isTradeExaminer && (row.orderStatus === 'OK' || row.orderStatus === 'FAIL') && row.isApplyUpdate ? (
               <el-button
-                size='mini'
-                type='text'
+                size="mini"
+                type="text"
                 onClick={() => {
                   this.detailId = row.id
                   this.operateType = 'examine'

+ 6 - 4
src/views/commercialEngineering/homeDecoration/examine.vue

@@ -6,8 +6,8 @@
     </el-radio-group>
     <div v-show="current === 'detail'">
       <el-form disabled>
-        <Base :form-data="formData" page-type="frock" :module="module" :common-data="commonData" />
-        <Model :form-data="formData" page-type="frock" :module="module" :common-data="commonData" />
+        <Base :form-data="formData" page-type="home" :module="module" :common-data="commonData" />
+        <Model :form-data="formData" page-type="home" :module="module" :common-data="commonData" />
       </el-form>
       <Examine :form-data="formData" page-type="home" :module="module" :common-data="commonData" />
       <div style="margin: 20px 0">
@@ -50,6 +50,8 @@ export default {
         }
       }
       params.joinData()
+      if(!this.verificationModel())return
+
       if (this.formData.files.length) {
         params.files = this.formData.files.map(k => {
           return {
@@ -64,7 +66,7 @@ export default {
         return
       }
 
-      if (params.loginStatus === 'REJECT' && !params.examineNote) {
+      if (params.loginStatus === 'REJECT' &&  !params.note) {
         this.$errorMsg('请填写审核备注')
         return
       }
@@ -82,7 +84,7 @@ export default {
             params.homeProjectNameNumber +
             '号',
           SELF: params.homeProjectNameArea2 + '(业主名称)自建房',
-          VILLA: params.homeProjectNameArea3 + '小区' + params.homeProjectNameNumber3 + '号'
+          VILLA: params.homeProjectNameArea3 + '小区' + params.homeProjectNameNumber3 + '号别墅'
         }[params.homeProjectNameRadio]
       }
       if (params.homeProjectNameRadio === 'SELF') {

+ 22 - 2
src/views/commercialEngineering/homeDecoration/homeDecorationForm.vue

@@ -15,6 +15,7 @@ import Base from '../components/base.vue'
 import Model from '../components/model.vue'
 import Mixin from '../mixin'
 import { addLoginHomeDecoration, editLoginHomeDecoration, submitLoginHomeDecoration } from '@/api/homeDecoration'
+
 export default {
   components: {
     Base,
@@ -26,16 +27,35 @@ export default {
       const params = {
         ...this.formData,
         orderType: 'HOME',
-        joinData : function () {
+        joinData: function() {
           this.joinAddress = (this.province || '') + (this.city || '') + (this.area || '') + (this.street || '') + (this.address || '')
         }
       }
       params.joinData()
+      if (!this.verificationModel()) return
       if (params.orderType === 'HOME' && params.homeProjectNameRadio) {
+        if (params.homeProjectNameRadio == 'AREA') {
+          if (!params.homeProjectNameArea || !params.homeProjectNameSeat || !params.homeProjectNameNumber) {
+            this.$errorMsg('工程项目名称信息有误,请填写完整信息。')
+            return
+          }
+        }
+        if (params.homeProjectNameRadio == 'SELF') {
+          if (!params.homeProjectNameArea2) {
+            this.$errorMsg('工程项目名称信息有误,请填写完整信息。')
+            return
+          }
+        }
+        if (params.homeProjectNameRadio == 'VILLA') {
+          if (!params.homeProjectNameArea3 || !params.homeProjectNameNumber3) {
+            this.$errorMsg('工程项目名称信息有误,请填写完整信息。')
+            return
+          }
+        }
         params.projectName = {
           'AREA': params.homeProjectNameArea + '小区' + params.homeProjectNameSeat + '座' + params.homeProjectNameNumber + '号',
           'SELF': params.homeProjectNameArea2 + '(业主名称)自建房',
-          'VILLA': params.homeProjectNameArea3 + '小区' + params.homeProjectNameNumber3 + '号'
+          'VILLA': params.homeProjectNameArea3 + '小区' + params.homeProjectNameNumber3 + '号别墅'
         }[params.homeProjectNameRadio]
       }
       if (params.homeProjectNameRadio === 'SELF') {

+ 84 - 90
src/views/commercialEngineering/homeDecoration/homeDecorationList.vue

@@ -45,12 +45,13 @@ import HomeDecorationForm from './homeDecorationForm.vue'
 import Detail from './detail.vue'
 import Examine from './examine.vue'
 import Operate from '../components/operate.vue'
+import list_mixin from '../mixin/list'
 import { getLoginHomeDecorationList, exportLoginHomeDecoration } from '@/api/homeDecoration'
 import { mapGetters } from 'vuex'
 
 export default {
   components: { TemplatePage, Popu, HomeDecorationForm, Detail, Examine, Operate },
-  mixins: [import_mixin, add_callback_mixin],
+  mixins: [import_mixin, add_callback_mixin, list_mixin],
   data() {
     return {
       visible: false,
@@ -83,9 +84,13 @@ export default {
           [
             {
               name: '添加记录',
-              click: this.addOn(() => {
-                this.visible = true
-              })
+              click: () => {
+                this.checkTradeLogin(() => {
+                  this.addOn(() => {
+                    this.visible = true
+                  })()
+                }, { isSpan: false, orderType: 'HOME' })
+              }
             }
           ]
         ],
@@ -102,7 +107,7 @@ export default {
                         return
                       }
                       for (let index = 0; index < this.recordSelected.length; index++) {
-                        if (!(this.recordSelected[index].orderStatus == '已审核' && this.recordSelected[index].status == '跟进中')) {
+                        if (!(this.recordSelected[index].orderStatus == 'OK' && this.recordSelected[index].status == 'ING')) {
                           this.$message.error('请选择审核通过并且跟进中的数据')
                           return
                         }
@@ -124,7 +129,7 @@ export default {
                         return
                       }
                       for (let index = 0; index < this.recordSelected.length; index++) {
-                        if (this.recordSelected[index].orderStatus !== '已审核') {
+                        if (this.recordSelected[index].orderStatus !== 'OK') {
                           this.$message.error('请选择审核通过的数据')
                           return
                         }
@@ -135,70 +140,40 @@ export default {
                     }
                   }
                 ]
-              ],
-              [
-                [
-                  {
-                    name: '删除',
-                    click: () => {
-                      if (this.recordSelected.length === 0) {
-                        this.$message.error('请选择需要删除的数据')
-                        return
-                      }
-                      if(!this.isTradeExaminer){
-                        for (let index = 0; index < this.recordSelected.length; index++) {
-                        if (this.recordSelected[index].orderStatus !== '保存') {
-                          this.$message.error('请选择保存的数据')
-                          return
-                        }
-                      }
-                      }
-                      // for (let index = 0; index < this.recordSelected.length; index++) {
-                      //   if (this.recordSelected[index].orderStatus !== '已审核') {
-                      //     this.$message.error('请选择审核通过的数据')
-                      //     return
-                      //   }
-                      // }
-                      this.operateType = 'delete'
-                      this.operateTitle = '删除'
-                      this.operateVisible = true
-                    }
-                  }
-                ]
               ]
             ]
             : []
         })(),
-              [
-                [
-                  {
-                    name: '删除',
-                    click: () => {
-                      if (this.recordSelected.length === 0) {
-                        this.$message.error('请选择需要删除的数据')
-                        return
-                      }
-                      if(!this.isTradeExaminer){
-                        for (let index = 0; index < this.recordSelected.length; index++) {
-                        if (this.recordSelected[index].orderStatus !== '保存') {
-                          this.$message.error('请选择保存的数据')
-                          return
-                        }
-                      }
-                      }
-                      // for (let index = 0; index < this.recordSelected.length; index++) {
-                      //   if (this.recordSelected[index].orderStatus !== '已审核') {
-                      //     this.$message.error('请选择审核通过的数据')
-                      //     return
-                      //   }
-                      // }
-                      this.operateType = 'delete'
-                      this.operateTitle = '删除'
-                      this.operateVisible = true
+        [
+          [
+            {
+              name: '删除',
+              click: () => {
+                if (this.recordSelected.length === 0) {
+                  this.$message.error('请选择需要删除的数据')
+                  return
+                }
+                if (!this.isTradeExaminer) {
+                  for (let index = 0; index < this.recordSelected.length; index++) {
+                    if (this.recordSelected[index].orderStatus !== 'SAVE') {
+                      this.$message.error('请选择保存的数据')
+                      return
                     }
                   }
-                ]
-              ]
+                }
+                // for (let index = 0; index < this.recordSelected.length; index++) {
+                //   if (this.recordSelected[index].orderStatus !== '已审核') {
+                //     this.$message.error('请选择审核通过的数据')
+                //     return
+                //   }
+                // }
+                this.operateType = 'delete'
+                this.operateTitle = '删除'
+                this.operateVisible = true
+              }
+            }
+          ]
+        ]
       ]
     }
   },
@@ -217,16 +192,31 @@ export default {
     columnParsing(item, defaultData) {
       if (item.colName === 'project_no') {
         defaultData.render = (h, { row, index, column }) => {
-          return (<el-link type='primary' underline={false} onClick={() => {
-            const page = this.$router.resolve({
-              path: '/commercialEngineering/homeDecorationList',
-              query: {
-                detailId: row.id,
-                module: 'detail'
-              }
-            })
-            window.open(page.href, '_blank')
-          }}>{row.projectNo}</el-link>)
+          return (
+            <div style="padding:0 6px;cursor: pointer;" class={{ 'text-view': true, 'text-view-copy': column.isCopy }}>
+              <el-link
+                type="primary"
+                underline={false}
+                onClick={() => {
+                  const page = this.$router.resolve({
+                    path: '/commercialEngineering/homeDecorationList',
+                    query: {
+                      detailId: row.id,
+                      module: 'detail'
+                    }
+                  })
+                  window.open(page.href, '_blank')
+                }}
+              >
+                {row.projectNo}
+              </el-link>
+              {column.isCopy ? (
+                <i
+                  class={['el-icon-document-copy', column.columnCopyClass]}
+                  data-clipboard-text={row[column.columnAttributes.prop]}
+                ></i>
+              ) : null}
+            </div>)
         }
       }
       return defaultData
@@ -238,11 +228,11 @@ export default {
     operation() {
       return (h, { row, index, column }) => {
         return (
-          <div class='operation-btns'>
-               {!this.isTradeExaminer && ((row.orderStatus === 'OK') && row.status === 'ING' && !row.isApplyUpdate) ? (
+          <div class="operation-btns">
+            {!this.isTradeExaminer && ((row.orderStatus === 'OK') && row.status === 'ING' && !row.isApplyUpdate) ? (
               <el-button
-                size='mini'
-                type='text'
+                size="mini"
+                type="text"
                 onClick={() => {
                   this.detailId = row.id
                   this.operateType = 'apply'
@@ -253,10 +243,10 @@ export default {
                 申请修改
               </el-button>
             ) : null}
-            {this.isTradeExaminer && (row.orderStatus === 'WAIT' || row.orderStatus === 'OK' || row.orderStatus === 'FAIL') ? (
+            {this.isTradeExaminer && row.orderStatus !== 'SAVE' ? (
               <el-button
-                size='mini'
-                type='text'
+                size="mini"
+                type="text"
                 onClick={() => {
                   this.content = '审核'
                   this.module = 'examine'
@@ -279,10 +269,13 @@ export default {
             >
               详情
             </el-button> */}
-            {(row.orderStatus === 'SAVE' || row.orderStatus === 'RETURN')
+            {(this.isTradeExaminer &&
+              (row.orderStatus === 'SAVE' || row.orderStatus === 'RETURN' || row.status === 'ING')) ||
+            row.orderStatus === 'SAVE' ||
+            row.orderStatus === 'RETURN'
               ? <el-button
-                size='mini'
-                type='text'
+                size="mini"
+                type="text"
                 onClick={() => {
                   this.content = '编辑'
                   this.module = 'edit'
@@ -290,24 +283,25 @@ export default {
                   this.visible = true
                 }}
               >
-              编辑
+                编辑
               </el-button> : null
             }
             {row.orderStatus === 'OK' && row.status === 'ING'
-              ? <el-button size='mini' type='text' onClick={() => {
+              ? <el-button size="mini" type="text" onClick={() => {
                 this.operateType = 'update'
                 this.operateTitle = '更新'
                 this.recordSelected = [row]
                 this.operateVisible = true
-              }}>
-              更新
+              }}
+              >
+                更新
               </el-button> : null
             }
 
             {this.isTradeExaminer && ((row.orderStatus === 'OK' || row.orderStatus === 'FAIL') && row.isApplyUpdate) ? (
               <el-button
-                size='mini'
-                type='text'
+                size="mini"
+                type="text"
                 onClick={() => {
                   this.detailId = row.id
                   this.operateType = 'examine'

+ 42 - 28
src/views/commercialEngineering/mixin/index.js

@@ -1,6 +1,6 @@
 import { getCommercialEngineeringDetail, getPositionProject } from '@/api/frock'
-import { getDictList, getSalesmanList } from '@/api/common'
-import { getDealerListV2 } from '@/api/basic_data/dealer'
+import { getDictList, getSalesmanListService } from '@/api/common'
+import { getDealerListV3 } from '@/api/basic_data/dealer'
 import { getFirstPartyCustomerManagementList } from '@/api/basic_data/partya'
 import { mapGetters } from 'vuex'
 export default {
@@ -104,7 +104,11 @@ export default {
         serviceName2: '',
         customerNumber2: '',
         customerName2: '',
-        joinAddress: ''
+        joinAddress: '',
+        successServiceNumber: '',
+        successServiceName: '',
+        successCustomerNumber: '',
+        successCustomerName: '',
       },
       commonData: {
         dict: {
@@ -131,9 +135,12 @@ export default {
       ...this.formData
     }
     this.getDictList()
-    this.getDealerListV2()
-    this.getSalesmanList()
+    this.getSalesmanListService()
     this.getFirstPartyCustomerManagementList()
+    if (this.module === 'add') {
+      this.getDealerListV3()
+
+    }
     if (this.detailId) {
       this.getCommercialEngineeringDetail()
     }
@@ -150,8 +157,8 @@ export default {
         })
       })
     },
-    getSalesmanList() {
-      getSalesmanList({
+    getSalesmanListService() {
+      getSalesmanListService({
         pageNum: 1,
         pageSize: -1,
         isCustomer: 0,
@@ -167,26 +174,19 @@ export default {
       })
     },
     getFirstPartyCustomerManagementList() {
-      getFirstPartyCustomerManagementList({ pageNum: 1, pageSize: -1 }).then(res => {
-        this.commonData.PartyAList = res.data.records.map(k => {
-          return {
-            label: k.name,
-            value: k.id
-          }
-        })
-      })
+      // getFirstPartyCustomerManagementList({ pageNum: 1, pageSize: -1 }).then(res => {
+      //   this.commonData.PartyAList = res.data.records.map(k => {
+      //     return {
+      //       label: k.name,
+      //       value: k.id
+      //     }
+      //   })
+      // })
     },
-    getDealerListV2() {
-      getDealerListV2({
+    getDealerListV3() {
+      getDealerListV3({
         pageNum: 1,
-        pageSize: -1,
-        params: [
-          {
-            param: 'a.jiaxian_type',
-            compare: '=',
-            value: 'KING'
-          }
-        ]
+        pageSize: 100
       }).then(res => {
         this.commonData.customerList = res.data.records.map(k => {
           return {
@@ -205,12 +205,14 @@ export default {
           fileList: []
         }
         if (res.data.drawUpload) {
+          const name = res.data.drawUpload.substring(0, res.data.drawUpload.lastIndexOf(".")).replace('uploadfile/', '')
+          const fileName =res.data.drawUpload.replace('uploadfile/', '')
           this.formData.fileList = [
             {
-              name: '图纸文件.xlsx',
+              name,
+              fileName,
               status: 'success',
               url: res.data.drawUpload,
-              uid: '111'
             }
           ]
         }
@@ -226,7 +228,19 @@ export default {
         ...this.resetData,
         id: this.detailId
       }
+    },
+    // 校验机型数量
+    verificationModel(){
+      if (!this.formData.items.length) {
+         this.$errorMsg('机型明细不能为空')
+         return false
+      }
+      console.log(this.formData.items)
+      const bol =  this.formData.items.every(k=>!['', null, undefined,0, '0'].includes(k.qty))
+      if (!bol) {
+          this.$errorMsg('机型信息数量不能为空并且不能小于1')
+      }
+      return  bol
     }
-
   }
 }

+ 12 - 0
src/views/commercialEngineering/mixin/list.js

@@ -0,0 +1,12 @@
+import { checkTradeLoginLimit } from '@/api/frock'
+
+export default {
+
+  methods: {
+    checkTradeLogin(cd, params) {
+      checkTradeLoginLimit(params).then(res => {
+        cd()
+      })
+    }
+  }
+}

+ 70 - 0
src/views/commercialEngineering/summaryTable/index_1.vue

@@ -0,0 +1,70 @@
+<template>
+  <template-page
+    ref="pageRef"
+    :get-list="getList"
+    :export-list="exportList"
+    :column-parsing="columnParsing"
+  >
+    <Popu v-if="visible" />
+  </template-page>
+</template>
+
+<script>
+import TemplatePage from '@/components/template/template-page-1.vue'
+import import_mixin from '@/components/template/import_mixin.js'
+import add_callback_mixin from '@/components/template/add_callback_mixin.js'
+import Popu from '@/components/template/popu.vue'
+import { getLoginList, exportLogin } from '@/api/summaryTable'
+export default {
+  components: { TemplatePage, Popu },
+  mixins: [import_mixin, add_callback_mixin],
+  data() {
+    return {
+      visible: false,
+      // 事件组合
+      optionsEvensGroup: [
+      ],
+      // 表格属性
+      tableAttributes: {
+        // 启用勾选列
+        selectColumn: true
+      }, // 关闭新增弹窗
+
+      // 表格事件
+      tableEvents: {
+        'selection-change': this.selectionChange
+      },
+      recordSelected: []
+    }
+  },
+  methods: {
+    // 列表请求函数
+    getList(...p) {
+      this.recordSelected = []
+      return getLoginList(...p)
+    },
+    // 列表导出函数
+    exportList: exportLogin,
+    // 表格列解析渲染数据更改
+    columnParsing(item, defaultData) {
+      return defaultData
+    },
+    // 监听勾选变化
+    selectionChange(data) {
+      this.recordSelected = data
+    },
+    operation() {
+      return (h, { row, index, column }) => {
+        return <div class='operation-btns'></div>
+      }
+    },
+    handleClose() {
+      this.addOff(() => {
+        this.visible = false
+      })()
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped></style>

+ 79 - 0
src/views/commercialEngineering/summaryTable/index_2.vue

@@ -0,0 +1,79 @@
+<template>
+  <template-page ref="pageRef" :get-list="getList" :column-parsing="columnParsing" :operation="operation">
+  </template-page>
+</template>
+
+<script>
+import TemplatePage from '@/components/template/template-page-1.vue'
+import import_mixin from '@/components/template/import_mixin.js'
+import { loginOrderRecycleList, loginOrderRecycleDel, loginOrderRecycleRestore } from "@/api/lajizhan"
+export default {
+  components: { TemplatePage },
+  mixins: [import_mixin],
+  data() {
+    return {
+      visible: false,
+      // 事件组合
+      optionsEvensGroup: [
+      ],
+      // 表格属性
+      tableAttributes: {
+        // 启用勾选列
+        selectColumn: true
+      }, // 关闭新增弹窗
+      // 表格事件
+      tableEvents: {
+        'selection-change': this.selectionChange
+      },
+      recordSelected: []
+    }
+  },
+  methods: {
+    // 列表请求函数
+    getList: loginOrderRecycleList,
+    // 表格列解析渲染数据更改
+    columnParsing(item, defaultData) {
+      return defaultData
+    },
+    // 监听勾选变化
+    selectionChange(data) {
+      this.recordSelected = data
+    },
+    operation(h, { row, index, column }) {
+      return <div class='operation-btns'>
+        <el-popconfirm
+          onConfirm={() => {
+            loginOrderRecycleRestore([row.id]).then(res => {
+              this.$refs.pageRef.refreshList()
+            })
+          }}
+          title="是否恢复?"
+        >
+          <el-button type="text" size="mini" slot="reference">恢复</el-button>
+        </el-popconfirm>
+        <el-popconfirm
+          onConfirm={() => {
+            loginOrderRecycleDel([row.id]).then(res => {
+              this.$refs.pageRef.refreshList()
+            })
+          }}
+          title="是否确定删除?"
+        >
+          <el-button type="text" size="mini" slot="reference">删除</el-button>
+        </el-popconfirm>
+      </div>
+    },
+    handleClose() {
+      this.addOff(() => {
+        this.visible = false
+      })()
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+  ::v-deep .zj-button-collection{
+    min-height: 54px !important;
+  }
+</style>

+ 16 - 59
src/views/commercialEngineering/summaryTable/summaryTableList.vue

@@ -1,70 +1,27 @@
 <template>
-  <template-page
-    ref="pageRef"
-    :get-list="getList"
-    :export-list="exportList"
-    :column-parsing="columnParsing"
-  >
-    <Popu v-if="visible" />
-  </template-page>
+  <zj-page-container>
+    <div style="box-sizing: border-box;padding: 5px 20px 0;height: 45px;overflow: hidden;">
+      <el-tabs v-model="type">
+        <el-tab-pane label="项目数据" name="hdgl"></el-tab-pane>
+        <el-tab-pane label="回收站" name="spgl"></el-tab-pane>
+      </el-tabs>
+    </div>
+    <zj-page-fill>
+      <index1 v-if="type == 'hdgl'" key="hdgl" />
+      <index2 v-if="type == 'spgl'" key="spgl" />
+    </zj-page-fill>
+  </zj-page-container>
 </template>
 
 <script>
-import TemplatePage from '@/components/template/template-page-1.vue'
-import import_mixin from '@/components/template/import_mixin.js'
-import add_callback_mixin from '@/components/template/add_callback_mixin.js'
-import Popu from '@/components/template/popu.vue'
-import { getLoginList, exportLogin } from '@/api/summaryTable'
+import index1 from "./index_1.vue"
+import index2 from "./index_2.vue"
 export default {
-  components: { TemplatePage, Popu },
-  mixins: [import_mixin, add_callback_mixin],
+  components: { index1, index2 },
   data() {
     return {
-      visible: false,
-      // 事件组合
-      optionsEvensGroup: [
-      ],
-      // 表格属性
-      tableAttributes: {
-        // 启用勾选列
-        selectColumn: true
-      }, // 关闭新增弹窗
-
-      // 表格事件
-      tableEvents: {
-        'selection-change': this.selectionChange
-      },
-      recordSelected: []
+      type: "hdgl",
     }
   },
-  methods: {
-    // 列表请求函数
-    getList(...p) {
-      this.recordSelected = []
-      return getLoginList(...p)
-    },
-    // 列表导出函数
-    exportList: exportLogin,
-    // 表格列解析渲染数据更改
-    columnParsing(item, defaultData) {
-      return defaultData
-    },
-    // 监听勾选变化
-    selectionChange(data) {
-      this.recordSelected = data
-    },
-    operation() {
-      return (h, { row, index, column }) => {
-        return <div class='operation-btns'></div>
-      }
-    },
-    handleClose() {
-      this.addOff(() => {
-        this.visible = false
-      })()
-    }
-  }
 }
 </script>
-
-<style lang="scss" scoped></style>

+ 1 - 1
src/views/deposit_commerce/components/deposit-apply-surrender.vue

@@ -268,7 +268,7 @@
                       <el-popconfirm
                         style="margin-left: 10px"
                         title="这是一段内容确定删除吗?"
-                        @onConfirm="delFile(scope.$index)"
+                        @confirm="delFile(scope.$index)"
                       >
                         <el-button type="text" slot="reference">删除</el-button>
                       </el-popconfirm>

+ 2 - 2
src/views/deposit_home/components/deposit-apply-surrender.vue

@@ -333,7 +333,7 @@
               {{ scope.row.depositAmount | numToFixed }}
             </template>
           </el-table-column>
-          <el-table-column align="center" label="上交资料" prop="dataQty" min-width="160" show-overflow-tooltip>
+          <el-table-column align="center" label="上交资料数量" prop="dataQty" min-width="160" show-overflow-tooltip>
             <template slot-scope="scope">
               <el-input
                 v-model.number="scope.row.dataQty"
@@ -564,7 +564,7 @@
                       <el-popconfirm
                         style="margin-left: 10px"
                         title="这是一段内容确定删除吗?"
-                        @onConfirm="delFile(scope.$index)"
+                        @confirm="delFile(scope.$index)"
                       >
                         <el-button slot="reference" type="text">删除</el-button>
                       </el-popconfirm>

+ 90 - 307
src/views/deposit_home/components/deposit_list-detail.vue

@@ -104,14 +104,8 @@
               <div class="label">安装时间</div>
               <div class="value" style="padding: 0">
                 <el-form-item prop="installDate">
-                  <el-date-picker
-                    v-model="details.installDate"
-                    :disabled="details.examineStatus == 'OK'"
-                    type="datetime"
-                    placeholder="安装时间"
-                    default-time="00:00:00"
-                    value-format="yyyy-MM-dd HH:mm:ss"
-                  />
+                  <el-date-picker v-model="details.installDate" :disabled="details.examineStatus == 'OK'" type="datetime"
+                    placeholder="安装时间" default-time="00:00:00" value-format="yyyy-MM-dd HH:mm:ss" />
                 </el-form-item>
               </div>
             </el-col>
@@ -223,38 +217,17 @@
       <!-- 列表 -->
       <div class="mymain-container">
         <div class="table">
-          <el-table
-            v-loading="listLoading"
-            :data="details.items"
-            element-loading-text="Loading"
-            border
-            fit
-            highlight-current-row
-            stripe
-            show-summary
-            :summary-method="$getSummaries"
-          >
-            <el-table-column
-              v-if="!isCustomer"
-              align="left"
-              label="厂编号"
-              prop="factoryNo"
-              min-width="160"
-              show-overflow-tooltip
-            >
+          <el-table v-loading="listLoading" :data="details.items" element-loading-text="Loading" border fit
+            highlight-current-row stripe show-summary :summary-method="$getSummaries">
+            <el-table-column v-if="!isCustomer" align="left" label="厂编号" prop="factoryNo" min-width="160"
+              show-overflow-tooltip>
               <template slot-scope="scope">
                 <CopyButton :copy-text="scope.row.factoryNo" />
                 <span>{{ scope.row.factoryNo }}</span>
               </template>
             </el-table-column>
-            <el-table-column
-              v-if="!isCustomer"
-              align="left"
-              label="特价编号"
-              prop="specialNo"
-              min-width="160"
-              show-overflow-tooltip
-            >
+            <el-table-column v-if="!isCustomer" align="left" label="特价编号" prop="specialNo" min-width="160"
+              show-overflow-tooltip>
               <template slot-scope="scope">
                 <CopyButton :copy-text="scope.row.specialNo" />
                 <span>{{ scope.row.specialNo }}</span>
@@ -266,13 +239,7 @@
                 <span>{{ scope.row.materialNumber }}</span>
               </template>
             </el-table-column>
-            <el-table-column
-              align="left"
-              label="产品编码"
-              prop="materialOldNumber"
-              min-width="130"
-              show-overflow-tooltip
-            >
+            <el-table-column align="left" label="产品编码" prop="materialOldNumber" min-width="130" show-overflow-tooltip>
               <template slot-scope="scope">
                 <CopyButton :copy-text="scope.row.materialOldNumber" />
                 <span>{{ scope.row.materialOldNumber }}</span>
@@ -329,41 +296,27 @@
                 </div>
               </template>
             </el-table-column> -->
-            <el-table-column
-              align="left"
-              label="实装规格型号"
-              prop="depositSpecification"
-              min-width="300"
-              show-overflow-tooltip
-            >
+            <el-table-column align="left" label="实装规格型号" prop="depositSpecification" min-width="300"
+              show-overflow-tooltip>
               <template slot-scope="scope">
-                <div :class="setColour(scope.row,'specification', 'realSpecification', 'depositSpecification')">
+                <div :class="setColour(scope.row, 'specification', 'realSpecification', 'depositSpecification')">
                   {{ scope.row.depositSpecification }}
                 </div>
               </template>
             </el-table-column>
-            <el-table-column
-              align="left"
-              label="实装物料编号"
-              prop="depositMaterialNumber"
-              min-width="150"
-              show-overflow-tooltip
-            >
+            <el-table-column align="left" label="实装物料编号" prop="depositMaterialNumber" min-width="150"
+              show-overflow-tooltip>
               <template slot-scope="scope">
-                <div :class="setColour(scope.row,'materialNumber', 'realMaterialNumber', 'depositMaterialNumber')">
+                <div :class="setColour(scope.row, 'materialNumber', 'realMaterialNumber', 'depositMaterialNumber')">
                   {{ scope.row.depositMaterialNumber }}
                 </div>
               </template>
             </el-table-column>
-            <el-table-column
-              align="left"
-              label="实装厂产品编码"
-              prop="depositMaterialOldNumber"
-              min-width="200"
-              show-overflow-tooltip
-            >
+            <el-table-column align="left" label="实装厂产品编码" prop="depositMaterialOldNumber" min-width="200"
+              show-overflow-tooltip>
               <template slot-scope="scope">
-                <div :class="setColour(scope.row,'materialOldNumber', 'realMaterialOldNumber', 'depositMaterialOldNumber')">
+                <div
+                  :class="setColour(scope.row, 'materialOldNumber', 'realMaterialOldNumber', 'depositMaterialOldNumber')">
                   {{ scope.row.depositMaterialOldNumber }}
                 </div>
               </template>
@@ -386,13 +339,7 @@
               </template>
             </el-table-column>
             <el-table-column align="right" label="押金数量" prop="hasSendQty" min-width="160" show-overflow-tooltip />
-            <el-table-column
-              align="right"
-              label="发货数量"
-              prop="orderHasSendQty"
-              min-width="160"
-              show-overflow-tooltip
-            />
+            <el-table-column align="right" label="发货数量" prop="orderHasSendQty" min-width="160" show-overflow-tooltip />
             <!-- <el-table-column
               align="right"
               label="押金金额"
@@ -430,13 +377,7 @@
                 {{ scope.row.diffAmount | numToFixed }}
               </template>
             </el-table-column>
-            <el-table-column
-              align="right"
-              label="收差政策价格"
-              prop="diffPolicyPrice"
-              min-width="200"
-              show-overflow-tooltip
-            >
+            <el-table-column align="right" label="收差政策价格" prop="diffPolicyPrice" min-width="200" show-overflow-tooltip>
               <template slot-scope="scope">
                 {{ scope.row.diffPolicyPrice | numToFixed }}
               </template>
@@ -449,17 +390,8 @@
       <!-- 列表 -->
       <div class="mymain-container">
         <div class="table">
-          <el-table
-            v-loading="listLoading"
-            :data="details.collectList"
-            element-loading-text="Loading"
-            border
-            fit
-            highlight-current-row
-            stripe
-            show-summary
-            :summary-method="$getSummaries"
-          >
+          <el-table v-loading="listLoading" :data="details.collectList" element-loading-text="Loading" border fit
+            highlight-current-row stripe show-summary :summary-method="$getSummaries">
             <el-table-column align="left" label="工程登录单号" prop="refEnginRecordNo" min-width="130" show-overflow-tooltip>
               <template slot-scope="scope">
                 <CopyButton :copy-text="scope.row.refEnginRecordNo" />
@@ -484,7 +416,8 @@
                 <span>{{ scope.row.customerWalletName }}</span>
               </template>
             </el-table-column>
-            <el-table-column align="left" label="现金钱包编码" prop="customerWalletNumber" min-width="130" show-overflow-tooltip>
+            <el-table-column align="left" label="现金钱包编码" prop="customerWalletNumber" min-width="130"
+              show-overflow-tooltip>
               <template slot-scope="scope">
                 <CopyButton :copy-text="scope.row.customerWalletNumber" />
                 <span>{{ scope.row.customerWalletNumber }}</span>
@@ -540,13 +473,7 @@
         </div>
       </div>
       <h3 class="gdzl">工程资料</h3>
-      <el-button
-        :disabled="isDis"
-        class="batchDownload"
-        type="primary"
-        size="small"
-        @click="batchDownloadFn"
-      >批量下载
+      <el-button :disabled="isDis" class="batchDownload" type="primary" size="small" @click="batchDownloadFn">批量下载
       </el-button>
 
       <el-divider />
@@ -554,44 +481,22 @@
       <!-- 列表 -->
       <div class="mymain-container">
         <div class="table">
-          <el-table
-            v-loading="listLoading"
-            :data="original"
-            element-loading-text="Loading"
-            border
-            fit
-            highlight-current-row
-            stripe
-          >
+          <el-table v-loading="listLoading" :data="original" element-loading-text="Loading" border fit
+            highlight-current-row stripe>
             <el-table-column align="left" label="资料描述" prop="dataDescribe" min-width="160" show-overflow-tooltip />
             <el-table-column align="left" label="原文件名" prop="fileName" min-width="160" show-overflow-tooltip />
             <el-table-column align="left" label="缩略图" prop="fileUrl" min-width="160" show-overflow-tooltip>
               <template slot-scope="scope">
-                <el-image
-                  v-if="checkFileType(scope.row.fileUrl) == 'image'"
-                  ref="img"
-                  :src="imageURL + scope.row.fileUrl"
-                  style="width: 120px; height: 120px"
-                  fit="cover"
-                  :preview-src-list="[imageURL + scope.row.fileUrl]"
-                />
+                <el-image v-if="checkFileType(scope.row.fileUrl) == 'image'" ref="img" :src="imageURL + scope.row.fileUrl"
+                  style="width: 120px; height: 120px" fit="cover" :preview-src-list="[imageURL + scope.row.fileUrl]" />
                 <img v-if="checkFileType(scope.row.fileUrl) == 'word'" class="file" src="@/assets/common/word.png">
                 <img v-if="checkFileType(scope.row.fileUrl) == 'excel'" class="file" src="@/assets/common/excel.png">
                 <img v-if="checkFileType(scope.row.fileUrl) == 'ppt'" class="file" src="@/assets/common/ppt.png">
 
-                <img
-                  v-if="checkFileType(scope.row.fileUrl) == 'pdf'"
-                  class="file"
-                  style="cursor: pointer"
-                  src="@/assets/common/pdf.png"
-                  @click="openPdf(scope.row.fileUrl)"
-                >
+                <img v-if="checkFileType(scope.row.fileUrl) == 'pdf'" class="file" style="cursor: pointer"
+                  src="@/assets/common/pdf.png" @click="openPdf(scope.row.fileUrl)">
 
-                <img
-                  v-if="checkFileType(scope.row.fileUrl) == 'file'"
-                  class="file aaa"
-                  src="@/assets/common/zip.jpeg"
-                >
+                <img v-if="checkFileType(scope.row.fileUrl) == 'file'" class="file aaa" src="@/assets/common/zip.jpeg">
               </template>
             </el-table-column>
             <el-table-column align="left" label="下载文件名称" prop="fileName" min-width="160" show-overflow-tooltip>
@@ -601,11 +506,7 @@
             </el-table-column>
             <el-table-column align="center" label="操作" min-width="160" show-overflow-tooltip>
               <template slot-scope="scope">
-                <el-button
-                  type="text"
-                  class="textColor"
-                  @click="downLoadFn(scope.row.fileUrl, scope.row.fileName)"
-                >下载
+                <el-button type="text" class="textColor" @click="downLoadFn(scope.row.fileUrl, scope.row.fileName)">下载
                 </el-button>
                 <!--                <el-button-->
                 <!--                  v-if="checkFileType(scope.row.fileUrl) == 'pdf'"-->
@@ -651,15 +552,12 @@
           <el-col :xs="12" :sm="12" :lg="12" class="item">
             <div class="label">是否退押</div>
             <div class="value">
-              <template
-                v-if="
-                  !(
-                    details.examineStatus == 'WAIT' ||
-                    details.examineStatus == 'SAVE' ||
-                    details.examineStatus == 'CLOSE'
-                  )
-                "
-              >
+              <template v-if="!(
+                  details.examineStatus == 'WAIT' ||
+                  details.examineStatus == 'SAVE' ||
+                  details.examineStatus == 'CLOSE'
+                )
+                ">
                 {{ details.isRefundDeposit == true ? '是' : '否' }}
               </template>
             </div>
@@ -685,70 +583,32 @@
           <el-divider />
           <div class="mymain-container">
             <div class="table">
-              <el-table
-                v-loading="listLoading"
-                :data="amendData"
-                element-loading-text="Loading"
-                border
-                fit
-                highlight-current-row
-                stripe
-              >
-                <el-table-column
-                  align="left"
-                  label="资料描述"
-                  prop="dataDescribe"
-                  min-width="160"
-                  show-overflow-tooltip
-                />
+              <el-table v-loading="listLoading" :data="amendData" element-loading-text="Loading" border fit
+                highlight-current-row stripe>
+                <el-table-column align="left" label="资料描述" prop="dataDescribe" min-width="160" show-overflow-tooltip />
                 <el-table-column align="left" label="原文件名" prop="fileName" min-width="160" show-overflow-tooltip />
                 <el-table-column align="left" label="缩略图" prop="fileUrl" min-width="160" show-overflow-tooltip>
                   <template slot-scope="scope">
-                    <el-image
-                      v-if="checkFileType(scope.row.fileUrl) == 'image'"
-                      ref="img"
-                      :src="imageURL + scope.row.fileUrl"
-                      style="width: 120px; height: 120px"
-                      fit="cover"
-                      :preview-src-list="[imageURL + scope.row.fileUrl]"
-                    />
-                    <img
-                      v-if="checkFileType(scope.row.fileUrl) == 'word'"
-                      class="file"
-                      src="@/assets/common/word.png"
-                    >
-                    <img
-                      v-if="checkFileType(scope.row.fileUrl) == 'excel'"
-                      class="file"
-                      src="@/assets/common/excel.png"
-                    >
+                    <el-image v-if="checkFileType(scope.row.fileUrl) == 'image'" ref="img"
+                      :src="imageURL + scope.row.fileUrl" style="width: 120px; height: 120px" fit="cover"
+                      :preview-src-list="[imageURL + scope.row.fileUrl]" />
+                    <img v-if="checkFileType(scope.row.fileUrl) == 'word'" class="file" src="@/assets/common/word.png">
+                    <img v-if="checkFileType(scope.row.fileUrl) == 'excel'" class="file" src="@/assets/common/excel.png">
                     <img v-if="checkFileType(scope.row.fileUrl) == 'ppt'" class="file" src="@/assets/common/ppt.png">
                     <img v-if="checkFileType(scope.row.fileUrl) == 'pdf'" class="file" src="@/assets/common/pdf.png">
-                    <img
-                      v-if="checkFileType(scope.row.fileUrl) == 'file'"
-                      class="file aaa"
-                      src="@/assets/common/zip.jpeg"
-                    >
+                    <img v-if="checkFileType(scope.row.fileUrl) == 'file'" class="file aaa"
+                      src="@/assets/common/zip.jpeg">
                   </template>
                 </el-table-column>
-                <el-table-column
-                  align="left"
-                  label="下载文件名称"
-                  prop="fileName"
-                  min-width="160"
-                  show-overflow-tooltip
-                >
+                <el-table-column align="left" label="下载文件名称" prop="fileName" min-width="160" show-overflow-tooltip>
                   <template slot-scope="scope">
                     {{ '资料_' + scope.row.fileName }}
                   </template>
                 </el-table-column>
                 <el-table-column align="center" label="操作" min-width="160" show-overflow-tooltip>
                   <template slot-scope="scope">
-                    <el-button
-                      type="text"
-                      class="textColor"
-                      @click="downLoadFn(scope.row.fileUrl, scope.row.fileName)"
-                    >下载</el-button>
+                    <el-button type="text" class="textColor"
+                      @click="downLoadFn(scope.row.fileUrl, scope.row.fileName)">下载</el-button>
                   </template>
                 </el-table-column>
               </el-table>
@@ -789,14 +649,8 @@
                   <el-col :xs="12" :sm="12" :lg="12" class="item">
                     <div class="label">复核时间</div>
                     <div class="value">
-                      <el-date-picker
-                        v-model="details.reviewTime"
-                        class="dateStyle"
-                        type="datetime"
-                        placeholder="选择日期"
-                        default-time="00:00:00"
-                        value-format="yyyy-MM-dd HH:mm:ss"
-                      />
+                      <el-date-picker v-model="details.reviewTime" class="dateStyle" type="datetime" placeholder="选择日期"
+                        default-time="00:00:00" value-format="yyyy-MM-dd HH:mm:ss" />
                     </div>
                   </el-col>
                   <el-col :xs="12" :sm="24" :lg="24" class="item">
@@ -813,29 +667,17 @@
       </div>
 
       <div style="margin: 20px 0">
-        <el-button
-          v-if="
-            (details.examineStatus != 'OK' || (!isCustomer && details.examineStatus == 'OK')) &&
-              details.dataState != 'WAIT_REVIEW' &&
-              details.dataState != 'AMEND' &&
-              details.dataState != 'REVIEW'
-          "
-          type="primary"
-          size="small"
-          @click="handleSvse"
-        >保存
+        <el-button v-if="(details.examineStatus != 'OK' || (!isCustomer && details.examineStatus == 'OK')) &&
+          details.dataState != 'WAIT_REVIEW' &&
+          details.dataState != 'AMEND' &&
+          details.dataState != 'REVIEW'
+          " type="primary" size="small" @click="handleSvse">保存
         </el-button>
-        <el-button
-          v-if="
-            (details.examineStatus != 'OK' || (!isCustomer && details.examineStatus == 'OK')) &&
-              details.dataState != 'WAIT_REVIEW' &&
-              details.dataState != 'AMEND' &&
-              details.dataState != 'REVIEW'
-          "
-          type="primary"
-          size="small"
-          @click="handleReset"
-        >重置
+        <el-button v-if="(details.examineStatus != 'OK' || (!isCustomer && details.examineStatus == 'OK')) &&
+          details.dataState != 'WAIT_REVIEW' &&
+          details.dataState != 'AMEND' &&
+          details.dataState != 'REVIEW'
+          " type="primary" size="small" @click="handleReset">重置
         </el-button>
       </div>
     </div>
@@ -845,15 +687,8 @@
       <!-- 列表 -->
       <div class="mymain-container">
         <div class="table">
-          <el-table
-            v-loading="listLoading"
-            :data="dataList"
-            element-loading-text="Loading"
-            border
-            fit
-            highlight-current-row
-            stripe
-          >
+          <el-table v-loading="listLoading" :data="dataList" element-loading-text="Loading" border fit
+            highlight-current-row stripe>
             <el-table-column align="left" label="工程订单号" prop="enginOrderNo" min-width="160" show-overflow-tooltip>
               <template slot-scope="scope">
                 <CopyButton :copy-text="scope.row.enginOrderNo" />
@@ -879,13 +714,7 @@
               </template>
             </el-table-column>
             <el-table-column align="right" label="数量" prop="qty" min-width="160" show-overflow-tooltip />
-            <el-table-column
-              align="right"
-              label="押金金额"
-              prop="totalDepositAmount"
-              min-width="160"
-              show-overflow-tooltip
-            >
+            <el-table-column align="right" label="押金金额" prop="totalDepositAmount" min-width="160" show-overflow-tooltip>
               <template slot-scope="scope">
                 {{ scope.row.totalDepositAmount | numToFixed }}
               </template>
@@ -900,15 +729,8 @@
       <!-- 列表 -->
       <div class="mymain-container">
         <div class="table">
-          <el-table
-            v-loading="listLoading"
-            :data="projectList"
-            element-loading-text="Loading"
-            border
-            fit
-            highlight-current-row
-            stripe
-          >
+          <el-table v-loading="listLoading" :data="projectList" element-loading-text="Loading" border fit
+            highlight-current-row stripe>
             <el-table-column align="left" label="发货单" prop="id" min-width="160" show-overflow-tooltip>
               <template slot-scope="scope">
                 <CopyButton :copy-text="scope.row.id" />
@@ -934,13 +756,7 @@
               </template>
             </el-table-column>
             <el-table-column align="right" label="数量" prop="refundableQty" min-width="160" show-overflow-tooltip />
-            <el-table-column
-              align="right"
-              label="押金金额"
-              prop="totalDepositAmount"
-              min-width="160"
-              show-overflow-tooltip
-            >
+            <el-table-column align="right" label="押金金额" prop="totalDepositAmount" min-width="160" show-overflow-tooltip>
               <template slot-scope="scope">
                 {{ ((scope.row.refundableQty || 0) * (scope.row.singleDepositAmount || 0)) | numToFixed }}
               </template>
@@ -978,13 +794,7 @@
             </template>
           </el-table-column>
           <el-table-column align="right" label="数量" prop="refundableQty" min-width="160" show-overflow-tooltip />
-          <el-table-column
-            align="right"
-            label="押金金额"
-            prop="totalDepositAmount"
-            min-width="160"
-            show-overflow-tooltip
-          >
+          <el-table-column align="right" label="押金金额" prop="totalDepositAmount" min-width="160" show-overflow-tooltip>
             <template slot-scope="scope">
               {{ ((scope.row.qty || 0) * (scope.row.singleDepositAmount || 0)) | numToFixed }}
             </template>
@@ -998,53 +808,22 @@
       <!-- 列表 -->
       <div class="mymain-container">
         <div class="table">
-          <el-table
-            v-loading="listLoading"
-            :data="details.checkRecordItems"
-            element-loading-text="Loading"
-            border
-            fit
-            highlight-current-row
-            stripe
-          >
+          <el-table v-loading="listLoading" :data="details.checkRecordItems" element-loading-text="Loading" border fit
+            highlight-current-row stripe>
             <el-table-column align="left" label="受理日期" prop="checkDate" min-width="160" show-overflow-tooltip />
             <el-table-column align="left" label="验收人" prop="checkName" min-width="160" show-overflow-tooltip />
-            <el-table-column
-              align="left"
-              label="申请退押金备注
-"
-              prop="applyNote"
-              min-width="160"
-              show-overflow-tooltip
-            />
-            <el-table-column
-              align="left"
-              label="验收说明
-"
-              prop="checkNote"
-              min-width="160"
-              show-overflow-tooltip
-            />
-            <el-table-column
-              align="left"
-              label="是否退押
-"
-              prop="checkNote"
-              min-width="160"
-              show-overflow-tooltip
-            >
+            <el-table-column align="left" label="申请退押金备注
+" prop="applyNote" min-width="160" show-overflow-tooltip />
+            <el-table-column align="left" label="验收说明
+" prop="checkNote" min-width="160" show-overflow-tooltip />
+            <el-table-column align="left" label="是否退押
+" prop="checkNote" min-width="160" show-overflow-tooltip>
               <template slot-scope="scope">
                 {{ scope.row.isRefundDeposit ? '是' : '否' }}
               </template>
             </el-table-column>
-            <el-table-column
-              align="left"
-              label="提交人
-"
-              prop="submitName"
-              min-width="160"
-              show-overflow-tooltip
-            />
+            <el-table-column align="left" label="提交人
+" prop="submitName" min-width="160" show-overflow-tooltip />
             <el-table-column align="left" label="提交时间" prop="submitTime" min-width="160" show-overflow-tooltip />
           </el-table>
         </div>
@@ -1139,8 +918,8 @@ export default {
               arr.push(item)
             }
             // item.number = (item.qty*100 - item.directTransferQty*100 - item.retiredQty*100) / 100;
-            item.sums1 = ['orderHasSendQty', 'dataQty', 'qty', 'hasSendQty', 'contractQty']
-            item.sums2 = ['totalAmount', 'diffAmount', 'price', 'depositAmount', 'contractPrice', 'contractAmount']
+            item.sums1 = ['orderHasSendQty', 'dataQty', 'qty', 'hasSendQty', 'contractQty', 'salesQty',]
+            item.sums2 = ['totalAmount', 'salesAmount', 'diffAmount', 'price', 'depositAmount', 'contractPrice', 'contractAmount']
           })
           res.data.collectList.forEach(item => {
             // item.number = (item.qty*100 - item.directTransferQty*100 - item.retiredQty*100) / 100;
@@ -1240,12 +1019,16 @@ export default {
 </script>
 
 <style scoped lang="scss">
-::v-deep .input .el-input__inner, .input {
+::v-deep .input .el-input__inner,
+.input {
   color: blue !important;
 }
-::v-deep .input2  .el-input__inner, .input2 {
+
+::v-deep .input2 .el-input__inner,
+.input2 {
   color: #f00 !important;
 }
+
 .aaa {
   height: 64px;
   width: 64px;

+ 1 - 1
src/views/deposit_home/components/deposit_replenish.vue

@@ -740,7 +740,7 @@
                   <el-popconfirm
                     style="margin-left: 10px"
                     title="这是一段内容确定删除吗?"
-                    @onConfirm="delFile(scope.$index, scope.row.id)"
+                    @confirm="delFile(scope.$index, scope.row.id)"
                   >
                     <el-button slot="reference" type="text">删除</el-button>
                   </el-popconfirm>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 296 - 385
src/views/deposit_home/components/refund_list-detail.vue


+ 1 - 1
src/views/deposit_home/components/refund_reexamine.vue

@@ -562,7 +562,7 @@
                 </div>
               </template>
             </el-table-column>
-            <el-table-column align="right" label="上交资料" prop="dataQty" min-width="160" show-overflow-tooltip>
+            <el-table-column align="right" label="上交资料数量" prop="dataQty" min-width="160" show-overflow-tooltip>
               <template slot-scope="scope">
                 <el-input
                   v-if="title !== '详情'"

+ 3 - 3
src/views/deposit_home/components/refund_replenish.vue

@@ -562,7 +562,7 @@
                 </div>
               </template>
             </el-table-column>
-            <el-table-column align="right" label="上交资料" prop="dataQty" min-width="160" show-overflow-tooltip>
+            <el-table-column align="right" label="上交资料数量" prop="dataQty" min-width="160" show-overflow-tooltip>
               <template slot-scope="scope">
                 <el-input
                   v-if="title !== '详情'"
@@ -1255,7 +1255,7 @@ export default {
           }
 
           if (!this.detailList.items.every(e => e.dataQty)) {
-            this.$confirm(`上交资料为0,是否继续提交`, '提示', {
+            this.$confirm(`上交资料数量为0,是否继续提交`, '提示', {
               confirmButtonText: '确定',
               cancelButtonText: '取消',
               type: 'warning'
@@ -1361,7 +1361,7 @@ export default {
           }
 
           if (!this.detailList.items.every(e => e.dataQty)) {
-            this.$confirm(`上交资料为0,是否继续提交`, '提示', {
+            this.$confirm(`上交资料数量为0,是否继续提交`, '提示', {
               confirmButtonText: '确定',
               cancelButtonText: '取消',
               type: 'warning'

+ 1 - 1
src/views/deposit_home/deposit_list.vue

@@ -227,7 +227,7 @@ export default {
                 return (
                   <el-popconfirm
                     title='更新工程信息吗?'
-                    onOnConfirm={() => {
+                    onConfirm={() => {
                       updateDepositManageenginInfo().then(res => {
                         this.$message.success('更新工程信息成功')
                         this.$refs.pageRef.refreshList()

+ 2 - 2
src/views/deposit_home/refund_list.vue

@@ -227,7 +227,7 @@ export default {
                 return (
                   <el-popconfirm
                     title='批量审核吗?'
-                    onOnConfirm={() => {
+                    onConfirm={() => {
                       if (!this.selectData.length) {
                         this.$errorMsg('请选择')
                         return
@@ -336,7 +336,7 @@ export default {
               <el-popconfirm
                 style='margin-left: 10px'
                 title='二次退押吗?'
-                onOnConfirm={() => {
+                onConfirm={() => {
                   this.secondRefund(row)
                 }}
               >

+ 1 - 1
src/views/engin_deposit/components/deposit-apply-surrender.vue

@@ -249,7 +249,7 @@
                       <el-popconfirm
                         style="margin-left: 10px"
                         title="这是一段内容确定删除吗?"
-                        @onConfirm="delFile(scope.$index)"
+                        @confirm="delFile(scope.$index)"
                       >
                         <el-button type="text" slot="reference">删除</el-button>
                       </el-popconfirm>

+ 3 - 2
src/views/finance/account_list.vue

@@ -23,7 +23,8 @@ import {
   getFinanceStandingBookListV2,
   getFinanceStandingBookCheck,
   getCustomerList,
-  getWalletCustomerList
+  getWalletCustomerList,
+  financeStandingBookV2Export
 } from '@/api/finance/account_list'
 import AccountListDetail from './components/account_list-detail'
 export default {
@@ -71,7 +72,7 @@ export default {
       return getFinanceStandingBookListV2(...p)
     },
     // 列表导出函数
-    exportList: ()=>{},
+    exportList: financeStandingBookV2Export,
     // 表格列解析渲染数据更改
     columnParsing(item, defaultData) {
       return defaultData

+ 1 - 1
src/views/finance/change_apply.vue

@@ -400,7 +400,7 @@ export default {
 
       await getTransferAdd(params)
       this.resetFn()
-      this.$router.push('/finance/change_list')
+      this.$router.push({ name: 'change_list' })
       // this.$router.push('/rebate/change_list')
 
       this.$message.success('申请成功')

+ 27 - 30
src/views/finance/components/credit_list-detail.vue

@@ -1,9 +1,9 @@
 <template>
   <div>
     <div class="sty">
-      <el-page-header @back="goBack" content="信用额度变更记录"> </el-page-header>
+      <el-page-header content="信用额度变更记录" @back="goBack" />
     </div>
-    <el-divider></el-divider>
+    <el-divider />
     <!-- 表头 -->
     <div>
       <el-form ref="searchForm" :model="searchForm" label-width="100px" size="small" label-position="left">
@@ -11,27 +11,25 @@
           <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="开始时间" prop="startTime">
               <el-date-picker
-                class="selectStyle"
                 v-model="searchForm.startTime"
+                class="selectStyle"
                 type="datetime"
                 placeholder="选择日期时间"
                 default-time="00:00:00"
                 value-format="yyyy-MM-dd HH:mm:ss"
-              >
-              </el-date-picker>
+              />
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="结束时间" prop="endTime">
               <el-date-picker
-                class="selectStyle"
                 v-model="searchForm.endTime"
+                class="selectStyle"
                 type="datetime"
                 placeholder="选择日期时间"
                 default-time="00:00:00"
                 value-format="yyyy-MM-dd HH:mm:ss"
-              >
-              </el-date-picker>
+              />
             </el-form-item>
           </el-col>
 
@@ -62,16 +60,16 @@
           highlight-current-row
           stripe
         >
-          <el-table-column label="序号" align="left" width="100" type="index" show-overflow-tooltip></el-table-column>
+          <el-table-column label="序号" align="left" width="100" type="index" show-overflow-tooltip />
           <el-table-column align="left" label="经销商编码" prop="customerNumber" min-width="160" show-overflow-tooltip>
             <template slot-scope="scope">
-              <CopyButton :copyText="scope.row.customerNumber" />
+              <CopyButton :copy-text="scope.row.customerNumber" />
               <span>{{ scope.row.customerNumber }}</span>
             </template>
           </el-table-column>
           <el-table-column align="left" label="经销商名称" prop="customerName" min-width="260" show-overflow-tooltip>
             <template slot-scope="scope">
-              <CopyButton :copyText="scope.row.customerName" />
+              <CopyButton :copy-text="scope.row.customerName" />
               <span>{{ scope.row.customerName }}</span>
             </template>
           </el-table-column>
@@ -81,63 +79,62 @@
             prop="customerWalletName"
             min-width="160"
             show-overflow-tooltip
-          ></el-table-column>
+          />
           <el-table-column
             align="right"
             label="变更金额"
             prop="amount"
             min-width="160"
             show-overflow-tooltip
-          ></el-table-column>
+          />
           <el-table-column
             align="right"
             label="使用金额"
             prop="useAmount"
             min-width="160"
             show-overflow-tooltip
-          ></el-table-column>
+          />
           <el-table-column
             align="left"
             label="开始日期"
             prop="startTime"
             min-width="160"
             show-overflow-tooltip
-          ></el-table-column>
+          />
           <el-table-column
             align="left"
             label="结束日期"
             prop="endTime"
             min-width="160"
             show-overflow-tooltip
-          ></el-table-column>
+          />
           <el-table-column
             align="left"
             label="变更时间"
             prop="updateTime"
             min-width="160"
             show-overflow-tooltip
-          ></el-table-column>
+          />
           <el-table-column
             align="left"
             label="变更人"
             prop="updateBy"
             min-width="160"
             show-overflow-tooltip
-          ></el-table-column>
+          />
         </el-table>
       </div>
       <!-- 分页 -->
       <div class="fr">
         <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>
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+        />
       </div>
     </div>
   </div>
@@ -162,7 +159,7 @@ export default {
       searchForm: {
         startTime: '',
         endTime: ''
-      }, //搜索表单
+      }, // 搜索表单
       listLoading: false // 列表加载loading
     }
   },
@@ -178,27 +175,27 @@ export default {
     handleSizeChange(val) {
       this.pageSize = val
       this.currentPage = 1
-      this.getDataList({ pageNum: 1, pageSize: this.pageSize })
+      this.getDataList({ customerWalletId: this.recordsListId, pageNum: 1, pageSize: this.pageSize })
     },
     // 更改当前页
     handleCurrentChange(val) {
       this.currentPage = val
-      this.getDataList({ pageNum: val, pageSize: 10 })
+      this.getDataList({ customerWalletId: this.recordsListId, pageNum: val, pageSize: 10 })
     },
-    //导出
+    // 导出
     exportList() {
-      let screenData = {
+      const screenData = {
         customerWalletCreditId: this.recordsListId,
         startTime: this.searchForm.startTime,
         endTime: this.searchForm.endTime
       }
       downloadFiles('credit/record/export', screenData)
     },
-    //清除
+    // 清除
     clearFn() {
       this.$refs.searchForm.resetFields()
     },
-    //搜索
+    // 搜索
     searchFn() {
       console.log(this.searchForm)
       this.getDataList({
@@ -208,7 +205,7 @@ export default {
         ...this.searchForm
       })
     },
-    //获取信用额度变更记录数据
+    // 获取信用额度变更记录数据
     async getDataList(data) {
       const res = await getCreditRecordList(data)
       this.dataList = res.data.records

+ 13 - 2
src/views/finance/components/receivable_list-add.vue

@@ -30,6 +30,7 @@
                 <el-option value="保证金"> </el-option>
                 <el-option value="工程价差"> </el-option>
                 <el-option value="仓储费"> </el-option>
+                <el-option value="运输费"> </el-option>
               </el-select>
             </el-form-item>
           </el-col>
@@ -89,7 +90,7 @@
     <!-- 按钮 -->
     <div class="btn-group clearfix">
       <div class="fl">
-        <el-popconfirm @onConfirm="delSeletFn" title="这是一段内容确定删除吗?">
+        <el-popconfirm @confirm="delSeletFn" title="这是一段内容确定删除吗?">
           <el-button
             :disabled="selectList.length < 1"
             type="danger"
@@ -170,7 +171,15 @@
           </el-table-column>
           <el-table-column align="left" label="现金钱包" prop="walletId" min-width="160" show-overflow-tooltip>
             <template slot-scope="scope">
-              <el-select filterable v-model="scope.row.customerWalletId" placeholder="请选择">
+              <el-select filterable v-model="scope.row.customerWalletId" @change="(v)=>{
+                if(v && scope.row.walletList.find(d=>d.customerWalletId==v)){
+                  scope.row.customerWalletName = scope.row.walletList.find(d=>d.customerWalletId==v).customerWalletName
+                  scope.row.walletId = scope.row.walletList.find(d=>d.customerWalletId==v).walletRebateId
+                }else{
+                  scope.row.customerWalletName = ''
+                  scope.row.walletId = ''
+                }
+              }" placeholder="请选择">
                 <el-option
                   v-for="item in scope.row.walletList"
                   :key="item.customerWalletId"
@@ -365,6 +374,7 @@ export default {
             projectName: Arr[v].projectName,
             departmentId: Arr[v].departmentId,
             customerWalletId: Arr[v].customerWalletId,
+            customerWalletName: Arr[v]?.customerWalletName,
             // invoiceType: Arr[v].invoiceType,
             invoiceType: Arr[v].invoiceType ? Arr[v].invoiceType : '',
             incomeDept: Arr[v].incomeDept,
@@ -523,6 +533,7 @@ export default {
         projectName: '材料成本',
         departmentId: '',
         customerWalletId: '',
+        customerWalletName: '',
         invoiceType: '',
         incomeDept: '',
         // afterTaxAmount: "",

+ 11 - 1
src/views/finance/components/receivable_list-detail.vue

@@ -209,7 +209,15 @@
           </el-table-column>
           <el-table-column align="left" label="现金钱包" prop="walletId" min-width="160" show-overflow-tooltip>
             <template slot-scope="scope">
-              <el-select filterable v-model="scope.row.customerWalletId" placeholder="请选择">
+              <el-select filterable v-model="scope.row.customerWalletId" @change="(v)=>{
+                if(v && scope.row.walletList.find(d=>d.customerWalletId==v)){
+                  scope.row.customerWalletName = scope.row.walletList.find(d=>d.customerWalletId==v).customerWalletName
+                  scope.row.walletId = scope.row.walletList.find(d=>d.customerWalletId==v).walletRebateId
+                }else{
+                  scope.row.customerWalletName = ''
+                  scope.row.walletId = ''
+                }
+              }" placeholder="请选择">
                 <el-option
                   v-for="item in scope.row.walletList"
                   :key="item.customerWalletId"
@@ -394,6 +402,7 @@ export default {
     async changeCustomerFn(v, index) {
       // console.log(v, 322311);
       this.dataList[index].customerWalletId = ''
+      this.dataList[index].customerWalletName = ''
       const res = await getFinanceCustomerList({
         customerId: v,
         type: 'COMMONLY'
@@ -426,6 +435,7 @@ export default {
         projectName: '材料成本',
         departmentId: '',
         customerWalletId: '',
+        customerWalletName: '',
         invoiceType: '',
         incomeDept: '',
         // afterTaxAmount: "",

+ 66 - 0
src/views/finance/dealerHistoryWalletBalance2.vue

@@ -0,0 +1,66 @@
+<template>
+  <template-page
+    v-if="isShow"
+    ref="pageRef"
+    :getList="getList"
+    :exportList="exportList"
+    :optionsEvensGroup="optionsEvensGroup"
+    :columnParsing="columnParsing"
+  >
+    <div slot="moreSearch">
+      <el-date-picker
+        v-model="time"
+        type="datetime"
+        value-format="yyyy-MM-dd HH:mm:ss"
+        placeholder="选择日期时间"
+        @change="()=>{
+          isShow = false
+          $nextTick(()=>{
+            isShow = true
+          })
+        }">
+      </el-date-picker>
+      <br><br>
+    </div>
+  </template-page>
+</template>
+
+<script>
+import TemplatePage from '@/components/template/template-page-1.vue'
+import {
+  walletHistoryList,
+  walletHistoryListExport
+} from '@/api/dealerHistoryWalletBalance2'
+export default {
+  components: { TemplatePage },
+  data() {
+    return {
+      // 事件组合
+      optionsEvensGroup: [],
+      // 表格属性
+      tableAttributes: {
+      }, 
+      // 表格事件
+      tableEvents: {
+      },
+      time: "",
+      isShow: true
+    }
+  },
+  methods: {
+    // 列表请求函数
+    getList(p,cb) {
+      cb && cb({...p, time:this.time})
+      return walletHistoryList({...p, time:this.time})
+    },
+    // 列表导出函数
+    exportList: walletHistoryListExport,
+    // 表格列解析渲染数据更改
+    columnParsing(item, defaultData) {
+      return defaultData
+    },
+  }
+}
+</script>
+
+<style lang="scss" scoped></style>

+ 1 - 1
src/views/finance/rebate_form.vue

@@ -56,7 +56,7 @@
         <el-popconfirm
           v-if="$checkBtnRole('del', $route.meta.roles)"
           title="这是一段内容确定删除吗?"
-          @onConfirm="delSeletFn"
+          @confirm="delSeletFn"
         >
           <el-button
             slot="reference"

+ 142 - 17
src/views/finance/receivable_list.vue

@@ -16,7 +16,7 @@
       <ReceivableListApproval :approvalId="approvalId" v-if="showPage == 3" @close="handleClose" />
       <ReceivableListDetail :approvalId="approvalId" :czType="czType" v-if="showPage == 4" @close="handleClose" />
     </Popu>
-    <print-preview ref="preView" @initPrint="handleInitPrint" @refreshList="handleRefreshList"  />
+    <print-preview ref="preView" @initPrint="handleInitPrint" @refreshList="handleRefreshList" />
   </template-page>
 </template>
 
@@ -34,7 +34,10 @@ import {
   getFinanceOtherReceDetail,
   getFinanceOtherReceApply,
   getFinanceOtherReceAbandon,
-  financeOtherReceClose
+  financeOtherReceClose,
+  financeReceImportDataImport,
+  financeOtherReceCancelApply,
+  getFinanceOtherReceExamine
 } from '@/api/finance/receivable_list'
 import ReceivableListAdd from './components/receivable_list-add'
 import ReceivableListApproval from './components/receivable_list-approval'
@@ -47,7 +50,7 @@ import printPreview from './components/design/preview.vue'
 import { getCompanyList } from '@/api/user'
 import { numToFixed } from '@/filters'
 import { changeNumberMoneyToChinese } from '@/utils/util'
-
+import { downloadFiles } from '@/utils/util'
 export default {
   components: { TemplatePage, Popu, ReceivableListAdd, ReceivableListApproval, ReceivableListDetail, printPreview },
   mixins: [import_mixin, add_callback_mixin],
@@ -101,6 +104,102 @@ export default {
               },
               isRole: this.$checkBtnRole('del', this.$route.meta.roles)
             }
+          ],
+          [
+            {
+              name: '批量提审',
+              click: async () => {
+                if (this.recordSelected.length === 0) {
+                  this.$message.error('请选择需要删除的数据')
+                  return
+                }
+                let ids = this.recordSelected
+                  .map(v => {
+                    return v.id
+                  })
+                  .join(',')
+                await getFinanceOtherReceApply({ id: ids })
+                this.$message.success('提审成功')
+                this.$refs.pageRef.refreshList()
+              }
+            }
+          ],
+          [
+            {
+              name: '批量审批',
+              click: async () => {
+                if (this.recordSelected.length === 0) {
+                  this.$message.error('请选择需要删除的数据')
+                  return
+                }
+                let ids = this.recordSelected
+                  .map(v => {
+                    return v.id
+                  })
+                  .join(',')
+                this.$confirm('批量审批', '提示', {
+                  confirmButtonText: '通过',
+                  cancelButtonText: '驳回',
+                  type: 'warning'
+                })
+                  .then(async () => {
+                    var loading = this.$loading({
+                      lock: true,
+                      text: 'Loading',
+                      spinner: 'el-icon-loading',
+                      background: 'rgba(0, 0, 0, 0.7)'
+                    })
+                    try {
+                      await getFinanceOtherReceExamine({
+                        id: ids,
+                        examineStatus: 'OK'
+                      })
+                      this.$message.success('审核成功')
+                      this.$refs.pageRef.refreshList()
+                      loading.close()
+                    } catch (error) {
+                      loading.close()
+                    }
+                  })
+                  .catch(async () => {
+                    var loading = this.$loading({
+                      lock: true,
+                      text: 'Loading',
+                      spinner: 'el-icon-loading',
+                      background: 'rgba(0, 0, 0, 0.7)'
+                    })
+                    try {
+                      await getFinanceOtherReceExamine({
+                        id: ids,
+                        examineStatus: 'FAIL'
+                      })
+                      this.$message.success('审核成功')
+                      this.$refs.pageRef.refreshList()
+                      loading.close()
+                    } catch (error) {
+                      loading.close()
+                    }
+                  })
+              }
+            }
+          ]
+        ],
+        [
+          [
+            {
+              name: '导入模版',
+              click: () => {
+                downloadFiles('finance/other/rec/download')
+              }
+            }
+          ]
+        ],
+        [
+          [
+            {
+              name: '导入',
+              render: this.importButton(financeReceImportDataImport)
+            }
           ]
         ]
       ],
@@ -165,12 +264,35 @@ export default {
                 打印
               </el-button>
             ) : null}
-            {(row.examineStatus == 'WAIT' || row.examineStatus == 'FAIL') &&
-            this.$checkBtnRole('examine', this.$route.meta.roles) ? (
+            {row.examineStatus == 'WAIT' && this.$checkBtnRole('examine', this.$route.meta.roles) ? (
               <el-button type="text" size="mini" onClick={() => this.approvalFn(row.id)}>
                 审批
               </el-button>
             ) : null}
+            {row.examineStatus == 'WAIT' && this.$checkBtnRole('examine', this.$route.meta.roles) ? (
+              <el-button
+                type="text"
+                size="mini"
+                onClick={() => {
+                  this.$confirm('取消提审, 是否继续?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                  })
+                    .then(() => {
+                      financeOtherReceCancelApply({
+                        id: row.id
+                      }).then(_res => {
+                        this.$message.success('取消成功')
+                        this.$refs.pageRef.refreshList()
+                      })
+                    })
+                    .catch(() => {})
+                }}
+              >
+                取消提审
+              </el-button>
+            ) : null}
             {row.examineStatus == 'SAVE' ? (
               <el-button type="text" size="mini" onClick={() => this.bringFn(row.id)}>
                 提审
@@ -187,18 +309,21 @@ export default {
               </el-button>
             ) : null}
             {row.examineStatus !== 'CLOSE' ? (
-              <el-popconfirm title="关闭吗?" onOnConfirm={() => {
-                financeOtherReceClose({
-                  id: row.id
-                }).then(_res=>{
-                  this.$message.success('关闭成功')
-                  this.$refs.pageRef.refreshList()
-                })
-                }}>
-              <el-button slot="reference" type="text" size="mini">
-                关闭
-              </el-button>
-            </el-popconfirm>
+              <el-popconfirm
+                title="关闭吗?"
+                onConfirm={() => {
+                  financeOtherReceClose({
+                    id: row.id
+                  }).then(_res => {
+                    this.$message.success('关闭成功')
+                    this.$refs.pageRef.refreshList()
+                  })
+                }}
+              >
+                <el-button slot="reference" type="text" size="mini">
+                  关闭
+                </el-button>
+              </el-popconfirm>
             ) : null}
             {
               <el-button type="text" size="mini" onClick={() => this.detailFn(row.id, 'detail')}>

+ 0 - 3
src/views/finance/standbook_list.vue

@@ -596,7 +596,6 @@ export default {
           pageSize: this.pageSize,
           pageNum: this.currentPage,
           type: this.bill,
-          customerName: this.$route.query.customerName,
           customerNumber: this.$route.query.customerNumber,
           enginRecordNo: this.searchForm.enginRecordNo
         }
@@ -606,7 +605,6 @@ export default {
           pageSize: this.pageSize,
           pageNum: this.currentPage,
           type: this.bill,
-          customerName: this.$store.state.user.customerName,
           customerNumber: this.$store.state.user.customerNumber,
           enginRecordNo: this.searchForm.enginRecordNo
         }
@@ -616,7 +614,6 @@ export default {
           pageSize: this.pageSize,
           pageNum: this.currentPage,
           type: this.bill,
-          customerName: this.customerName,
           customerNumber: this.customerNumber || this.searchForm.customerNumber,
           enginRecordNo: this.searchForm.enginRecordNo
         }

+ 1 - 1
src/views/issue.vue

@@ -202,7 +202,7 @@ export default {
             {
               <el-popconfirm
                 title="确定删除吗?"
-                onOnConfirm={() => this.deleteData(row.id)}
+                onConfirm={() => this.deleteData(row.id)}
               >
                 <el-button slot="reference" type="text" size="mini">
                   删除

+ 1 - 1
src/views/logisticsBill/components/ExceptionBox.vue

@@ -82,7 +82,7 @@ export default {
               ALL: '所有类型,广州的订单统一 开单价',
               TOC: '佛山销售销售订单类型公司'
             }
-            return <div>{typeObj[orderType]}</div>
+            return <div>{typeObj[orderType]||row.orderType}</div>
           }
         },
         {

+ 1 - 1
src/views/merchant/create_account.vue

@@ -101,7 +101,7 @@
         <el-button type="primary" @click="clickSubmitForm" :loading="formLoading">{{
           formLoading ? '提交中 ...' : '提 交'
         }}</el-button>
-        <el-popconfirm title="确定关闭吗?" @onConfirm="goBack" style="margin-left: 10px">
+        <el-popconfirm title="确定关闭吗?" @confirm="goBack" style="margin-left: 10px">
           <el-button slot="reference">关 闭</el-button>
         </el-popconfirm>
       </div>

+ 2 - 2
src/views/merchant/merchant_list.vue

@@ -77,7 +77,7 @@
                   v-if="scope.row.status"
                   style="margin-left: 10px"
                   title="确定冻结吗?"
-                  @onConfirm="changeStatus(scope.row.adminUserId, 0)"
+                  @confirm="changeStatus(scope.row.adminUserId, 0)"
                 >
                   <el-button slot="reference" type="text">冻结</el-button>
                 </el-popconfirm>
@@ -85,7 +85,7 @@
                   v-else
                   style="margin-left: 10px"
                   title="确定恢复吗?"
-                  @onConfirm="changeStatus(scope.row.adminUserId, 1)"
+                  @confirm="changeStatus(scope.row.adminUserId, 1)"
                 >
                   <el-button slot="reference" type="text">恢复</el-button>
                 </el-popconfirm>

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů