فهرست منبع

Merge branch 'develop_yh13' of http://git.chelingzhu.com/jianguan-web/jg-ocs-html into develop_yh13

chenrui 2 سال پیش
والد
کامیت
766d751e3f

+ 63 - 40
package-lock.json

@@ -1222,9 +1222,9 @@
       },
       "dependencies": {
         "core-js": {
-          "version": "3.9.1",
-          "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.9.1.tgz",
-          "integrity": "sha512-gSjRvzkxQc1zjM/5paAmL4idJBFzuJoo+jDjF1tStYFMV2ERfD02HhahhCGXUyHxQRG4yFKVSdO6g62eoRMcDg=="
+          "version": "3.29.1",
+          "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.29.1.tgz",
+          "integrity": "sha512-+jwgnhg6cQxKYIIjGtAHq2nwUOolo9eoFZ4sHfUH09BLXBgxnH4gA0zEd+t+BO2cNB8idaBtZFcFTRjQJRJmAw=="
         }
       }
     },
@@ -1984,9 +1984,15 @@
       },
       "dependencies": {
         "@babel/parser": {
+<<<<<<< HEAD
           "version": "7.21.2",
           "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.2.tgz",
           "integrity": "sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ=="
+=======
+          "version": "7.21.3",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.3.tgz",
+          "integrity": "sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ=="
+>>>>>>> 1a5cd462e1f0e1c42d45d0ca1136eb824ca51caf
         },
         "postcss": {
           "version": "8.4.21",
@@ -2423,9 +2429,9 @@
       "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
     },
     "ant-design-vue": {
-      "version": "1.7.4",
-      "resolved": "https://registry.npmjs.org/ant-design-vue/-/ant-design-vue-1.7.4.tgz",
-      "integrity": "sha512-f9/4I34Yq562X70aspSFzw4BCuKRICzDvIocXpsYCC+B9+kjB8db246fpSMtV/1anqxcmGHf7Vh0XJ+ovHJKMw==",
+      "version": "1.7.8",
+      "resolved": "https://registry.npmjs.org/ant-design-vue/-/ant-design-vue-1.7.8.tgz",
+      "integrity": "sha512-F1hmiS9vwbyfuFvlamdW5l9bHKqRlj9wHaGDIE41NZMWXyWy8qL0UFa/+I0Wl8gQWZCqODW5pN6Yfoyn85At3A==",
       "requires": {
         "@ant-design/icons": "^2.1.1",
         "@ant-design/icons-vue": "^2.0.0",
@@ -2698,9 +2704,9 @@
       "dev": true
     },
     "async-validator": {
-      "version": "3.5.1",
-      "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-3.5.1.tgz",
-      "integrity": "sha512-DDmKA7sdSAJtTVeNZHrnr2yojfFaoeW8MfQN8CeuXg8DDQHTqKk9Fdv38dSvnesHoO8MUwMI2HphOeSyIF+wmQ=="
+      "version": "3.5.2",
+      "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-3.5.2.tgz",
+      "integrity": "sha512-8eLCg00W9pIRZSB781UUX/H6Oskmm8xloZfr09lz5bikRpBVDlJ3hRVuxxP1SxcwsEYfJ4IU8Q19Y8/893r3rQ=="
     },
     "asynckit": {
       "version": "0.4.0",
@@ -3866,9 +3872,9 @@
       }
     },
     "classnames": {
-      "version": "2.2.6",
-      "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz",
-      "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q=="
+      "version": "2.3.2",
+      "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz",
+      "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw=="
     },
     "clean-css": {
       "version": "4.2.1",
@@ -4268,7 +4274,7 @@
     "component-classes": {
       "version": "1.2.6",
       "resolved": "https://registry.npmjs.org/component-classes/-/component-classes-1.2.6.tgz",
-      "integrity": "sha1-xkI5TDYYpNiwuJGe/Mu9kw5c1pE=",
+      "integrity": "sha512-hPFGULxdwugu1QWW3SvVOCUHLzO34+a2J6Wqy0c5ASQkfi9/8nZcBB0ZohaEbXOQlCflMAEMmEWk7u7BVs4koA==",
       "requires": {
         "component-indexof": "0.0.3"
       }
@@ -4282,7 +4288,7 @@
     "component-indexof": {
       "version": "0.0.3",
       "resolved": "https://registry.npmjs.org/component-indexof/-/component-indexof-0.0.3.tgz",
-      "integrity": "sha1-EdCRMSI5648yyPJa6csAL/6NPCQ="
+      "integrity": "sha512-puDQKvx/64HZXb4hBwIcvQLaLgux8o1CbWl39s41hrIIZDl1lJiD5jc22gj3RBeGK0ovxALDYpIbyjqDUUl0rw=="
     },
     "compressible": {
       "version": "2.0.17",
@@ -5708,14 +5714,14 @@
       }
     },
     "dom-align": {
-      "version": "1.12.0",
-      "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.12.0.tgz",
-      "integrity": "sha512-YkoezQuhp3SLFGdOlr5xkqZ640iXrnHAwVYcDg8ZKRUtO7mSzSC2BA5V0VuyAwPSJA4CLIc6EDDJh4bEsD2+zA=="
+      "version": "1.12.4",
+      "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.12.4.tgz",
+      "integrity": "sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw=="
     },
     "dom-closest": {
       "version": "0.2.0",
       "resolved": "https://registry.npmjs.org/dom-closest/-/dom-closest-0.2.0.tgz",
-      "integrity": "sha1-69n5HRvyLo1vR3h2u80+yQIWwM8=",
+      "integrity": "sha512-6neTn1BtJlTSt+XSISXpnOsF1uni1CHsP/tmzZMGWxasYFHsBOqrHPnzmneqEgKhpagnfnfSfbvRRW0xFsBHAA==",
       "requires": {
         "dom-matches": ">=1.0.1"
       }
@@ -5738,7 +5744,7 @@
     "dom-matches": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/dom-matches/-/dom-matches-2.0.0.tgz",
-      "integrity": "sha1-0nKLQWqHUzmA6wibhI0lPPI6dYw="
+      "integrity": "sha512-2VI856xEDCLXi19W+4BechR5/oIS6bKCKqcf16GR8Pg7dGLJ/eBOWVbCmQx2ISvYH6wTNx5Ef7JTOw1dRGRx6A=="
     },
     "dom-scroll-into-view": {
       "version": "2.0.1",
@@ -5858,12 +5864,21 @@
       }
     },
     "echarts": {
+<<<<<<< HEAD
       "version": "5.4.1",
       "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.4.1.tgz",
       "integrity": "sha512-9ltS3M2JB0w2EhcYjCdmtrJ+6haZcW6acBolMGIuf01Hql1yrIV01L1aRj7jsaaIULJslEP9Z3vKlEmnJaWJVQ==",
       "requires": {
         "tslib": "2.3.0",
         "zrender": "5.4.1"
+=======
+      "version": "5.4.2",
+      "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.4.2.tgz",
+      "integrity": "sha512-2W3vw3oI2tWJdyAz+b8DuWS0nfXtSDqlDmqgin/lfzbkB01cuMEN66KWBlmur3YMp5nEDEEt5s23pllnAzB4EA==",
+      "requires": {
+        "tslib": "2.3.0",
+        "zrender": "5.4.3"
+>>>>>>> 1a5cd462e1f0e1c42d45d0ca1136eb824ca51caf
       },
       "dependencies": {
         "tslib": {
@@ -9075,7 +9090,7 @@
     "intersperse": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/intersperse/-/intersperse-1.0.0.tgz",
-      "integrity": "sha1-8lYfsc/vn1J3zDNHoiiGtDUaUYE="
+      "integrity": "sha512-LGcfug7OTeWkaQ8PEq8XbTy9Jl6uCNg8DrPnQUmwxSY8UETj1Y+LLmpdD0qHdEj6KVchuH3BE3ZzIXQ1t3oFUw=="
     },
     "invariant": {
       "version": "2.2.4",
@@ -9271,9 +9286,9 @@
       "integrity": "sha512-wW/SXnYJkTjs++tVK5b6kVITZpAZPtUrt9SF80vvxGiF/Oywal+COk1jlRkiVq15RFNEQKQY31TkV24/1T5cVg=="
     },
     "is-negative-zero": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
-      "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w=="
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
+      "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA=="
     },
     "is-number": {
       "version": "3.0.0",
@@ -11253,7 +11268,7 @@
     "json2mq": {
       "version": "0.2.0",
       "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz",
-      "integrity": "sha1-tje9O6nqvhIsg+lyBIOusQ0skEo=",
+      "integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==",
       "requires": {
         "string-convert": "^0.2.0"
       }
@@ -11620,11 +11635,6 @@
       "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz",
       "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ="
     },
-    "lodash.toarray": {
-      "version": "4.4.0",
-      "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz",
-      "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE="
-    },
     "lodash.transform": {
       "version": "4.6.0",
       "resolved": "https://registry.npmjs.org/lodash.transform/-/lodash.transform-4.6.0.tgz",
@@ -12177,9 +12187,15 @@
       "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg=="
     },
     "nanoid": {
+<<<<<<< HEAD
       "version": "3.3.4",
       "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
       "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
+=======
+      "version": "3.3.6",
+      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
+      "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA=="
+>>>>>>> 1a5cd462e1f0e1c42d45d0ca1136eb824ca51caf
     },
     "nanomatch": {
       "version": "1.2.13",
@@ -12209,9 +12225,9 @@
       }
     },
     "nanopop": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/nanopop/-/nanopop-2.1.0.tgz",
-      "integrity": "sha512-jGTwpFRexSH+fxappnGQtN9dspgE2ipa1aOjtR24igG0pv6JCxImIAmrLRHX+zUF5+1wtsFVbKyfP51kIGAVNw=="
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/nanopop/-/nanopop-2.2.0.tgz",
+      "integrity": "sha512-E9JaHcxh3ere8/BEZHAcnuD10RluTSPyTToBvoFWS9/7DcCx6gyKjbn7M7Bx7E1veCxCuY1iO6h4+gdAf1j73Q=="
     },
     "natural-compare": {
       "version": "1.4.0",
@@ -12256,11 +12272,18 @@
       }
     },
     "node-emoji": {
-      "version": "1.10.0",
-      "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz",
-      "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==",
+      "version": "1.11.0",
+      "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz",
+      "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==",
       "requires": {
-        "lodash.toarray": "^4.4.0"
+        "lodash": "^4.17.21"
+      },
+      "dependencies": {
+        "lodash": {
+          "version": "4.17.21",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+          "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+        }
       }
     },
     "node-fetch": {
@@ -15920,7 +15943,7 @@
     "string-convert": {
       "version": "0.2.1",
       "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz",
-      "integrity": "sha1-aYLMMEn7tM2F+LJFaLnZvznu/5c="
+      "integrity": "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A=="
     },
     "string-length": {
       "version": "2.0.0",
@@ -18169,9 +18192,9 @@
       }
     },
     "zrender": {
-      "version": "5.4.1",
-      "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.4.1.tgz",
-      "integrity": "sha512-M4Z05BHWtajY2241EmMPHglDQAJ1UyHQcYsxDNzD9XLSkPDqMq4bB28v9Pb4mvHnVQ0GxyTklZ/69xCFP6RXBA==",
+      "version": "5.4.3",
+      "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.4.3.tgz",
+      "integrity": "sha512-DRUM4ZLnoaT0PBVvGBDO9oWIDBKFdAVieNWxWwK0niYzJCMwGchRk21/hsE+RKkIveH3XHCyvXcJDkgLVvfizQ==",
       "requires": {
         "tslib": "2.3.0"
       },

+ 1 - 1
package.json

@@ -15,7 +15,7 @@
   },
   "dependencies": {
     "@antv/data-set": "^0.10.2",
-    "ant-design-vue": "^1.7.1",
+    "ant-design-vue": "^1.7.8",
     "axios": "^0.19.0",
     "core-js": "2.6.9",
     "enquire.js": "^2.1.6",

+ 1 - 1
public/version.json

@@ -1,4 +1,4 @@
 {
-    "version": "2.1.80",
+    "version": "2.2.1",
     "message": "发现有新版本发布,确定更新系统?"
 }

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

@@ -2342,7 +2342,7 @@ export const asyncRouterMap = [
         meta: {
           title: '产品返利表',
           icon: 'profile',
-          permission: 'M_productRebateReport'
+          // permission: 'M_productRebateReport'
         },
         children: [
           {
@@ -2353,7 +2353,7 @@ export const asyncRouterMap = [
             meta: {
               title: '产品返利明细表',
               icon: 'profile',
-              permission: 'M_productRebateReportList'
+              // permission: 'M_productRebateReportList'
             },
             hideChildrenInMenu: true,
             children: [
@@ -2365,7 +2365,7 @@ export const asyncRouterMap = [
                   title: '产品返利明细表',
                   icon: 'profile',
                   hidden: true,
-                  permission: 'M_productRebateReportList'
+                  // permission: 'M_productRebateReportList'
                 }
               }
             ]

+ 76 - 35
src/views/common/chooseDealer.vue

@@ -37,7 +37,7 @@
             </a-col>
           </div>
           <a-col :md="pageType!='viewDealers'?8:6" :sm="24" style="margin-bottom: 10px;">
-            <a-button type="primary" @click="$refs.table.refresh(true)" :disabled="disabled" id="chooseDealer-refresh">查询</a-button>
+            <a-button type="primary" @click="searchForm(true)" :disabled="disabled" id="chooseDealer-refresh">查询</a-button>
             <a-button style="margin-left: 5px" @click="resetSearchForm" :disabled="disabled" id="chooseDealer-reset">重置</a-button>
           </a-col>
         </a-row>
@@ -46,7 +46,7 @@
       <div style="margin-bottom: 10px">
         <a-button type="primary" ghost :loading="loading" @click="handleBatchAudit">批量添加</a-button>
         <span style="margin-left: 5px">
-          <template v-if="rowSelectionInfo&&rowSelectionInfo.selectedRowKeys.length>0"> {{ `已选 ${rowSelectionInfo.selectedRowKeys.length} 项` }} </template>
+          <template v-if="selectCount"> {{ `已选 ${selectCount} 项` }} </template>
         </span>
       </div>
     </div>
@@ -54,9 +54,9 @@
       class="sTable"
       ref="table"
       size="small"
-      :rowKey="(record) => record.stockPutSn"
-      rowKeyName="stockPutSn"
-      :row-selection="$hasPermissions('B_warehousingConfirmationpl') ? { columnWidth: 40, getCheckboxProps: record => ({ props: { disabled: record.auditState != 'WAIT' } }) } : null"
+      :rowKey="(record) => record.dealerSn"
+      rowKeyName="dealerSn"
+      :row-selection="{ columnWidth: 40, getCheckboxProps: record => ({ props: { disabled: !!record.subareaAreaSn } }) }"
       @rowSelection="rowSelectionFun"
       :columns="columns"
       :data="loadData"
@@ -64,13 +64,19 @@
       :scroll="{ y: tableHeight }"
       :defaultLoadData="false"
       bordered>
+      <template slot="areas" slot-scope="text, record">
+        <span v-if="record.subareaNameSet">{{ record.subareaNameSet[0] }}</span>
+        <span v-else>--</span>
+      </template>
       <template slot="action" slot-scope="text, record">
         <a-button
           size="small"
           type="link"
           class="button-error"
           @click="handleAdd(record)"
+          v-if="record.subareaAreaSn != parentData.subareaAreaSn"
           id="marketingDivisionSetNew-del-btn">添加</a-button>
+        <span style="color:#666" v-else>已添加</span>
       </template>
     </s-table>
   </a-spin>
@@ -90,6 +96,12 @@ export default {
     pageType: {
       type: String,
       default: ''
+    },
+    parentData: {
+      type: Object,
+      default: function(){
+        return null
+      }
     }
   },
   data () {
@@ -97,22 +109,27 @@ export default {
       spinning: false,
       queryParam: { //  查询条件
         nameLike: '',
-        dealerType: undefined,
-        dealerLevel: undefined,
-        subareaSn: undefined
+        dealerType: null,
+        dealerLevel: null,
+        auditState: undefined,
+        provinceSn: undefined,
+        citySn: undefined,
+        districtSn: undefined
       },
       tableHeight: 0,
       disabled: false, //  查询、重置按钮是否可操作
       loading: false, // 批量添加loading
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
-        this.disabled = true
         this.spinning = true
         return queryDealerPageList(Object.assign(parameter, this.queryParam)).then(res => {
           let data
           if (res.status == 200) {
             data = res.data
-            this.disabled = false
+            const no = 0
+            for (var i = 0; i < data.length; i++) {
+              data[i].no = no + i + 1
+            }
           }
           this.spinning = false
           return data
@@ -125,20 +142,23 @@ export default {
     columns () {
       const _this = this
       const arr = [
-        { title: '经销商名称', dataIndex: 'putTime', width: '30%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '商户别名', dataIndex: 'providerName', align: 'left', width: '30%', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '商户类型', dataIndex: 'putBizTypeDictValue', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '商户级别', dataIndex: 'auditStateDictValue', width: '15%', align: 'center', customRender: function (text) { return text || '--' } }
+        { title: '经销商名称', dataIndex: 'dealerName', width: '30%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true  },
+        { title: '商户别名', dataIndex: 'dealerAlias', align: 'left', width: '30%', customRender: function (text) { return text || '--' }},
+        { title: '商户类型', dataIndex: 'dealerTypeDictValue', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '商户级别', dataIndex: 'dealerLevelDictValue', width: '15%', align: 'center', customRender: function (text) { return text || '--' } }
       ]
       if (_this.pageType == 'viewDealers') {
-        arr.splice(4, 0, { title: '审核状态', dataIndex: 'remark', width: '20%', align: 'left', customRender: function (text) { return text || '--' } })
-        arr.splice(5, 0, { title: '当前所属区域', dataIndex: 'remark', width: '20%', align: 'left', customRender: function (text) { return text || '--' } })
-        arr.splice(6, 0, { title: '操作', scopedSlots: { customRender: 'action' }, width: '30%', align: 'center' })
+        arr.splice(4, 0, { title: '审核状态', dataIndex: 'auditStateDictValue', width: '20%', align: 'center', customRender: function (text) { return text || '--' } })
+        arr.splice(5, 0, { title: '当前所属区域', scopedSlots: { customRender: 'areas' }, width: '30%', align: 'center' })
+        arr.splice(6, 0, { title: '操作', scopedSlots: { customRender: 'action' }, width: '20%', align: 'center' })
       } else {
-        arr.splice(4, 0, { title: '所在区域', dataIndex: 'remark', width: '20%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true })
-        arr.splice(5, 0, { title: '所在分区', dataIndex: 'remark', width: '20%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true })
+        arr.splice(4, 0, { title: '所在区域', dataIndex: 'subareaName', width: '20%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true })
+        arr.splice(5, 0, { title: '所在分区', dataIndex: 'subareaAreaName', width: '20%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true })
       }
       return arr
+    },
+    selectCount(){
+      return this.rowSelectionInfo && this.rowSelectionInfo.selectedRowKeys.length
     }
   },
   methods: {
@@ -151,10 +171,24 @@ export default {
       this.queryParam.citySn = val[1] ? val[1] : ''
       this.queryParam.districtSn = val[2] ? val[2] : ''
     },
+    searchForm(flag){
+      this.$refs.table.refresh(flag)
+      this.$refs.table.clearSelected()
+      this.spinning = false
+    },
     //  重置
     resetSearchForm () {
+      this.queryParam = {
+        nameLike: '',
+        dealerType: null,
+        dealerLevel: null,
+        auditState: undefined,
+        provinceSn: undefined,
+        citySn: undefined,
+        districtSn: undefined
+      }
       this.$refs.table.refresh(true)
-      this.rowSelectionInfo = null
+      this.$refs.table.clearSelected()
     },
     clearTable(){
       this.rowSelectionInfo = null
@@ -167,11 +201,26 @@ export default {
         _this.$message.warning('请在列表勾选后再进行批量操作!')
         return
       }
-      this.isBatch = true
-      this.confirmationModal = true
+      const dealerSnList = _this.rowSelectionInfo.selectedRowKeys
+      this.spinning = true
+      this.$emit("plAdd",dealerSnList)
     },
     handleAdd(row){
-
+      if(row.subareaNameSet&&row.subareaNameSet.length){
+        const _this = this
+        this.$confirm({
+          title: '提示',
+          content: '当前经销商已被其他区域分区绑定,确定要更新绑定关系吗?',
+          centered: true,
+          onOk () {
+            _this.spinning = true
+            _this.$emit("add", row)
+          }
+        })
+      }else{
+        this.spinning = true
+        this.$emit("add", row)
+      }
     },
     pageInit () {
       const _this = this
@@ -182,24 +231,16 @@ export default {
     },
     setTableH () {
       const tableSearchH = this.$refs.tableSearch.offsetHeight
-      this.tableHeight = window.innerHeight - tableSearchH - 165
+      this.tableHeight = window.innerHeight - tableSearchH - 245
     }
   },
+  mounted () {
+    this.pageInit()
+  },
   watch: {
     '$store.state.app.winHeight' (newValue, oldValue) { //  窗口变更时,需同时更改表格高度
       this.setTableH()
     }
-  },
-  mounted () {
-    if (!this.$store.state.app.isNewTab) { // 页签刷新时调用
-      this.resetSearchForm()
-    }
-  },
-  activated () {
-    this.pageInit()
-  },
-  beforeRouteEnter (to, from, next) {
-    next(vm => {})
   }
 }
 </script>

+ 57 - 52
src/views/common/subarea.js

@@ -1,26 +1,26 @@
 import { subareaQueryAll } from '@/api/subarea'
-const Subarea = {
+const AreaList = {
   template: `
-        <a-select
-          :id="id"
-          :placeholder="placeholder"
-          allowClear
-          :value="defaultVal"
-          :mode="mode"
-          :showSearch="true"
+     <a-cascader
+          :size="size"
+          :changeOnSelect="changeOnSelect"
+          :show-search="{ filter }"
           @change="handleChange"
-          :filter-option="filterOption">
-          <a-select-option v-for="item in list" :key="item[defValKey]" :value="item[defValKey]">{{ item.subareaName }}</a-select-option>
-        </a-select>
+          :value="defaultVal"
+          expand-trigger="hover"
+          :allowClear="allowClear"
+          :options="list"
+          :field-names="{ label: 'name', value: defValKey, children: 'subareaAreaList' }" 
+          :id="id"
+          :placeholder="placeholder" 
+          style="width: 100%;" />
     `,
   props: {
     value: {
-      type: [String,Array],
-      defatut: ''
-    },
-    mode: {
-      type: String,
-      default:'default'
+      type: Array,
+      defatut: function(){
+        return []
+      }
     },
     id: {
       type: String,
@@ -28,11 +28,23 @@ const Subarea = {
     },
     defValKey: {
       type: String,
-      default: 'subareaSn'
+      default: 'areaSn'
     },
     placeholder: {
       type: String,
-      default: '请选择分区'
+      default: '请选择区域/分区'
+    },
+    allowClear: {
+        type: Boolean,
+        default: true
+    },
+    size: {
+        type: String,
+        default: 'default'
+    },
+    changeOnSelect:{
+        type: Boolean,
+        default: true
     }
   },
   data() {
@@ -44,48 +56,41 @@ const Subarea = {
   watch: {
     value(newValue, oldValue) {
       this.defaultVal = newValue
-    }
+    },
   },
   mounted() {
-    this.getList()
+    this.getArea()
   },
   methods: {
-    filterOption (input, option) {
-      return (
-        option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
-      )
+    filter(inputValue, path) {
+        return path.some(option => option.name.toLowerCase().indexOf(inputValue.toLowerCase()) > -1);
     },
-    handleChange(value) {
-      console.log(value)
-      this.defaultVal = value;
-      const item = this.list.filter(item =>{
-        if(this.mode !== 'multiple'){
-          return item[this.defValKey] == value
-        }else{
-          return value.includes(item[this.defValKey])
-        }
-      })
-      this.$emit('change', value, item);
-      this.$emit('input', value);
+    handleChange (value, selectedOptions) {
+        this.defaultVal = value
+        this.$emit('input', this.defaultVal)
+        this.$emit('change', this.defaultVal, selectedOptions)
     },
-    // 列表数据
-    getList () {
-      const _this = this
+    getArea () {
       subareaQueryAll().then(res => {
-        if (res.status == 200) {
-          _this.list = res.data.reverse() || []
-        } else {
-          _this.list = []
-        }
-      })
+            if (res.status == 200) {
+                res.data&&res.data.map(item => {
+                  item.name = item.subareaName
+                  item.areaSn = item.subareaSn
+                  if(item.subareaAreaList){
+                    item.subareaAreaList.map(cd => {
+                      cd.name = cd.subareaAreaName
+                      cd.areaSn = cd.subareaAreaSn
+                    })
+                  }
+                })
+                this.list = res.data
+            }
+        })
     },
-    // 根据名称数组 返回对应的 sn 数组
-    getValByName(data){
-      let ret = []
-      this.list.filter(item => data.includes(item.subareaName)).map(item => ret.push(item.subareaSn))
-      return ret
+    clearData(){
+       this.handleChange([],null)
     }
   },
 };
 
-export default Subarea
+export default AreaList

+ 98 - 30
src/views/dealerManagement/marketingDivisionSetNew/viewDealers.vue

@@ -6,6 +6,7 @@
       :zIndex="100"
       :visible="visible"
       :get-container="false"
+      class="viewsDealer"
       :wrap-style="{ position: 'absolute' }"
       @close="visible = false">
       <a-spin :spinning="spinning" tip="Loading...">
@@ -39,7 +40,7 @@
               </a-form-model-item>
             </a-col>
               <a-col :md="6" :sm="24" style="margin-bottom: 10px;">
-                <a-button type="primary" @click="$refs.table.refresh(true)" :disabled="disabled" id="viewDealers-refresh">查询</a-button>
+                <a-button type="primary" @click="searchForm" :disabled="disabled" id="viewDealers-refresh">查询</a-button>
                 <a-button style="margin-left: 5px" @click="resetSearchForm" :disabled="disabled" id="viewDealers-reset">重置</a-button>
               </a-col>
             </a-row>
@@ -67,8 +68,15 @@
             :data="loadData"
             :style="{ height: tableHeight+84.5+'px' }"
             :scroll="{ y: tableHeight }"
-            :defaultLoadData="false"
             bordered>
+            <template slot="action" slot-scope="text, record">
+            <a-button
+              size="small"
+              type="link"
+              class="button-error"
+              @click="handleDel(record)"
+              >删除</a-button>
+          </template>
           </s-table>
         </div>
       </a-spin>
@@ -82,9 +90,10 @@
       :visible="openAddDealer"
       :get-container="false"
       :wrap-style="{ position: 'absolute' }"
+      class="deraw-bindDealer"
       @close="openAddDealer = false">
       <div class="dealerModalCon">
-        <chooseDealer v-if="openAddDealer" pageType="viewDealers"></chooseDealer>
+        <chooseDealer ref="chooseDealer" v-if="openAddDealer" :parentData="parentData" pageType="viewDealers" @add="hanldAdd" @plAdd="hanldPlAdd"></chooseDealer>
       </div>
     </a-drawer>
   </div>
@@ -96,7 +105,7 @@ import { STable, VSelect } from '@/components'
 import chooseDealer from '@/views/common/chooseDealer.vue'
 import AreaList from '@/views/common/areaList.js'
 import { Empty } from 'ant-design-vue'
-import { queryPageAreaDealer } from '@/api/subarea'
+import { queryPageAreaDealer, batchBindDealer, bindDealer, deleteBindDealer } from '@/api/subarea'
 export default {
   mixins: [commonMixin],
   components: { STable, VSelect, chooseDealer, AreaList },
@@ -149,14 +158,13 @@ export default {
       disabled: false,
       tableHeight: 0,
       columns: [
-        { title: '经销商名称', dataIndex: 'subareaName', width: '25%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '商户别名', dataIndex: 'subareaName1', width: '25%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '商户类型', dataIndex: 'subareaName2', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '商户级别', dataIndex: 'subareaName3', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '审核状态', dataIndex: 'subareaName4', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '操作', scopedSlots: { customRender: 'action' }, width: '20%', align: 'center' }
+        { title: '经销商名称', dataIndex: 'dealer.dealerName', width: '30%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '商户别名', dataIndex: 'dealer.dealerAlias', width: '30%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '商户类型', dataIndex: 'dealer.dealerTypeDictValue', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '商户级别', dataIndex: 'dealer.dealerLevelDictValue', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '审核状态', dataIndex: 'dealer.auditStateDictValue', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: '10%', align: 'center' }
       ],
-      // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         this.disabled = true
         this.spinning = true
@@ -164,27 +172,82 @@ export default {
           let data
           if (res.status == 200) {
             data = res.data
-            this.disabled = false
+            const no = 0
+            for (var i = 0; i < data.length; i++) {
+              data[i].no = no + i + 1
+            }
           }
+          this.disabled = false
           this.spinning = false
+          this.setTableH()
           return data
         })
-      }
+      },
     }
   },
-
   methods: {
+    // 绑定
+    hanldAdd(row){
+      console.log(row)
+      bindDealer({subareaAreaSn: this.parentData.subareaAreaSn,dealerSn:row.dealerSn}).then(res => {
+        if(res.status == 200){
+          this.resetSearchForm()
+          this.$refs.chooseDealer.searchForm(false)
+        }
+        this.$refs.chooseDealer.searchForm
+      })
+    },
+    // 批量绑定
+    hanldPlAdd(rows){
+      console.log(rows)
+      batchBindDealer({subareaAreaSn: this.parentData.subareaAreaSn,dealerSnSet:rows}).then(res => {
+        if(res.status == 200){
+          this.resetSearchForm()
+          this.$refs.chooseDealer.searchForm(false)
+        }
+        this.$refs.chooseDealer.spinning = false
+      })
+    },
+    // 删除
+    handleDel(row){
+      const _this = this
+      this.$confirm({
+        title: '提示',
+        content: '确定要删除当前经销商绑定关系吗?',
+        centered: true,
+        onOk () {
+          _this.spinning = true
+          deleteBindDealer({sn: row.subareaAreaDealerSn}).then(res => {
+            if(res.status == 200){
+              _this.resetSearchForm()
+            }
+            _this.spinning = false
+          })
+        }
+      })
+    },
+    searchForm(){
+      if(this.flag){
+        this.hasData()
+      }else{
+        this.$refs.table.refresh(true)
+      }
+    },
     resetSearchForm () {
-      this.queryParam = {
-        nameLike: '',
-        dealerType: null,
-        dealerLevel: null,
-        auditState: undefined,
-        provinceSn: undefined,
-        citySn: undefined,
-        districtSn: undefined
+      if(this.flag){
+        this.hasData()
+      }else{
+        this.queryParam = {
+          nameLike: '',
+          dealerType: null,
+          dealerLevel: null,
+          auditState: undefined,
+          provinceSn: undefined,
+          citySn: undefined,
+          districtSn: undefined
+        }
+        this.$refs.table.refresh(true)
       }
-      this.$refs.table.refresh(true)
     },
     areaChange(val){
       this.queryParam.provinceSn = val[0] ? val[0] : ''
@@ -192,7 +255,7 @@ export default {
       this.queryParam.districtSn = val[2] ? val[2] : ''
     },
    async hasData(){
-      const ret = queryPageAreaDealer({pageNo:1,pageSize:10,subareaSn: this.parentData.subareaSn, subareaAreaSn: this.parentData.subareaAreaSn}).then(res => res.data)
+      const ret = await queryPageAreaDealer({pageNo:1,pageSize:10,subareaSn: this.parentData.subareaSn, subareaAreaSn: this.parentData.subareaAreaSn}).then(res => res.data)
       this.flag = ret.count == 0
     },
     pageInit () {
@@ -200,22 +263,27 @@ export default {
       this.$nextTick(() => { // 页面渲染完成后的回调
         _this.setTableH()
       })
+      this.flag = true
       // 判断是已绑定数据
       this.hasData()
     },
     setTableH () {
       const tableSearchH = this.$refs.tableSearch.offsetHeight
-      this.tableHeight = window.innerHeight - tableSearchH - 345
+      this.tableHeight = window.innerHeight - tableSearchH - 290
     }
   },
 }
 </script>
 
-<style lang="less" scoped>
-.areaSetModal {
-  width: 100%;
-  .areaFooter {
-    text-align:center;
+<style lang="less">
+.viewsDealer{
+  .ant-drawer-body{
+    padding:10px 20px 0;
+  }
+}
+.deraw-bindDealer {
+  .ant-drawer-body{
+    padding:10px 20px 0;
   }
 }
 </style>

+ 24 - 11
src/views/inventoryManagement/intelligentReplenishment/edit.vue

@@ -122,16 +122,21 @@ export default {
     },
     // 详情
     getDetail () {
+      this.spinning = true
       predictDetail({ sn: this.$route.params.sn }).then(res => {
         if (res.status == 200) {
           this.detailData = res.data
+          this.form.stockPredictRange = res.data.stockPredictRange != undefined ? Number(res.data.stockPredictRange) : 1
           if (res.data.state == 'RUN') {
             this.current = 2
+            this.spinning = false
           } else {
             this.current = 0
           }
+          this.getTrendSn()
         } else {
           this.detailData = null
+          this.spinning = false
         }
       })
     },
@@ -140,6 +145,9 @@ export default {
       predictRangeSave(params).then(res => {
         if (res.status == 200) {
           this.$refs.productRange.refreshList()
+          if (this.current == 0) { //  产品设置
+            this.handleSave(true)
+          }
         }
       })
     },
@@ -147,12 +155,7 @@ export default {
     handleNext () {
       const _this = this
       if (this.current == 0) { //  产品设置
-        const params = {
-          id: this.detailData.id,
-          stockPredictSn: this.$route.params.sn,
-          stockPredictRange: this.form.stockPredictRange
-        }
-        this.handleSave(params)
+        this.handleSave(false)
       } else if (this.current == 1) { //  参数设置
         this.$refs.ruleForm.validate(valid => {
           if (valid) {
@@ -173,12 +176,21 @@ export default {
       }
     },
     // 保存
-    handleSave (params) {
+    handleSave (noNext) {
+      const params = {
+        id: this.detailData.id,
+        stockPredictSn: this.$route.params.sn,
+        stockPredictRange: this.form.stockPredictRange
+      }
       this.spinning = true
       predictSave(params).then(res => {
         if (res.status == 200) {
-          this.current++
-          this.spinning = false
+          if (!noNext) {
+            this.current++
+            this.spinning = false
+          } else {
+            this.getTrendSn()
+          }
         } else {
           this.spinning = false
         }
@@ -206,6 +218,7 @@ export default {
     },
     // 服务水平选择
     handleOk (val) {
+      console.log(val)
       this.form.trendSn = val.trendSn
       this.form.serviceLevel = val.serviceLevel
       this.form.safetyFactor = val.safetyFactor
@@ -213,6 +226,7 @@ export default {
     },
     // 获取默认服务水平
     getTrendSn () {
+      this.spinning = true
       predictTrendList({ defaultFlag: 1 }).then(res => {
         if (res.status == 200) {
           this.form.trendSn = (res.data && res.data[0] && res.data[0].trendSn) ? res.data[0].trendSn : undefined
@@ -223,6 +237,7 @@ export default {
           this.form.serviceLevel = ''
           this.form.safetyFactor = ''
         }
+        this.spinning = false
       })
     },
     setTableH () {
@@ -238,8 +253,6 @@ export default {
       }
       this.$refs.ruleForm.resetFields()
       this.getDetail()
-      this.getTrendSn()
-      this.current = 0
 
       const _this = this
       this.$nextTick(() => { // 页面渲染完成后的回调

+ 28 - 29
src/views/inventoryManagement/intelligentReplenishment/serviceLevelModal.vue

@@ -9,18 +9,16 @@
     @cancel="isShow=false"
     :width="800">
     <div>
-      <s-table
+      <a-table
         class="sTable"
         ref="table"
-        size="small"
-        :rowKey="(record) => record.trendSn"
         :row-selection="{ type: 'radio', columnTitle: '选择', selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
         :columns="columns"
-        :data="loadData"
+        :data-source="listData"
         :scroll="{ y: 400 }"
-        :showPagination="false"
+        :pagination="false"
         bordered>
-      </s-table>
+      </a-table>
       <div class="btn-cont">
         <a-button type="primary" id="intelligentReplenishmentLevel-save" @click="handleSave">保存</a-button>
         <a-button id="intelligentReplenishmentLevel-back" @click="isShow = false" style="margin-left: 15px;">关闭</a-button>
@@ -53,22 +51,21 @@ export default {
         { title: '服务水平(%)', dataIndex: 'serviceLevel', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '安全系数', dataIndex: 'safetyFactor', align: 'center', customRender: function (text) { return text || '--' } }
       ],
-      // 加载数据方法 必须为 Promise 对象
-      loadData: parameter => {
-        return predictTrendList({}).then(res => {
-          let data
-          if (res.status == 200) {
-            data = res.data
-            this.listData = data
-          }
-          return data
-        })
-      },
       listData: [],
       selectedRowKeys: []
     }
   },
   methods: {
+    getTableData(){
+      predictTrendList({}).then(res => {
+        if (res.status == 200) {
+          this.listData = res.data
+          this.listData.map(item => {
+            item.key = Number(item.trendSn)
+          })
+        }
+      })
+    },
     onSelectChange (selectedRowKeys, selectedRows) {
       console.log('selectedRowKeys changed: ', selectedRowKeys, selectedRows)
       this.selectedRowKeys = selectedRowKeys
@@ -76,13 +73,17 @@ export default {
     //  保存
     handleSave () {
       if (this.selectedRowKeys.length > 0) {
-        const ind = this.listData.findIndex(item => item.trendSn == this.selectedRowKeys[0])
-        const params = {
-          trendSn: this.listData[ind].trendSn,
-          serviceLevel: this.listData[ind].serviceLevel,
-          safetyFactor: this.listData[ind].safetyFactor
+        const row = this.listData.find(item => item.trendSn == this.selectedRowKeys[0])
+        if(row){
+          const params = {
+            trendSn: row.trendSn,
+            serviceLevel: row.serviceLevel,
+            safetyFactor: row.safetyFactor
+          }
+          this.$emit('ok', params)
+        }else{
+          this.$message.warning('请选择服务水平后再进行保存!')
         }
-        this.$emit('ok', params)
       } else {
         this.$message.warning('请选择服务水平后再进行保存!')
       }
@@ -97,12 +98,10 @@ export default {
     isShow (newValue, oldValue) {
       if (!newValue) {
         this.$emit('close')
-      }
-    },
-    itemSn (newValue, oldValue) {
-      if (this.isShow && newValue) {
-        this.selectedRowKeys = [newValue]
-        console.log(this.selectedRowKeys)
+      } else {
+        console.log(this.itemSn)
+        this.selectedRowKeys = [Number(this.itemSn)]
+        this.getTableData()
       }
     }
   }

+ 1 - 0
src/views/purchasingManagement/bulkWarehousingOrder/list.vue

@@ -297,6 +297,7 @@ export default {
         kingdeeNo: ''
       }
       this.$refs.table.refresh(true)
+      this.$refs.table.clearSelected()
     },
     //  单条审核
     handleAudit (row) {

+ 9 - 8
src/views/reportData/productRebateReport/detailList.vue

@@ -91,21 +91,20 @@
     <s-table
       class="sTable fixPagination"
       ref="table"
-      :style="{ height: tableHeight+84.5+'px' }"
+      :style="{ height: tableHeight+114.5+'px' }"
       size="small"
       :rowKey="(record) => record.id"
       :columns="columns"
       :data="loadData"
-      :scroll="{ y: tableHeight, x: 2000}"
+      :scroll="{ y: tableHeight, x: 2200}"
       :defaultLoadData="false"
       bordered>·
       <template slot="footer">
         <a-row type="flex" justify="end" :gutter="10">
-          <a-col flex="10%" >分公司金额:{{ (totalData && (totalData.wholesalePrice1 || totalData.wholesalePrice1==0)) ? totalData.wholesalePrice1 : '--' }}</a-col>
-          <a-col flex="10%" >加盟商金额:{{ (totalData && (totalData.wholesalePrice2 || totalData.wholesalePrice2==0)) ? totalData.wholesalePrice2 : '--' }}</a-col>
-          <a-col flex="10%" >特约加盟店金额:{{ (totalData && (totalData.wholesalePrice3 || totalData.wholesalePrice3==0)) ? totalData.wholesalePrice3 : '--' }}</a-col>
-          <a-col flex="10%" >直接差价金额:{{ (totalData && (totalData.directRebateAmount || totalData.directRebateAmount==0)) ? totalData.directRebateAmount : '--' }}</a-col>
-          <a-col flex="10%" >间接差价金额:{{ (totalData && (totalData.indirectRebateAmount || totalData.indirectRebateAmount==0)) ? totalData.indirectRebateAmount : '--' }}</a-col>
+          <a-col flex="10%" >总开单金额:{{ (totalData && (totalData.totalAmount || totalData.totalAmount==0)) ? toThousands(totalData.totalAmount) : '--' }}</a-col>
+          <a-col flex="10%" >总实售金额:{{ (totalData && (totalData.totalRealAmount || totalData.totalRealAmount==0)) ? toThousands(totalData.totalRealAmount) : '--' }}</a-col>
+          <a-col flex="10%" >直接差价金额:{{ (totalData && (totalData.directRebateAmount || totalData.directRebateAmount==0)) ? toThousands(totalData.directRebateAmount) : '--' }}</a-col>
+          <a-col flex="10%" >间接差价金额:{{ (totalData && (totalData.indirectRebateAmount || totalData.indirectRebateAmount==0)) ? toThousands(totalData.indirectRebateAmount) : '--' }}</a-col>
         </a-row>
       </template>
     </s-table>
@@ -199,6 +198,8 @@ export default {
         { title: '分公司金额', dataIndex: 'wholesalePrice1', width: '100px', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
         { title: '加盟商金额', dataIndex: 'wholesalePrice2', width: '100px', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
         { title: '特约加盟店金额', dataIndex: 'wholesalePrice3', width: '100px', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
+        { title: '总开单价', dataIndex: 'totalAmount', width: '100px', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
+        { title: '总实售价', dataIndex: 'totalRealAmount', width: '100px', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
         { title: '直接差价', dataIndex: 'directRebateAmount', width: '100px', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
         { title: '间接差价', dataIndex: 'indirectRebateAmount', width: '100px', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } }
       ]
@@ -314,7 +315,7 @@ export default {
     },
     setTableH () {
       const tableSearchH = this.$refs.tableSearch.offsetHeight
-      this.tableHeight = window.innerHeight - tableSearchH - 340
+      this.tableHeight = window.innerHeight - tableSearchH - 370
     }
   },
   mounted () {

+ 7 - 7
src/views/reportData/productRebateReport/list.vue

@@ -70,7 +70,7 @@
     <s-table
       class="sTable fixPagination"
       ref="table"
-      :style="{ height: tableHeight+84.5+'px' }"
+      :style="{ height: tableHeight+114.5+'px' }"
       size="small"
       :scroll="{ y: tableHeight }"
       :rowKey="(record) => record.id"
@@ -80,10 +80,10 @@
       bordered>
       <template slot="footer">
           <a-row type="flex" justify="end" :gutter="10">
-            <a-col flex="10%">总售价金额:{{ (totalData && (totalData.totalAmount || totalData.totalAmount==0)) ? totalData.totalAmount : '--' }}</a-col>
-            <a-col flex="10%">直接差价金额:{{ (totalData && (totalData.directRebate || totalData.directRebate==0)) ? totalData.directRebate : '--' }}</a-col>
-            <a-col flex="10%">间接差价金额:{{ (totalData && (totalData.indirectRebate || totalData.indirectRebate==0)) ? totalData.indirectRebate : '--' }}</a-col>
-            <a-col flex="10%">总实售价金额:{{ (totalData && (totalData.totalRealAmount || totalData.totalRealAmount==0)) ? totalData.totalRealAmount : '--' }}</a-col>
+            <a-col flex="10%">总开单金额:{{ (totalData && (totalData.totalAmount || totalData.totalAmount==0)) ? toThousands(totalData.totalAmount) : '--' }}</a-col>
+            <a-col flex="10%">直接差价金额:{{ (totalData && (totalData.directRebate || totalData.directRebate==0)) ? toThousands(totalData.directRebate) : '--' }}</a-col>
+            <a-col flex="10%">间接差价金额:{{ (totalData && (totalData.indirectRebate || totalData.indirectRebate==0)) ? toThousands(totalData.indirectRebate) : '--' }}</a-col>
+            <a-col flex="10%">总实售价金额:{{ (totalData && (totalData.totalRealAmount || totalData.totalRealAmount==0)) ? toThousands(totalData.totalRealAmount) : '--' }}</a-col>
           </a-row>
         </template>
     </s-table>
@@ -158,7 +158,7 @@ export default {
         { title: '客户名称', dataIndex: 'buyerName', width: '12%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '直接绑定客户名称', dataIndex: 'directDealerName', width: '12%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
         { title: '间接绑定客户名称', dataIndex: 'indirectDealerName', width: '12%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '总价', dataIndex: 'totalAmount', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
+        { title: '总开单价', dataIndex: 'totalAmount', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
         { title: '直接差价', dataIndex: 'directRebate', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
         { title: '间接差价', dataIndex: 'indirectRebate', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
         { title: '总实售价', dataIndex: 'totalRealAmount', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } }
@@ -255,7 +255,7 @@ export default {
     },
     setTableH () {
       const tableSearchH = this.$refs.tableSearch.offsetHeight
-      this.tableHeight = window.innerHeight - tableSearchH - 240
+      this.tableHeight = window.innerHeight - tableSearchH - 270
     }
   },
   mounted () {

+ 1 - 3
src/views/salesManagement/examineVerify/list.vue

@@ -59,11 +59,9 @@
                 </a-form-model-item>
               </a-col>
               <a-col :md="6" :sm="24">
-                <a-form-model-item label="地区">
-                  <a-form-model-item prop="shippingAddrProvinceSn">
+                <a-form-model-item label="地区" prop="shippingAddrProvinceSn">
                     <Area id="examineVerifyList-shippingAddrProvinceSn" v-model="queryParam.shippingAddrProvinceSn" placeholder="请选择省"></Area>
                   </a-form-model-item>
-                </a-form-model-item>
               </a-col>
             </template>
             <a-col :md="6" :sm="24" style="margin-bottom: 10px;">

+ 1 - 3
src/views/salesManagement/outboundOrder/list.vue

@@ -65,11 +65,9 @@
                 </a-form-model-item>
               </a-col>
               <a-col :md="6" :sm="24">
-                <a-form-model-item label="地区">
-                  <a-form-model-item prop="shippingAddrProvinceSn">
+                <a-form-model-item label="地区" prop="shippingAddrProvinceSn">
                     <Area id="outboundOrderList-shippingAddrProvinceSn" v-model="queryParam.shippingAddrProvinceSn" placeholder="请选择省"></Area>
                   </a-form-model-item>
-                </a-form-model-item>
               </a-col>
             </template>
             <a-col :md="6" :sm="24" style="margin-bottom: 10px;">

+ 2 - 4
src/views/salesManagement/pushOrderManagement/list.vue

@@ -81,10 +81,8 @@
                 </a-form-model-item>
               </a-col>
               <a-col :md="6" :sm="24">
-                <a-form-model-item label="地区">
-                  <a-form-model-item prop="shippingAddrProvinceSn">
-                    <Area id="pushOrder-shippingAddrProvinceSn" v-model="queryParam.shippingAddrProvinceSn" placeholder="请选择省"></Area>
-                  </a-form-model-item>
+                <a-form-model-item label="地区" prop="shippingAddrProvinceSn">
+                  <Area id="pushOrder-shippingAddrProvinceSn" v-model="queryParam.shippingAddrProvinceSn" placeholder="请选择省"></Area>
                 </a-form-model-item>
               </a-col>
             </template>

+ 2 - 0
src/views/salesManagement/receiptPrint/list.vue

@@ -300,7 +300,9 @@ export default {
     },
     printOk () {
       this.spinning = false
+      console.log(1)
       this.$refs.table.refresh()
+      this.$refs.table.clearSelected()
     },
     //  时间  change
     dateChange (date) {

+ 4 - 9
src/views/salesManagement/salesCollection/list.vue

@@ -108,15 +108,9 @@
                 </a-form-item>
               </a-col>
               <a-col :md="6" :sm="24">
-                <a-row>
-                  <a-form-item label="地区">
-                    <a-col span="24">
-                      <a-form-item prop="dealerProvinceSn" style="margin: 0;">
-                        <Area id="salesCollectionList-dealerProvinceSn" v-model="queryParam.dealerProvinceSn" placeholder="请选择省"></Area>
-                      </a-form-item>
-                    </a-col>
-                  </a-form-item>
-                </a-row>
+                <a-form-item label="地区" prop="dealerProvinceSn" style="margin: 0;">
+                  <Area id="salesCollectionList-dealerProvinceSn" v-model="queryParam.dealerProvinceSn" placeholder="请选择省"></Area>
+                </a-form-item>
               </a-col>
             </template>
             <a-col :md="6" :sm="24" style="margin-bottom: 10px;">
@@ -457,6 +451,7 @@ export default {
         if (res.status == 200) {
           _this.$message.success(res.message)
           _this.$refs.table.refresh()
+          _this.$refs.table.clearSelected()
           _this.spinning = false
           _this.collectionType = 0
         } else {

+ 9 - 1
src/views/salesManagement/salesQuery/list.vue

@@ -72,7 +72,7 @@
               </a-col>
               <a-col :md="6" :sm="24">
                 <a-form-model-item label="所在区域">
-                  <subarea id="salesManagementList-subarea" v-model="queryParam.subareaSn"></subarea>
+                  <subarea ref="subarea" id="salesManagementList-subarea" @change="subareaChange"></subarea>
                 </a-form-model-item>
               </a-col>
               <a-col :md="6" :sm="24">
@@ -410,6 +410,10 @@ export default {
     custChange (val) {
       this.queryParam.buyerSn = val.key
     },
+    subareaChange(val){
+      this.queryParam.subareaSn = val[0] ? val[0] : ''
+      this.queryParam.subareaAreaSn = val[1] ? val[1] : ''
+    },
     // 新增
     handleAdd () {
       this.openModal = true
@@ -525,7 +529,11 @@ export default {
       this.queryParam.financialStatus = undefined
       this.queryParam.salesBillSource = undefined
       this.queryParam.subareaSn = undefined
+      this.queryParam.subareaAreaSn = undefined
       this.queryParam.shippingAddrProvinceSn = undefined
+      if(this.advanced){
+        this.$refs.subarea.clearData()
+      }
       this.$refs.table.refresh(true)
     },
     pageInit () {

+ 2 - 4
src/views/salesManagement/sendOutOrder/list.vue

@@ -59,10 +59,8 @@
                 </a-form-model-item>
               </a-col>
               <a-col :md="6" :sm="24">
-                <a-form-model-item label="地区">
-                  <a-form-model-item >
-                    <Area id="sendOut-provinceSn" v-model="queryParam.provinceSn" placeholder="请选择省"></Area>
-                  </a-form-model-item>
+                <a-form-model-item label="地区" >
+                  <Area id="sendOut-provinceSn" v-model="queryParam.provinceSn" placeholder="请选择省"></Area>
                 </a-form-model-item>
               </a-col>
             </template>

+ 1 - 3
src/views/salesManagement/stockPrint/list.vue

@@ -79,11 +79,9 @@
                   </a-form-model-item>
                 </a-col>
                 <a-col :md="3" :sm="24">
-                  <a-form-model-item label="地区">
-                    <a-form-model-item prop="shippingAddrProvinceSn">
+                  <a-form-model-item label="地区" prop="shippingAddrProvinceSn">
                       <Area id="stockPrint-shippingAddrProvinceSn" v-model="queryParam.shippingAddrProvinceSn" placeholder="请选择省"></Area>
                     </a-form-model-item>
-                  </a-form-model-item>
                 </a-col>
               </template>
               <a-col :md="6" :sm="24">

+ 1 - 3
src/views/salesReturnManagement/salesReturn/list.vue

@@ -70,11 +70,9 @@
                 </a-form-model-item>
               </a-col>
               <a-col :md="6" :sm="24">
-                <a-form-model-item label="地区">
-                  <a-form-model-item prop="shippingAddrProvinceSn">
+                <a-form-model-item label="地区" prop="shippingAddrProvinceSn">
                     <Area id="salesReturn-provinceSn" v-model="queryParam.shippingAddrProvinceSn" placeholder="请选择省"></Area>
                   </a-form-model-item>
-                </a-form-model-item>
               </a-col>
             </template>
             <a-col :md="6" :sm="24">

+ 2 - 2
src/views/supplierManagement/costSetting/chooseImportModal.vue

@@ -93,14 +93,14 @@ export default {
         { title: '供应商名称', dataIndex: 'supplierName', width: '25%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '产品编码', dataIndex: 'productCode', width: '20%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '产品名称', dataIndex: 'product.name', width: '30%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '成本价', dataIndex: 'costText', width: '15%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } }
+        { title: '成本价', dataIndex: 'costText', width: '15%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text || 0) : '--') } }
       ],
       nowUnColumns: [ //  不可导入
         { title: '序号', dataIndex: 'no', width: '10%', align: 'center' },
         { title: '供应商名称', dataIndex: 'supplierName', width: '20%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '产品编码', dataIndex: 'productCode', width: '15%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '产品名称', dataIndex: 'product.name', width: '25%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
-        { title: '成本价', dataIndex: 'costText', width: '15%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
+        { title: '成本价', dataIndex: 'costText', width: '15%', align: 'right', customRender: function (text) { return text || '--' } },
         { title: '备注', dataIndex: 'importErrorMsgList', width: '15%', align: 'center', customRender: function (text) { return text || '--' } }
       ],
       loadData: [],

+ 1 - 1
vue.config.js

@@ -104,7 +104,7 @@ const vueConfig = {
   devServer: {
     // development server port 8000
     port: 8000,
-    // If you want to turn on the proxy, please remove the mockjs /src/main.jsL11
+    // If you want to turn on the proxy, please remosve the mockjs /src/main.jsL11
     proxy: {
       '/api': {
         target: 'http://192.168.0.216:80/ocs-admin',