Kaynağa Gözat

fix:页面优化

刘恒 1 yıl önce
ebeveyn
işleme
4252a02af3

+ 4 - 4
src/pages/agreement/index.vue

@@ -34,7 +34,7 @@
         <a-form-item label="是否有效" :labelCol="{ span: 6 }" :colon="false">
           <a-select
             placeholder="请选择"
-            v-model="formState.validStatus"
+            v-model="formState.isEenabled"
             allowClear
             :filter-option="filterOption"
             style="width: 200px"
@@ -50,7 +50,7 @@
         <a-form-item label="是否启用" :labelCol="{ span: 6 }" :colon="false">
           <a-select
             placeholder="请选择"
-            v-model="formState.isEenabled"
+            v-model="formState.validStatus"
             allowClear
             :filter-option="filterOption"
             style="width: 200px"
@@ -79,10 +79,10 @@
             style="width: 200px"
           >
             <a-select-option value="1">
-              {{ "" }}
+              {{ "内部" }}
             </a-select-option>
             <a-select-option value="0">
-              {{ "" }}
+              {{ "外部" }}
             </a-select-option>
           </a-select>
         </a-form-item>

+ 101 - 0
src/pages/business/index.vue

@@ -102,6 +102,61 @@
         @getList="getList"
         :showTab="3"
       ></fromRow>
+      <div class="area-city">
+        <div>
+          省份:<a-select
+            style="width: 90%"
+            v-model="rankForm.provinceId"
+            allowClear
+          >
+            <a-select-option
+              v-for="item in areaList"
+              :key="item.areaCode"
+              :label="item.areaCname"
+              :value="item.areaCode"
+            >
+              {{ item.areaCname }}
+            </a-select-option>
+          </a-select>
+        </div>
+        <div>
+          <span>城市:</span>
+          <a-select
+            style="width: 90%"
+            v-model="rankForm.cityId"
+            @change="cityChange"
+            allowClear
+          >
+            <a-select-option
+              v-for="item in cityList"
+              :key="item.areaCode"
+              :label="item.areaCname"
+              :value="item.areaCode"
+            >
+              {{ item.areaCname }}
+            </a-select-option>
+          </a-select>
+        </div>
+        <div>
+          <span>区/县:</span>
+
+          <a-select
+            style="width: 90%"
+            v-model="rankForm.countyId"
+            @change="countyChange"
+            allowClear
+          >
+            <a-select-option
+              v-for="item in countyList"
+              :key="item.areaCode"
+              :label="item.areaCname"
+              :value="item.areaCode"
+            >
+              {{ item.areaCname }}
+            </a-select-option>
+          </a-select>
+        </div>
+      </div>
       <div class="table">
         <standard-table
           bordered
@@ -249,6 +304,14 @@ export default {
         createtimeStart: moment().format("YYYY-MM-DD"),
         riskCode: undefined,
       },
+      areaList: [],
+      cityList: [],
+      countyList: [],
+      rankForm: {
+        provinceId: "140000",
+        cityId: "",
+        countyId: "",
+      },
       columns,
       amount: {},
       //   listLoading: false,
