Procházet zdrojové kódy

报关单冒号去除,客户档案、公海私海头部统计修改为组件

cz před 1 rokem
rodič
revize
7720fb9f64

+ 77 - 206
src/views/customer/file/index.vue

@@ -5,217 +5,17 @@
         >添加客户</el-button
       >
     </div>
-    <div
-      style="padding: 20px 20px 0 20px; background: #fff; margin-bottom: 20px"
-    >
-      <div style="display: flex">
-        <div style="font-size: 14px; cursor: pointer" class="by-dropdown">
-          <div class="by-dropdown-title">
-            <span>{{
-              dictValueLabel(
-                sourceList.paginationTwo.statisticsType,
-                statisticsType
-              )
-            }}</span>
-            <el-icon style="margin-left: 5px; font-size: 16px"
-              ><CaretBottom
-            /></el-icon>
-          </div>
-          <ul class="by-dropdown-lists">
-            <li
-              v-for="item in statisticsType"
-              :key="item.value"
-              @click="searchItemSelect(item.value)"
-              style="
-                display: flex;
-                align-items: center;
-                justify-content: center;
-              "
-            >
-              {{ item.label }}
-            </li>
-          </ul>
-        </div>
-      </div>
-      <div
-        style="
-          display: flex;
-          width: 100%;
-          margin: 10px 0 0 10px;
-          flex-wrap: wrap;
-        "
-      >
-        <div
-          style="
-            padding: 20px;
-            border-radius: 10px;
-            width: 200px;
-            background-color: #d1caff59;
-            margin: 0 20px 20px 0;
-          "
-        >
-          <div style="margin-bottom: 10px; display: flex">
-            <div
-              style="
-                width: 8px;
-                height: 8px;
-                background-color: #5bacff;
-                border-radius: 50px;
-                margin-top: 6px;
-              "
-            ></div>
-            <span style="padding-left: 8px">合计</span>
-          </div>
-          <div style="color: black; font-size: 20px; font-weight: 700">
-            {{ statisticalData.countAmount }}
-          </div>
-        </div>
-        <template v-if="sourceList.paginationTwo.statisticsType === 1">
-          <div v-for="(item, index) in customerSource" :key="index">
-            <div
-              v-if="getNum(item.value) > 0"
-              style="
-                padding: 20px;
-                border-radius: 10px;
-                width: 200px;
-                background-color: #a2d8ff70;
-                margin: 0 20px 20px 0;
-              "
-            >
-              <div style="margin-bottom: 10px; display: flex">
-                <div
-                  style="
-                    width: 8px;
-                    height: 8px;
-                    background-color: #5bacff;
-                    border-radius: 50px;
-                    margin-top: 6px;
-                  "
-                ></div>
-                <el-tooltip class="box-item" effect="light" placement="bottom">
-                  <template #content>
-                    <div
-                      style="
-                        max-width: 400px;
-                        max-height: 50vh;
-                        word-break: break-all;
-                      "
-                    >
-                      {{ item.label }}
-                    </div>
-                  </template>
-                  <div class="statistics-text" style="cursor: pointer">
-                    {{ item.label }}
-                  </div>
-                </el-tooltip>
-              </div>
-              <div style="color: black; font-size: 20px; font-weight: 700">
-                {{ getNum(item.value) }}
-              </div>
-            </div>
-          </div>
-        </template>
-        <template v-else-if="sourceList.paginationTwo.statisticsType === 2">
-          <div v-for="(item, index) in customerStatus" :key="index">
-            <div
-              v-if="getNum(item.value) > 0"
-              style="
-                padding: 20px;
-                border-radius: 10px;
-                width: 200px;
-                background-color: #a2d8ff70;
-                margin: 0 20px 20px 0;
-              "
-            >
-              <div style="margin-bottom: 10px; display: flex">
-                <div
-                  style="
-                    width: 8px;
-                    height: 8px;
-                    background-color: #5bacff;
-                    border-radius: 50px;
-                    margin-top: 6px;
-                  "
-                ></div>
-                <el-tooltip class="box-item" effect="light" placement="bottom">
-                  <template #content>
-                    <div
-                      style="
-                        max-width: 400px;
-                        max-height: 50vh;
-                        word-break: break-all;
-                      "
-                    >
-                      {{ item.label }}
-                    </div>
-                  </template>
-                  <div class="statistics-text" style="cursor: pointer">
-                    {{ item.label }}
-                  </div>
-                </el-tooltip>
-              </div>
-              <div style="color: black; font-size: 20px; font-weight: 700">
-                {{ getNum(item.value) }}
-              </div>
-            </div>
-          </div>
-        </template>
-        <template v-else-if="sourceList.paginationTwo.statisticsType === 3">
-          <div v-for="(item, index) in userList" :key="index">
-            <div
-              v-if="getNum(item.value) > 0"
-              style="
-                padding: 20px;
-                border-radius: 10px;
-                width: 200px;
-                background-color: #a2d8ff70;
-                margin: 0 20px 20px 0;
-              "
-            >
-              <div style="margin-bottom: 10px; display: flex">
-                <div
-                  style="
-                    width: 8px;
-                    height: 8px;
-                    background-color: #5bacff;
-                    border-radius: 50px;
-                    margin-top: 6px;
-                  "
-                ></div>
-                <el-tooltip class="box-item" effect="light" placement="bottom">
-                  <template #content>
-                    <div
-                      style="
-                        max-width: 400px;
-                        max-height: 50vh;
-                        word-break: break-all;
-                      "
-                    >
-                      {{ item.label }}
-                    </div>
-                  </template>
-                  <div class="statistics-text" style="cursor: pointer">
-                    {{ item.label }}
-                  </div>
-                </el-tooltip>
-              </div>
-              <div style="color: black; font-size: 20px; font-weight: 700">
-                {{ getNum(item.value) }}
-              </div>
-            </div>
-          </div>
-        </template>
-      </div>
-    </div>
     <byTable
       :source="sourceList.data"
       :pagination="sourceList.pagination"
       :config="config"
       :loading="loading"
       :selectConfig="selectConfig"
