刘恒 1 سال پیش
والد
کامیت
94a31c4c28

+ 0 - 12
.env

@@ -1,12 +0,0 @@
-VUE_APP_PUBLIC_PATH=/
-VUE_APP_NAME=Admin
-VUE_APP_ROUTES_KEY=admin.routes
-VUE_APP_PERMISSIONS_KEY=admin.permissions
-VUE_APP_ROLES_KEY=admin.roles
-VUE_APP_USER_KEY=admin.user
-VUE_APP_SETTING_KEY=admin.setting
-VUE_APP_TBAS_KEY=admin.tabs
-VUE_APP_TBAS_TITLES_KEY=admin.tabs.titles
-VUE_APP_API_BASE_URL=https://sxzgkj.baoxianzhanggui.com/web-api
-VUE_APP_BASE_URL=https://sxzgkj.baoxianzhanggui.com
-

+ 11 - 4
.env.development

@@ -1,12 +1,19 @@
-VUE_APP_API_BASE_URL='http://192.168.0.42:8080'
+VUE_APP_API_BASE_URL='http://192.168.0.42:8080/'
+
+
+#VUE_APP_API_BASE_URL='https://test.baoxianzhanggui.com/web-api'
+#VUE_APP_BASE_URL='https://test.baoxianzhanggui.com'
+
 # VUE_APP_API_BASE_URL='"https://test.baoxianzhanggui.com/web-api"'  #//测试服务器
 # VUE_APP_API_BASE_URL='"https://sxzgkj.baoxianzhanggui.com/web-api"'  #//正式服务器
 # VUE_APP_API_BASE_URL= '"http://192.168.0.115:8080/"'                 #//凯森
 # VUE_APP_API_BASE_URL= '"http://192.168.0.106:8080/"'                #//屈晨
-# VUE_APP_API_BASE_URL= '"http://192.168.0.253:8080/"'                 #//田智
-# VUE_APP_API_BASE_URL= 'http://192.168.0.42:8080/'                 #//武鸿鹏
+# VUE_APP_API_BASE_URL= '"http://192.168.0.253:8080/"'                 #//田智                 #//武鸿鹏
 # VUE_APP_API_BASE_URL= '"http://192.168.0.253:8080/"'                #//田智
 
 # VUE_APP_API_BASE_URL= '"http://192.168.1.101:8080/"'
 # VUE_APP_API_BASE_URL= '"http://192.168.0.250:8080/"'//
-#  VUE_APP_API_BASE_URL= 'http://192.168.0.103:8080'                 #//霍续亮 
+#  VUE_APP_API_BASE_URL= 'http://192.168.0.103:8080'                 #//霍续亮 
+
+NODE_ENV='development'
+VUE_APP_ENV='development'

+ 7 - 0
.env.production

@@ -0,0 +1,7 @@
+VUE_APP_API_BASE_URL='https://sxzgkj.baoxianzhanggui.com/web-api'
+VUE_APP_BASE_URL='https://sxzgkj.baoxianzhanggui.com'
+NODE_ENV='production'
+VUE_APP_EN='production'
+outputDir='dist'
+
+

+ 7 - 0
.env.test

@@ -0,0 +1,7 @@
+VUE_APP_API_BASE_URL='https://test.baoxianzhanggui.com/web-api'
+VUE_APP_BASE_URL='https://test.baoxianzhanggui.com'
+VUE_APP_ENV='test'
+NODE_ENV='test'
+outputDir='dist'
+
+

BIN
dist.zip


+ 4 - 3
package.json

@@ -4,8 +4,9 @@
   "homepage": "https://iczer.github.io/vue-antd-admin",
   "private": true,
   "scripts": {
-    "serve": "vue-cli-service serve",
-    "build": "vue-cli-service build",
+    "serve": "vue-cli-service serve --open",
+    "build": "vue-cli-service build  --mode test",
+    "build:prod": "vue-cli-service build  --mode production",
     "lint": "vue-cli-service lint",
     "predeploy": "yarn build",
     "deploy": "gh-pages -d dist -b pages -r https://gitee.com/iczer/vue-antd-admin.git",
@@ -78,4 +79,4 @@
     "last 2 versions",
     "not ie <= 10"
   ]
-}
+}

+ 4 - 1
public/index.html

