Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 

761 wiersze
26 KiB

  1. <template>
  2. <div class="box-center">
  3. <div style="
  4. width: calc(100% - 270px);
  5. position: fixed;
  6. z-index: 999;
  7. margin-top: -16px;
  8. background: #ecedf0;
  9. box-shadow: 0px 0px 10px 0px #dadada;
  10. ">
  11. <div class="toptab" style="cursor: pointer" v-if="orgType != 2">
  12. <div @click="tapclickyab(0)" :class="{ activecllasscet: activeTotal == 0 }"
  13. :style="{ background: activeTotal == 0 ? '#2671E2' : '#ffffff' }">
  14. 项目
  15. </div>
  16. <div v-if="orgType == 0" @click="tapclickyab(1)" :class="{ activecllasscet: activeTotal == 1 }"
  17. :style="{ background: activeTotal == 1 ? '#2671E2' : '#ffffff' }">
  18. 代理商
  19. </div>
  20. <div v-if="orgType == 0 || orgType == 1" @click="tapclickyab(2)" :class="{ activecllasscet: activeTotal == 2 }"
  21. :style="{ background: activeTotal == 2 ? '#2671E2' : '#ffffff' }">
  22. 公司
  23. </div>
  24. </div>
  25. <!-- 头 -->
  26. <div class="app-top">
  27. <div class="app-titel" style="margin-top: 5px">
  28. <div class="div-lab">
  29. <div class="label" style="margin-left: 15px">时间:</div>
  30. <div class="toptimeqhuan">
  31. <div :class="{ tophove: searchForm.dateType == 4 }" @click="tabtimetap(4)" style="cursor: pointer">
  32. 近7天
  33. </div>
  34. <div :class="{ tophove: searchForm.dateType == 5 }" @click="tabtimetap(5)" style="cursor: pointer">
  35. 近15天
  36. </div>
  37. <div :class="{ tophove: searchForm.dateType == 6 }" @click="tabtimetap(6)" style="cursor: pointer">
  38. 近30天
  39. </div>
  40. </div>
  41. <div>
  42. <el-date-picker v-model="time" type="daterange" class="div-inp" range-separator="-"
  43. start-placeholder="开始日期" :default-time="['00:00:00', '23:59:59']" value-format="yyyy-MM-dd"
  44. end-placeholder="结束日期" @change="timeChange">
  45. </el-date-picker>
  46. </div>
  47. </div>
  48. <!--
  49. <div class="div-lab" v-if="orgType!=2">
  50. <el-input
  51. v-model="changeValue"
  52. clearable
  53. placeholder="请输入"
  54. maxlength="10"
  55. @change="selectChange"
  56. style="width: 363px"
  57. >
  58. <el-select
  59. v-model="selflag"
  60. slot="prepend"
  61. class="input-with-select"
  62. style="width: 115px"
  63. placeholder="请选择"
  64. @change="selChange"
  65. >
  66. <el-option label="公司名称" value="1"></el-option>
  67. <el-option v-if="orgType==0&&activeTotal != 2" label="代理商名称" value="2"></el-option>
  68. <el-option label="项目名称" value="3"></el-option>
  69. </el-select>
  70. </el-input>
  71. </div> -->
  72. <div class="div-lab" v-if="orgType == 0">
  73. <el-input v-model="changeValue" clearable placeholder="请输入" maxlength="10" @change="selectChange"
  74. style="width: 363px">
  75. <el-select v-model="selflag" slot="prepend" class="input-with-select" style="width: 115px"
  76. placeholder="请选择" @change="selChange">
  77. <el-option v-if="activeTotal != 1" label="公司名称" value="1"></el-option>
  78. <el-option v-if="activeTotal != 2" label="代理商名称" value="2"></el-option>
  79. <el-option v-if="activeTotal == 0" label="项目名称" value="3"></el-option>
  80. </el-select>
  81. </el-input>
  82. </div>
  83. <div class="div-lab" v-if="orgType == 1">
  84. <el-input v-model="changeValue" clearable placeholder="请输入" maxlength="10" @change="selectChange"
  85. style="width: 363px">
  86. <el-select v-model="selflag" slot="prepend" class="input-with-select" style="width: 115px"
  87. placeholder="请选择" @change="selChange">
  88. <el-option v-if="activeTotal != 1" label="公司名称" value="1"></el-option>
  89. <el-option v-if="activeTotal == 0" label="项目名称" value="3"></el-option>
  90. </el-select>
  91. </el-input>
  92. </div>
  93. </div>
  94. <div class="app-titel" style="margin-top: 5px">
  95. <div class="div-lab">
  96. <div class="label">地区:</div>
  97. <el-cascader :props="props" @change="locationsChange" placeholder="省/市" size="small" separator="/"
  98. v-model="provice" clearable></el-cascader>
  99. </div>
  100. <!-- <div class="div-lab" v-if="orgType == 0">
  101. <div class="label" style="min-width:70px;">系统运营:</div>
  102. <el-input maxlength="10" clearable v-model="searchForm.linkman"></el-input>
  103. </div>
  104. <div class="div-lab" v-if="orgType == 1">
  105. <div class="label" style="min-width:70px;">售后运营:</div>
  106. <el-input maxlength="10" clearable v-model="searchForm.linkman"></el-input>
  107. </div> -->
  108. <div v-if="orgType == 0 || orgType == 1" class="div-lab">
  109. <div class="label">运营人员:</div>
  110. <el-select v-model="searchForm.operationStaffId" placeholder="请选择" class="div-inp" filterable clearable>
  111. <el-option v-for="item in operaList" :key="item.accountId" :label="item.name" :value="item.accountId">
  112. </el-option>
  113. </el-select>
  114. </div>
  115. </div>
  116. <div class="app-titel" style="margin-top: 15px">
  117. <div style="margin-left: 20px">
  118. <el-button type="primary" @click="screen">筛选</el-button>
  119. </div>
  120. <div style="margin-left: 20px">
  121. <el-button @click="clascreen" type="text">清空筛选条件</el-button>
  122. </div>
  123. <div style="margin-left: auto; margin-right: 10px" v-if="cus_build_count_download">
  124. <el-button @click="downLoad" icon="el-icon-download">导出</el-button>
  125. </div>
  126. </div>
  127. </div>
  128. </div>
  129. <!-- 表格 -->
  130. <div class="cen-tab" :style="{ marginTop: orgType != 2 ? '230px' : '170px' }">
  131. <el-table :header-cell-style="{ background: '#F5F7FA', color: '#333333' }" v-if="activeTotal == 0" :data="tableData"
  132. stripe style="width: 100%" height="640">
  133. <el-table-column prop="propertyName" label="项目名称" align="center">
  134. </el-table-column>
  135. <el-table-column prop="orgName" label="公司名称" align="center">
  136. <template slot-scope="{ row }">
  137. <el-tooltip class="item" effect="dark" :content="row.orgName" placement="top-start">
  138. <span
  139. style="display: block;width: 100%;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">{{ row.orgName }}</span>
  140. </el-tooltip>
  141. </template>
  142. </el-table-column>
  143. <el-table-column prop="agentName" label="代理商" align="center">
  144. </el-table-column>
  145. <el-table-column prop="avgExacutiveRate" label="平均执行率" width="110" align="center" sortable>
  146. <template slot-scope="{ row }">
  147. {{ row.avgExacutiveRate || 0 }}%
  148. </template>
  149. </el-table-column>
  150. <!-- <el-table-column prop="axExacutiveRate" label="最高执行率" align="center" sortable width="110">
  151. </el-table-column>
  152. <el-table-column prop="noMarkAdviserCount" label="未标顾问" align="center" sortable width="110">
  153. </el-table-column> -->
  154. <el-table-column prop="equipmentNum" label="设备总数" align="center" sortable width="100">
  155. </el-table-column>
  156. <el-table-column prop="area" label="地区" align="center">
  157. <template slot-scope="{ row }">
  158. <el-tooltip class="item" effect="dark" :content="row.area" placement="top-start">
  159. <span
  160. style="display: block;width: 100%;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">{{ row.area }}</span>
  161. </el-tooltip>
  162. </template>
  163. </el-table-column>
  164. <el-table-column v-if="orgType != 2" prop="operationStaffName" label="运营人员" align="center">
  165. <template slot-scope="{ row }">
  166. <el-tooltip class="item" effect="dark" :content="row.operationStaffName" placement="top-start">
  167. <span
  168. style="display: block;width: 100%;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">{{ row.operationStaffName }}</span>
  169. </el-tooltip>
  170. </template>
  171. </el-table-column>
  172. <el-table-column prop="onlineQuantity" label="在线设备" align="center" sortable width="100">
  173. </el-table-column>
  174. <el-table-column prop="noOnlineQuantity" label="离线设备" width="100" align="center" sortable>
  175. </el-table-column>
  176. <el-table-column prop="activeQuantity" label="活跃设备" align="center" sortable width="100">
  177. </el-table-column>
  178. <el-table-column prop="activeAccount" label="活跃顾问" align="center" sortable width="100">
  179. </el-table-column>
  180. <el-table-column prop="sumReception" label="接待量" align="center" sortable>
  181. </el-table-column>
  182. <!-- <el-table-column prop="sumActiveCustomer" label="有效接待" align="center" sortable width="110">
  183. </el-table-column>
  184. <el-table-column prop="noActiveCustomer" label="无效接待" align="center" sortable width="110">
  185. </el-table-column> -->
  186. <el-table-column prop="sumRecordTime" label="接待时长" align="center" sortable width="100">
  187. </el-table-column>
  188. <el-table-column prop="sumProhibitedQuantity" label="违禁次数" width="100" align="center" sortable>
  189. </el-table-column>
  190. <el-table-column label="操作" align="center" fixed="right" width="100">
  191. <template slot-scope="{ row }">
  192. <el-button type="text" v-if="cus_build_area_record" @click="goEquiment(row)">设备使用统计</el-button>
  193. </template>
  194. </el-table-column>
  195. </el-table>
  196. <el-table :header-cell-style="{ background: '#F5F7FA', color: '#333333' }" v-if="activeTotal == 2" :data="tableData"
  197. stripe style="width: 100%" height="640">
  198. <el-table-column prop="orgName" label="公司名称" align="center">
  199. </el-table-column>
  200. <el-table-column prop="houseQuantityOfEnough" label="服务期内项目" align="center" width="140">
  201. </el-table-column>
  202. <el-table-column prop="avgExacutiveRate" label="平均执行率" align="center" width="110" sortable>
  203. <template slot-scope="{ row }">
  204. {{ row.avgExacutiveRate || 0 }}%
  205. </template>
  206. </el-table-column>
  207. <!-- <el-table-column prop="axExacutiveRate" label="最高执行率" align="center" sortable width="110">
  208. </el-table-column>
  209. <el-table-column prop="noMarkAdviserCount" label="未标顾问" align="center" sortable width="110">
  210. </el-table-column> -->
  211. <el-table-column prop="onlineQuantity" label="在线设备" align="center" sortable width="110">
  212. </el-table-column>
  213. <el-table-column prop="area" label="地区" align="center">
  214. </el-table-column>
  215. <el-table-column prop="operationStaffName" label="运营人员" align="center">
  216. </el-table-column>
  217. <el-table-column prop="equipmentNum" label="设备总数" align="center" sortable width="110">
  218. </el-table-column>
  219. <el-table-column prop="noOnlineQuantity" label="离线设备" width="100" align="center" sortable>
  220. </el-table-column>
  221. <el-table-column prop="activeQuantity" label="活跃设备" align="center" sortable width="110">
  222. </el-table-column>
  223. <el-table-column prop="activeAccount" label="活跃顾问" align="center" sortable width="110">
  224. </el-table-column>
  225. <el-table-column prop="sumReception" label="接待量" align="center" sortable width="110">
  226. </el-table-column>
  227. <!-- <el-table-column prop="sumActiveCustomer" label="有效接待" align="center" sortable width="110">
  228. </el-table-column>
  229. <el-table-column prop="noActiveCustomer" label="无效接待" align="center" sortable width="110">
  230. </el-table-column> -->
  231. <el-table-column prop="sumRecordTime" label="接待时长" align="center" sortable width="110">
  232. </el-table-column>
  233. <el-table-column prop="sumProhibitedQuantity" label="违禁次数" align="center" sortable width="110">
  234. </el-table-column>
  235. <el-table-column label="操作" align="center" fixed="right" width="100">
  236. <template slot-scope="{ row }">
  237. <el-button type="text" @click="goDetail(row, 2)">查看详情</el-button>
  238. </template>
  239. </el-table-column>
  240. </el-table>
  241. <el-table :header-cell-style="{ background: '#F5F7FA', color: '#333333' }" v-if="activeTotal == 1" :data="tableData"
  242. stripe style="width: 100%" height="640">
  243. <el-table-column prop="agentName" label="代理商名称" align="center">
  244. </el-table-column>
  245. <el-table-column prop="area" label="地区" align="center">
  246. </el-table-column>
  247. <el-table-column prop="avgExacutiveRate" label="平均执行率" align="center" width="140" sortable>
  248. <template slot-scope="{ row }">
  249. {{ row.avgExacutiveRate || 0 }}%
  250. </template>
  251. </el-table-column>
  252. <!-- <el-table-column prop="axExacutiveRate" label="最高执行率" align="center" sortable width="110">
  253. </el-table-column>
  254. <el-table-column prop="noMarkAdviserCount" label="未标顾问" align="center" sortable width="110">
  255. </el-table-column> -->
  256. <el-table-column prop="operationStaffName" label="运营人员" align="center">
  257. </el-table-column>
  258. <el-table-column prop="houseQuantityOfEnough" label="服务期内项目" align="center" width="150" sortable>
  259. </el-table-column>
  260. <el-table-column prop="sumReception" label="接待量" align="center" sortable width="110">
  261. </el-table-column>
  262. <!-- <el-table-column prop="sumActiveCustomer" label="有效接待" align="center" sortable width="110">
  263. </el-table-column>
  264. <el-table-column prop="noActiveCustomer" label="无效接待" align="center" sortable width="110">
  265. </el-table-column> -->
  266. <el-table-column prop="equipmentNum" label="设备总数" align="center" sortable width="110">
  267. </el-table-column>
  268. <el-table-column prop="sumRecordTime" label="接待时长" align="center" sortable width="110">
  269. </el-table-column>
  270. <el-table-column prop="sumProhibitedQuantity" label="违禁次数" align="center" width="110" sortable>
  271. </el-table-column>
  272. <el-table-column label="操作" align="center" fixed="right" width="100">
  273. <template slot-scope="{ row }">
  274. <el-button type="text" @click="goDetail(row, 1)">查看详情</el-button>
  275. </template>
  276. </el-table-column>
  277. </el-table>
  278. <div style="display: flex; justify-content: flex-end; margin-top: 10px">
  279. <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
  280. :page-sizes="[10, 30, 50]" :page-size="size" layout="total, sizes, prev, pager, next, jumper" :total="total">
  281. </el-pagination>
  282. </div>
  283. </div>
  284. </div>
  285. </template>
  286. <script>
  287. import { mapGetters } from "vuex";
  288. import { getAreaList } from "@/api/modules/api";
  289. export default {
  290. data() {
  291. return {
  292. props: {
  293. lazy: true,
  294. checkStrictly: true,
  295. expandTrigger: "hover",
  296. async lazyLoad(node, resolve) {
  297. const { level } = node;
  298. if (level == 0) {
  299. // console.log(23);
  300. const { data } = await getAreaList({ parentId: 0 }); //获取省接口
  301. var nodes = data.map((item) => {
  302. return {
  303. value: item.id,
  304. label: item.name,
  305. leaf: false,
  306. };
  307. });
  308. resolve(nodes);
  309. } else if (level == 1) {
  310. const { data } = await getAreaList({ parentId: node.data.value }); //获取市接口
  311. var nodes = data.map((item) => {
  312. return {
  313. value: item.id,
  314. label: item.name,
  315. leaf: true,
  316. };
  317. });
  318. resolve(nodes);
  319. } else {
  320. resolve();
  321. }
  322. },
  323. },
  324. activeTotal: "0",
  325. provice: [],
  326. value: "",
  327. input: "",
  328. tableData: [],
  329. multipleSelection: [],
  330. changeValue: "",
  331. dialogVisible: false,
  332. houseList: [],
  333. time: [],
  334. orgType: localStorage.getItem("orgType"),
  335. searchForm: {
  336. propertyName: "",
  337. provinceId: "",
  338. cityId: "",
  339. orgName: "",
  340. agentName: "",
  341. userName: "",
  342. dateType: "4",
  343. startDate: "",
  344. endDate: "",
  345. operationStaffId: "",
  346. },
  347. currentPage: 1,
  348. selflag: "1",
  349. size: 30,
  350. total: 10,
  351. operaList: [],
  352. };
  353. },
  354. computed: {
  355. ...mapGetters(["permissions"]),
  356. },
  357. created() {
  358. this.cus_build_area_record = this.permissions["cus_build_area_record"];
  359. this.cus_build_count_download =
  360. this.permissions["cus_build_count_download"];
  361. },
  362. mounted() {
  363. if (this.orgType == 1) {
  364. this.selflag = "3";
  365. }
  366. // 获取项目列表
  367. this.tabtimetap(4);
  368. this.getOperaList();
  369. this.houseStatistics();
  370. },
  371. methods: {
  372. downLoad() {
  373. let obj = {
  374. ...this.searchForm,
  375. agentId: localStorage.getItem("agentId"),
  376. orgCode: localStorage.getItem("orgCode"),
  377. houseId: localStorage.getItem("houseId"),
  378. orgType: localStorage.getItem("orgType"),
  379. };
  380. if (this.activeTotal == 0) {
  381. if (this.orgType == 0) {
  382. obj.operationType = 1;
  383. } else if (this.orgType == 1) {
  384. obj.operationType = 2;
  385. } else {
  386. obj.operationType = null;
  387. }
  388. // 项目
  389. this.exportMethodPost(
  390. "/autoSR/cusStageStatistics/houseStatisticsExport",
  391. "项目数据",
  392. obj
  393. );
  394. } else if (this.activeTotal == 1) {
  395. obj.operationType = null;
  396. // 代理商
  397. this.exportMethodPost(
  398. "/autoSR/cusStageStatistics/agentStatisticsExport",
  399. "代理商",
  400. obj
  401. );
  402. } else {
  403. if (this.orgType == 0) {
  404. obj.operationType = 1;
  405. } else if (this.orgType == 1) {
  406. obj.operationType = 2;
  407. } else {
  408. obj.operationType = null;
  409. }
  410. this.exportMethodPost(
  411. "/autoSR/cusStageStatistics/companyStatisticsExport",
  412. "公司",
  413. obj
  414. );
  415. }
  416. },
  417. // 导出.Excel公用方法
  418. exportMethodPost(url, name, data = {}) {
  419. axios({
  420. method: "get",
  421. url: url,
  422. params: data,
  423. responseType: "blob",
  424. })
  425. .then((res) => {
  426. let blob = new Blob([res], { type: "application/vnd.ms-excel" });
  427. let date = new Date();
  428. let time = date.toLocaleDateString();
  429. // console.log(time, "时间");
  430. if ("download" in document.createElement("a")) {
  431. const link = document.createElement("a");
  432. link.style.display = "none";
  433. link.href = URL.createObjectURL(blob);
  434. // link.download = res.headers['content-disposition'] //下载后文件名
  435. link.download = (name || "导出文件") + time + ".xlsx"; //下载的文件名
  436. document.body.appendChild(link);
  437. link.click();
  438. document.body.removeChild(link);
  439. } else {
  440. // console.log("--------------------jingla")
  441. let fileName = (name || "导出文件") + time + ".xlsx"; //下载的文件名
  442. navigator.msSaveBlob(blob, fileName);
  443. }
  444. })
  445. .catch((error) => {
  446. // Message.error({
  447. // message: '网络连接错误'
  448. // })
  449. console.log(error);
  450. });
  451. },
  452. getOperaList() {
  453. if (this.orgType == 1) {
  454. this.$api.http
  455. .getAllOperationsStaffByAgent({
  456. agentId: localStorage.getItem("agentId"),
  457. })
  458. .then((res) => {
  459. this.operaList = res.data;
  460. });
  461. } else {
  462. this.$api.http.getAllOperationsStaff().then((res) => {
  463. this.operaList = res.data;
  464. });
  465. }
  466. },
  467. selectChange(e) {
  468. this.searchForm.equipImei = "";
  469. this.searchForm.userName = "";
  470. if (!e) retun;
  471. if (this.selflag == 1) {
  472. this.searchForm.orgName = e;
  473. }
  474. if (this.selflag == 2) {
  475. this.searchForm.agentName = e;
  476. }
  477. if (this.selflag == 3) {
  478. this.searchForm.propertyName = e;
  479. }
  480. },
  481. goEquiment(row) {
  482. console.log(row);
  483. this.$router.push({
  484. path: "/Equipment/equipmentDetailList",
  485. query: {
  486. houseId: row.id,
  487. startDate: this.searchForm.startDate,
  488. endDate: this.searchForm.endDate,
  489. timeType: this.searchForm.dateType,
  490. },
  491. });
  492. },
  493. goDetail(row, i) {
  494. this.activeTotal = 0;
  495. console.log(row);
  496. if (i == 1) {
  497. // 代理商
  498. this.selflag = "2";
  499. this.changeValue = row.agentName;
  500. this.searchForm.agentName = row.agentName;
  501. this.houseStatistics();
  502. } else {
  503. // 公司
  504. this.selflag = "1";
  505. this.changeValue = row.orgName;
  506. this.searchForm.orgName = row.orgName;
  507. this.houseStatistics();
  508. }
  509. },
  510. tapclickyab(i) {
  511. this.activeTotal = i;
  512. if (this.orgType == 0) {
  513. if (i == 1) {
  514. this.selflag = "2";
  515. } else if (i == 2) {
  516. this.selflag = "1";
  517. }
  518. } else if (this.orgType == 1) {
  519. if (i == 2) {
  520. this.selflag = "1";
  521. }
  522. }
  523. this.clascreen();
  524. // this.houseStatistics();
  525. },
  526. timeChange(e) {
  527. this.searchForm.dateType = null;
  528. this.searchForm.startDate = e[0];
  529. this.searchForm.endDate = e[1];
  530. this.houseStatistics();
  531. },
  532. tabtimetap(idx) {
  533. this.searchForm.startDate = "";
  534. this.searchForm.endDate = "";
  535. this.searchForm.dateType = idx;
  536. this.time = [];
  537. this.houseStatistics();
  538. },
  539. locationsChange(e) {
  540. console.log(e);
  541. if (!e) return;
  542. this.searchForm.provinceId = e[0];
  543. this.searchForm.cityId = e[1];
  544. },
  545. selChange() {
  546. this.changeValue = "";
  547. this.searchForm.agentName = "";
  548. this.searchForm.userName = "";
  549. this.searchForm.orgName = "";
  550. },
  551. screen() {
  552. this.currentPage = 1;
  553. console.log(this.searchForm);
  554. this.houseStatistics();
  555. },
  556. clascreen() {
  557. this.time = [];
  558. this.provice = [];
  559. this.changeValue = "";
  560. this.searchForm = {
  561. propertyName: "",
  562. provinceId: "",
  563. cityId: "",
  564. orgName: "",
  565. agentName: "",
  566. userName: "",
  567. dateType: "4",
  568. startDate: "",
  569. endDate: "",
  570. };
  571. this.currentPage = 1;
  572. this.houseStatistics();
  573. },
  574. houseStatistics() {
  575. let obj = {
  576. current: this.currentPage,
  577. size: this.size,
  578. ...this.searchForm,
  579. agentId: localStorage.getItem("agentId"),
  580. orgCode: localStorage.getItem("orgCode"),
  581. houseId: localStorage.getItem("houseId"),
  582. orgType: localStorage.getItem("orgType"),
  583. };
  584. if (this.activeTotal == 0) {
  585. if (this.orgType == 0) {
  586. obj.operationType = 1;
  587. } else if (this.orgType == 1) {
  588. obj.operationType = 2;
  589. } else {
  590. obj.operationType = null;
  591. }
  592. // 项目
  593. this.$api.api.houseStatistics1(obj).then((res) => {
  594. // console.log(res);
  595. this.tableData = res.data.records;
  596. this.total = res.data.total;
  597. });
  598. } else if (this.activeTotal == 1) {
  599. obj.operationType = null;
  600. // 代理商
  601. this.$api.api.agentStatistics(obj).then((res) => {
  602. // console.log(res);
  603. this.tableData = res.data.records;
  604. this.total = res.data.total;
  605. });
  606. } else {
  607. if (this.orgType == 0) {
  608. obj.operationType = 1;
  609. } else if (this.orgType == 1) {
  610. obj.operationType = 2;
  611. } else {
  612. obj.operationType = null;
  613. }
  614. // 公司
  615. this.$api.api.companyStatistics(obj).then((res) => {
  616. // console.log(res);
  617. this.tableData = res.data.records;
  618. this.total = res.data.total;
  619. });
  620. }
  621. },
  622. handleSelectionChange(val) {
  623. this.multipleSelection = val;
  624. },
  625. handleSizeChange(val) {
  626. console.log(`每页 ${val} 条`);
  627. this.size = val;
  628. this.houseStatistics();
  629. },
  630. handleCurrentChange(val) {
  631. console.log(`当前页: ${val}`);
  632. this.currentPage = val;
  633. this.houseStatistics();
  634. },
  635. },
  636. };
  637. </script>
  638. <style scoped="scoped" lang="scss" >
  639. .box-center {
  640. width: 100%;
  641. padding: 15px;
  642. min-width: 1000px;
  643. padding-bottom: 100px;
  644. }
  645. .toptab {
  646. width: 100%;
  647. display: flex;
  648. margin-bottom: 20px;
  649. }
  650. .toptab div {
  651. padding-left: 30px;
  652. padding-right: 30px;
  653. padding-top: 10px;
  654. padding-bottom: 10px;
  655. font-size: 14px;
  656. }
  657. .activecllasscet {
  658. color: #ffffff;
  659. }
  660. .cen-tab {
  661. width: 100%;
  662. padding: 15px;
  663. background: #ffffff;
  664. margin-top: 15px;
  665. }
  666. .tophove {
  667. color: #ffffff;
  668. background: #2671e2;
  669. }
  670. .app-top {
  671. width: 100%;
  672. background: #ffffff;
  673. box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.04);
  674. border-radius: 4px;
  675. padding-top: 15px;
  676. padding-bottom: 15px;
  677. .app-titel {
  678. width: 100%;
  679. display: flex;
  680. align-items: center;
  681. flex-wrap: wrap;
  682. .label {
  683. font-size: 14px;
  684. font-weight: 400;
  685. color: #32363d;
  686. line-height: 32px;
  687. margin-left: 15px;
  688. // min-width: 100px;
  689. }
  690. .toptimeqhuan {
  691. height: 30px;
  692. background: #ffffff;
  693. display: flex;
  694. align-items: center;
  695. }
  696. .toptimeqhuan div {
  697. padding-left: 20px;
  698. padding-right: 20px;
  699. text-align: center;
  700. line-height: 30px;
  701. font-size: 14px;
  702. margin-right: 15px;
  703. border-radius: 4px;
  704. border: 1px solid #e0e0e0;
  705. }
  706. }
  707. }
  708. .div-lab {
  709. display: flex;
  710. margin: 5px;
  711. }
  712. .div-inp {
  713. width: 250px;
  714. }
  715. /deep/ .el-table__header-wrapper {
  716. thead {
  717. tr {
  718. th {
  719. background: #F5F7FA;
  720. color: #333333;
  721. }
  722. }
  723. }
  724. }
  725. /deep/ .el-button--primary {
  726. background: #2671E2 !important;
  727. border: 1px solid #2671E2 !important;
  728. }
  729. /deep/ .el-button--text {
  730. color: #2671E2;
  731. }
  732. </style>