+      :statConfig="statConfig"
       highlight-current-row
       @moreSearch="moreSearch"
       @get-list="getList"
+      ref="table"
     >
       <template #isTop="{ item }">
         <div>
@@ -933,6 +733,69 @@ const sourceList = ref({
     type: null,
   },
 });
+
+const statConfig = computed(() => [
+  {
+    label: "客户来源统计",
+    data: [
+      {
+        label: "合计",
+        num: statisticalData.value.countAmount,
+        type: 2,
+      },
+      ...customerSource.value
+        .filter((a) => getNum(a.value) > 0)
+        .map((b) => {
+          let num = getNum(b.value);
+          return {
+            label: b.label,
+            num,
+            type: 1,
+          };
+        }),
+    ],
+  },
+  {
+    label: "客户类型统计",
+    data: [
+      {
+        label: "合计",
+        num: statisticalData.value.countAmount,
+        type: 2,
+      },
+      ...customerStatus.value
+        .filter((a) => getNum(a.value) > 0)
+        .map((b) => {
+          let num = getNum(b.value);
+          return {
+            label: b.label,
+            num,
+            type: 1,
+          };
+        }),
+    ],
+  },
+  {
+    label: "业务员统计",
+    data: [
+      {
+        label: "合计",
+        num: statisticalData.value.countAmount,
+        type: 2,
+      },
+      ...userList.value
+        .filter((a) => getNum(a.value) > 0)
+        .map((b) => {
+          let num = getNum(b.value);
+          return {
+            label: b.label,
+            num,
+            type: 1,
+          };
+        }),
+    ],
+  },
+]);
 const selectConfig = computed(() => {
   return [
     {
@@ -1705,10 +1568,7 @@ const addTop = (item) => {
     item.isTop = 1;
   });
 };
-const searchItemSelect = (val) => {
-  sourceList.value.paginationTwo.statisticsType = val;
-  obtainStatisticalData();
-};
+
 const statisticalData = ref({
   countAmount: 0,
   customerList: [],
@@ -1881,6 +1741,17 @@ const changeSearchTag = (val) => {
   addTagSearchShow.value = false;
   addSearchTag.value = "";
 };
+
+const table = ref(null);
+onMounted(() => {
+  watch(
+    () => table.value.statSelectVal,
+    (val) => {
+      sourceList.value.paginationTwo.statisticsType = val + 1;
+      obtainStatisticalData();
+    }
+  );
+});
 </script>
 
 <style lang="scss" scoped>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 506 - 213
src/views/customer/highseas/index.vue


+ 2 - 2
src/views/customer/portrait/com/CustomerInfo.vue

@@ -1,9 +1,9 @@
 <template>
   <div class="content" v-loading="loading">
     <div class="line">
-      <span class="title_" v-if="detailsData.customerCode">客户代码:{{ detailsData.customerCode }}</span>
+      <span class="title_" v-if="detailsData.customerCode">客户代码:<span style="color:#000">{{ detailsData.customerCode }}</span></span>
       <span class="title_" v-if="detailsData.customerCode && detailsData.status" style="margin: 0 6px">|</span>
-      <span class="title_" v-if="detailsData.status">客户类型:{{ dictValueLabel(detailsData.status, customerStatus) }}</span>
+      <span class="title_" v-if="detailsData.status">客户类型:<span style="color:#000">{{ dictValueLabel(detailsData.status, customerStatus) }}</span></span>
     </div>
     <div class="line" v-if="detailsData.source">
       <span class="title_">客户来源:</span>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 501 - 221
src/views/customer/privatesea/index.vue


+ 5 - 5
src/views/salesMange/shipmentMange/document/index.vue

@@ -555,7 +555,7 @@
           <tr>
             <td colspan="2" style="background-color: #dce6f1">
               <div>发件公司清关负责人</div>
-              <div>联系电话/手机(必填)</div>
+              <div>联系电话/手机(必填)</div>
             </td>
             <td colspan="2" style="background-color: #ebf1de">
               <div style="word-wrap: break-word; padding: 0 4px" v-if="textShow">
@@ -568,7 +568,7 @@
               <el-input autosize type="textarea" v-if="!textShow" v-model="printCustomsDeclaration.content.contactsMobile" size="small" />
             </td>
             <td colspan="2" style="background-color: #dce6f1">
-              <span>联系人邮箱</span>
+              <span>联系人邮箱</span>
             </td>
             <td colspan="2" style="background-color: #ebf1de; text-align: left">
               <div style="word-wrap: break-word; padding: 0 4px" v-if="textShow">
@@ -842,7 +842,7 @@
           </tr>
           <tr>
             <td colspan="3" style="background-color: #dce6f1">
-              <span>随附单证及编号(常见如通关单号、原进口报关单号)</span>
+              <span>随附单证及编号(常见如通关单号、原进口报关单号)</span>
             </td>
             <td colspan="5">
               <div style="word-wrap: break-word; padding: 0 4px" v-if="textShow">
@@ -853,7 +853,7 @@
           </tr>
           <tr>
             <td colspan="2" style="background-color: #dce6f1">
-              <span>标记唛码及备注</span>
+              <span>标记唛码及备注</span>
             </td>
             <td colspan="2" style="background-color: #ebf1de">
               <div style="word-wrap: break-word; padding: 0 4px" v-if="textShow">
@@ -862,7 +862,7 @@
               <el-input autosize type="textarea" v-if="!textShow" v-model="printCustomsDeclaration.content.shippingMark" size="small" />
             </td>
             <td style="background-color: #dce6f1">
-              <span>境内货源地</span>
+              <span>境内货源地</span>
             </td>
             <td colspan="3" style="background-color: #ebf1de; text-align: left">
               <div style="word-wrap: break-word; padding: 0 4px" v-if="textShow">

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