linwenxin преди 2 дни
родител
ревизия
564c463518
променени са 100 файла, в които са добавени 2787 реда и са изтрити 30767 реда
  1. 2 2
      .env.development
  2. 1 1
      .env.staging
  3. 1 27296
      package-lock.json
  4. 1 2
      package.json
  5. 5 0
      src/App.vue
  6. 7 0
      src/api/basic_data/dealer.js
  7. 23 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. 28 1
      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. 1 1
      src/layout/components/Navbar.vue
  25. 5 5
      src/main.js
  26. 3 6
      src/mixin/print.js
  27. 1 1
      src/permission.js
  28. 0 78
      src/styles/element-ui.scss
  29. 2 479
      src/styles/index.scss
  30. 1 1
      src/utils/common.js
  31. 1 1
      src/utils/common_select.js
  32. 2 2
      src/utils/lbs.js
  33. 1 1
      src/utils/request.js
  34. 1 1
      src/views/basic_data/dailyWarehouseRent.vue
  35. 6 8
      src/views/basic_data/dealer/components/dealer_list-detail.vue
  36. 1 1
      src/views/basic_data/dealer/dealer_deposit.vue
  37. 15 15
      src/views/basic_data/dealer/dealer_list.vue
  38. 1 1
      src/views/basic_data/dealer/dealer_stock.vue
  39. 1 1
      src/views/basic_data/logistics/logistics_list.vue
  40. 1 1
      src/views/basic_data/material/classify_list.vue
  41. 1 1
      src/views/basic_data/material/machine_list.vue
  42. 3 3
      src/views/basic_data/material/modify_list.vue
  43. 2 2
      src/views/basic_data/material/price_list.vue
  44. 4 4
      src/views/basic_data/material/relation_list.vue
  45. 1 1
      src/views/basic_data/numerusClausus.vue
  46. 1 1
      src/views/basic_data/partya/partyaList.vue
  47. 1 1
      src/views/basic_data/priceSalesType.vue
  48. 1 1
      src/views/basic_data/priceType.vue
  49. 1 1
      src/views/basic_data/sectorAllocation.vue
  50. 2 2
      src/views/basic_data/stock/Issue_list.vue
  51. 519 0
      src/views/basic_data/stock/electricalStorageCharges.vue
  52. 1 1
      src/views/basic_data/stock/material_list.vue
  53. 42 22
      src/views/basic_data/stock/stock_fee_list.vue
  54. 1 1
      src/views/basic_data/stock/warehousing_list.vue
  55. 1 1
      src/views/basic_data/taker/taker_car.vue
  56. 1 1
      src/views/basic_data/taker/taker_list.vue
  57. 1 1
      src/views/basic_data/warehouse/warehouse_cost.vue
  58. 64 52
      src/views/basic_data/warehouse/warehouse_site.vue
  59. 156 1213
      src/views/commercialEngineering/components/base.vue
  60. 109 91
      src/views/commercialEngineering/components/examine.vue
  61. 0 297
      src/views/commercialEngineering/components/geographicalPosi.vue
  62. 219 48
      src/views/commercialEngineering/components/loginSuccess.vue
  63. 2 1
      src/views/commercialEngineering/components/model.vue
  64. 1 1
      src/views/commercialEngineering/components/operate.vue
  65. 20 0
      src/views/commercialEngineering/crossDistrict/crossDistrictForm.vue
  66. 62 52
      src/views/commercialEngineering/crossDistrict/crossDistrictkList.vue
  67. 2 0
      src/views/commercialEngineering/crossDistrict/examine.vue
  68. 2 0
      src/views/commercialEngineering/frock/examine.vue
  69. 1 1
      src/views/commercialEngineering/frock/frockForm.vue
  70. 51 44
      src/views/commercialEngineering/frock/frockList.vue
  71. 2 0
      src/views/commercialEngineering/homeDecoration/examine.vue
  72. 21 1
      src/views/commercialEngineering/homeDecoration/homeDecorationForm.vue
  73. 57 50
      src/views/commercialEngineering/homeDecoration/homeDecorationList.vue
  74. 29 15
      src/views/commercialEngineering/mixin/index.js
  75. 12 0
      src/views/commercialEngineering/mixin/list.js
  76. 70 0
      src/views/commercialEngineering/summaryTable/index_1.vue
  77. 79 0
      src/views/commercialEngineering/summaryTable/index_2.vue
  78. 16 59
      src/views/commercialEngineering/summaryTable/summaryTableList.vue
  79. 1 1
      src/views/deposit_commerce/components/deposit-apply-surrender.vue
  80. 1 1
      src/views/deposit_home/components/deposit-apply-surrender.vue
  81. 90 307
      src/views/deposit_home/components/deposit_list-detail.vue
  82. 1 1
      src/views/deposit_home/components/deposit_replenish.vue
  83. 366 378
      src/views/deposit_home/components/refund_list-detail.vue
  84. 1 1
      src/views/deposit_home/deposit_list.vue
  85. 2 2
      src/views/deposit_home/refund_list.vue
  86. 1 1
      src/views/engin_deposit/components/deposit-apply-surrender.vue
  87. 3 2
      src/views/finance/account_list.vue
  88. 1 1
      src/views/finance/change_apply.vue
  89. 27 30
      src/views/finance/components/credit_list-detail.vue
  90. 13 2
      src/views/finance/components/receivable_list-add.vue
  91. 11 1
      src/views/finance/components/receivable_list-detail.vue
  92. 66 0
      src/views/finance/dealerHistoryWalletBalance2.vue
  93. 1 1
      src/views/finance/rebate_form.vue
  94. 142 17
      src/views/finance/receivable_list.vue
  95. 1 1
      src/views/issue.vue
  96. 1 1
      src/views/logisticsBill/components/ExceptionBox.vue
  97. 1 1
      src/views/merchant/create_account.vue
  98. 2 2
      src/views/merchant/merchant_list.vue
  99. 3 3
      src/views/notice.vue
  100. 1 1
      src/views/pset/login_setting.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/api'
-# 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/'
+
 

Файловите разлики са ограничени, защото са твърде много
+ 1 - 27296
package-lock.json


+ 1 - 2
package.json

@@ -16,12 +16,11 @@
   },
   "dependencies": {
     "@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',

+ 23 - 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({

+ 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
+  })
+}

+ 28 - 1
src/api/setting.js