@@ -292,10 +355,39 @@ export default {
   },
   mounted() {
     this.getList();
+    this.getAreaList();
     // setTimeout(() => {
     // }, 1000);
   },
   methods: {
+    //获取省市区列表
+    getAreaList() {
+      this.$API.personnel.getAreaList().then((res) => {
+        // console.log(res);
+        if (res.data.code === 200) {
+          let arr = [];
+          res.data.data.map((item) => {
+            if (item.areaCname === "山西省") {
+              arr.push(item);
+            }
+          });
+          this.areaList = [...arr];
+          this.cityList = [...arr[0].child];
+        }
+      });
+    },
+    //市区选择事件
+    cityChange(e) {
+      let arr = [];
+      this.areaList[0].child.map((item) => {
+        if (item.areaCode === e) {
+          arr = item.child;
+        }
+      });
+      this.countyList = [...arr];
+      this.rankForm.countyId = "";
+      // this.getRankingList();
+    },
     onClickRow(row) {
       //
       this.listLoading = true;
@@ -335,6 +427,7 @@ export default {
           pageNum: this.pagination.current,
           pageSize: this.pagination.defaultPageSize,
           ...this.formState,
+          ...this.rankForm,
         })
         .then((res) => {
           //   console.log(res);
@@ -621,4 +714,12 @@ export default {
     }
   }
 }
+.area-city {
+  display: flex;
+  margin: 10px 0;
+  > div {
+    flex: none;
+    width: 20%;
+  }
+}
 </style>

+ 65 - 10
src/pages/business/sales.vue

@@ -19,21 +19,28 @@
               </dd>
             </dl>
             <dl>
-              <dt><span>签单保费</span></dt>
+              <dt class="dt-flex">
+                <span>签单保费</span>
+                <span
+                  >占比{{
+                    amount.sumPremiumProportion
+                      ? (amount.sumPremiumProportion * 100).toFixed(2) + "%"
+                      : 0
+                  }}</span
+                >
+              </dt>
               <dd>
                 <span>{{ amount.sumPremium || 0 }}</span>
               </dd>
             </dl>
-            <dl>
+            <!-- <dl>
               <dt><span>签单保费总占比</span></dt>
               <dd>
                 <span>{{
-                  amount.sumPremiumProportion
-                    ? (amount.sumPremiumProportion * 100).toFixed(2) + "%"
-                    : 0
+                  
                 }}</span>
               </dd>
-            </dl>
+            </dl> -->
             <dl>
               <dt><span>交强险保费</span></dt>
               <dd>
@@ -66,6 +73,24 @@
                 </span>
               </dd>
             </dl>
+            <dl style="width: 180px">
+              <dt class="dt-flex">
+                <span>毛利润</span>
+                <span
+                  >占比
+                  <span>{{
+                    amount.distributionAmountRate
+                      ? (amount.distributionAmountRate * 100).toFixed(2) + "%"
+                      : 0 + "%"
+                  }}</span>
+                </span>
+              </dt>
+              <dd>
+                <span>
+                  {{ amount.distributionAmount || 0 }}
+                </span>
+              </dd>
+            </dl>
           </div>
         </div>
       </div>
@@ -194,7 +219,7 @@ const columns = [
     dataIndex: "userId",
     // scopedSlots: { customRender: "parterCompanyName" },
   },
-  
+
   {
     title: "管理人",
     dataIndex: "leaderName",
@@ -220,6 +245,10 @@ const columns = [
     title: "非车险保费",
     dataIndex: "jypremium",
   },
+  {
+    title: "毛利润",
+    dataIndex: "distributionAmount",
+  },
   {
     title: "操作",
     dataIndex: "operation",
@@ -363,7 +392,7 @@ export default {
 .quote {
   display: flex;
   > div:first-child {
-    width: 20%;
+    width: 17%;
     background: #fff;
     margin-right: 15px;
   }
@@ -408,7 +437,7 @@ export default {
         justify-content: space-between;
         > dl {
           flex: none;
-          width: 180px;
+          min-width: 150px;
           height: 80px;
           display: flex;
           //   align-items: center;
@@ -435,10 +464,19 @@ export default {
         > dl:first-child {
           background: url("../../assets/img/business1.png");
           color: #11a6d3;
+          dt > span:nth-child(2) {
+            background: #11a6d3;
+          }
         }
         > dl:nth-child(2) {
           background: url("../../assets/img/business2.png");
           color: #f87f2c;
+          dt > span:nth-child(2) {
+            background: #f87f2c;
+            color: #fff;
+            // padding: 0 8px;
+            box-sizing: border-box;
+          }
         }
         > dl:nth-child(3) {
           background: url("../../assets/img/business3.png");
@@ -459,10 +497,16 @@ export default {
         > dl:nth-child(7) {
           background: url("../../assets/img/business6.png");
           color: #f879cd;
+          dt > span:nth-child(2) {
+            background: #f879cd;
+            color: #fff;
+            // padding: 0 8px;
+            box-sizing: border-box;
+          }
         }
       }
       span {
-        display: block;
+        // display: block;
         margin-right: 15px;
       }
       /deep/.ant-calendar-picker {
@@ -518,4 +562,15 @@ export default {
 .ant-form-item {
   display: flex;
 }
+.dt-flex {
+  display: flex;
+  // align-items: center;
+  justify-content: space-between;
+  // >span:last-child{
+  //   background: ;
+  // }
+  > span {
+    display: inline;
+  }
+}
 </style>

+ 0 - 1
src/pages/financial/carInsurance.vue

@@ -86,7 +86,6 @@ const columns = [
     title: "未收",
     dataIndex: "readyCommissionFeevalue",
     // scopedSlots: { customRender: "qutationCount" },
-
     // sorter: true,
     needTotal: true,
   },

+ 59 - 1
src/pages/financial/receivables.vue

@@ -35,7 +35,7 @@
         </div>
       </div>
     </div>
-    <div class="table">
+    <div class="table" v-show="formState.dateType == 2">
       <standard-table
         bordered
         :columns="columns"
@@ -58,6 +58,29 @@
         </div>
       </standard-table>
     </div>
+    <div class="table" v-show="formState.dateType == 1">
+      <standard-table
+        bordered
+        :columns="columns1"
+        :dataSource="tableList"
+        :pagination="false"
+        @clear="onClear"
+        @change="onChange"
+        :loading="loading"
+      >
+        <div slot="qutationCount" slot-scope="{ text }">
+          {{ text + "条" }}
+        </div>
+        <div slot="quotationRate" slot-scope="{ text }">
+          {{ (text * 100).toFixed(2) + "%" }}
+        </div>
+        <div slot="operation" slot-scope="{ text, record }">
+          <a-button type="link" @click="watchMessage({ text, record })"
+            >详情</a-button
+          >
+        </div>
+      </standard-table>
+    </div>
     <!-- <router-view></router-view> -->
   </div>
 </template>
@@ -94,6 +117,7 @@ const columns = [
     title: "开票已结算",
     dataIndex: "settlementAmount",
     needTotal: true,
+
     // scopedSlots: { customRender: "qutationCount" },
   },
   {
@@ -109,6 +133,39 @@ const columns = [
     scopedSlots: { customRender: "operation" },
   },
 ];
+const columns1 = [
+  {
+    title: "月份",
+    dataIndex: "yearAndMonth",
+    // scopedSlots: { customRender: "qutationCount" },
+  },
+
+  {
+    title: "应收",
+    dataIndex: "commissionFeevalue",
+    // scopedSlots: { customRender: "qutationCount" },
+  },
+  {
+    title: "已收",
+    dataIndex: "noInvoicCommissionFeevalue",
+    // scopedSlots: { customRender: "qutationCount" },
+  },
+  {
+    title: "未收",
+    dataIndex: "noSettlementAmount",
+    // scopedSlots: { customRender: "qutationCount" },
+
+    // sorter: true,
+    needTotal: true,
+  },
+
+  {
+    title: "操作",
+    dataIndex: "operation",
+    needTotal: true,
+    scopedSlots: { customRender: "operation" },
+  },
+];
 
 export default {
   components: {
@@ -124,6 +181,7 @@ export default {
       },
       backLinePersonnel: {},
       columns: columns,
+      columns1: columns1,
       companyList: [],
       tableList: [],
       pagination: {

+ 1 - 1
src/pages/financial/receivablesMessage.vue

@@ -225,8 +225,8 @@ export default {
         })
         .then((res) => {
           if (res.data.code === 200) {
+            this.loading = false;
             if (res.data.data) {
-              this.loading = false;
               this.tableList = [...res.data.data.list] || [];
               this.titleMessage = { ...res.data.data } || {};
               let receivable = [];

+ 9 - 1
src/pages/personnelManage/front/personnel.vue

@@ -59,6 +59,8 @@
                 </a-tooltip>
               </p>
               <p>管理人名称:{{ item.leaderName }}</p>
+              <p>毛利润:{{ item.estimatedProfit }}</p>
+
               <p>
                 <span>总人力:{{ item.totalManpower || 0 }}</span>
                 <span>出单人力:{{ item.orderManpower || 0 }}</span>
@@ -137,7 +139,11 @@
           <p>选择区域:</p>
           <div class="area-city">
             <div>
-              省份:<a-select style="width: 90%" v-model="rankForm.provinceId">
+              省份:<a-select
+                style="width: 90%"
+                v-model="rankForm.provinceId"
+                allowClear
+              >
                 <a-select-option
                   v-for="item in areaList"
                   :key="item.areaCode"
@@ -155,6 +161,7 @@
                 v-model="rankForm.cityId"
                 v-show="area !== 'province'"
                 @change="cityChange"
+                allowClear
               >
                 <a-select-option
                   v-for="item in cityList"
@@ -174,6 +181,7 @@
                 v-model="rankForm.countyId"
                 v-show="area == 'county'"
                 @change="countyChange"
+                allowClear
               >
                 <a-select-option
                   v-for="item in countyList"

+ 2 - 2
src/pages/personnelManage/sales.vue

@@ -80,7 +80,7 @@
         </a-form-item>
         <a-form-item label="管理人" :labelCol="{ span: 5 }" :colon="false">
           <a-cascader
-              change-on-select
+            change-on-select
             style="width: 300px"
             placeholder="请选择管理人"
             v-model="formState.leaderId"
@@ -138,7 +138,7 @@
                 </a-tooltip>
               </p>
               <p>管理人名称:{{ item.leaderName }}</p>
-
+              <p>毛利润:{{ item.estimatedProfit }}</p>
               <p>
                 <span>总保费:{{ item.totalPremium || 0 }}</span>
                 <span>单均保费:{{ item.averagePremium || 0 }}</span>

+ 1 - 3
src/pages/profit/profit.vue

@@ -207,14 +207,12 @@ export default {
         },
         {
           title: "子类目",
-          dataIndex: "subcategory ",
+          dataIndex: "subcategory",
         },
-
         {
           title: "金额",
           dataIndex: "applyAmount",
         },
-
         {
           title: "占总支出比例",
           dataIndex: "radio",