@@ -27,7 +27,10 @@
   </div>
   <!-- require cdn assets js -->
   <% for (var i in htmlWebpackPlugin.options.cdn && htmlWebpackPlugin.options.cdn.js) { %>
-    <script type="text/javascript" src="<%= htmlWebpackPlugin.options.cdn.js[i] %>"></script>
+    <script type="text/javascript" src="<%= htmlWebpackPlugin.options.cdn.js[i] %>">
+      console.log(i)
+    </script>
+
     <% } %>
       <!-- built files will be auto injected -->
 </body>

+ 9 - 6
src/layouts/header/AdminHeader.vue

@@ -163,13 +163,16 @@ export default {
     // ...mapMutations('setting', ['correctPageMinHeight']),
     getRouteBreadcrumb() {
       let routes = this.$route.matched;
-      const path = this.$route.path;
+      const lastPath = this.$route.path;
+
       let breadcrumb = [];
       routes
-        .filter((item) => path.includes(item.path))
-        .forEach((route) => {
-          const path = route.path;
-          console.log(route.name);
+        .filter((item) => lastPath.includes(item.path))
+        .forEach((route, index) => {
+          const path =
+            index == 1 ? "/" + lastPath.split("/")[1] + route.path : route.path;
+          // console.log(path);
+
           if (route.name == "保费详情") {
             switch (path.split("/message")[0]) {
               case "/business/sales":
@@ -226,7 +229,7 @@ export default {
         breadcrumb[breadcrumb.length - 1] = this.customTitle || pageTitle;
       }
       breadcrumb.shift();
-      // console.log(breadcrumb)
+      console.log(breadcrumb);
       return breadcrumb;
     },
   },

+ 30 - 5
src/pages/agreement/index.vue

@@ -70,6 +70,22 @@
             allowClear
           ></a-input>
         </a-form-item>
+        <a-form-item label="内外部协议" :labelCol="{ span: 8 }" :colon="false">
+          <a-select
+            placeholder="请选择"
+            v-model="formState.isExternal"
+            allowClear
+            :filter-option="filterOption"
+            style="width: 200px"
+          >
+            <a-select-option value="1">
+              {{ "是" }}
+            </a-select-option>
+            <a-select-option value="0">
+              {{ "否" }}
+            </a-select-option>
+          </a-select>
+        </a-form-item>
       </a-form>
       <standard-table
         bordered
@@ -83,28 +99,29 @@
         <div slot="validStatus" slot-scope="{ record }">
           <!-- {{text}} -->
           <a-tag
-            v-if="record.validStatus == 1"
+            v-if="record.isEenabled == 1"
             style="
               background: rgba(120, 148, 242, 0.2);
               border-radius: 2px 2px 2px 2px;
               border: 1px solid #7894f2;
               color: #2a55e5;
             "
-            >有效</a-tag
-          >
+            >有效
+          </a-tag>
           <a-tag v-else>无效</a-tag>
         </div>
         <div slot="isEenabled" slot-scope="{ record }">
           <a-tag
-            v-if="record.isEenabled == 1"
+            v-if="record.validStatus == 1"
             type="primary"
             style="
               background: linear-gradient(180deg, #66cdbb 0%, #33a08d 100%);
               border-radius: 4px 4px 4px 4px;
               color: #fff;
             "
-            >启用</a-tag
           >
+            启用
+          </a-tag>
           <a-tag v-else style="background: #f5f5f5; border: 0">禁用</a-tag>
         </div>
 
@@ -206,6 +223,7 @@ export default {
         countyId: undefined,
         houseId: undefined,
         provinceId: undefined,
+        isExternal: undefined,
       },
       insurerId: "",
       advanced: true,
@@ -243,6 +261,13 @@ export default {
     });
   },
   methods: {
+    filterOption(input, option) {
+      return (
+        option.componentOptions.children[0].text
+          .toLowerCase()
+          .indexOf(input.toLowerCase()) >= 0
+      );
+    },
     search() {
       this.pagination.current = 1;
       this.getList();

+ 1 - 1
src/pages/business/agent.vue

@@ -195,7 +195,7 @@
             >
           </div>
           <div slot="managementSource" slot-scope="{ text }">
-            {{ text == "1" ? "渠道" : "代理人" }}
+            {{ text.managementSource == "1" ? "渠道" : "代理人" }}
           </div>
         </standard-table>
       </div>

+ 1 - 1
src/pages/business/channel.vue

@@ -186,7 +186,7 @@
               >
             </div>
             <div slot="managementSource" slot-scope="{ text }">
-              {{ text == "1" ? "渠道" : "代理人" }}
+              {{ text.managementSource == "1" ? "渠道" : "代理人" }}
             </div>
           </standard-table>
         </div>

+ 15 - 13
src/pages/business/index.vue

@@ -17,9 +17,11 @@
             </dd>
           </dl>
           <dl>
-            <dt><span>人员数据</span></dt>
+            <dt><span>出单笔数</span></dt>
             <dd>
-              <span>{{ amount.userNumber || 0 }}</span>
+              <span>
+                {{ amount.qutationInsureCount || 0 }}
+              </span>
             </dd>
           </dl>
           <dl>
@@ -29,18 +31,17 @@
             </dd>
           </dl>
           <dl>
-            <dt><span>人均产能</span></dt>
+            <dt><span>人员数据</span></dt>
             <dd>
-              <span>
-                {{ amount.perCapitaAmount || 0 }}
-              </span>
+              <span>{{ amount.userNumber || 0 }}</span>
             </dd>
           </dl>
+
           <dl>
-            <dt><span>出单笔数</span></dt>
+            <dt><span>人均产能</span></dt>
             <dd>
               <span>
-                {{ amount.qutationInsureCount || 0 }}
+                {{ amount.perCapitaAmount || 0 }}
               </span>
             </dd>
           </dl>
@@ -210,18 +211,19 @@ const columns = [
     sorter: true,
   },
   {
-    title: "人员数量",
-    dataIndex: "userNumber",
-    sorter: true,
+    title: "出单笔数",
+    dataIndex: "qutationInsureCount",
   },
   {
     title: "单均保费",
     dataIndex: "averagePremium",
   },
   {
-    title: "出单笔数",
-    dataIndex: "qutationInsureCount",
+    title: "人员数量",
+    dataIndex: "userNumber",
+    sorter: true,
   },
+
   {
     title: "人均产能",
     dataIndex: "perCapitaAmount",

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

@@ -163,7 +163,7 @@ export default {
     watchMessage(item) {
       // console.log(item);
       this.$router.push({
-        path: "/financial/receivablesMessage",
+        path: "/financial/carInsurance/receivablesMessage",
         query: {
           type: this.formState.dateType,
           yearMonth: item.record.yearAndMonth,

+ 1 - 1
src/pages/financial/noCarInsurance/driver.vue

@@ -162,7 +162,7 @@ export default {
     watchMessage(item) {
       // console.log(item);
       this.$router.push({
-        path: "/financial/receivablesMessage",
+        path: "/financial/noCarInsurance/driver/receivablesMessage",
         query: {
           type: this.formState.dateType,
           yearMonth: item.record.yearAndMonth,

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

@@ -2,7 +2,7 @@
   <div class="back-line-main">
     <div class="back-line-header">
       <div class="back-line-header-title">
-        <h2>财务应收</h2>
+        <h2>{{ $route.matched[1].name }}</h2>
         <div>
           月份筛选
           <a-month-picker

+ 20 - 2
src/pages/financial/verification.vue

@@ -4,7 +4,15 @@
       <div class="back-line-header-title">
         <h2>费用校验</h2>
         <div>
-          <span>时间筛选</span>
+          <span>审核时间筛选</span>
+          <a-range-picker
+            @change="onChangeAuditTime"
+            v-model="formState.auditTime"
+            valueFormat="YYYY-MM-DD"
+          >
+            <a-icon slot="suffixIcon" type="calendar" />
+          </a-range-picker>
+          <span>签单时间筛选</span>
           <a-range-picker
             @change="onChangeTime"
             v-model="formState.time"
@@ -189,6 +197,9 @@ export default {
         beginDate: moment().format("YYYY-MM-DD"),
         reviewer: undefined,
         companyId: undefined,
+        auditTime: [],
+        auditTimeStart: undefined,
+        auditTimeEnd: undefined,
       },
       backLinePersonnel: {},
       columns: columns,
@@ -225,7 +236,6 @@ export default {
   mounted() {
     this.getList();
     this.$API.financial.getCompany().then((res) => {
-      console.log(res);
       if (res.data.code === 200) {
         this.companyList = [...res.data.data];
       }
@@ -243,6 +253,8 @@ export default {
           riskCode: this.formState.riskCode,
           beginDate: this.formState.beginDate,
           endDate: this.formState.endDate,
+          auditTimeStart: this.formState.auditTimeStart,
+          auditTimeEnd: this.formState.auditTimeEnd,
           reviewer: this.formState.reviewer,
         },
       });
@@ -308,6 +320,12 @@ export default {
       this.formState.days = undefined;
       this.getVerification();
     },
+    onChangeAuditTime(val) {
+      this.formState.auditTimeStart = val[0];
+      this.formState.auditTimeEnd = val[1];
+      // this.formState.days = undefined;
+      this.getVerification();
+    },
     onChange(pagination, filters, sorter, { currentDataSource }) {
       // this.$message.info('表格状态改变了')
       console.log(pagination, filters, sorter, { currentDataSource });

+ 39 - 5
src/pages/profit/profit.vue

@@ -73,14 +73,22 @@
         </standard-table>
       </div>
     </div>
-    <a-modal
-      v-model="visible"
+    <!-- v-model="visible"
       :title="title"
       @ok="handleOk"
       layout="inline"
       width="50%"
-      :footer="null"
+      :footer="null" -->
+    <a-drawer
+      :width="1000"
+      :placement="placement"
+      :visible="visible"
+      :headerStyle="headerStyle"
+      :closable="false"
     >
+      <p @click="visible = false">
+        <a-icon type="close" />
+      </p>
       <a-table
         :columns="columns1"
         :dataSource="detailTable"
@@ -90,8 +98,12 @@
         :scroll="{ y: 600 }"
         :loading="detailsLoading"
       >
+        <div slot="index" slot-scope="{ text, record }">
+          {{ text }}
+          {{ record }}
+        </div>
       </a-table>
-    </a-modal>
+    </a-drawer>
   </div>
 </template>
           
@@ -184,14 +196,29 @@ export default {
     return {
       columns1: [
         {
-          title: "类名",
+          title: "序号",
+          dataIndex: "no",
+          key: "no",
+          customRender: (text, record, index) => `${index + 1}`,
+        },
+        {
+          title: "类目",
           dataIndex: "category",
         },
+        {
+          title: "子类目",
+          dataIndex: "subcategory ",
+        },
 
         {
           title: "金额",
           dataIndex: "applyAmount",
         },
+
+        {
+          title: "占总支出比例",
+          dataIndex: "radio",
+        },
       ],
       detailTable: [],
       detailsLoading: false,
@@ -201,6 +228,13 @@ export default {
         dateType: "",
         year: "",
       },
+      placement: "right",
+
+      headerStyle: {
+        display: "flex",
+        "align-items": "center",
+        "justify-content": "space-between",
+      },
       backLinePersonnel: {},
       columns: columns,
       companyList: [],

+ 1 - 1
src/pages/sales/message.vue

@@ -88,7 +88,7 @@ const columns = [
   },
 
   {
-    title: "呼出时长(分钟)",
+    title: "呼出时长",
     dataIndex: "exhaleDuration",
   },
   {

+ 1 - 1
src/pages/sales/sales.vue

@@ -144,7 +144,7 @@ const columns = [
   },
 
   {
-    title: "呼出时长(分钟)",
+    title: "呼出时长",
     dataIndex: "exhaleDuration",
   },
   {

+ 7 - 2
src/pages/task/channel.vue

@@ -121,7 +121,7 @@
         :dataSource="tableList"
         :pagination="pagination"
         @change="onChange"
-        :loading="detailLoadding"
+        :loading="loading"
         :scroll="{ x: 2200, y: 600 }"
       >
         <div slot="qutationCount" slot-scope="{ text }">
@@ -223,7 +223,7 @@
           :dataSource="detailList"
           :pagination="pageInfo"
           @change="detailsChange"
-          :loading="loading"
+          :loading="detailLoadding"
           :scroll="{ x: 2200 }"
         >
           <div slot="qutationCount" slot-scope="{ text }">
@@ -320,6 +320,11 @@ const columns = [
     dataIndex: "appOrderSource",
     scopedSlots: { customRender: "qutationCount" },
   },
+  {
+    title: "代课录单",
+    dataIndex: "sumEntryStatus",
+    // scopedSlots: { customRender: "qutationCount" },
+  },
   {
     title: "待审核",
     dataIndex: "auditOrder",

+ 1 - 1
src/pages/task/dianxiao.vue

@@ -547,7 +547,7 @@ export default {
     exportList() {
       delete this.formState.time;
       this.$API.task
-        .exportChannelList({
+        .exportElectricList({
           ...this.formState,
           leaderId: this.formState.leaderId[this.formState.leaderId.length - 1],
         })

+ 0 - 1
src/pages/task/insurance.vue

@@ -251,7 +251,6 @@ export default {
       this.getBackLinePersonnel();
     },
     "formState.provinceId"(val) {
-      console.log(val);
       if (val != undefined) {
         this.cityList = [...this.city];
       } else {

+ 4 - 0
src/pages/wallet/agent.vue

@@ -131,9 +131,13 @@
                 <p>
                   <span>总收入:{{ item.totalIncome || 0 }}</span>
                 </p>
+                <p>
+                  <span>提现中:{{ item.withdrawingAmount || 0 }}</span>
+                </p>
                 <p>
                   <span>已提现:{{ item.withdrawn || 0 }}</span>
                 </p>
+
                 <p>
                   <span>未提现:{{ item.notWithdrawn || 0 }}</span>
                   <a-button

+ 58 - 7
src/router/config.js

@@ -23,14 +23,7 @@ const router = new Router({
         //   name: '首页',
         //   component: () => import('@/pages/index/index')
         // },
-        {
-          path: '/financial/receivablesMessage',
-          name: '每月详情',
-          hidden: true,
-          meta: { requiresAuth: true },
 
-          component: () => import('@/pages/financial/receivablesMessage'),
-        },
         {
           path: '/',
           name: '代理人统计',
@@ -110,6 +103,64 @@ const router = new Router({
             }
           ]
         },
+        {
+
+          path: '/receivables',
+          name: '财务应收',
+          hidden: true,
+          meta: { requiresAuth: true },
+
+          component: PageView,
+          children: [
+            {
+              path: '/financial/receivablesMessage',
+              name: '每月详情',
+              hidden: true,
+              meta: { requiresAuth: true },
+
+              component: () => import('@/pages/financial/receivablesMessage'),
+            },
+          ]
+        },
+        {
+
+          path: '/carInsurance',
+          name: '车险应收',
+          hidden: true,
+          meta: { requiresAuth: true },
+
+          component: PageView,
+          children: [
+            {
+              path: '/financial/carInsurance/receivablesMessage',
+              name: '每月详情',
+              hidden: true,
+              meta: { requiresAuth: true },
+
+              component: () => import('@/pages/financial/receivablesMessage'),
+            },
+          ]
+        },
+        {
+
+          path: '/noCarInsurance/driver',
+          name: '驾意应收',
+          hidden: true,
+          meta: { requiresAuth: true },
+
+          component: PageView,
+          children: [
+            {
+              path: '/financial/noCarInsurance/driver/receivablesMessage',
+              name: '每月详情',
+              hidden: true,
+              meta: { requiresAuth: true },
+
+              component: () => import('@/pages/financial/receivablesMessage'),
+            },
+          ]
+        },
+
 
 
         {

+ 6 - 1
src/services/task.js

@@ -66,7 +66,11 @@ export async function getWithdrawalDrawal(data) {
 }
 // /withdrawalTask/countWithdrawal
 
+export async function exportElectricList(data) {
+    return request("/taskStatistics/electricExcel", METHOD.POST, data,
 
+    )
+}
 
 
 
@@ -82,5 +86,6 @@ export default {
     getChannelAgentDetails,
     getQueryPageElectric,
     getWithdrawalTask,
-    getWithdrawalDrawal
+    getWithdrawalDrawal,
+    exportElectricList
 }

+ 10 - 1
src/utils/request.js

@@ -35,7 +35,16 @@ const METHOD = {
  * @returns {Promise<AxiosResponse<T>>}
  */
 async function request(url, method, params, config) {
-  const Url = process.env.VUE_APP_API_BASE_URL + url;
+  const isProd = process.env.NODE_ENV === 'production'
+  // console.log(isProd)
+  let baseUrl = ""
+  if (isProd) {
+    baseUrl = "https://sxzgkj.baoxianzhanggui.com/web-api"
+  } else {
+    baseUrl = process.env.VUE_APP_API_BASE_URL
+
+  }
+  const Url = baseUrl + url;
   switch (method) {
     case METHOD.GET:
       return axios.get(Url, { params, ...config })

+ 3 - 3
vue.config.js

@@ -121,10 +121,10 @@ module.exports = {
     }
   },
 
-  // publicPath: 'https://sxzgkj.baoxianzhanggui.com/console-api',
+  publicPath: isProd ? 'https://sxzgkj.baoxianzhanggui.com/console-api' : '/',
 
-  publicPath: '/',
-  outputDir: 'dist',
+  // publicPath: '/',
+  outputDir: process.env.outputDir,
   assetsDir: 'static',
   productionSourceMap: false
 }