@@ -558,7 +558,7 @@ export function getDetailGongCheng(params) {
 // 删除程经销商子账号
 export function delUserGongCheng(params) {
   return request({
-    url: '/admin//user/user/child/delGongCheng',
+    url: '/admin/user/child/delGongCheng',
     method: 'post',
     params
   })
@@ -572,3 +572,30 @@ export function exportListGongCheng(data, name) {
     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()
     }

+ 1 - 1
src/layout/components/Navbar.vue

@@ -16,7 +16,7 @@
           ></i>
         </el-tooltip>
       </div> -->
-      <div >
+      <div style="margin: 0 20px">
           <el-autocomplete
             v-model="pathurl"
             :fetch-suggestions="querySearchAsync"

+ 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,

+ 1 - 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

+ 0 - 78
src/styles/element-ui.scss

@@ -75,81 +75,3 @@
 .el-table th {
   background-color: #eef2f8;
 }
-
-// cover some element-ui styles
-
-.el-breadcrumb__inner,
-.el-breadcrumb__inner a {
-  font-weight: 400 !important;
-}
-
-.el-upload {
-  input[type='file'] {
-    display: none !important;
-  }
-}
-
-.el-upload__input {
-  display: none;
-}
-
-// to fixed https://github.com/ElemeFE/element/issues/2461
-.el-dialog {
-  transform: none;
-  left: 0;
-  position: relative;
-  margin: 0 auto;
-}
-
-// refine element ui upload
-.upload-container {
-  .el-upload {
-    width: 100%;
-
-    .el-upload-dragger {
-      width: 100%;
-      height: 200px;
-    }
-  }
-}
-//  防止浏览器缩放搜索模块布局错位
-.el-range-editor--mini.el-input__inner {
-  display: -webkit-inline-box;
-  display: -ms-inline-flexbox;
-  display: inline-flex;
-  -webkit-box-align: center;
-  -ms-flex-align: center;
-  align-items: center;
-  padding: 0 10px !important;
-}
-.el-range-editor--mini.el-input__inner {
-  height: 28px !important;
-}
-// 隐藏滚动条样式
-.scrollbar-wrapper::-webkit-scrollbar {
-  display: none;
-}
-.collapse {
-  .el-form-item__content {
-    line-height: 0 !important;
-  }
-  .el-range-editor--mini .el-range-separator {
-    line-height: 28px !important;
-  }
-}
-// dropdown
-.el-dropdown-menu {
-  a {
-    display: block;
-  }
-}
-
-// to fix el-date-picker css style
-.el-range-separator {
-  box-sizing: content-box;
-}
-
-// 全局设置表格表头背景
-.el-table th {
-  background-color: #eef2f8;
-}

+ 2 - 479
src/styles/index.scss

@@ -479,484 +479,7 @@ input[type='number']::-webkit-outer-spin-button {
     text-overflow: ellipsis;
   }
 }
-@import './variables.scss';
-@import './mixin.scss';
-@import './transition.scss';
-@import './element-ui.scss';
-@import './sidebar.scss';
-
-body {
-  height: 100%;
-  -moz-osx-font-smoothing: grayscale;
-  -webkit-font-smoothing: antialiased;
-  text-rendering: optimizeLegibility;
-  font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
-}
-
-label {
-  font-weight: 700;
-}
-
-html {
-  height: 100%;
-  box-sizing: border-box;
-}
-
-#app {
-  height: 100%;
-}
-
-*,
-*:before,
-*:after {
-  box-sizing: inherit;
-}
-
-a:focus,
-a:active {
-  outline: none;
-}
-
-a,
-a:focus,
-a:hover {
-  cursor: pointer;
-  color: inherit;
-  text-decoration: none;
-}
-
-div:focus {
-  outline: none;
-}
-
-.clearfix {
-  &:after {
-    visibility: hidden;
-    display: block;
-    font-size: 0;
-    content: ' ';
-    clear: both;
-    height: 0;
-  }
-}
-
-// main-container global css
-.app-container {
-  padding: 20px;
-}
-
-.fl {
-  float: left;
-}
-.fr {
-  float: right;
-}
-.tl {
-  text-align: left;
-}
-.tr {
-  text-align: right;
-}
-
-.ellipsis {
-  white-space: nowrap;
-  overflow: hidden;
-  text-overflow: ellipsis;
-}
-.ellipsis-2 {
-  overflow: hidden;
-  text-overflow: ellipsis;
-  display: -webkit-box;
-  -webkit-line-clamp: 2;
-  -webkit-box-orient: vertical;
-}
-
-//多选框未选中样式
-.el-checkbox__inner {
-  border: 1px solid #409eff;
-}
-// 筛选区域样式
-.screen-container {
-  background: #ffffff;
-  .el-form-item {
-    margin-bottom: 10px;
-  }
-  .top {
-    height: 40px;
-    .title {
-      font-size: 16px;
-      color: #333;
-      font-weight: 600;
-    }
-    .control {
-      font-size: 14px;
-      color: #4e73df;
-      cursor: pointer;
-    }
-  }
-  // 选择器
-  .el-select {
-    width: 100%;
-  }
-  // 时间选择器
-  .el-date-editor.el-input,
-  .el-date-editor.el-input__inner {
-    width: 100%;
-    height: 29px;
-  }
-  .el-range-editor--small .el-range-separator {
-    line-height: 28px;
-  }
-
-  //.el-col:last-child .el-form-item__content {
-  //  margin-left: 0 !important;
-  //}
-
-  // .el-form-item__label {
-  //   font-size: 13px;
-  // }
-}
-
-.table {
-  margin: 15px 0;
-  // .el-button {
-  //   padding: 0;
-  // }
-  .el-button--mini {
-    padding: 7px 10px;
-  }
-  .el-button--text {
-    padding: 0;
-    font-size: 13px;
-  }
-  .el-table {
-    font-size: 13px;
-  }
-  .el-table td,
-  .el-table th {
-    padding: 5px 0;
-  }
-  input[type='number'] {
-    text-align: right;
-  }
-}
-
-// 主要内容区域样式
-.mymain-container {
-  margin-top: 15px;
-  margin-bottom: 20px;
-  .btn-group {
-    .text {
-      font-size: 16px;
-      color: #666;
-      line-height: 32px;
-    }
-  }
-  // 导入
-  .import-btn {
-    position: relative;
-  }
-  .el-upload-list {
-    position: absolute;
-    top: 20px;
-    left: 0;
-  }
-}
-
-// 抽屉样式
-.el-drawer {
-  // 整体
-  .el-drawer__body {
-    overflow-y: scroll;
-  }
-  .drawer__content {
-    padding: 0 20px;
-  }
-  .drawer__footer {
-    position: sticky;
-    bottom: 0;
-    left: 0;
-    width: 100%;
-    background: #fff;
-    padding: 20px;
-  }
-  .drawer__content .el-date-editor {
-    width: 100%;
-  }
 
-  // 选择器
-  .el-select {
-    width: 100%;
-  }
-
-  // 图片墙
-  .el-upload-list--picture-card .el-upload-list__item {
-    width: 100px;
-    height: 100px;
-  }
-  .el-upload--picture-card {
-    width: 100px;
-    height: 100px;
-    line-height: 100px;
-    .avatar-uploader-icon {
-      font-size: 28px;
-      color: #8c939d;
-      width: 100px;
-      height: 100px;
-      line-height: 100px;
-      text-align: center;
-    }
-  }
-}
-.el-popover-left {
-  margin-left: 10px;
-}
-// 上传照片样式
-.avatar-uploader .el-upload {
-  border: 1px dashed #d9d9d9;
-  border-radius: 6px;
-  cursor: pointer;
-  position: relative;
-  overflow: hidden;
-}
-.avatar-uploader .el-upload:hover {
-  border-color: #409eff;
-}
-.avatar-uploader .el-upload-list {
-  position: relative;
-  top: unset;
-  left: unset;
-}
-.avatar-uploader-icon {
-  font-size: 28px;
-  color: #8c939d;
-  width: 120px;
-  height: 120px;
-  line-height: 120px;
-  text-align: center;
-}
-.avatar {
-  width: 120px;
-  height: 120px;
-  display: block;
-}
-
-// 系统设置
-.setting_title {
-  font-size: 18px;
-  padding-left: 15px;
-  font-weight: 600;
-}
-
-.el-menu-item,
-.el-submenu__title {
-  height: 44px;
-  line-height: 44px;
-  font-weight: 600 !important;
-}
-
-.el-submenu .el-menu-item {
-  height: 44px;
-  line-height: 44px;
-}
-
-.page-footer {
-  height: 70px;
-  .footer {
-    position: fixed;
-    bottom: 0;
-    left: 0;
-    z-index: 9;
-    width: 100%;
-    background: #fff;
-    padding: 15px 40px;
-    box-sizing: border-box;
-    transition: all 0.28s;
-    text-align: right;
-    box-shadow: 0 2px 5px 0 rgb(0 0 0 / 50%), 0 2px 5px 0 rgb(0 0 0 / 10%);
-    &.hideSidebar {
-      margin-left: 54px;
-      width: calc(100vw - 54px);
-    }
-    &.openSidebar {
-      margin-left: 210px;
-      width: calc(100vw - 210px);
-    }
-  }
-}
-
-.diy-table-1 {
-  border: 1px solid #ebeef5;
-  border-right: none;
-  border-bottom: none;
-  .item {
-    display: flex;
-    border-bottom: 1px solid #ebeef5;
-    &.file {
-      .label {
-        height: 100px;
-      }
-      .value {
-        height: 100px;
-      }
-      .file-list {
-        display: flex;
-        .file-item {
-          // margin-top: 10px;
-          margin-right: 10px;
-        }
-      }
-      .img {
-        width: 70px;
-        height: 70px;
-        display: block;
-        border: 1px solid #e4e7ed;
-      }
-      .box2 {
-        flex: 1;
-        display: flex;
-        padding: 10px;
-        align-items: center;
-        border: 1px solid #e4e7ed;
-        width: 240px;
-        height: 70px;
-        cursor: pointer;
-        img {
-          width: 40px;
-          height: 40px;
-          display: block;
-        }
-        .name {
-          flex: 1;
-          color: #222;
-          font-weight: 600;
-          margin-left: 10px;
-        }
-      }
-    }
-    .label {
-      width: 120px;
-      height: 34px;
-      display: flex;
-      align-items: center;
-      padding: 0 10px;
-      box-sizing: border-box;
-      background: #f5f7fa;
-      border-right: 1px solid #ebeef5;
-      font-size: 14px;
-      color: #333333;
-    }
-    .value {
-      flex: 1;
-      height: 34px;
-      display: flex;
-      align-items: center;
-      padding: 0 10px;
-      box-sizing: border-box;
-      border-right: 1px solid #ebeef5;
-      font-size: 14px;
-      color: #333333;
-      input {
-        border: none;
-        padding: 0;
-        height: 34px;
-      }
-    }
-  }
-}
-.diy-table-2 {
-  font-size: 14px;
-  margin-top: 20px;
-  margin-bottom: 20px;
-  .el-row {
-    margin-left: 0 !important;
-    margin-right: 0 !important;
-    border: 1px solid #ebeef5;
-    border-right: none;
-  }
-  .el-col {
-    padding-top: 14px;
-    padding-bottom: 14px;
-    border-right: 1px solid #ebeef5;
-  }
-  .head {
-    color: #909399;
-    font-weight: bold;
-    background: #f5f7fa;
-  }
-  .body {
-    color: #333333;
-    .el-row {
-      border-top: none;
-    }
-  }
-  .foot {
-    color: #333333;
-    .el-row {
-      border-top: none;
-    }
-  }
-}
-
-.diy-form-1 {
-  .item {
-    display: flex;
-    height: 34px;
-    .label {
-      width: 100px;
-      display: flex;
-      align-items: center;
-      padding-right: 10px;
-      box-sizing: border-box;
-      font-size: 14px;
-      color: #606266;
-      font-weight: 700;
-    }
-    .value {
-      flex: 1;
-      display: flex;
-      align-items: center;
-      box-sizing: border-box;
-      font-size: 14px;
-      color: #333333;
-      input {
-        border: none;
-        padding: 0;
-      }
-    }
-  }
-}
-
-input[type='number']::-webkit-inner-spin-button,
-input[type='number']::-webkit-outer-spin-button {
-  -webkit-appearance: none;
-  margin: 0;
-}
-
-.main-title {
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
-  height: 50px;
-  border-bottom: 1px solid #dcdfe6;
-  margin-top: 20px;
-  margin-bottom: 20px;
-  .title {
-    font-size: 16px;
-    font-weight: 600;
-    padding-left: 10px;
-  }
-}
-.hiprint-printElement-text-content {
-  white-space: nowrap;
-  overflow: hidden;
-  text-overflow: ellipsis;
-}
-
-@media print {
-  .hiprint-printElement-text-content {
-    white-space: nowrap;
-    overflow: hidden;
-    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({

+ 1 - 1
src/utils/common_select.js

@@ -237,4 +237,4 @@ export const COMMON_SELECT_DATA = {
   SALES_TYPE,
   CENTER_LIST,
   CODE_CHECK_STATUS
-}
+}

+ 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 = {

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

@@ -215,7 +215,7 @@ export default {
             {
               <el-popconfirm
                 title="确定删除吗?"
-                onOnConfirm={() => {
+                onConfirm={() => {
                   delMerchantLoginQuotaLimit([row.id]).then(res => {
                     this.$refs.pageRef.refreshList()
                     this.$successMsg('删除成功')

+ 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>

+ 156 - 1213
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"   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,7 +28,7 @@
         <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="请填写"   clearable />
+            <el-input v-model="formData.salesCompanyName" disabled placeholder="请填写" clearable />
             <CopyButton v-if="module !== 'add'" :copyText="formData.salesCompanyName" />
           </div>
         </el-col>
@@ -36,26 +36,21 @@
           <el-col :xs="24" :sm="12" :lg="8" class="item">
             <div class="label">工程登录类型:</div>
             <div class="value">
-              <el-input
-                :value="formData.orderType === 'WORK' ? '工装' : '家装'"
-                placeholder="请填写"
-
-                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="请填写"   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="请填写"   clearable />
+              <el-input v-model="formData.createTime" placeholder="请填写" clearable />
               <CopyButton v-if="module !== 'add'" :copyText="formData.createTime" />
             </div>
           </el-col>
@@ -77,8 +72,10 @@
                 :value="item.value"
               />
             </el-select>
-            <CopyButton v-if="module !== 'add'" :copyText="getCopyText(commonData.dict['TRADE_PROJECT_AREA'], formData.projectArea)" />
-
+            <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">
@@ -98,25 +95,30 @@
         <el-col
           v-if="pageType === 'frock' || (pageType === 'cross' && formData.orderType === 'WORK')"
           :xs="24"
-          :sm="!['add', 'edit'].includes(module)  ? 24 : 12"
-          :lg="!['add', 'edit'].includes(module)  ? 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>
-            <CopyButton v-if="module !== 'add'" :copyText="getCopyText(commonData.PartyAList, formData.partyAId)" />
+            </el-select> -->
+            <CopyButton v-if="module !== 'add'" :copyText="formData.partyA" />
+            <!-- dialogVisible -->
           </div>
         </el-col>
         <el-col
-          v-if="['add', 'edit'].includes(module)  && (pageType === 'home' || formData.orderType === 'HOME')"
+          v-if="['add', 'edit'].includes(module) && (pageType === 'home' || formData.orderType === 'HOME')"
           :xs="24"
           :sm="12"
           :lg="12"
@@ -128,20 +130,12 @@
         <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="请填写"
-
-              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="请填写"
-
               clearable
             />
             <el-select
@@ -163,43 +157,45 @@
                 :value="item.value"
               />
             </el-select>
-            <CopyButton v-if="module !== 'add' && isTradeExaminer" :copyText="getCopyText(commonData.customerList, formData.customerId)" />
+            <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="请填写"   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="请填写"   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="请填写"   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="请填写"   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="请填写"   clearable />
+            <el-input v-model="formData.followCustomerMobile" placeholder="请填写" clearable />
             <CopyButton v-if="module !== 'add'" :copyText="formData.followCustomerMobile" />
           </div>
         </el-col>
@@ -212,7 +208,7 @@
         >
           <div class="label">工程项目名称*:</div>
           <div class="value">
-            <el-input v-model="formData.projectName" placeholder="请填写"   clearable />
+            <el-input v-model="formData.projectName" placeholder="请填写" clearable />
             <CopyButton v-if="module !== 'add'" :copyText="formData.projectName" />
           </div>
         </el-col>
@@ -224,7 +220,7 @@
         >
           <div class="label">工程联系人*:</div>
           <div class="value">
-            <el-input v-model="formData.enginLinkName" placeholder="请填写"   clearable />
+            <el-input v-model="formData.enginLinkName" placeholder="请填写" clearable />
             <CopyButton v-if="module !== 'add'" :copyText="formData.enginLinkName" />
           </div>
         </el-col>
@@ -236,7 +232,7 @@
         >
           <div class="label">电话*:</div>
           <div class="value">
-            <el-input v-model="formData.enginLinkMobile" placeholder="请填写"   clearable />
+            <el-input v-model="formData.enginLinkMobile" placeholder="请填写" clearable />
             <CopyButton v-if="module !== 'add'" :copyText="formData.enginLinkMobile" />
           </div>
         </el-col>
@@ -249,29 +245,11 @@
         >
           <div class="label" style="height: auto">工程项目名称*:</div>
           <div class="value my-center" style="height: 100%">
-            <el-radio-group v-model="formData.homeProjectNameRadio"  >
+            <el-radio-group v-model="formData.homeProjectNameRadio">
               <el-radio label="AREA">
-                <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
-                />号
+                <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="
@@ -289,24 +267,16 @@
                   v-model="formData.homeProjectNameArea2"
                   class="my-width"
                   placeholder="请填写"
-
                   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="请填写"
-
-                  clearable
-                />小区
+                <el-input v-model="formData.homeProjectNameArea3" class="my-width" placeholder="请填写" clearable />小区
                 <el-input
                   v-model="formData.homeProjectNameNumber3"
                   class="my-width"
                   placeholder="请填写"
-
                   clearable
                 />号别墅
                 <CopyButton
@@ -317,6 +287,23 @@
             </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">
@@ -341,13 +328,13 @@
           <div class="label">详细地址*:</div>
           <div class="value">
             <!-- <el-input v-model="formData.positionAddress" placeholder="定位地址"   clearable disabled /> -->
-            <geographicalPosi
+            <!-- <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="请填写详细地址"   clearable />
+            /> -->
+            <el-input v-model="formData.address" placeholder="请填写详细地址" clearable />
             <CopyButton v-if="module !== 'add'" :copyText="formData.address" />
 
             <i
@@ -357,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">
@@ -381,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"  >
+            <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>
@@ -394,15 +381,20 @@
         </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"   :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"    clearable /> -->
           </div>
@@ -410,7 +402,7 @@
         <el-col :xs="24" :sm="12" :lg="12" class="item">
           <div class="label">类型</div>
           <div class="value">
-            <el-radio-group v-model="formData.type"  >
+            <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>
@@ -420,14 +412,14 @@
         <el-col :xs="24" :sm="12" :lg="12" class="item">
           <div class="label">建筑面积㎡*:</div>
           <div class="value">
-            <el-input v-model="formData.extent" placeholder="请填写"   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="请填写"   clearable />
+            <el-input v-model="formData.useExtent" placeholder="请填写" clearable />
             <CopyButton v-if="module !== 'add'" :copyText="formData.useExtent" />
           </div>
         </el-col>
@@ -481,13 +473,16 @@
                 :value="item.value"
               />
             </el-select>
-            <CopyButton v-if="module !== 'add'" :copyText="getCopyText(commonData.dict['LOGIN_MACHINE_TYPE'], formData.machineType)" />
+            <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"  >
+            <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>
@@ -511,13 +506,13 @@
         <el-col :xs="24" :sm="12" :lg="12" class="item">
           <div class="label">预计设备金额*:</div>
           <div class="value">
-            <el-input type="number" v-model.number="formData.preDeviceAmount" placeholder="请填写"   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"  >
+            <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>
@@ -527,7 +522,7 @@
         <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="请填写"   clearable />
+            <el-input :value="orderTypeEume[formData.orderStatus]" placeholder="请填写" clearable />
             <CopyButton v-if="module !== 'add'" :copyText="orderTypeEume[formData.orderStatus]" />
           </div>
         </el-col>
@@ -560,6 +555,19 @@
           </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>
@@ -572,12 +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 { getDealerListV2 } from '@/api/basic_data/dealer'
-
+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: {
     // 标题
@@ -640,26 +650,26 @@ export default {
         '1608756898412228610': '三沙市',
         '1608757977963163649': '嘉峪关市'
       },
-      loading: false
+      loading: false,
+      dialogVisible: false
     }
   },
   computed: {
     ...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)
+    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 = [
             {
@@ -705,7 +715,7 @@ export default {
           await this.getCallbackPosition(this.formData.areaId, this.formData.streetId, 'street', 'lbsId')
         }
         if (this.module !== 'add' && this.isTradeExaminer && this.formData.customerId && this.formData.customerName) {
-          this.getDealerListV2(this.formData.customerName)
+          this.getDealerListV3(this.formData.customerName)
         }
       }
     }
@@ -734,6 +744,29 @@ export default {
     }
   },
   methods: {
+    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()
@@ -824,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 = []
@@ -835,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)
@@ -845,6 +883,7 @@ export default {
     changeArea(value) {
       this.areaValue = value
       this.formData.streetId = ''
+      this.formData.street = ''
       this.streetList = []
       // 特殊处理市
       const temps = this.areaList.filter(k => {
@@ -1021,1130 +1060,34 @@ export default {
         this.formData.customerAddress = res.data.address || ''
       })
     },
-    remoteMethod(e){
+    remoteMethod(e) {
       this.loading = false
-      this.getDealerListV2(e)
+      this.getDealerListV3(e)
     },
-    getDealerListV2(e){
-      getDealerListV2({
+    getDealerListV3(e) {
+      getDealerListV3({
         pageNum: 1,
         pageSize: 100,
-        params:[
+        params: [
           {
-            "param": "a.name",
-            "compare": "like",
-            "value": e
+            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
-
       })
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.diy-table-1 {
-  border: 1px solid #cccc;
-  border-right: none;
-  border-bottom: none;
-}
-.diy-table-1 .item {
-  border-bottom: 1px solid #ccc;
-}
-.diy-table-1 .item .label {
-  width: 180px;
-  padding: 10px;
-  border-right: 1px solid #ccc;
-}
-.diy-table-1 .item .value {
-  border-right: 1px solid #ccc;
-  justify-content: space-between;
-}
-::v-deep .el-select {
-  width: 100% !important;
-}
-::v-deep .date .el-input__icon,
-::v-deep .date .el-input__prefix {
-  right: 50px !important;
-  left: auto;
-}
-::v-deep .el-textarea__inner {
-  padding: 0;
-  border: none;
-}
-::v-deep .file:first-child > div {
-  display: flex !important;
-  align-items: center;
-  flex-direction: row-reverse;
-}
-::v-deep .file .is-success {
-  margin-top: 0;
-}
-.my-width {
-  width: 150px;
-}
-.title {
-  display: flex;
-  justify-content: space-between;
-  .title-right {
-    font-size: 16px;
-    font-weight: 300;
-  }
-}
-::v-deep .my-center {
-  input {
-    text-align: center !important;
-  }
-}
-::v-deep .el-upload-list__item-name {
-  width: 200px !important;
-}
-.IP_font {
-  font-size: 28px;
-  color: #409eff;
-  position: absolute;
-  left: -13px;
-  top: -25px;
-}
-.IP {
-  width: 15vw;
-  background-color: #fff;
-  padding: 6px 0 6px 6px;
-}
-::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;
-}
-</style>
-<!-- eslint-disable vue/valid-v-on -->
-<template>
-  <div>
-    <h3 class="title">
-      <div>{{ title }}</div>
-      <div class="title-right">格力商用空调登录表提示:带*的为必填项</div>
-    </h3>
-    <el-divider />
-    <div class="diy-table-1">
-      <el-row :gutter="0">
-        <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"   style="width: 100%" @change="initTradeData">
-              <el-radio
-                v-for="item in [
-                  { label: '工装', value: 'WORK' },
-                  { label: '家装', value: 'HOME' }
-                ]"
-                :key="item.value"
-                :label="item.value"
-              >
-                {{ item.label }}
-              </el-radio>
-            </el-radio-group>
-          </div>
-        </el-col>
-        <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="请填写"   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="请填写"
-
-                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="请填写"   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="请填写"   clearable />
-              <CopyButton v-if="module !== 'add'" :copyText="formData.createTime" />
-            </div>
-          </el-col>
-        </template>
-        <el-col :xs="24" :sm="12" :lg="12" class="item">
-          <div class="label">{{ ['cross'].includes(pageType) ? '业务所在区域' : '项目所在区域' }}*:</div>
-          <div class="value">
-            <el-select
-              v-model="formData.projectArea"
-              placeholder="请选择"
-              clearable
-              filterable
-              @change="handleProjectArea"
-            >
-              <el-option
-                v-for="item in commonData.dict['TRADE_PROJECT_AREA']"
-                :key="item.value"
-                :label="item.label"
-                :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">
-          <div class="label">跟进业务*:</div>
-          <div class="value">
-            <el-select v-model="formData.serviceId" placeholder="请选择" clearable filterable @change="handleService">
-              <el-option
-                v-for="item in commonData.salesmanList"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value"
-              />
-            </el-select>
-            <CopyButton v-if="module !== 'add'" :copyText="getCopyText(commonData.salesmanList, formData.serviceId)" />
-          </div>
-        </el-col>
-        <el-col
-          v-if="pageType === 'frock' || (pageType === 'cross' && formData.orderType === 'WORK')"
-          :xs="24"
-          :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">
-              <el-option
-                v-for="item in commonData.PartyAList"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value"
-              />
-            </el-select>
-            <CopyButton v-if="module !== 'add'" :copyText="getCopyText(commonData.PartyAList, formData.partyAId)" />
-          </div>
-        </el-col>
-        <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="请填写"
-
-              clearable
-            />
-            <el-input
-              v-if="!isCustomer && !isTradeExaminer"
-              v-model="formData.customerName"
-              disabled
-              placeholder="请填写"
-
-              clearable
-            />
-            <el-select
-              v-if="isTradeExaminer"
-              v-model="formData.customerId"
-              placeholder="请选择"
-              clearable
-              filterable
-              @change="handleCustomer"
-            >
-              <el-option
-                v-for="item in commonData.customerList"
-                :key="item.value"
-                :label="item.label"
-                :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="请填写"   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="请填写"   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="请填写"   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="请填写"   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="请填写"   clearable />
-            <CopyButton v-if="module !== 'add'" :copyText="formData.followCustomerMobile" />
-          </div>
-        </el-col>
-        <el-col
-          v-if="['frock', 'cross'].includes(pageType) && formData.orderType !== 'HOME'"
-          :xs="24"
-          :sm="24"
-          :lg="8"
-          class="item"
-        >
-          <div class="label">工程项目名称*:</div>
-          <div class="value">
-            <el-input v-model="formData.projectName" placeholder="请填写"   clearable />
-            <CopyButton v-if="module !== 'add'" :copyText="formData.projectName" />
-          </div>
-        </el-col>
-        <el-col
-          :xs="24"
-          :sm="12"
-          :lg="['home'].includes(pageType) || module === 'edit' || formData.orderType === 'HOME' ? 12 : 8"
-          class="item"
-        >
-          <div class="label">工程联系人*:</div>
-          <div class="value">
-            <el-input v-model="formData.enginLinkName" placeholder="请填写"   clearable />
-            <CopyButton v-if="module !== 'add'" :copyText="formData.enginLinkName" />
-          </div>
-        </el-col>
-        <el-col
-          :xs="24"
-          :sm="12"
-          :lg="['home'].includes(pageType) || module === 'edit' || formData.orderType === 'HOME' ? 12 : 8"
-          class="item"
-        >
-          <div class="label">电话*:</div>
-          <div class="value">
-            <el-input v-model="formData.enginLinkMobile" placeholder="请填写"   clearable />
-            <CopyButton v-if="module !== 'add'" :copyText="formData.enginLinkMobile" />
-          </div>
-        </el-col>
-        <el-col
-          v-if="['home'].includes(pageType) || formData.orderType === 'HOME'"
-          :xs="24"
-          :sm="24"
-          :lg="24"
-          class="item"
-        >
-          <div class="label" style="height: auto">工程项目名称*:</div>
-          <div class="value my-center" style="height: 100%">
-            <el-radio-group v-model="formData.homeProjectNameRadio"  >
-              <el-radio label="AREA">
-                <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="请填写"
-
-                  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="请填写"
-
-                  clearable
-                />小区
-                <el-input
-                  v-model="formData.homeProjectNameNumber3"
-                  class="my-width"
-                  placeholder="请填写"
-
-                  clearable
-                />号别墅
-                <CopyButton
-                  v-if="module !== 'add'"
-                  :copyText="formData.homeProjectNameArea3 + '小区' + formData.homeProjectNameNumber3 + '号'"
-                />
-              </el-radio>
-            </el-radio-group>
-          </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>
-          </div>
-        </el-col>
-        <el-col :xs="24" :sm="24" :lg="24" class="item">
-          <div class="label">详细地址*:</div>
-          <div class="value">
-            <!-- <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="请填写详细地址"   clearable />
-            <CopyButton v-if="module !== 'add'" :copyText="formData.address" />
-
-            <i
-              v-if="formData.positionAddress && !['cross'].includes(pageType)"
-              class="el-icon-s-promotion"
-              style="color: #409eff; font-size: 16px"
-            />
-          </div>
-        </el-col>
-        <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">
-              <zj-amap-polygon
-                eid="bMap"
-                :zoom="zoom"
-                :center="center"
-                :markers="markers"
-                :electronic-fence="electronicFence"
-                @getPolygons="getPolygons"
-              >
-                <template #marker="{ marker }">
-                  <i class="el-icon-location-outline IP_font" />
-                  <div class="IP">
-                    <div>项目编号:{{ marker.no }}</div>
-                    <div>工程项目名称:{{ marker.name }}</div>
-                    <div>地址:{{ marker.address }}</div>
-                  </div>
-                </template>
-              </zj-amap-polygon>
-            </div>
-          </el-col>
-        </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"  >
-              <el-radio v-for="item in commonData.dict['TRADE_LOGIN_CATEGORY']" :key="item.value" :label="item.value">
-                {{ item.label }}
-              </el-radio>
-            </el-radio-group>
-          </div>
-        </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"   :limit="1" class="file" />
-            <el-link
-              v-if="module == 'detail' && 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
-            >
-            <!-- <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"  >
-              <el-radio v-for="item in commonData.dict['TRADE_LOGIN_TYPE']" :key="item.value" :label="item.value">
-                {{ item.label }}
-              </el-radio>
-            </el-radio-group>
-          </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.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="请填写"   clearable />
-            <CopyButton v-if="module !== 'add'" :copyText="formData.useExtent" />
-          </div>
-        </el-col>
-        <el-col :xs="24" :sm="12" :lg="12" class="item">
-          <div class="label">项目所在行业分类*:</div>
-          <div class="value">
-            <el-select
-              v-model="formData.tradeParentId"
-              placeholder="请选择"
-              clearable
-              filterable
-              :disabled="pageType === 'home' || formData.orderType === 'HOME'"
-              @change="handleTradeParent"
-            >
-              <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">
-          <div class="label">行业细分*:</div>
-          <div class="value">
-            <el-select
-              v-model="formData.tradeId"
-              :disabled="pageType === 'home' || formData.orderType === 'HOME'"
-              placeholder="请选择"
-              clearable
-              filterable
-              @change="handleTrade"
-            >
-              <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">
-          <div class="label">机组类型*:</div>
-          <div class="value">
-            <el-select v-model="formData.machineType" placeholder="请选择" clearable filterable>
-              <el-option
-                v-for="item in commonData.dict['LOGIN_MACHINE_TYPE']"
-                :key="item.value"
-                :label="item.label"
-                :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"  >
-              <el-radio v-for="item in commonData.dict['SUCCESS_RATE']" :key="item.value" :label="item.value">
-                {{ item.label }}
-              </el-radio>
-            </el-radio-group>
-          </div>
-        </el-col>
-        <el-col :xs="24" :sm="12" :lg="12" class="item">
-          <div class="label">预计签定合同日期*:</div>
-          <div class="value">
-            <el-date-picker
-              v-model="formData.preSignDate"
-              class="date"
-              value-format="yyyy-MM-dd HH:mm:ss"
-              default-time="00:00:00"
-              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 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"  >
-              <el-radio v-for="item in commonData.dict['FOLLOW_STATUS']" :key="item.value" :label="item.value">
-                {{ item.label }}
-              </el-radio>
-            </el-radio-group>
-          </div>
-        </el-col>
-        <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="请填写"   clearable />
-            <CopyButton v-if="module !== 'add'" :copyText="orderTypeEume[formData.orderStatus]" />
-          </div>
-        </el-col>
-        <el-col :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.remark"
-              style="margin: 5px 0"
-              type="textarea"
-              :rows="4"
-              placeholder="请输入备注"
-            />
-            <CopyButton v-if="module !== 'add'" :copyText="formData.remark" />
-          </div>
-        </el-col>
-        <el-col :xs="24" :sm="24" :lg="24" class="item">
-          <div class="label" style="height: auto">
-            工程概况及此工程相关的社会关系以及其他相关信息{{ ['cross'].includes(pageType) ? '*' : '' }}:
-          </div>
-          <div class="value" style="height: 100%">
-            <el-input
-              v-model="formData.otherInfo"
-              style="margin: 5px 0"
-              type="textarea"
-              :rows="3"
-              placeholder="请输入内容"
-            />
-            <CopyButton v-if="module !== 'add'" :copyText="formData.otherInfo" />
-          </div>
-        </el-col>
-      </el-row>
-    </div>
-  </div>
-</template>
-
-<script>
-import { findElem } from '@/utils/util'
-import { getAutonaviRegion } from '@/api/common'
-import { getTradeConfigList } from '@/api/basic_data/sectorAllocation'
-import GeographicalPosi from './geographicalPosi.vue'
-import FileUpload from '@/components/Common/file-upload.vue'
-import { mapGetters } from 'vuex'
-import { getPositionProject, getHistory } from '@/api/frock'
-
-export default {
-  components: {
-    FileUpload,
-    GeographicalPosi
-  },
-  props: {
-    // 标题
-    title: {
-      type: String,
-      default: '登录信息'
-    },
-    // 数据源
-    formData: {
-      type: Object,
-      default: () => ({})
-    },
-    // 页面类型
-    pageType: {
-      type: String,
-      default: 'frock'
-    },
-    // 功能类型
-    module: {
-      type: String,
-      default: 'add'
-    },
-    commonData: {
-      type: Object,
-      default: () => {}
-    }
-  },
-  data() {
-    return {
-      fileList: [],
-      // 地图缩放比例
-      zoom: 16,
-      // 地图默认中心
-      center: [113.36242, 23.1368425],
-      markers: [],
-      // 是否启用电子围栏
-      electronicFence: false,
-      provinceList: [],
-      cityList: [],
-      areaList: [],
-      streetList: [],
-      tradeParentList: [],
-      tradeList: [],
-      orderTypeEume: {
-        SAVE: '保存',
-        WAIT: '待审核',
-        OK: '登录成功',
-        FAIL: '登录不成功',
-        RETURN: '返回'
-      },
-      region: {
-        G: ['广州市', '清远市', '韶关市'],
-        F: ['佛山市', '肇庆市', '云浮市']
-      },
-      // 特殊处理市区
-      specialCity: {
-        '1608754035946549250': '东莞市',
-        '1608754032574328834': '中山市',
-        '1608756901402767362': '儋州市',
-        '1608756898412228610': '三沙市',
-        '1608757977963163649': '嘉峪关市'
-      }
-    }
-  },
-  computed: {
-    ...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()
-        } else {
-          this.markers = [
-            {
-              name: this.formData.projectName,
-              center: [this.formData.lnt, this.formData.lat],
-              address: this.formData.address,
-              no: this.formData.projectNo
-            }
-          ]
-        }
-        this.center = [this.formData.lnt, this.formData.lat]
-        if (this.module === 'examine' && !this.formData.loginStatus) {
-          this.formData.loginStatus = 'OK'
-        }
-        if (this.module === 'examine' && this.formData.files.length) {
-          const item = this.formData.files
-          this.formData.files = item.map(k => {
-            return {
-              ...k,
-              name: k.fileName,
-              url: k.fileUrl,
-              hover: true
-            }
-          })
-        }
-        if (this.formData.homeProjectNameRadio === 'SELF') {
-          this.formData.homeProjectNameArea2 = this.formData.homeProjectNameArea
-        }
-        if (this.formData.homeProjectNameRadio === 'VILLA') {
-          this.formData.homeProjectNameNumber3 = this.formData.homeProjectNameNumber
-          this.formData.homeProjectNameArea3 = this.formData.homeProjectNameArea
-        }
-        if (this.formData.homeProjectNameRadio === 'SELF' || this.formData.homeProjectNameRadio === 'VILLA') {
-          this.formData.homeProjectNameArea = ''
-          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')
-        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')
-        }
-      }
-    }
-  },
-  mounted() {
-    if (this.module === 'add') {
-      this.getAutonaviRegion()
-      if (this.isCustomer) {
-        this.formData.customerId = this.customerId
-        this.formData.customerNumber = this.customerNumber
-        this.formData.customerName = this.customerName
-      }
-      if (!this.isCustomer && !this.isTradeExaminer) {
-        this.formData.customerId = '269184'
-        this.formData.customerNumber = '100503'
-        this.formData.customerName = '韶关弘格贸易有限公司'
-      }
-      if (!this.isTradeExaminer) {
-        this.getHistory(this.formData.customerId)
-      }
-    }
-    if (this.pageType === 'home' || this.formData.orderType === 'HOME') {
-      this.initTradeData('HOME')
-    } else {
-      this.getTradeConfigList()
-    }
-  },
-  methods: {
-    initTradeData(e) {
-      if (e === 'HOME') {
-        this.getTradeConfigList()
-        this.formData.tradeParentId = '1689529426267607042'
-        this.formData.tradeId = '1689529478943870978'
-      } else {
-        this.formData.tradeParentId = ''
-        this.formData.tradeId = ''
-      }
-    },
-    // 获取省市区街道
-    getAutonaviRegion(level = 0, id = null) {
-      getAutonaviRegion({ parentLbsId: id }).then(res => {
-        if (level === 0) {
-          if (['frock', 'home'].includes(this.pageType)) {
-            this.provinceList = res.data.filter(k => {
-              return k.name === '广东省'
-            })
-            this.getPosition(this.provinceList, 'provinceId', 'province')
-          } else {
-            this.provinceList = res.data
-          }
-        } else if (level === 1) {
-          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)
-              }
-              return k
-            })
-          } else {
-            this.cityList = res.data
-          }
-        } else if (level === 2) {
-          this.areaList = res.data
-        } else if (level === 3) {
-          this.streetList = res.data
-        }
-      })
-    },
-    handleProjectArea(e) {
-      if (
-        ['frock', 'home'].includes(this.pageType) &&
-        this.formData.provinceId &&
-        this.formData.province === '广东省'
-      ) {
-        this.getAutonaviRegion(1, this.formData.provinceId)
-      }
-    },
-    getPosition(data, id, name) {
-      if (this.module === 'add') {
-        const item = data.find(k => k.name === this.$IpAdd[name])
-        this.formData[id] = item.lbsId
-        this.formData[name] = item.name
-        // if (name === 'province') {
-        this.getAutonaviRegion(1, item.lbsId)
-        // }
-        //  else {
-        //   this.getAutonaviRegion(2, item.lbsId)
-        // }
-      }
-    },
-    getPositionProject() {
-      getPositionProject({ id: this.formData.id }).then(res => {
-        this.commonData.vicinityMarkers = res.data
-        this.markers = this.commonData.vicinityMarkers.map(k => {
-          return {
-            id: '',
-            name: k.projectName,
-            center: [k.lnt, k.lat],
-            address: k.address,
-            no: k.projectNo
-          }
+        .then(res => {
+          this.commonData.customerList = res.data.records.map(k => {
+            return {
+              number: k.number,
+              label: k.name,
+              value: k.id
+            }
+          })
         })
-        this.markers.push({
-          name: this.formData.projectName,
-          center: [this.formData.lnt, this.formData.lat],
-          address: this.formData.address,
-          no: this.formData.projectNo
+        .finally(() => {
+          this.loading = false
         })
-      })
-    },
-    handleArea(value, type) {
-      this.formData[type] = this[type + 'List'].find(k => k.lbsId === value).name
-    },
-    // 切换省
-    changeProvince(value) {
-      this.formData.cityId = ''
-      this.formData.areaId = ''
-      this.formData.streetId = ''
-      this.cityList = []
-      this.areaList = []
-      this.streetList = []
-      this.getAutonaviRegion(1, value)
-      this.handleArea(value, 'province')
-    },
-
-    // 切换市
-    changeCity(value) {
-      this.formData.areaId = ''
-      this.formData.streetId = ''
-      this.areaList = []
-      this.streetList = []
-      this.getAutonaviRegion(2, value)
-      this.handleArea(value, 'city')
-    },
-
-    // 切换区
-    changeArea(value) {
-      this.areaValue = value
-      this.formData.streetId = ''
-      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')
-    },
-
-    // 切换街道
-    changeStreet(value) {
-      this.getAutonaviRegion(3, this.areaValue)
-      this.handleArea(value, 'street')
-    },
-
-    // 初始化省市区街道
-    initRegion(level, item, id = 0) {
-      const { province, city, area, street } = item
-      let nextId = null
-      getAutonaviRegion({ pid: id }).then(res => {
-        if (level === 0) {
-          this.provinceList = res.data
-          nextId = this.formData.provinceId = this.provinceList[findElem(this.provinceList, 'name', province)].id
-        } else if (level === 1) {
-          this.cityList = res.data
-          nextId = this.formData.cityId = this.cityList[findElem(this.cityList, 'name', city)].id
-        } else if (level === 2) {
-          this.areaList = res.data
-          nextId = this.formData.areaId = this.areaList[findElem(this.areaList, 'name', area)].id
-        } else if (level === 3) {
-          this.streetList = res.data
-          nextId = this.formData.streetId = this.streetList[findElem(this.streetList, 'name', street)].id
-        }
-        if (level < 3) {
-          level = level + 1
-          this.initRegion(level, item, nextId)
-        }
-      })
-    },
-    handleTradeParent(e) {
-      if (e) {
-        const item = this.tradeParentList.find(k => k.id === e)
-        this.formData.tradeParentName = item.name
-        this.tradeList = item.childList
-        return
-      }
-      this.formData.tradeId = ''
-    },
-    handleTrade(e) {
-      if (e) {
-        const item = this.tradeList.find(k => k.id === e)
-        this.formData.tradeName = item.name
-      } else {
-        this.formData.tradeId = ''
-        this.formData.tradeName = ''
-      }
-    },
-    getTradeConfigList(parentId = '') {
-      getTradeConfigList({
-        pageNum: 1,
-        pageSize: -1,
-        parentId: parentId
-      }).then(res => {
-        if (parentId) {
-          this.tradeList = res.data
-          return
-        }
-        this.tradeParentList = res.data
-        const item = this.tradeParentList.find(k => k.id === this.formData.tradeParentId)
-        if (item && item.childList) {
-          this.tradeList = item.childList
-        }
-      })
-    },
-    handleService(e) {
-      if (e) {
-        const item = this.commonData.salesmanList.find(k => k.value === e)
-        this.formData.serviceNumber = item.userName
-        this.formData.serviceName = item.label
-      } else {
-        this.formData.serviceName = ''
-        this.formData.serviceNumber = ''
-      }
-    },
-    handlePartyA(e) {
-      if (e) {
-        const item = this.commonData.PartyAList.find(k => k.value === e)
-        this.formData.partyA = item.label
-      } else {
-        this.formData.partyA = ''
-      }
-    },
-    handleCustomer(e) {
-      if (e) {
-        const item = this.commonData.customerList.find(k => k.value === e)
-        this.formData.customerName = item.label
-        this.formData.customerNumber = item.number
-        this.getHistory(this.formData.customerId)
-      } else {
-        this.formData.customerName = ''
-        this.formData.customerNumber = ''
-        this.formData.customerLinkName = ''
-        this.formData.customerLinkMobile = ''
-        this.formData.customerAddress = ''
-      }
-    },
-    onSbumit() {},
-    getPolygons(data) {
-      console.log(data)
-    },
-    async handleSelectPosi(data) {
-      this.formData.lnt = data.center[0]
-      this.formData.lat = data.center[1]
-      this.formData.positionAddress = data.name
-      // this.formData.address = data.name
-      var { province, city, district, township } = data.data.addressComponent
-      console.log(province, city, district, township)
-      const area = district
-      const street = township
-      await this.getCallbackPosition(null, province, 'province')
-      await this.getCallbackPosition(this.formData.provinceId, city, 'city')
-      await this.getCallbackPosition(this.formData.cityId, area, 'area')
-      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')
-      }
-    },
-
-    /**
-     * @param {*} id // 父级id
-     * @param {*} value // 值
-     * @param {*} name // 字段名称
-     * @param {*} way // 筛选属性,默认name
-     */
-    async getCallbackPosition(id = 0, value = '', name, way = 'name') {
-      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
-    },
-    openPdf(item) {
-      const link = document.createElement('a')
-      link.style.display = 'none'
-      link.href = this.$imageUrl + item.url
-      link.download = item.name
-      document.body.appendChild(link)
-      link.click()
-      document.body.removeChild(link)
-    },
-    getHistory(id) {
-      getHistory({ customerId: id }).then(res => {
-        this.formData.customerLinkName = res.data.linkName || ''
-        this.formData.customerLinkMobile = res.data.linkMobile || ''
-        this.formData.customerAddress = res.data.address || ''
-      })
     }
   }
 }

+ 109 - 91
src/views/commercialEngineering/components/examine.vue

@@ -26,41 +26,57 @@
                 size="mini"
                 clearable
               >
-              <CopyButton :copyText="formData.successLoginProject" />
-                <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>
-            <template v-if="isTradeExaminer">
+            <template
+              v-if="(pageType == 'home' && !isCustomer) || (['frock', 'cross'].includes(pageType) && isTradeExaminer)"
+            >
               <el-col :span="7" class="flex-box">
-              <div class="flex-box-title">经销商编号</div>
+                <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.successCustomerNumber"
+                v-model="formData.successServiceNumber"
                 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 :span="7" class="flex-box">
-              <div class="flex-box-title">业务员编号</div>
-              <el-input v-model="formData.successServiceNumber" class="my-input" placeholder="请填写" size="mini" clearable />
               <CopyButton :copyText="formData.successServiceNumber" />
-
             </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.successServiceName" 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>
@@ -75,14 +91,8 @@
                 :value="item.value"
               />
             </el-select> -->
-            <el-input
-              v-model="formData.note"
-              placeholder="请填写"
-              size="mini"
-              clearable
-            />
+            <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">
@@ -92,52 +102,19 @@
             <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>
 
@@ -160,6 +137,7 @@ import { mapGetters } from 'vuex'
 
 import ImageUpload from '@/components/Common/image-upload.vue'
 import LoginSuccess from './loginSuccess.vue'
+
 export default {
   components: {
     ImageUpload,
@@ -200,14 +178,33 @@ export default {
     }
   },
   computed: {
-    ...mapGetters(['isTradeExaminer'])
+    ...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]
@@ -224,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 ''
@@ -256,6 +267,7 @@ export default {
       document.body.removeChild(link)
     },
     getData() {
+      console.log(333)
       if (!this.formData.successLoginProject) return
       const params = {
         pageNum: 1,
@@ -275,20 +287,17 @@ export default {
       }
       objFn[this.pageType](params).then(res => {
         if (res.data.records && res.data.records.length) {
-          if(!this.formData.successCustomerNumber){
-            this.formData.successCustomerNumber =  res.data.records[0].customerNumber
+          if (!this.formData.successCustomerNumber) {
+            this.formData.successCustomerNumber = res.data.records[0].customerNumber
           }
           if (!this.formData.successCustomerName) {
-            this.formData.successCustomerName =  res.data.records[0].customerName
-
+            this.formData.successCustomerName = res.data.records[0].customerName
           }
           if (!this.formData.successServiceName) {
-            this.formData.successServiceName =  res.data.records[0].serviceName
-
+            this.formData.successServiceName = res.data.records[0].serviceName
           }
           if (!this.formData.successServiceNumber) {
-            this.formData.successServiceNumber =  res.data.records[0].serviceNumber
-
+            this.formData.successServiceNumber = res.data.records[0].serviceNumber
           }
         }
       })
@@ -301,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;
@@ -337,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>

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

@@ -296,300 +296,3 @@ export default {
   }
 }
 </style>
-<template>
-  <div class="withinLine">
-    <el-button type="primary" size="mini" @click="open">地理定位</el-button>
-    <el-dialog
-      title="地理定位"
-      :visible.sync="dialogVisible"
-      :append-to-body="true"
-      width="1000px"
-      :before-close="handleClose"
-    >
-      <template v-if="dialogVisible">
-        <div>
-          <el-row :gutter="20">
-            <el-col :xs="24" :sm="24" :lg="24">
-              <div class="teshubuju">
-                <el-autocomplete
-                  v-model="queryString"
-                  style="width: 100%; margin-right: 10px"
-                  placeholder="请输入内容"
-                  :fetch-suggestions="querySearchAsync"
-                  @select="handleSelect"
-                />
-                <el-button
-                  size="mini"
-                  type="primary"
-                  @click="
-                    () => {
-                      querySearchAsync(queryString)
-                    }
-                  "
-                >查询</el-button>
-              </div>
-            </el-col>
-          </el-row>
-        </div>
-        <br>
-        <div style="height: 60vh; position: relative">
-          <zj-amap-polygon
-            :markers="markers"
-            :zoom="zoom"
-            :center="center"
-            :electronic-fence="false"
-            @getGeocoder="getGeocoder"
-          >
-            <template #marker="{ marker }">
-              <i class="el-icon-location-outline IP_font" />
-              <div class="IP">
-                <div>地址:{{ marker.name }}</div>
-                <div>经度:{{ marker.center[0] }}</div>
-                <div>维度:{{ marker.center[1] }}</div>
-              </div>
-            </template>
-          </zj-amap-polygon>
-          <!-- 周边数据 -->
-          <div class="zhoubian">
-            <div v-for="(item, index) in mapzhoubian" :key="index" class="zhoubianItem" @click="zhoubiandw(item)">
-              <div class="zhoubianItemview">
-                <i class="el-icon-location-outline" />
-                <div>
-                  <div style="font-weight: bold; margin-bottom: 8px; box-sizing: border-box; padding: 0px 5px">
-                    {{ item.pname }}{{ item.cityname }}{{ item.adname }}{{ item.address }}
-                  </div>
-                  <div>地址:{{ item.name }}</div>
-                </div>
-                <div>
-                  <img
-                    v-for="(p, i) in item.photos || []"
-                    v-if="i === 0"
-                    :key="i"
-                    :src="seturl(p.url)"
-                    alt=""
-                    srcset=""
-                  >
-                </div>
-              </div>
-            </div>
-          </div>
-        </div>
-        <span slot="footer" class="dialog-footer">
-          <el-button size="mini" @click="handleClose">取 消</el-button>
-          <el-button size="mini" type="primary" @click="sub">提交</el-button>
-        </span>
-      </template>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { getLocation, getAddress, supervisorChangeList, axiosMapZb } from '@/utils/lbs'
-export default {
-  props: { formData: { type: Object, default: () => ({}) }},
-  data() {
-    return {
-      dialogVisible: false,
-      loading: false,
-      center: [113.36242, 23.1368425],
-      zoom: 16.7,
-      markers: [],
-      mapSearchList: [],
-      mapzhoubian: [],
-      queryString: ''
-    }
-  },
-  watch: {
-    'formData.positionAddress'() {
-      if (this.markers[0] && this.markers[0].name !== this.formData.positionAddress) {
-        Object.assign(this.$data, this.$options.data())
-      }
-    }
-  },
-  methods: {
-    seturl(url) {
-      if (~url.indexOf('https://')) {
-        return url
-      } else {
-        return url.replace('http://', 'https://')
-      }
-    },
-    async open() {
-      this.dialogVisible = true
-      if (this.formData.lng && this.formData.lat && this.formData.positionAddress) {
-        this.changeSearchMapFn(`${this.formData.lng}//${this.formData.lat}//${this.formData.positionAddress}`)
-      } else {
-        var str = ''
-        if (!~(this.formData.positionAddress || '').indexOf(this.formData.province)) {
-          str += this.formData.province || ''
-        }
-        if (!~(this.formData.positionAddress || '').indexOf(this.formData.city)) {
-          str += this.formData.city || ''
-        }
-        if (!~(this.formData.positionAddress || '').indexOf(this.formData.area)) {
-          str += this.formData.area || ''
-        }
-        if (!~(this.formData.positionAddress || '').indexOf(this.formData.street)) {
-          str += this.formData.street || ''
-        }
-        str += this.formData.positionAddress || ''
-        await this.remoteMethod(str)
-        if (this.mapSearchList.length) {
-          var v = this.mapSearchList[0]
-          this.changeSearchMapFn(`${v.location.KL}//${v.location.kT}//${v.formattedAddress}`)
-        }
-      }
-    },
-    async querySearchAsync(queryString, cb) {
-      if (!queryString) {
-        cb && cb([])
-      } else {
-        var res = await supervisorChangeList(queryString)
-        var list = res.tips.map(item => {
-          return {
-            ...item,
-            value: item.district + item.name + item.address
-          }
-        })
-        if (cb) {
-          cb(list)
-        } else if (list.length) {
-          this.handleSelect(list[0])
-        }
-      }
-    },
-    async handleSelect(item) {
-      this.center = [item.location.lng, item.location.lat]
-      var data = await getAddress(this.center)
-      this.markers = [
-        {
-          id: '',
-          name: item.value,
-          center: [item.location.lng, item.location.lat],
-          data: {
-            ...data,
-            formattedAddress: item.value
-          }
-        }
-      ]
-      this.getAxiosMapZb(this.center)
-    },
-    zhoubiandw(item) {
-      this.changeSearchMapFn(
-        `${item.location.split(',').join('//')}//${
-          item.pname + item.cityname + item.adname + item.name + item.address
-        }`,
-        false
-      )
-    },
-    async changeSearchMapFn(value, bool = true) {
-      const res = value.split('//')
-      var data = await getAddress([Number(res[0]), Number(res[1])])
-      this.queryString = res[2]
-      this.markers = [
-        {
-          id: '',
-          name: res[2],
-          center: [res[0], res[1]],
-          data
-        }
-      ]
-      this.center = [res[0], res[1]]
-      if (bool) {
-        this.getAxiosMapZb(this.center)
-      }
-    },
-    async remoteMethod(query) {
-      if (query !== '') {
-        this.loading = true
-        this.mapSearchList = await getLocation(query)
-        this.loading = false
-      } else {
-        this.workerList = []
-      }
-    },
-    async getAxiosMapZb(center = []) {
-      axiosMapZb({
-        location: center.join(',')
-      })
-        .then(res => {
-          this.mapzhoubian = res.data.pois
-        })
-        .catch(err => {
-          console.log(err)
-        })
-    },
-    getGeocoder(data) {
-      this.markers = [
-        {
-          id: '',
-          name: data.formattedAddress,
-          center: data.center,
-          data
-        }
-      ]
-      this.changeSearchMapFn(`${data.center[0]}//${data.center[1]}//${data.formattedAddress}`)
-    },
-    handleClose(done) {
-      this.dialogVisible = false
-    },
-    sub() {
-      this.$emit('selectPosi', this.markers[0])
-      this.handleClose()
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-::v-deep .address_map {
-  .el-dialog__body {
-    padding: 0 20px;
-  }
-}
-.IP_font {
-  font-size: 28px;
-  color: #409eff;
-  position: absolute;
-  left: -13px;
-  top: -25px;
-}
-.IP {
-  width: 15vw;
-  background-color: #fff;
-  padding: 6px 0 6px 6px;
-}
-.withinLine {
-  display: inline-block;
-  ::v-deep .el-button {
-    margin-left: 10px;
-  }
-}
-.teshubuju {
-  display: flex;
-}
-.zhoubian {
-  width: 320px;
-  max-height: 100%;
-  position: absolute;
-  right: 0;
-  top: 0;
-  overflow-y: auto;
-  .zhoubianItem {
-    width: 100%;
-    height: auto;
-    box-sizing: border-box;
-    padding: 16px 8px;
-    border-bottom: 1px solid #aaa;
-    background: #fff;
-    cursor: pointer;
-    .zhoubianItemview {
-      display: flex;
-      justify-content: space-between;
-      img {
-        width: 100px;
-      }
-    }
-  }
-}
-</style>

+ 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>

+ 2 - 1
src/views/commercialEngineering/components/model.vue

@@ -218,7 +218,7 @@ export default {
         },
         {
           columnAttributes: {
-            label: '数量',
+            label: '数量*',
             prop: 'qty'
           },
           render: (h, { row, column, index }) => {
@@ -228,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 + '(业主名称)自建房',

+ 62 - 52
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,13 +189,14 @@ export default {
     columnParsing(item, defaultData) {
       if (item.colName === 'project_no') {
         defaultData.render = (h, { row, index, column }) => {
-          return ( <div style="padding:0 6px;cursor: pointer;" class={{ 'text-view': true, 'text-view-copy': column.isCopy }}>
+          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',
+                    path: '/commercialEngineering/crossDistrictkList',
                     query: {
                       detailId: row.id,
                       module: 'detail'
@@ -216,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'
@@ -233,8 +242,8 @@ export default {
             ) : null}
             {this.isTradeExaminer && row.orderStatus !== 'SAVE' ? (
               <el-button
-                size='mini'
-                type='text'
+                size="mini"
+                type="text"
                 onClick={() => {
                   this.content = '审核'
                   this.module = 'examine'
@@ -262,8 +271,8 @@ export default {
             row.orderStatus === 'SAVE' ||
             row.orderStatus === 'RETURN'
               ? <el-button
-                size='mini'
-                type='text'
+                size="mini"
+                type="text"
                 onClick={() => {
                   this.content = '编辑'
                   this.module = 'edit'
@@ -271,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'

+ 2 - 0
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 {

+ 2 - 0
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 {

+ 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('提交成功')

+ 51 - 44
src/views/commercialEngineering/frock/frockList.vue

@@ -45,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,
@@ -81,9 +84,13 @@ export default {
           [
             {
               name: '添加记录',
-              click: this.addOn(() => {
-                this.visible = true
-              })
+              click: () => {
+                this.checkTradeLogin(() => {
+                  this.addOn(() => {
+                    this.visible = true
+                  })()
+                }, { isSpan: false, orderType: 'WORK' })
+              }
             }
           ]
         ],
@@ -91,57 +98,57 @@ export default {
           console.log(this.isTradeExaminer, 9999)
           return this.isTradeExaminer
             ? [
+              [
                 [
-                  [
-                    {
-                      name: '更新',
-                      click: () => {
-                        if (this.recordSelected.length === 0) {
-                          this.$message.error('请选择需要更新的数据')
-                          return
-                        }
+                  {
+                    name: '更新',
+                    click: () => {
+                      if (this.recordSelected.length === 0) {
+                        this.$message.error('请选择需要更新的数据')
+                        return
+                      }
 
-                        for (let index = 0; index < this.recordSelected.length; index++) {
-                          if (
-                            !(
-                              this.recordSelected[index].orderStatus == '已审核' &&
-                              this.recordSelected[index].status == '跟进中'
-                            )
-                          ) {
-                            this.$message.error('请选择审核通过并且跟进中的数据')
-                            return
-                          }
+                      for (let index = 0; index < this.recordSelected.length; index++) {
+                        if (
+                          !(
+                            this.recordSelected[index].orderStatus == 'OK' &&
+                            this.recordSelected[index].status == 'ING'
+                          )
+                        ) {
+                          this.$message.error('请选择审核通过并且跟进中的数据')
+                          return
                         }
-                        this.operateType = 'update'
-                        this.operateTitle = '更新'
-                        this.operateVisible = true
                       }
+                      this.operateType = 'update'
+                      this.operateTitle = '更新'
+                      this.operateVisible = true
                     }
-                  ]
-                ],
+                  }
+                ]
+              ],
+              [
                 [
-                  [
-                    {
-                      name: '替换业务员',
-                      click: () => {
-                        if (this.recordSelected.length === 0) {
-                          this.$message.error('请选择需要替换业务员的数据')
+                  {
+                    name: '替换业务员',
+                    click: () => {
+                      if (this.recordSelected.length === 0) {
+                        this.$message.error('请选择需要替换业务员的数据')
+                        return
+                      }
+                      for (let index = 0; index < this.recordSelected.length; index++) {
+                        if (this.recordSelected[index].orderStatus !== 'OK') {
+                          this.$message.error('请选择审核通过的数据')
                           return
                         }
-                        for (let index = 0; index < this.recordSelected.length; index++) {
-                          if (this.recordSelected[index].orderStatus !== '已审核') {
-                            this.$message.error('请选择审核通过的数据')
-                            return
-                          }
-                        }
-                        this.operateType = 'replace'
-                        this.operateTitle = '替换业务员'
-                        this.operateVisible = true
                       }
+                      this.operateType = 'replace'
+                      this.operateTitle = '替换业务员'
+                      this.operateVisible = true
                     }
-                  ]
+                  }
                 ]
               ]
+            ]
             : []
         })(),
         [
@@ -155,7 +162,7 @@ export default {
                 }
                 if (!this.isTradeExaminer) {
                   for (let index = 0; index < this.recordSelected.length; index++) {
-                    if (this.recordSelected[index].orderStatus !== '保存') {
+                    if (this.recordSelected[index].orderStatus !== 'SAVE') {
                       this.$message.error('请选择保存的数据')
                       return
                     }

+ 2 - 0
src/views/commercialEngineering/homeDecoration/examine.vue

@@ -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 {

+ 21 - 1
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,12 +27,31 @@ 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 + '(业主名称)自建房',

+ 57 - 50
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
                         }
@@ -139,36 +144,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
+              }
+            }
+          ]
+        ]
       ]
     }
   },
@@ -187,13 +192,14 @@ export default {
     columnParsing(item, defaultData) {
       if (item.colName === 'project_no') {
         defaultData.render = (h, { row, index, column }) => {
-          return ( <div style="padding:0 6px;cursor: pointer;" class={{ 'text-view': true, 'text-view-copy': column.isCopy }}>
+          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',
+                    path: '/commercialEngineering/homeDecorationList',
                     query: {
                       detailId: row.id,
                       module: 'detail'
@@ -222,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'
@@ -239,8 +245,8 @@ export default {
             ) : null}
             {this.isTradeExaminer && row.orderStatus !== 'SAVE' ? (
               <el-button
-                size='mini'
-                type='text'
+                size="mini"
+                type="text"
                 onClick={() => {
                   this.content = '审核'
                   this.module = 'examine'
@@ -268,8 +274,8 @@ export default {
             row.orderStatus === 'SAVE' ||
             row.orderStatus === 'RETURN'
               ? <el-button
-                size='mini'
-                type='text'
+                size="mini"
+                type="text"
                 onClick={() => {
                   this.content = '编辑'
                   this.module = 'edit'
@@ -277,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'

+ 29 - 15
src/views/commercialEngineering/mixin/index.js

@@ -1,6 +1,6 @@
 import { getCommercialEngineeringDetail, getPositionProject } from '@/api/frock'
 import { getDictList, getSalesmanListService } from '@/api/common'
-import { getDealerListV2 } from '@/api/basic_data/dealer'
+import { getDealerListV3 } from '@/api/basic_data/dealer'
 import { getFirstPartyCustomerManagementList } from '@/api/basic_data/partya'
 import { mapGetters } from 'vuex'
 export default {
@@ -138,7 +138,7 @@ export default {
     this.getSalesmanListService()
     this.getFirstPartyCustomerManagementList()
     if (this.module === 'add') {
-      this.getDealerListV2()
+      this.getDealerListV3()
 
     }
     if (this.detailId) {
@@ -174,17 +174,17 @@ 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: 100
       }).then(res => {
@@ -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>

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

@@ -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>

+ 366 - 378
src/views/deposit_home/components/refund_list-detail.vue

@@ -80,14 +80,14 @@
           <div class="value">
             {{
               detailList.examineStatus == 'SAVE'
-                ? '保存'
-                : detailList.examineStatus == 'WAIT'
-                  ? '待审核'
-                  : detailList.examineStatus == 'OK'
-                    ? '通过'
-                    : detailList.examineStatus == 'FAIL'
-                      ? '不通过'
-                      : '关闭'
+              ? '保存'
+              : detailList.examineStatus == 'WAIT'
+                ? '待审核'
+                : detailList.examineStatus == 'OK'
+                  ? '通过'
+                  : detailList.examineStatus == 'FAIL'
+                    ? '不通过'
+                    : '关闭'
             }}
           </div>
         </el-col>
@@ -118,16 +118,9 @@
         <el-col :xs="24" :sm="24" :lg="8" class="item">
           <div class="label">安装时间</div>
           <div class="value">
-            <el-date-picker
-              v-model="detailList.installDate"
-              prefix-icon="''"
-              placeholder="请选择安装时间"
-              :readonly="title == '详情'"
-              class="selectStyle"
-              type="datetime"
-              default-time="00:00:00"
-              value-format="yyyy-MM-dd HH:mm:ss"
-            />
+            <el-date-picker v-model="detailList.installDate" prefix-icon="''" placeholder="请选择安装时间"
+              :readonly="title == '详情'" class="selectStyle" type="datetime" default-time="00:00:00"
+              value-format="yyyy-MM-dd HH:mm:ss" />
           </div>
         </el-col>
         <el-col :xs="24" :sm="24" :lg="16" class="item">
@@ -383,92 +376,90 @@
     <div class="mymain-container">
       <div class="table">
         <div class="table">
-          <el-table
-            v-loading="listLoading"
-            :data="detailList.items"
-            element-loading-text="Loading"
-            border
-            fit
-            highlight-current-row
-            stripe
-            show-summary
-            :summary-method="$getSummaries"
-          >
+          <el-table v-loading="listLoading" :data="detailList.items" element-loading-text="Loading" border fit
+            highlight-current-row stripe show-summary :summary-method="$getSummaries">
+            <el-table-column fixed="left" label="操作" width="100">
+              <template slot-scope="scope">
+                <el-button v-if="scope.row.isCustom && !scope.row.isSource" type="text" size="mini" @click="() => {
+                  detailList.items.splice(scope.$index, 1)
+                }">删除</el-button>
+              </template>
+            </el-table-column>
             <template v-if="!isCustomer">
               <el-table-column 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 v-if="scope.row.isCustom">
+                    <el-input v-model="scope.row.factoryNo" size="mini" placeholder="请输入" />
+                  </template>
+                  <template v-else>
+                    <CopyButton :copy-text="scope.row.factoryNo" />
+                    <span>{{ scope.row.factoryNo }}</span>
+                  </template>
                 </template>
               </el-table-column>
-              <el-table-column
-                align="left"
-                label="物料编码"
-                prop="materialNumber"
-                min-width="130"
-                show-overflow-tooltip
-              >
+
+              <el-table-column align="left" label="物料编码" prop="materialNumber" min-width="130" show-overflow-tooltip>
                 <template slot-scope="scope">
-                  <CopyButton :copy-text="scope.row.materialNumber" />
-                  <span>{{ scope.row.materialNumber }}</span>
+                  <template v-if="scope.row.isCustom">
+                    <el-input v-model="scope.row.materialNumber" size="mini" placeholder="请输入" />
+                  </template>
+                  <template v-else>
+                    <CopyButton :copy-text="scope.row.materialNumber" />
+                    <span>{{ scope.row.materialNumber }}</span>
+                  </template>
                 </template>
               </el-table-column>
             </template>
 
-            <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>
+                <template v-if="scope.row.isCustom">
+                  <el-input v-model="scope.row.materialOldNumber" size="mini" placeholder="请输入" />
+                </template>
+                <template v-else>
+                  <CopyButton :copy-text="scope.row.materialOldNumber" />
+                  <span>{{ scope.row.materialOldNumber }}</span>
+                </template>
               </template>
             </el-table-column>
             <el-table-column align="left" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip>
               <template slot-scope="scope">
-                <CopyButton :copy-text="scope.row.materialName" />
-                <span>{{ scope.row.materialName }}</span>
+                <template v-if="scope.row.isCustom">
+                  <el-input v-model="scope.row.materialName" size="mini" placeholder="请输入" />
+                </template>
+                <template v-else>
+                  <CopyButton :copy-text="scope.row.materialName" />
+                  <span>{{ scope.row.materialName }}</span>
+                </template>
               </template>
             </el-table-column>
             <el-table-column align="left" label="规格型号" prop="specification" min-width="300" show-overflow-tooltip>
               <template slot-scope="scope">
-                <CopyButton :copy-text="scope.row.specification" />
-                <span>{{ scope.row.specification }}</span>
+                <template v-if="scope.row.isCustom">
+                  <el-input v-model="scope.row.specification" placeholder="请输入" size="mini" readonly
+                    @click.native="getRealMaterData(scope.$index, 'specification')" />
+                </template>
+                <template v-else>
+                  <CopyButton :copy-text="scope.row.specification" />
+                  <span>{{ scope.row.specification }}</span>
+                </template>
               </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
-                  v-if="title=='详情' && detailList.examineStatus !== 'OK'"
-                  :class="setColour(scope.row,'specification', 'realSpecification', 'depositSpecification')"
-                >
-                  {{ scope.row.depositSpecification }}
-                </div> -->
-                <el-input
-                  v-model="scope.row.depositSpecification"
-                  :class="setColour(scope.row,'specification', 'realSpecification', 'depositSpecification')"
-                  size="mini"
-                  readonly
-                  @click.native="getRealMaterData(scope.$index)"
-                />
+                <!-- <template v-if="scope.row.isCustom">
+                  <el-input v-model="scope.row.depositSpecification" size="mini" placeholder="请输入" />
+                </template>
+                <template v-else> -->
+                <el-input v-model="scope.row.depositSpecification"
+                  :class="setColour(scope.row, 'specification', 'realSpecification', 'depositSpecification')" size="mini"
+                  readonly @click.native="getRealMaterData(scope.$index, 'depositSpecification')" />
+                <!-- </template> -->
               </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
                   v-if="title=='详情'&& detailList.examineStatus !== 'OK'"
@@ -476,22 +467,18 @@
                 >
                   {{ scope.row.depositMaterialNumber }}
                 </div> -->
-                <el-input
-                  v-model="scope.row.depositMaterialNumber"
-                  :class="setColour(scope.row,'materialNumber', 'realMaterialNumber', 'depositMaterialNumber')"
-                  size="mini"
-                  readonly
-                  @click.native="getRealMaterData(scope.$index)"
-                />
+                <template v-if="scope.row.isCustom">
+                  <el-input v-model="scope.row.depositMaterialNumber" size="mini" placeholder="请输入" />
+                </template>
+                <template v-else>
+                  <el-input v-model="scope.row.depositMaterialNumber"
+                    :class="setColour(scope.row, 'materialNumber', 'realMaterialNumber', 'depositMaterialNumber')"
+                    size="mini" readonly @click.native="getRealMaterData(scope.$index, 'depositMaterialNumber')" />
+                </template>
               </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
                   v-if="title=='详情'&& detailList.examineStatus !== 'OK'"
@@ -499,71 +486,125 @@
                 >
                   {{ scope.row.depositMaterialOldNumber }}
                 </div> -->
-                <el-input
-                  v-model="scope.row.depositMaterialOldNumber"
-                  :class="setColour(scope.row,'materialOldNumber', 'realMaterialOldNumber', 'depositMaterialOldNumber')"
-                  size="mini"
-                  readonly
-                  @click.native="getRealMaterData(scope.$index)"
-                />
+                <template v-if="scope.row.isCustom">
+                  <el-input v-model="scope.row.depositMaterialOldNumber" size="mini" placeholder="请输入" />
+                </template>
+                <template v-else>
+                  <el-input v-model="scope.row.depositMaterialOldNumber" :class="setColour(scope.row, 'materialOldNumber', 'realMaterialOldNumber', 'depositMaterialOldNumber')
+                    " size="mini" readonly
+                    @click.native="getRealMaterData(scope.$index, 'depositMaterialOldNumber')" />
+                </template>
               </template>
             </el-table-column>
             <el-table-column align="right" label="单价" prop="price" min-width="160" show-overflow-tooltip>
               <template slot-scope="scope">
-                {{ scope.row.price | numToFixed }}
+                <template v-if="scope.row.isCustom">
+                  <el-input v-model.number="scope.row.price" size="mini" type="number" placeholder="请输入" />
+                </template>
+                <template v-else>
+                  {{ scope.row.price | numToFixed }}
+                </template>
+              </template>
+            </el-table-column>
+            <el-table-column align="right" label="数量" prop="qty" min-width="160" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <template v-if="scope.row.isCustom">
+                  <el-input v-model.number="scope.row.qty" @input="() => {
+                    scope.row.totalAmount = ((Number(scope.row.qty) || 0) * (Number(scope.row.price) || 0)).toFixed(2)
+                  }" size="mini" type="number" placeholder="请输入" />
+                </template>
+                <template v-else>
+                  {{ scope.row.qty }}
+                </template>
               </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="totalAmount" min-width="160" show-overflow-tooltip>
               <template slot-scope="scope">
-                {{ scope.row.totalAmount | numToFixed }}
+                <template v-if="scope.row.isCustom">
+                  <el-input v-model.number="scope.row.totalAmount" size="mini" type="number" placeholder="请输入" />
+                </template>
+                <template v-else>
+                  {{ scope.row.totalAmount | numToFixed }}
+                </template>
+              </template>
+            </el-table-column>
+            <el-table-column align="right" label="销售数量" prop="salesQty" min-width="160" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <template v-if="scope.row.isCustom">
+                  <el-input v-model.number="scope.row.salesQty" size="mini" type="number" placeholder="请输入" />
+                </template>
+                <template v-else>
+                  {{ scope.row.salesQty }}
+                </template>
               </template>
             </el-table-column>
-            <el-table-column align="right" label="销售数量" prop="salesQty" min-width="160" show-overflow-tooltip />
             <el-table-column align="right" label="销售金额" prop="salesAmount" min-width="160" show-overflow-tooltip>
               <template slot-scope="scope">
-                {{ scope.row.salesAmount | numToFixed }}
+                <template v-if="scope.row.isCustom">
+                  <el-input v-model.number="scope.row.salesAmount" size="mini" type="number" placeholder="请输入" />
+                </template>
+                <template v-else>
+                  {{ scope.row.salesAmount | numToFixed }}
+                </template>
+              </template>
+            </el-table-column>
+            <el-table-column align="right" label="押金数量" prop="hasSendQty" min-width="160" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <template v-if="scope.row.isCustom">
+                  <el-input v-model.number="scope.row.hasSendQty" size="mini" type="number" placeholder="请输入" />
+                </template>
+                <template v-else>
+                  {{ scope.row.hasSendQty }}
+                </template>
+              </template>
+            </el-table-column>
+            <el-table-column align="right" label="发货数量" prop="orderHasSendQty" min-width="160" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <template v-if="scope.row.isCustom">
+                  <el-input v-model.number="scope.row.orderHasSendQty" size="mini" type="number" placeholder="请输入" />
+                </template>
+                <template v-else>
+                  {{ scope.row.orderHasSendQty }}
+                </template>
               </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="depositAmount" min-width="160" show-overflow-tooltip>
               <template slot-scope="scope">
-                {{ scope.row.depositAmount | numToFixed }}
+                <template v-if="scope.row.isCustom">
+                  <el-input v-model.number="scope.row.depositAmount" size="mini" type="number" placeholder="请输入" />
+                </template>
+                <template v-else>
+                  {{ scope.row.depositAmount | numToFixed }}
+                </template>
               </template>
             </el-table-column>
             <el-table-column align="right" label="合同数量" prop="contractQty" min-width="160" show-overflow-tooltip>
               <template slot-scope="scope">
-                <el-input
-                  v-if="title !== '详情'"
-                  v-model.number="scope.row.contractQty"
-                  class="inpt"
-                  size="mini"
-                  clearable
-                />
-                <div v-else>
-                  {{ scope.row.contractQty }}
-                </div>
+                <template v-if="scope.row.isCustom">
+                  <el-input v-model.number="scope.row.contractQty" size="mini" type="number" placeholder="请输入" />
+                </template>
+                <template v-else>
+                  <el-input v-if="title !== '详情'" v-model.number="scope.row.contractQty" class="inpt" size="mini"
+                    clearable />
+                  <div v-else>
+                    {{ scope.row.contractQty }}
+                  </div>
+                </template>
               </template>
             </el-table-column>
             <el-table-column align="right" label="合同单价" prop="contractPrice" min-width="160" show-overflow-tooltip>
               <template slot-scope="scope">
-                <el-input
-                  v-if="title !== '详情'"
-                  v-model.number="scope.row.contractPrice"
-                  class="inpt"
-                  size="mini"
-                  clearable
-                />
-                <div v-else>
-                  {{ scope.row.contractPrice }}
-                </div>
+                <template v-if="scope.row.isCustom">
+                  <el-input v-model.number="scope.row.contractPrice" size="mini" type="number" placeholder="请输入" />
+                </template>
+                <template v-else>
+                  <el-input v-if="title !== '详情'" v-model.number="scope.row.contractPrice" class="inpt" size="mini"
+                    clearable />
+                  <div v-else>
+                    {{ scope.row.contractPrice }}
+                  </div>
+                </template>
+
               </template>
             </el-table-column>
             <el-table-column align="right" label="合同金额" prop="contractAmount" min-width="160" show-overflow-tooltip>
@@ -575,61 +616,53 @@
             </el-table-column>
             <el-table-column align="right" label="上交资料数量" prop="dataQty" min-width="160" show-overflow-tooltip>
               <template slot-scope="scope">
-                <el-input
-                  v-if="title !== '详情'"
-                  v-model.number.trim="scope.row.dataQty"
-                  class="inpt"
-                  size="mini"
-                  @blur="setDataQty($event, scope.row)"
-                />
-                <div v-else>
-                  {{ scope.row.dataQty }}
-                </div>
+                <template v-if="scope.row.isCustom">
+                  <el-input v-model.number="scope.row.dataQty" size="mini" type="number" placeholder="请输入" />
+                </template>
+                <template v-else>
+                  <el-input v-if="title !== '详情'" v-model.number.trim="scope.row.dataQty" class="inpt" size="mini"
+                    @blur="setDataQty($event, scope.row)" />
+                  <div v-else>
+                    {{ scope.row.dataQty }}
+                  </div>
+                </template>
               </template>
             </el-table-column>
             <el-table-column align="right" label="收差金额" prop="diffAmount" min-width="160" show-overflow-tooltip>
               <template slot-scope="scope">
-                {{ scope.row.diffAmount | numToFixed }}
+                <template v-if="scope.row.isCustom">
+                  <el-input v-model.number="scope.row.diffAmount" size="mini" type="number" placeholder="请输入" />
+                </template>
+                <template v-else>
+                  {{ scope.row.diffAmount | numToFixed }}
+                </template>
               </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 v-if="scope.row.isCustom">
+                  <el-input v-model.number="scope.row.diffPolicyPrice" size="mini" type="number" placeholder="请输入" />
+                </template>
+                <template v-else>
+                  {{ scope.row.diffPolicyPrice | numToFixed }}
+                </template>
               </template>
             </el-table-column>
           </el-table>
         </div>
       </div>
+      <div v-if="!isCustomer && title != '详情'" style="margin: 20px 0">
+        <el-button type="primary" size="small" @click="addBlankLine">添加空白行</el-button>
+      </div>
     </div>
     <h3>押金货品信息</h3>
     <el-divider />
     <!-- 列表 -->
     <div class="mymain-container">
       <div class="table">
-        <el-table
-          v-loading="listLoading"
-          :data="detailList.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
-          >
+        <el-table v-loading="listLoading" :data="detailList.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" />
               <span>{{ scope.row.refEnginRecordNo }}</span>
@@ -647,49 +680,25 @@
               <span>{{ scope.row.unit }}</span>
             </template>
           </el-table-column>
-          <el-table-column
-            align="left"
-            label="现金钱包"
-            prop="customerWalletName"
-            min-width="130"
-            show-overflow-tooltip
-          >
+          <el-table-column align="left" label="现金钱包" prop="customerWalletName" min-width="130" show-overflow-tooltip>
             <template slot-scope="scope">
               <CopyButton :copy-text="scope.row.customerWalletName" />
               <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>
             </template>
           </el-table-column>
-          <el-table-column
-            align="left"
-            label="金蝶物料类型名称"
-            prop="k3CategoryName"
-            min-width="130"
-            show-overflow-tooltip
-          >
+          <el-table-column align="left" label="金蝶物料类型名称" prop="k3CategoryName" min-width="130" show-overflow-tooltip>
             <template slot-scope="scope">
               <CopyButton :copy-text="scope.row.k3CategoryName" />
               <span>{{ scope.row.k3CategoryName }}</span>
             </template>
           </el-table-column>
-          <el-table-column
-            align="left"
-            label="金蝶物料类型编码"
-            prop="k3CategoryNumber"
-            min-width="130"
-            show-overflow-tooltip
-          >
+          <el-table-column align="left" label="金蝶物料类型编码" prop="k3CategoryNumber" min-width="130" show-overflow-tooltip>
             <template slot-scope="scope">
               <CopyButton :copy-text="scope.row.k3CategoryNumber" />
               <span>{{ scope.row.k3CategoryNumber }}</span>
@@ -701,25 +710,13 @@
               <span>{{ scope.row.materialName }}</span>
             </template>
           </el-table-column>
-          <el-table-column
-            align="left"
-            label="金蝶物料编码"
-            prop="materialNumber"
-            min-width="130"
-            show-overflow-tooltip
-          >
+          <el-table-column align="left" label="金蝶物料编码" prop="materialNumber" min-width="130" show-overflow-tooltip>
             <template slot-scope="scope">
               <CopyButton :copy-text="scope.row.materialNumber" />
               <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>
@@ -732,13 +729,7 @@
               {{ scope.row.price | numToFixed }}
             </template>
           </el-table-column>
-          <el-table-column
-            align="left"
-            label="已退押金金额"
-            prop="refundDepositAmount"
-            min-width="130"
-            show-overflow-tooltip
-          >
+          <el-table-column align="left" label="已退押金金额" prop="refundDepositAmount" min-width="130" show-overflow-tooltip>
             <template slot-scope="scope">
               {{ scope.row.refundDepositAmount | numToFixed }}
             </template>
@@ -761,27 +752,14 @@
     <!-- 列表 -->
     <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">
@@ -796,11 +774,8 @@
           </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>
@@ -836,15 +811,8 @@
     <!-- 列表 -->
     <div class="mymain-container">
       <div class="table">
-        <el-table
-          v-loading="listLoading"
-          :data="detailList.checkRecordItems"
-          element-loading-text="Loading"
-          border
-          fit
-          highlight-current-row
-          stripe
-        >
+        <el-table v-loading="listLoading" :data="detailList.checkRecordItems" element-loading-text="Loading" border fit
+          highlight-current-row stripe>
           <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-column align="left" label="申请说明" prop="applyNote" min-width="160" show-overflow-tooltip />
@@ -860,18 +828,12 @@
       </div>
     </div>
 
-    <h3
-      v-if="
-        detailList.examineStatus == 'WAIT' || detailList.examineStatus == 'FAIL' || detailList.examineStatus == 'OK'
-      "
-    >
+    <h3 v-if="detailList.examineStatus == 'WAIT' || detailList.examineStatus == 'FAIL' || detailList.examineStatus == 'OK'
+      ">
       审批
     </h3>
-    <el-divider
-      v-if="
-        detailList.examineStatus == 'WAIT' || detailList.examineStatus == 'FAIL' || detailList.examineStatus == 'OK'
-      "
-    />
+    <el-divider v-if="detailList.examineStatus == 'WAIT' || detailList.examineStatus == 'FAIL' || detailList.examineStatus == 'OK'
+      " />
     <div v-if="detailList.examineStatus == 'WAIT'" class="diy-table-1">
       <el-row :gutter="0">
         <el-col :xs="12" :sm="12" :lg="12" class="item">
@@ -881,15 +843,8 @@
         <el-col :xs="12" :sm="12" :lg="12" class="item dateS">
           <div class="label">受理日期</div>
           <div class="value">
-            <el-date-picker
-              readonly
-              prefix-icon="''"
-              class="selectStyle"
-              type="datetime"
-              placeholder="系统自动生成"
-              default-time="00:00:00"
-              value-format="yyyy-MM-dd HH:mm:ss"
-            />
+            <el-date-picker readonly prefix-icon="''" class="selectStyle" 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">
@@ -919,16 +874,8 @@
         <el-col :xs="12" :sm="12" :lg="12" class="item dateS">
           <div class="label">受理日期</div>
           <div class="value">
-            <el-date-picker
-              v-model="detailList.checkDate"
-              readonly
-              prefix-icon="''"
-              class="selectStyle"
-              type="datetime"
-              placeholder=""
-              default-time="00:00:00"
-              value-format="yyyy-MM-dd HH:mm:ss"
-            />
+            <el-date-picker v-model="detailList.checkDate" readonly prefix-icon="''" class="selectStyle" 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">
@@ -955,55 +902,26 @@
       </el-row>
     </div>
     <div>
-      <div
-        v-if="
-          detailList.dataState == 'AMEND' || detailList.dataState == 'WAIT_REVIEW' || detailList.dataState == 'REVIEW'
-        "
-      >
+      <div v-if="detailList.dataState == 'AMEND' || detailList.dataState == 'WAIT_REVIEW' || detailList.dataState == 'REVIEW'
+        ">
         <h3 class="gdzl">补充资料</h3>
         <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]"
-                  />
+                  <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) == '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>
@@ -1013,11 +931,8 @@
               </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>
@@ -1079,18 +994,10 @@
     <div class="btn-group clearfix">
       <div class="fl">
         <!-- <el-button  type="primary" size="small" @click="handleEdit">保存</el-button> -->
-        <el-button
-          v-if="detailList.examineStatus == 'WAIT'"
-          type="primary"
-          size="small"
-          @click="adoptFn"
-        >审批通过</el-button>
-        <el-button
-          v-if="detailList.examineStatus == 'WAIT'"
-          type="primary"
-          size="small"
-          @click="rejectFn"
-        >审批驳回</el-button>
+        <el-button v-if="detailList.examineStatus == 'WAIT'" type="primary" size="small" @click="adoptFn">审批通过
+        </el-button>
+        <el-button v-if="detailList.examineStatus == 'WAIT'" type="primary" size="small" @click="rejectFn">审批驳回
+        </el-button>
         <el-button v-if="title == '详情'" type="primary" size="small" @click="saveFn">保存</el-button>
       </div>
     </div>
@@ -1137,27 +1044,15 @@
           </el-table-column>
           <el-table-column align="center" label="销售类型" prop="saleName" min-width="100" show-overflow-tooltip />
           <el-table-column align="center" label="物料编码" prop="number" min-width="100" show-overflow-tooltip />
-          <el-table-column
-            align="center"
-            label="产品编码"
-            prop="materialOldNumber"
-            min-width="100"
-            show-overflow-tooltip
-          />
+          <el-table-column align="center" label="产品编码" prop="materialOldNumber" min-width="100" show-overflow-tooltip />
           <el-table-column align="center" label="产品名称" prop="name" min-width="160" show-overflow-tooltip />
           <el-table-column align="center" label="产品型号" prop="specification" min-width="160" show-overflow-tooltip />
           <el-table-column align="center" label="产品价格" prop="batchPrice" min-width="80" show-overflow-tooltip />
         </el-table>
         <div class="pagination clearfix" style="margin-top: 10px">
           <div class="fr">
-            <el-pagination
-              :current-page="currentPage"
-              :page-size="10"
-              background
-              layout="prev, pager, next"
-              :total="listTotal"
-              @current-change="handleTableCurrentChange"
-            />
+            <el-pagination :current-page="currentPage" :page-size="10" background layout="prev, pager, next"
+              :total="listTotal" @current-change="handleTableCurrentChange" />
           </div>
         </div>
       </div>
@@ -1179,9 +1074,7 @@ import {
   editManageExamine,
   getDepositManageEdit
 } from '@/api/engin_deposit/refund_list'
-import {
-  getRetailProductList
-} from '@/api/supply/engin'
+import { getRetailProductList } from '@/api/supply/engin'
 import { computeDiff } from '@/api/engin_deposit.js'
 
 export default {
@@ -1196,7 +1089,6 @@ export default {
     ...mapGetters(['name']),
     comTotal() {
       return (qty, price) => {
-        console.log(qty, price)
         return Number(qty) * Number(price)
       }
     },
@@ -1384,9 +1276,11 @@ export default {
                         })
                     }
                   })
-                  .finally(res => {})
+                  .finally(res => {
+                  })
+              })
+              .catch(() => {
               })
-              .catch(() => {})
           } else {
             getDepositManageExamine(data)
               .then(res => {
@@ -1409,10 +1303,12 @@ export default {
                     })
                 }
               })
-              .finally(res => {})
+              .finally(res => {
+              })
           }
         })
-        .catch(() => {})
+        .catch(() => {
+        })
       // if (!this.detailList.installDate) {
       //   this.$message.error("请选择安装时间");
       //   return;
@@ -1492,9 +1388,11 @@ export default {
                         })
                     }
                   })
-                  .finally(res => {})
+                  .finally(res => {
+                  })
+              })
+              .catch(() => {
               })
-              .catch(() => {})
           } else {
             getDepositManageExamine(data)
               .then(res => {
@@ -1519,10 +1417,12 @@ export default {
                     })
                 }
               })
-              .finally(res => {})
+              .finally(res => {
+              })
           }
         })
-        .catch(() => {})
+        .catch(() => {
+        })
 
       // if (!this.detailList.installDate) {
       //   this.$message.error("请选择安装时间");
@@ -1568,13 +1468,14 @@ export default {
       }
       const arr = []
       res.data.items.forEach(item => {
-        if (Number(item.qty) > 0) {
+        if (Number(item.qty) > 0 || !item.isSource) {
           arr.push(item)
         }
         // item.number = (item.qty*100 - item.directTransferQty*100 - item.retiredQty*100) / 100;
-        item.sums1 = ['orderHasSendQty', 'dataQty', 'qty', 'hasSendQty', 'contractQty']
+        item.sums1 = ['orderHasSendQty', 'dataQty', 'qty', 'hasSendQty', 'contractQty',"salesQty"]
         item.sums2 = [
           'totalAmount',
+          "salesAmount",
           'diffAmount',
           'price',
           'depositAmount',
@@ -1588,22 +1489,25 @@ export default {
         item.sums1 = ['orderHasSendQty', 'dataQty', 'hasSendQty']
         item.sums2 = ['price', 'refundDepositAmount', 'depositAmount']
       })
+      if (res.data.examineStatus == 'SAVE' || res.data.examineStatus == 'OK' || res.data.examineStatus == 'FAIL') {
+        this.title = '详情'
+      }
       res.data.items = arr
       this.amendData = res.data.dataList.filter(k => k.dataPosition == 'AMEND')
       this.original = res.data.dataList.filter(k => k.dataPosition != 'AMEND')
       res.data.realUseUnit = res.data.realUseUnit || res.data.refUseUnit
       res.data.realInstallAddress = res.data.realInstallAddress || res.data.refInstallAddress
       this.detailList = res.data
-      if (res.data.examineStatus == 'SAVE' || res.data.examineStatus == 'OK' || res.data.examineStatus == 'FAIL') {
-        this.title = '详情'
-      }
     },
 
     goBack() {
       this.$emit('setShowPage', 0)
     },
-    getRealMaterData(id) {
+    getRealMaterData(id, type) {
+      // 
+      this.currentType = type
       this.currentId = id
+      this.currentRadio = ""
       this.isSetMaterial = true
       this.getGoodsList()
     },
@@ -1638,12 +1542,22 @@ export default {
       //        realSpecification
       // 实装规格型号
       const currentData = this.leftGoodsList.find(e => e.id === this.currentRadio)
-      this.$set(this.detailList.items[this.currentId], 'depositMaterialId', currentData.materialId)
-      this.$set(this.detailList.items[this.currentId], 'depositMaterialName', currentData.materialName)
-      this.$set(this.detailList.items[this.currentId], 'depositMaterialNumber', currentData.materialNumber)
-      this.$set(this.detailList.items[this.currentId], 'depositMaterialOldNumber', currentData.materialOldNumber)
-      this.$set(this.detailList.items[this.currentId], 'depositSpecification', currentData.specification)
+      if (this.currentType == "specification") {
+        this.$set(this.detailList.items[this.currentId], 'specification', currentData.specification)
+        this.$set(this.detailList.items[this.currentId], 'materialName', currentData.materialName)
+        this.$set(this.detailList.items[this.currentId], 'materialNumber', currentData.materialNumber)
+        this.$set(this.detailList.items[this.currentId], 'materialOldNumber', currentData.materialOldNumber)
+      } else {
+        this.$set(this.detailList.items[this.currentId], 'depositMaterialId', currentData.materialId)
+        this.$set(this.detailList.items[this.currentId], 'depositMaterialName', currentData.materialName)
+        this.$set(this.detailList.items[this.currentId], 'depositMaterialNumber', currentData.materialNumber)
+        this.$set(this.detailList.items[this.currentId], 'depositMaterialOldNumber', currentData.materialOldNumber)
+        this.$set(this.detailList.items[this.currentId], 'depositSpecification', currentData.specification)
+      }
       this.isSetMaterial = false
+
+
+
     },
     // 关闭 弹窗
     closeDialog() {
@@ -1666,19 +1580,93 @@ export default {
     submitGoodsScreenForm() {
       this.currentPage = 1
       this.getGoodsList()
+    },
+    addBlankLine() {
+      this.detailList.items.push({
+        id: null,
+        parentId: this.detailId,
+        refEnginRecordNo: this.detailList.refEnginRecordNo,
+        specialItemNo: null,
+        specialItemNoNumber: null,
+        factoryNo: null,
+        factoryNoNumber: null,
+        specialNo: null,
+        specialNoNumber: null,
+        billNo: null,
+        billNoNumber: null,
+        materialId: null,
+        materialName: null,
+        materialNumber: null,
+        materialOldNumber: null,
+        specification: null,
+        unit: null,
+        k3CategoryId: null,
+        k3CategoryNumber: null,
+        k3CategoryName: null,
+        enginPrice: null,
+        enginTotality: null,
+        enginNum: null,
+        price: null,
+        qty: null,
+        totalAmount: null,
+        customerWalletId: null,
+        customerWalletNumber: null,
+        customerWalletName: null,
+        tax: null,
+        remark: null,
+        hasSendQty: null,
+        depositAmount: null,
+        dataQty: null,
+        diffPolicyPrice: null,
+        diffPrice: null,
+        diffAmount: null,
+        realMaterialId: null,
+        realMaterialName: null,
+        realMaterialNumber: null,
+        realMaterialOldNumber: null,
+        realSpecification: null,
+        contractQty: null,
+        contractPrice: null,
+        contractAmount: null,
+        mailFactoryDate: null,
+        mailFactoryYear: null,
+        confirmDate: null,
+        settlementNo: null,
+        settlementDate: null,
+        inFactoryDate: null,
+        inFactoryType: null,
+        salesQty: null,
+        salesAmount: null,
+        createBy: null,
+        createTime: null,
+        depositMaterialId: null,
+        depositMaterialName: null,
+        depositMaterialNumber: null,
+        depositMaterialOldNumber: null,
+        depositSpecification: null,
+        orderHasSendQty: null,
+        saleTypeId: null,
+        sums1: [],
+        sums2: [],
+        isCustom: true,
+        isSource: false
+      })
     }
   }
 }
 </script>
 
 <style lang="scss" scoped>
-
-::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;
 }
+
 .inpt {
   ::v-deep .el-input__inner {
     text-align: right;

+ 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')}>

+ 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>

+ 3 - 3
src/views/notice.vue

@@ -336,9 +336,9 @@ export default {
               </el-button>
             ) : null}
             <el-popconfirm
-       
+
               title="确定删除吗?"
-              onOnConfirm={() => this.deleteData(row.noticeId)}
+              onConfirm={() => this.deleteData(row.noticeId)}
             >
               <el-button slot="reference" type="text" size="mini">
                 删除
@@ -404,7 +404,7 @@ export default {
 
     // 详情 - 打开弹窗
     openDetail(id) {
-      getDetail({ id }).then(res => {
+      getDetail({ id, isTopRead:true }).then(res => {
         this.detailData = res.data
         this.detailDialog = true
       })

+ 1 - 1
src/views/pset/login_setting.vue

@@ -71,7 +71,7 @@
             <el-popconfirm
               title="确定要删除这张轮播图吗?"
               style="margin-left: 10px"
-              @onConfirm="hanleDelete(scope.row.id)"
+              @confirm="hanleDelete(scope.row.id)"
             >
               <el-button slot="reference" type="text" size="small">删除</el-button>
             </el-popconfirm>

Някои файлове не бяха показани, защото твърде много файлове са промени