index.vue 46 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617
  1. <template>
  2. <div>
  3. <fullscreen
  4. :fullscreen.sync="fullscreen"
  5. class="container structure-l mc-style"
  6. style="margin: 0; width: calc(75% - 15px)"
  7. >
  8. <el-tabs v-model="activeName" @tab-click="handleClick">
  9. <el-tab-pane label="友商竞争信息" name="first">
  10. <div class="container-box">
  11. <!-- <toolList @iconCli="iconCli" :tooltit="tooltit"></toolList> -->
  12. <div class="checknum">
  13. <span>全部({{ total }}) | 已选</span>
  14. <span class="c-188ACF">({{ totalcheck }})</span>
  15. </div>
  16. <div class="titbtn-box">
  17. <el-button
  18. size="medium"
  19. type="success"
  20. icon="el-icon-s-order"
  21. @click="outExe(1)"
  22. >汇总Excel报表</el-button
  23. >
  24. <el-button
  25. size="medium"
  26. type="primary"
  27. icon="el-icon-plus"
  28. @click="addinfo"
  29. >新建</el-button
  30. >
  31. </div>
  32. <div class="search">
  33. <mySearch
  34. :searchList="searchList"
  35. @searchInfo="searchInfo"
  36. ></mySearch>
  37. </div>
  38. <div class="tabbox">
  39. <el-table
  40. height="calc(50vh - 100px)"
  41. @select="checkNum"
  42. @select-all="checkNum"
  43. class="com-table"
  44. ref="multipleTable"
  45. :data="tableData"
  46. tooltip-effect="dark"
  47. size="small"
  48. border
  49. style="width: 100%"
  50. v-loading="loading"
  51. >
  52. <el-table-column type="selection" width="55"> </el-table-column>
  53. <el-table-column
  54. prop="violationCateName"
  55. label="违规类别"
  56. width="100"
  57. >
  58. </el-table-column>
  59. <el-table-column prop="provinceName" label="省份">
  60. </el-table-column>
  61. <el-table-column
  62. width="100"
  63. prop="recordRegionName"
  64. label="违规地市"
  65. >
  66. </el-table-column>
  67. <el-table-column prop="operatorName" label="运营商">
  68. </el-table-column>
  69. <el-table-column prop="violationItemName" label="违规项目">
  70. </el-table-column>
  71. <el-table-column width="120" label="违规内容">
  72. <template slot-scope="scope">
  73. <el-tooltip
  74. class="item"
  75. effect="light"
  76. :content="scope.row.violationContent"
  77. placement="bottom"
  78. >
  79. <span
  80. class="tab-long"
  81. v-show="scope.row.violationContent.length > 7"
  82. >{{ scope.row.violationContent }}</span
  83. >
  84. </el-tooltip>
  85. <span v-show="scope.row.violationContent.length <= 7">{{
  86. scope.row.violationContent
  87. }}</span>
  88. </template>
  89. </el-table-column>
  90. <el-table-column prop="tariffName" label="资费名称">
  91. </el-table-column>
  92. <el-table-column width="120" label="资费内容">
  93. <template slot-scope="scope">
  94. <el-tooltip
  95. class="item"
  96. effect="light"
  97. :content="scope.row.taffiffContent"
  98. placement="bottom"
  99. >
  100. <span
  101. class="tab-long"
  102. v-show="scope.row.taffiffContent.length > 7"
  103. >{{ scope.row.taffiffContent }}</span
  104. >
  105. </el-tooltip>
  106. <span v-show="scope.row.taffiffContent.length <= 7">{{
  107. scope.row.taffiffContent
  108. }}</span>
  109. </template>
  110. </el-table-column>
  111. <el-table-column
  112. prop="monthFee"
  113. sortable
  114. width="100"
  115. label="月费(元)"
  116. >
  117. </el-table-column>
  118. <el-table-column
  119. prop="preFee"
  120. width="110"
  121. sortable
  122. label="预存款(元)"
  123. >
  124. </el-table-column>
  125. <el-table-column prop="remFee" width="100" label="酬金">
  126. </el-table-column>
  127. <el-table-column prop="saleChnl" label="渠道">
  128. </el-table-column>
  129. <el-table-column prop="saleScope" label="范围">
  130. </el-table-column>
  131. <el-table-column prop="monthSale" label="月销量">
  132. </el-table-column>
  133. <el-table-column label="上报时间" width="140">
  134. <template slot-scope="scope" class="tab-btn">
  135. <span>{{ scope.row.opTime }}</span>
  136. </template>
  137. </el-table-column>
  138. <el-table-column prop="opName" label="上报人">
  139. <template slot-scope="scope">
  140. <span>{{ $desensitization(scope.row.opName, 1) }}</span>
  141. </template>
  142. </el-table-column>
  143. <el-table-column
  144. prop="contactPhone"
  145. width="100"
  146. label="联系电话"
  147. >
  148. </el-table-column>
  149. <el-table-column label="审核状态">
  150. <template slot-scope="scope" class="tab-btn">
  151. <span
  152. :class="
  153. scope.row.sts * 1 === 2
  154. ? 'pass'
  155. : scope.row.sts * 1 === 1
  156. ? 'nopass'
  157. : ''
  158. "
  159. >{{ scope.row.stsDesc }}</span
  160. >
  161. </template>
  162. </el-table-column>
  163. <el-table-column
  164. prop="evidenceType"
  165. label="证据类型"
  166. width="100"
  167. >
  168. </el-table-column>
  169. <el-table-column
  170. prop="fixFlagDesc"
  171. label="是否已解决"
  172. width="100"
  173. >
  174. </el-table-column>
  175. <el-table-column
  176. prop="groupFlagDesc"
  177. label="是否反馈总部"
  178. width="100"
  179. >
  180. </el-table-column>
  181. <el-table-column
  182. prop="wwFlagDesc"
  183. label="是否返回竞合"
  184. width="100"
  185. >
  186. </el-table-column>
  187. <el-table-column
  188. prop="admFlagDesc"
  189. label="是否反馈总局"
  190. width="100"
  191. >
  192. </el-table-column>
  193. <el-table-column
  194. label="操作"
  195. width="120"
  196. align="center"
  197. fixed="right"
  198. >
  199. <template slot-scope="scope" class="tab-btn">
  200. <el-dropdown @command="outlineinfo">
  201. <i class="el-icon-download"></i>
  202. <el-dropdown-menu slot="dropdown">
  203. <el-dropdown-item :command="scope"
  204. ><i class="el-icon-picture"></i
  205. >对外导出图片</el-dropdown-item
  206. >
  207. <el-dropdown-item :command="scope.row"
  208. ><i class="el-icon-folder-opened"></i
  209. >对内导出word</el-dropdown-item
  210. >
  211. </el-dropdown-menu>
  212. </el-dropdown>
  213. <el-tooltip
  214. class="item"
  215. effect="light"
  216. content="详情"
  217. placement="bottom-end"
  218. >
  219. <i
  220. class="el-icon-view"
  221. @click="checkInfo(scope.row.id)"
  222. ></i>
  223. </el-tooltip>
  224. <el-tooltip
  225. class="item"
  226. effect="light"
  227. content="删除"
  228. placement="bottom-end"
  229. >
  230. <i class="el-icon-delete" @click="delLine(scope.row)"></i>
  231. </el-tooltip>
  232. <el-tooltip
  233. class="item"
  234. effect="light"
  235. content="修改"
  236. placement="bottom-end"
  237. >
  238. <i
  239. class="el-icon-edit"
  240. @click="changeInfo(scope.row)"
  241. v-if="scope.row.sts !== 1"
  242. ></i>
  243. </el-tooltip>
  244. </template>
  245. </el-table-column>
  246. </el-table>
  247. <el-pagination
  248. class="pageBox"
  249. @current-change="currchange"
  250. layout="prev, pager, next"
  251. background
  252. :total="total"
  253. >
  254. </el-pagination>
  255. </div>
  256. </div>
  257. </el-tab-pane>
  258. <el-tab-pane label="友商在售信息" name="second">
  259. <el-dialog
  260. style="margin-top: 0"
  261. title="上报excel"
  262. :modal="false"
  263. :visible.sync="dialogTableVisible"
  264. :close="clickClose"
  265. :destroy-on-close="true"
  266. >
  267. <div class="container-box">
  268. <simple-sheet @save="save" :excel="excelList" />
  269. </div>
  270. </el-dialog>
  271. </el-tab-pane>
  272. </el-tabs>
  273. <myMessage
  274. :messTit="messTit"
  275. @closeMessage="closeMessage"
  276. :centerDialogVisible="centerDialogVisible"
  277. v-if="centerDialogVisible"
  278. ></myMessage>
  279. <myMessage
  280. :messTit="messTit"
  281. @closeMessage="closeMessagedel"
  282. :centerDialogVisible="centerDialogVisibledel"
  283. v-if="centerDialogVisibledel"
  284. ></myMessage>
  285. </fullscreen>
  286. <competeRight></competeRight>
  287. </div>
  288. </template>
  289. <script>
  290. import competeRight from "../../../components/competeRight";
  291. import mySearch from "../../../components/search";
  292. import toolList from "../../../components/toolList.vue";
  293. import myMessage from "../../../components/myMessage.vue";
  294. import simpleSheet from "./components/sheet.vue";
  295. export default {
  296. components: {
  297. simpleSheet,
  298. competeRight,
  299. mySearch,
  300. toolList,
  301. myMessage,
  302. },
  303. data() {
  304. return {
  305. celldata: [
  306. { r: 0, c: 0, v: { v: "运营商", bl: 1, ht: 0, vt: 0 } },
  307. {
  308. r: 0,
  309. c: 1,
  310. tb: 2,
  311. v: {
  312. tb: 2,
  313. fs: 11,
  314. ht: 0,
  315. vt: 0,
  316. v: "套餐档位(从低到高进行填写)低档:58元以下套餐中档:58元(含)-128元套餐(不含)高档:128元及以上套餐",
  317. ct: { fa: "General", t: "n" },
  318. m: "2",
  319. },
  320. },
  321. {
  322. r: 0,
  323. c: 2,
  324. v: {
  325. fc: "rgb(51, 51, 51)",
  326. ht: 0,
  327. vt: 0,
  328. v: "套餐名称",
  329. ct: { fa: "General", t: "n" },
  330. m: "3",
  331. },
  332. },
  333. {
  334. r: 0,
  335. c: 3,
  336. v: {
  337. bl: 0,
  338. it: 0,
  339. ff: 0,
  340. fs: 11,
  341. fc: "rgb(51, 51, 51)",
  342. ht: 0,
  343. vt: 0,
  344. v: "是否为主推套餐",
  345. ct: { fa: "General", t: "n" },
  346. m: "0",
  347. },
  348. },
  349. {
  350. r: 0,
  351. c: 4,
  352. v: {
  353. v: "月费(元)",
  354. bl: 0,
  355. it: 0,
  356. ff: 0,
  357. fs: 11,
  358. fc: "rgb(51, 51, 51)",
  359. ht: 0,
  360. vt: 0,
  361. },
  362. },
  363. {
  364. r: 0,
  365. c: 5,
  366. v: {
  367. v: "优惠价",
  368. bl: 0,
  369. it: 0,
  370. ff: 0,
  371. fs: 11,
  372. fc: "rgb(51, 51, 51)",
  373. ht: 0,
  374. vt: 0,
  375. },
  376. },
  377. {
  378. r: 0,
  379. c: 6,
  380. v: {
  381. v: "预存款(元)",
  382. bl: 0,
  383. it: 0,
  384. ff: 0,
  385. fs: 11,
  386. fc: "rgb(51, 51, 51)",
  387. ht: 0,
  388. vt: 0,
  389. },
  390. },
  391. {
  392. r: 0,
  393. c: 7,
  394. v: {
  395. v: "套餐内容",
  396. bl: 0,
  397. it: 0,
  398. ff: 0,
  399. fs: 11,
  400. fc: "rgb(51, 51, 51)",
  401. ht: 0,
  402. vt: 0,
  403. },
  404. },
  405. {
  406. r: 0,
  407. c: 8,
  408. v: {
  409. v: "酬金",
  410. bl: 0,
  411. it: 0,
  412. ff: 0,
  413. fs: 11,
  414. fc: "rgb(51, 51, 51)",
  415. ht: 0,
  416. vt: 0,
  417. },
  418. },
  419. {
  420. r: 0,
  421. c: 9,
  422. v: {
  423. v: "在售区域",
  424. bl: 0,
  425. it: 0,
  426. ff: 0,
  427. fs: 11,
  428. fc: "rgb(51, 51, 51)",
  429. ht: 0,
  430. vt: 0,
  431. },
  432. },
  433. {
  434. r: 0,
  435. c: 10,
  436. v: {
  437. v: "在售渠道",
  438. bl: 0,
  439. it: 0,
  440. ff: 0,
  441. fs: 11,
  442. fc: "rgb(51, 51, 51)",
  443. ht: 0,
  444. vt: 0,
  445. },
  446. },
  447. {
  448. r: 0,
  449. c: 11,
  450. v: {
  451. v: "月销量",
  452. bl: 0,
  453. it: 0,
  454. ff: 0,
  455. fs: 11,
  456. fc: "rgb(51, 51, 51)",
  457. ht: 0,
  458. vt: 0,
  459. },
  460. },
  461. {
  462. r: 0,
  463. c: 12,
  464. v: {
  465. v: "是否包含宽带",
  466. bl: 0,
  467. it: 0,
  468. ff: 0,
  469. fs: 11,
  470. fc: "rgb(51, 51, 51)",
  471. ht: 0,
  472. vt: 0,
  473. },
  474. },
  475. {
  476. r: 0,
  477. c: 13,
  478. v: {
  479. v: "宽带具体内容",
  480. bl: 0,
  481. it: 0,
  482. ff: 0,
  483. fs: 11,
  484. fc: "rgb(51, 51, 51)",
  485. ht: 0,
  486. vt: 0,
  487. },
  488. },
  489. {
  490. r: 0,
  491. c: 14,
  492. v: {
  493. v: "是否包括电视",
  494. bl: 0,
  495. it: 0,
  496. ff: 0,
  497. fs: 11,
  498. fc: "rgb(51, 51, 51)",
  499. ht: 0,
  500. vt: 0,
  501. },
  502. },
  503. {
  504. r: 0,
  505. c: 15,
  506. v: {
  507. v: "是否包括副卡",
  508. bl: 0,
  509. it: 0,
  510. ff: 0,
  511. fs: 11,
  512. fc: "rgb(51, 51, 51)",
  513. ht: 0,
  514. vt: 0,
  515. },
  516. },
  517. {
  518. r: 0,
  519. c: 16,
  520. v: {
  521. v: "是否包括亲情网",
  522. bl: 0,
  523. it: 0,
  524. ff: 0,
  525. fs: 11,
  526. fc: "rgb(51, 51, 51)",
  527. ht: 0,
  528. vt: 0,
  529. },
  530. },
  531. {
  532. r: 0,
  533. c: 17,
  534. v: {
  535. v: "是否包括v网产品",
  536. bl: 0,
  537. it: 0,
  538. ff: 0,
  539. fs: 11,
  540. fc: "rgb(51, 51, 51)",
  541. ht: 0,
  542. vt: 0,
  543. },
  544. },
  545. {
  546. r: 0,
  547. c: 18,
  548. v: {
  549. v: "其他补充信息",
  550. bl: 0,
  551. it: 0,
  552. ff: 0,
  553. fs: 11,
  554. fc: "rgb(51, 51, 51)",
  555. ht: 0,
  556. vt: 0,
  557. },
  558. },
  559. {
  560. r: 0,
  561. c: 19,
  562. v: {
  563. v: "上报人",
  564. bl: 0,
  565. it: 0,
  566. ff: 0,
  567. fs: 11,
  568. fc: "rgb(51, 51, 51)",
  569. ht: 0,
  570. vt: 0,
  571. },
  572. },
  573. {
  574. r: 0,
  575. c: 20,
  576. v: {
  577. v: "联系电话",
  578. bl: 0,
  579. it: 0,
  580. ff: 0,
  581. fs: 11,
  582. fc: "rgb(51, 51, 51)",
  583. ht: 0,
  584. vt: 0,
  585. },
  586. },
  587. ],
  588. excelList: [],
  589. dialogTableVisible: false,
  590. exportType: "1", // 1是违规 2是正常
  591. activeName: "first",
  592. tooltit: "",
  593. fullscreen: false,
  594. total: 0,
  595. total1: 0,
  596. totalcheck: 0,
  597. totalcheck1: 0,
  598. pageSize: 1,
  599. pageSize1: 1,
  600. tableData: [],
  601. tableData1: [],
  602. outList: [],
  603. outList1: [],
  604. searchList: [
  605. {
  606. type: "sel",
  607. tit: "类别",
  608. value: "",
  609. width: "19%",
  610. options: [],
  611. },
  612. {
  613. type: "sel",
  614. tit: "运营商",
  615. value: "",
  616. width: "19%",
  617. options: [],
  618. },
  619. {
  620. type: "date",
  621. tit: "开始时间",
  622. value: "",
  623. width: "19%",
  624. },
  625. {
  626. type: "date",
  627. tit: "结束时间",
  628. value: "",
  629. width: "19%",
  630. },
  631. {
  632. type: "input",
  633. tit: "请输入违规内容",
  634. value: "",
  635. width: "19%",
  636. },
  637. ],
  638. searchList1: [
  639. {
  640. type: "sel",
  641. tit: "类别",
  642. value: "",
  643. width: "19%",
  644. options: [],
  645. },
  646. {
  647. type: "sel",
  648. tit: "运营商",
  649. value: "",
  650. width: "19%",
  651. options: [],
  652. },
  653. {
  654. type: "date",
  655. tit: "开始时间",
  656. value: "",
  657. width: "19%",
  658. },
  659. {
  660. type: "date",
  661. tit: "结束时间",
  662. value: "",
  663. width: "19%",
  664. },
  665. ],
  666. params: {},
  667. centerDialogVisible: false,
  668. centerDialogVisibledel: false,
  669. messTit: "",
  670. delid: "",
  671. loading: false,
  672. };
  673. },
  674. methods: {
  675. save(val) {
  676. if (val) {
  677. this.getExcelList();
  678. }
  679. },
  680. getExcelList() {
  681. let name = JSON.parse(window.sessionStorage.getItem("userInfo")).cityName;
  682. this.$http({
  683. url: "/market/mkCompetitor/load",
  684. method: "post",
  685. headers: {
  686. "Content-Type": "application/json",
  687. },
  688. }).then((res) => {
  689. // console.log(res)
  690. // res.data.body[0].data.map((item) =>{
  691. // item.map((items) =>{
  692. // console.log(items)
  693. // })
  694. // })
  695. if (res.data.body != null ) {
  696. // let data = res.data.body[0].data;
  697. // res.data.body[0].data = [];
  698. // for (let i = 0; i <= data.length - 1; i++) {
  699. // if (i <= 79) {
  700. // res.data.body[0].data.push(data[i]);
  701. // }
  702. // }
  703. if (name == null) {
  704. this.getSheetList(res.data.body);
  705. // this.excelList = res.data.body
  706. } else {
  707. this.excelList = res.data.body;
  708. }
  709. } else {
  710. let titleList = [
  711. {
  712. name: "哈尔滨",
  713. order: 0,
  714. index: 0,
  715. cloumn: 10,
  716. row: 10,
  717. defaultRowHeight: 50, //自定义行高
  718. defaultColWidth: 120, //自定义列宽
  719. celldata: [...this.celldata],
  720. config: {
  721. merge: {}, //合并单元格
  722. rowlen: { 0: 100 }, //表格行高
  723. columnlen: { 1: 200 }, //表格列宽
  724. rowhidden: {}, //隐藏行
  725. colhidden: {}, //隐藏列
  726. borderInfo: {}, //边框
  727. authority: {}, //
  728. },
  729. },
  730. {
  731. name: "哈尔滨",
  732. order: 1,
  733. index: 1,
  734. column: 22,
  735. defaultRowHeight: 50, //自定义行高
  736. defaultColWidth: 120, //自定义列宽
  737. celldata: [...this.celldata],
  738. config: {
  739. merge: {}, //合并单元格
  740. rowlen: { 0: 100 }, //表格行高
  741. columnlen: { 1: 200 }, //表格列宽
  742. rowhidden: {}, //隐藏行
  743. colhidden: {}, //隐藏列
  744. borderInfo: {}, //边框
  745. authority: {}, //工作表保护
  746. },
  747. },
  748. {
  749. name: "鸡西",
  750. order: 2,
  751. index: 2,
  752. defaultRowHeight: 50, //自定义行高
  753. defaultColWidth: 120, //自定义列宽
  754. celldata: [...this.celldata],
  755. config: {
  756. merge: {}, //合并单元格
  757. rowlen: { 0: 100 }, //表格行高
  758. columnlen: { 1: 200 }, //表格列宽
  759. rowhidden: {}, //隐藏行
  760. colhidden: {}, //隐藏列
  761. borderInfo: {}, //边框
  762. authority: {}, //工作表保护
  763. },
  764. },
  765. {
  766. name: "友商在售信息",
  767. order: 0,
  768. index: 0,
  769. defaultRowHeight: 50, //自定义行高
  770. defaultColWidth: 120, //自定义列宽
  771. celldata: [...this.celldata],
  772. config: {
  773. merge: {}, //合并单元格
  774. rowlen: { 0: 100 }, //表格行高
  775. columnlen: { 1: 200 }, //表格列宽
  776. rowhidden: {}, //隐藏行
  777. colhidden: {}, //隐藏列
  778. borderInfo: {}, //边框
  779. authority: {}, //工作表保护
  780. },
  781. },
  782. {
  783. name: "友商在售信息",
  784. order: 0,
  785. index: 0,
  786. defaultRowHeight: 50, //自定义行高
  787. defaultColWidth: 120, //自定义列宽
  788. celldata: [...this.celldata],
  789. config: {
  790. merge: {}, //合并单元格
  791. rowlen: { 0: 100 }, //表格行高
  792. columnlen: { 1: 200 }, //表格列宽
  793. rowhidden: {}, //隐藏行
  794. colhidden: {}, //隐藏列
  795. borderInfo: {}, //边框
  796. authority: {}, //工作表保护
  797. },
  798. },
  799. {
  800. name: "友商在售信息",
  801. order: 0,
  802. index: 0,
  803. defaultRowHeight: 50, //自定义行高
  804. defaultColWidth: 120, //自定义列宽
  805. celldata: [...this.celldata],
  806. config: {
  807. merge: {}, //合并单元格
  808. rowlen: { 0: 100 }, //表格行高
  809. columnlen: { 1: 200 }, //表格列宽
  810. rowhidden: {}, //隐藏行
  811. colhidden: {}, //隐藏列
  812. borderInfo: {}, //边框
  813. authority: {}, //工作表保护
  814. },
  815. },
  816. {
  817. name: "友商在售信息",
  818. order: 0,
  819. index: 0,
  820. defaultRowHeight: 50, //自定义行高
  821. defaultColWidth: 120, //自定义列宽
  822. celldata: [...this.celldata],
  823. config: {
  824. merge: {}, //合并单元格
  825. rowlen: { 0: 100 }, //表格行高
  826. columnlen: { 1: 200 }, //表格列宽
  827. rowhidden: {}, //隐藏行
  828. colhidden: {}, //隐藏列
  829. borderInfo: {}, //边框
  830. authority: {}, //工作表保护
  831. },
  832. },
  833. {
  834. name: "友商在售信息",
  835. order: 0,
  836. index: 0,
  837. defaultRowHeight: 50, //自定义行高
  838. defaultColWidth: 120, //自定义列宽
  839. celldata: [...this.celldata],
  840. config: {
  841. merge: {}, //合并单元格
  842. rowlen: { 0: 100 }, //表格行高
  843. columnlen: { 1: 200 }, //表格列宽
  844. rowhidden: {}, //隐藏行
  845. colhidden: {}, //隐藏列
  846. borderInfo: {}, //边框
  847. authority: {}, //工作表保护
  848. },
  849. },
  850. {
  851. name: "友商在售信息",
  852. order: 0,
  853. index: 0,
  854. defaultRowHeight: 50, //自定义行高
  855. defaultColWidth: 120, //自定义列宽
  856. celldata: [...this.celldata],
  857. config: {
  858. merge: {}, //合并单元格
  859. rowlen: { 0: 100 }, //表格行高
  860. columnlen: { 1: 200 }, //表格列宽
  861. rowhidden: {}, //隐藏行
  862. colhidden: {}, //隐藏列
  863. borderInfo: {}, //边框
  864. authority: {}, //工作表保护
  865. },
  866. },
  867. ];
  868. this.excelList = titleList;
  869. }
  870. });
  871. },
  872. //判断数组是否有值
  873. getSheetList(data) {
  874. let name = JSON.parse(window.sessionStorage.getItem("userInfo")).cityName;
  875. if (name) {
  876. if (name.length === 5) {
  877. name.substring(0, 1);
  878. } else if (name.length === 6) {
  879. name.substring(0, 2);
  880. } else {
  881. name.substring(0, 3);
  882. }
  883. }
  884. const form = new FormData();
  885. form.append("name", name);
  886. this.$http({
  887. url: "/market/mkCompetitor/getSheet",
  888. method: "post",
  889. headers: {
  890. "Content-Type": "application/json",
  891. },
  892. data: form,
  893. }).then((res) => {
  894. res.data.body.map((item) => {
  895. data.push(item[0]);
  896. });
  897. for (let y = data[0].data.length - 1; y >= 3; y--) {
  898. if (data[0].data[y][0] === null || !data[0].data[y][0].v) {
  899. data[0].data.splice(y, 1);
  900. }
  901. }
  902. console.log(this.data);
  903. this.excelList = data;
  904. });
  905. },
  906. // 接口调用
  907. getSecondList(v, n) {
  908. this.pageSize = n;
  909. this.loading = true;
  910. this.totalcheck = 0;
  911. v.type = "正规";
  912. this.tableData1 = [];
  913. this.$http({
  914. url: "/market/swcompetitor/queryPage",
  915. method: "post",
  916. headers: {
  917. "Content-Type": "application/json",
  918. page: '{"pageNo":"' + n + '","pageSize":"10"}',
  919. },
  920. data: v,
  921. }).then((res) => {
  922. this.tableData1 = res.data.data;
  923. this.total1 = res.data.totalRecord;
  924. this.loading = false;
  925. });
  926. },
  927. handleClick() {
  928. if (this.activeName == "first") {
  929. this.getList(this.params, this.pageSize);
  930. } else {
  931. this.dialogTableVisible = true;
  932. this.getExcelList();
  933. }
  934. },
  935. clickClose() {
  936. console.log(123);
  937. },
  938. //查询处理
  939. searchInfo(v) {
  940. this.params = {};
  941. v[0] ? (this.params.violationCate = v[0]) : "";
  942. v[1] ? (this.params.operatorCode = v[1]) : "";
  943. v[2] ? (this.params.opTimeFrom = v[2]) : "";
  944. v[3] ? (this.params.opTimeTo = v[3]) : "";
  945. v[4] ? (this.params.violationContent = v[4]) : "";
  946. this.getList(this.params, this.pageSize);
  947. },
  948. //查询处理
  949. searchInfo1(v) {
  950. this.params = {};
  951. v[0] ? (this.params.violationCate = v[0]) : "";
  952. v[1] ? (this.params.operatorCode = v[1]) : "";
  953. v[2] ? (this.params.opTimeFrom = v[2]) : "";
  954. v[3] ? (this.params.opTimeTo = v[3]) : "";
  955. v[4] ? (this.params.violationContent = v[4]) : "";
  956. this.getSecondList(this.params, this.pageSize);
  957. },
  958. //获取列表
  959. getList(v, n) {
  960. let _this = this;
  961. this.pageSize = n;
  962. this.loading = true;
  963. this.tableData = [];
  964. this.totalcheck = 0;
  965. v.type = "违规";
  966. this.$http({
  967. url: "/market/swcompetitor/queryPage",
  968. method: "post",
  969. headers: {
  970. "Content-Type": "application/json",
  971. page: '{"pageNo":"' + n + '","pageSize":"10"}',
  972. },
  973. data: v,
  974. }).then((res) => {
  975. this.tableData = res.data.data;
  976. this.total = res.data.totalRecord;
  977. for (let i = 0; i < this.tableData.length; i++) {
  978. _this.tableData[i].preFee = _this.tableData[i].preFee * 1;
  979. _this.tableData[i].monthFee = _this.tableData[i].monthFee * 1;
  980. if (_this.tableData[i].contactPhone) {
  981. _this.tableData[i].contactPhone =
  982. _this.tableData[i].contactPhone.split("");
  983. _this.tableData[i].contactPhone[3] = "*";
  984. _this.tableData[i].contactPhone[4] = "*";
  985. _this.tableData[i].contactPhone[5] = "*";
  986. _this.tableData[i].contactPhone[6] = "*";
  987. let phone = "";
  988. for (let j = 0; j < _this.tableData[i].contactPhone.length; j++) {
  989. phone += _this.tableData[i].contactPhone[j];
  990. }
  991. _this.tableData[i].contactPhone = phone;
  992. }
  993. }
  994. this.loading = false;
  995. });
  996. },
  997. //获取字典
  998. getListwglb() {
  999. this.$http({
  1000. url: "/market/cfgDataDict/queryList",
  1001. method: "post",
  1002. headers: {
  1003. "Content-Type": "application/json",
  1004. },
  1005. data: {
  1006. dictCode: "wglb",
  1007. },
  1008. }).then((res) => {
  1009. this.searchList[0].options = res.data;
  1010. });
  1011. },
  1012. //获取字典
  1013. getListsf() {
  1014. this.$http({
  1015. url: "/market/cfgDataDict/queryList",
  1016. method: "post",
  1017. headers: {
  1018. "Content-Type": "application/json",
  1019. },
  1020. data: {
  1021. dictCode: "yys",
  1022. },
  1023. }).then((res) => {
  1024. this.searchList[1].options = res.data;
  1025. });
  1026. },
  1027. // 分页
  1028. currchange(v) {
  1029. this.pageSize = v;
  1030. this.getList(this.params, this.pageSize);
  1031. },
  1032. // 分页
  1033. currchange1(v) {
  1034. this.pageSize1 = v;
  1035. this.getSecondList(this.params, this.pageSize);
  1036. },
  1037. closeMessagedel(v) {
  1038. let _this = this;
  1039. this.centerDialogVisibledel = false;
  1040. if (v === 1) {
  1041. this.$http({
  1042. url: "/market/swcompetitor/del",
  1043. method: "post",
  1044. headers: {
  1045. "Content-Type": "application/json",
  1046. },
  1047. data: {
  1048. id: this.delid,
  1049. },
  1050. }).then((res) => {
  1051. if (res.data.result === 1) {
  1052. _this.$message({
  1053. message: res.data.desc,
  1054. type: "error",
  1055. });
  1056. } else {
  1057. _this.$message({
  1058. message: "删除成功",
  1059. type: "success",
  1060. });
  1061. _this.getList(this.params, this.pageSize);
  1062. }
  1063. });
  1064. }
  1065. },
  1066. //删除
  1067. delLine(v) {
  1068. this.delid = v.id;
  1069. this.centerDialogVisibledel = true;
  1070. this.messTit = "即将删除此条数据, 是否删除?";
  1071. },
  1072. //跳添加页
  1073. addinfo() {
  1074. this.$router.push("/addCompetitor");
  1075. this.setabList("新增竞争对手信息", "/addCompetitor");
  1076. },
  1077. //跳添加页
  1078. addinfo1() {
  1079. this.$router.push("/addCompetitorNew");
  1080. this.setabList("新增竞争对手信息", "/addCompetitorNew");
  1081. },
  1082. //详情页
  1083. checkInfo(v) {
  1084. this.$router.push({
  1085. path: "/competitorInfo",
  1086. query: {
  1087. id: v,
  1088. type: 1,
  1089. },
  1090. });
  1091. this.setabList("竞争对手信息详情", "/competitorInfo?id=" + v + "&type=1");
  1092. },
  1093. //详情页
  1094. checkInfo1(v) {
  1095. this.$router.push({
  1096. path: "/competitorInfoNew",
  1097. query: {
  1098. id: v,
  1099. type: 1,
  1100. },
  1101. });
  1102. this.setabList(
  1103. "竞争对手信息详情",
  1104. "/competitorInfoNew?id=" + v + "&type=1"
  1105. );
  1106. },
  1107. changeInfo(v) {
  1108. this.$router.push({
  1109. path: "/changeCompet",
  1110. query: {
  1111. id: v.id,
  1112. },
  1113. });
  1114. this.setabList("竞争对手信息修改", "/changeCompet?id=" + v.id);
  1115. },
  1116. changeInfo1(v) {
  1117. this.$router.push({
  1118. path: "/changeCompetNew",
  1119. query: {
  1120. id: v.id,
  1121. },
  1122. });
  1123. this.setabList("竞争对手信息修改", "/changeCompetNew?id=" + v.id);
  1124. },
  1125. setabList(n, p) {
  1126. let params = {
  1127. children: "",
  1128. name: n,
  1129. rountPath: p,
  1130. target: "_self",
  1131. };
  1132. for (let i = 0; i < this.$store.state.tabList.length; i++) {
  1133. if (this.$store.state.tabList[i].name === params.name) {
  1134. this.$store.state.tabList[i] = params;
  1135. }
  1136. }
  1137. let set = new Set([...this.$store.state.tabList, params]);
  1138. set.add(params);
  1139. this.$store.commit("setDefaultActive", params.rountPath);
  1140. this.$store.commit("setTabList", Array.from(set));
  1141. },
  1142. //功能栏
  1143. iconCli(v) {
  1144. if (v === 1) {
  1145. this.getList(this.params, this.pageSize);
  1146. }
  1147. if (v === 2) {
  1148. this.fullscreen = !this.fullscreen;
  1149. }
  1150. },
  1151. //列表选择
  1152. checkNum1(v) {
  1153. this.totalcheck1 = v.length;
  1154. this.outList1 = v;
  1155. },
  1156. //列表选择
  1157. checkNum(v) {
  1158. this.totalcheck = v.length;
  1159. this.outList = v;
  1160. },
  1161. //导出
  1162. outlineinfo(v) {
  1163. if (v.row) {
  1164. let data = {
  1165. provinceName: v.row.provinceName,
  1166. operatorName: v.row.operatorName,
  1167. violationCateName: v.row.violationCateName,
  1168. violationItemName: v.row.violationItemName,
  1169. violationItem: v.row.violationItemName,
  1170. monthFee: v.row.monthFee,
  1171. tariffName: v.row.tariffName,
  1172. taffiffContent: v.row.taffiffContent,
  1173. remFee: v.row.remFee,
  1174. preFee: v.row.preFee,
  1175. saleScope: v.row.saleScope,
  1176. saleChnl: v.row.saleChnl,
  1177. monthSale: v.row.monthSale,
  1178. violationContent: v.row.violationContent,
  1179. recordRegionName: v.row.recordRegionName,
  1180. };
  1181. this.$http({
  1182. url: "/market/cwcompetitor/writeImg",
  1183. method: "post",
  1184. headers: {
  1185. "Content-Type": "application/json",
  1186. },
  1187. responseType: "blob",
  1188. data: data,
  1189. }).then((response) => {
  1190. if (window.navigator && window.navigator.msSaveOrOpenBlob) {
  1191. let blob = new Blob([response.data], {
  1192. type: "application/vnd.ms-excel",
  1193. });
  1194. window.navigator.msSaveOrOpenBlob(
  1195. blob,
  1196. new Date().getTime() + ".png"
  1197. );
  1198. } else {
  1199. /* 火狐谷歌的文件下载方式 */
  1200. var blob = new Blob([response.data]);
  1201. var downloadElement = document.createElement("a");
  1202. var href = window.URL.createObjectURL(blob);
  1203. downloadElement.href = href;
  1204. downloadElement.download = new Date().getTime() + ".png";
  1205. document.body.appendChild(downloadElement);
  1206. downloadElement.click();
  1207. document.body.removeChild(downloadElement);
  1208. window.URL.revokeObjectURL(href);
  1209. }
  1210. });
  1211. } else {
  1212. let data = {
  1213. provinceName: v.provinceName,
  1214. operatorName: v.operatorName,
  1215. violationCateName: v.violationCateName,
  1216. violationItemName: v.violationItemName,
  1217. violationItem: v.violationItemName,
  1218. monthFee: v.monthFee,
  1219. tariffName: v.tariffName,
  1220. taffiffContent: v.taffiffContent,
  1221. remFee: v.remFee,
  1222. preFee: v.preFee,
  1223. saleScope: v.saleScope,
  1224. saleChnl: v.saleChnl,
  1225. monthSale: v.monthSale,
  1226. violationContent: v.violationContent,
  1227. recordRegionName: v.recordRegionName,
  1228. id: v.id,
  1229. };
  1230. this.$http({
  1231. url: "/market/cwcompetitor/write2Doc",
  1232. method: "post",
  1233. headers: {
  1234. "Content-Type": "application/json",
  1235. },
  1236. responseType: "blob",
  1237. data: data,
  1238. }).then((response) => {
  1239. if (window.navigator && window.navigator.msSaveOrOpenBlob) {
  1240. let blob = new Blob([response.data], {
  1241. type: "application/vnd.ms-excel",
  1242. });
  1243. window.navigator.msSaveOrOpenBlob(
  1244. blob,
  1245. new Date().getTime() + ".docx"
  1246. );
  1247. } else {
  1248. /* 火狐谷歌的文件下载方式 */
  1249. var blob = new Blob([response.data]);
  1250. var downloadElement = document.createElement("a");
  1251. var href = window.URL.createObjectURL(blob);
  1252. downloadElement.href = href;
  1253. downloadElement.download = new Date().getTime() + ".docx";
  1254. document.body.appendChild(downloadElement);
  1255. downloadElement.click();
  1256. document.body.removeChild(downloadElement);
  1257. window.URL.revokeObjectURL(href);
  1258. }
  1259. });
  1260. }
  1261. },
  1262. //导出
  1263. outlineinfo1(v) {
  1264. if (v.row) {
  1265. let data = {
  1266. provinceName: v.row.provinceName,
  1267. operatorName: v.row.operatorName,
  1268. violationCateName: v.row.violationCateName,
  1269. violationItemName: v.row.violationItemName,
  1270. violationItem: v.row.violationItemName,
  1271. monthFee: v.row.monthFee,
  1272. tariffName: v.row.tariffName,
  1273. taffiffContent: v.row.taffiffContent,
  1274. remFee: v.row.remFee,
  1275. preFee: v.row.preFee,
  1276. saleScope: v.row.saleScope,
  1277. saleChnl: v.row.saleChnl,
  1278. monthSale: v.row.monthSale,
  1279. violationContent: v.row.violationContent,
  1280. recordRegionName: v.row.recordRegionName,
  1281. };
  1282. this.$http({
  1283. url: "/market/cwcompetitor/writeImg1",
  1284. method: "post",
  1285. headers: {
  1286. "Content-Type": "application/json",
  1287. },
  1288. responseType: "blob",
  1289. data: data,
  1290. }).then((response) => {
  1291. if (window.navigator && window.navigator.msSaveOrOpenBlob) {
  1292. let blob = new Blob([response.data], {
  1293. type: "application/vnd.ms-excel",
  1294. });
  1295. window.navigator.msSaveOrOpenBlob(
  1296. blob,
  1297. new Date().getTime() + ".png"
  1298. );
  1299. } else {
  1300. /* 火狐谷歌的文件下载方式 */
  1301. var blob = new Blob([response.data]);
  1302. var downloadElement = document.createElement("a");
  1303. var href = window.URL.createObjectURL(blob);
  1304. downloadElement.href = href;
  1305. downloadElement.download = new Date().getTime() + ".png";
  1306. document.body.appendChild(downloadElement);
  1307. downloadElement.click();
  1308. document.body.removeChild(downloadElement);
  1309. window.URL.revokeObjectURL(href);
  1310. }
  1311. });
  1312. } else {
  1313. let data = {
  1314. provinceName: v.provinceName,
  1315. operatorName: v.operatorName,
  1316. violationCateName: v.violationCateName,
  1317. violationItemName: v.violationItemName,
  1318. violationItem: v.violationItemName,
  1319. monthFee: v.monthFee,
  1320. tariffName: v.tariffName,
  1321. taffiffContent: v.taffiffContent,
  1322. remFee: v.remFee,
  1323. preFee: v.preFee,
  1324. saleScope: v.saleScope,
  1325. saleChnl: v.saleChnl,
  1326. monthSale: v.monthSale,
  1327. violationContent: v.violationContent,
  1328. recordRegionName: v.recordRegionName,
  1329. id: v.id,
  1330. };
  1331. this.$http({
  1332. url: "/market/cwcompetitor/write2Doc1",
  1333. method: "post",
  1334. headers: {
  1335. "Content-Type": "application/json",
  1336. },
  1337. responseType: "blob",
  1338. data: data,
  1339. }).then((response) => {
  1340. if (window.navigator && window.navigator.msSaveOrOpenBlob) {
  1341. let blob = new Blob([response.data], {
  1342. type: "application/vnd.ms-excel",
  1343. });
  1344. window.navigator.msSaveOrOpenBlob(
  1345. blob,
  1346. new Date().getTime() + ".docx"
  1347. );
  1348. } else {
  1349. /* 火狐谷歌的文件下载方式 */
  1350. var blob = new Blob([response.data]);
  1351. var downloadElement = document.createElement("a");
  1352. var href = window.URL.createObjectURL(blob);
  1353. downloadElement.href = href;
  1354. downloadElement.download = new Date().getTime() + ".docx";
  1355. document.body.appendChild(downloadElement);
  1356. downloadElement.click();
  1357. document.body.removeChild(downloadElement);
  1358. window.URL.revokeObjectURL(href);
  1359. }
  1360. });
  1361. }
  1362. },
  1363. //导出表格---------------------------------------------------------------------------------------------------
  1364. closeMessage(v) {
  1365. this.centerDialogVisible = false;
  1366. if (v === 1) {
  1367. this.export2Excel(v);
  1368. }
  1369. },
  1370. outExe(val) {
  1371. // 1违规 2正常
  1372. if (val == 1) {
  1373. if (this.outList.length > 0) {
  1374. this.centerDialogVisible = true;
  1375. this.messTit = "此操作将导出excel文件, 是否继续?";
  1376. this.exportType = val;
  1377. }
  1378. } else {
  1379. if (this.outList1.length > 0) {
  1380. this.centerDialogVisible = true;
  1381. this.messTit = "此操作将导出excel文件, 是否继续?";
  1382. this.exportType = val;
  1383. }
  1384. }
  1385. },
  1386. export2Excel() {
  1387. var that = this;
  1388. console.log("=============================================");
  1389. console.log("violationContent");
  1390. if (this.exportType === 1) {
  1391. require.ensure([], () => {
  1392. const { export_json_to_excel } = require("../vendor/Export2Excel");
  1393. console.log("violationContent");
  1394. const tHeader = [
  1395. "违规类别",
  1396. "省份",
  1397. "违规地市",
  1398. "运营商",
  1399. "违规项目",
  1400. "违规内容",
  1401. "资费名称",
  1402. "资费内容",
  1403. "月费",
  1404. "预存款",
  1405. "酬金",
  1406. "渠道",
  1407. "范围",
  1408. "月销量",
  1409. "上报时间",
  1410. "上报人",
  1411. "联系电话",
  1412. "审核状态",
  1413. "证据类型",
  1414. "是否已解决",
  1415. "是否反馈总部",
  1416. "是否返回竞合",
  1417. "是否反馈总局",
  1418. ]; // 导出的表头名
  1419. const filterVal = [
  1420. "violationCateName",
  1421. "provinceName",
  1422. "recordRegionName",
  1423. "operatorName",
  1424. "violationItemName",
  1425. "violationContent",
  1426. "tariffName",
  1427. "taffiffContent",
  1428. "monthFee",
  1429. "preFee",
  1430. "remFee",
  1431. "saleChnl",
  1432. "saleScope",
  1433. "monthSale",
  1434. "opTime",
  1435. "opName",
  1436. "contactPhone",
  1437. "stsDesc",
  1438. "evidenceType",
  1439. "fixFlagDesc",
  1440. "groupFlagDesc",
  1441. "wwFlagDesc",
  1442. "admFlagDesc",
  1443. ]; // 导出的表头字段名
  1444. const list = that.outList;
  1445. const data = that.formatJson(filterVal, list);
  1446. export_json_to_excel(tHeader, data, `竞争对手excel`); // 导出的表格名称,根据需要自己命名
  1447. });
  1448. return;
  1449. }
  1450. if (this.exportType === 2) {
  1451. require.ensure([], () => {
  1452. const { export_json_to_excel } = require("../vendor/Export2Excel");
  1453. const tHeader = [
  1454. "类别",
  1455. "省份",
  1456. "地市",
  1457. "套餐档位",
  1458. "套餐名称",
  1459. "运营商",
  1460. "套餐内容",
  1461. "月费(元)",
  1462. "优惠价",
  1463. "预存款(元)",
  1464. "酬金",
  1465. "渠道",
  1466. "范围",
  1467. "月销量",
  1468. "是否包含宽带",
  1469. "宽带具体内容",
  1470. "上报时间",
  1471. "上报人",
  1472. "联系电话",
  1473. "审核状态",
  1474. "是否已解决",
  1475. "是否反馈总部",
  1476. "是否返回竞合",
  1477. "是否反馈总局",
  1478. ]; // 导出的表头名
  1479. const filterVal = [
  1480. "violationCateName",
  1481. "provinceName",
  1482. "recordRegionName",
  1483. "packageGear",
  1484. "tariffName",
  1485. "operatorName",
  1486. "taffiffContent",
  1487. "monthFee",
  1488. "concessionalRate",
  1489. "preFee",
  1490. "remFee",
  1491. "saleChnl",
  1492. "saleScope",
  1493. "monthSale",
  1494. "isDb",
  1495. "dbContent",
  1496. "opTime",
  1497. "opName",
  1498. "contactPhone",
  1499. "stsDesc",
  1500. "fixFlagDesc",
  1501. "groupFlagDesc",
  1502. "wwFlagDesc",
  1503. "admFlagDesc",
  1504. ]; // 导出的表头字段名
  1505. const list = that.outList1;
  1506. const data = that.formatJson(filterVal, list);
  1507. export_json_to_excel(tHeader, data, `竞争对手excel`); // 导出的表格名称,根据需要自己命名
  1508. });
  1509. return;
  1510. }
  1511. },
  1512. formatJson(filterVal, jsonData) {
  1513. return jsonData.map((v) => filterVal.map((j) => v[j]));
  1514. },
  1515. },
  1516. mounted() {
  1517. let type = this.$route.query.type;
  1518. if (type == "1") {
  1519. this.activeName = "second";
  1520. this.getSecondList(this.params, this.pageSize);
  1521. } else {
  1522. this.getList(this.params, this.pageSize);
  1523. }
  1524. },
  1525. created() {
  1526. this.getListwglb();
  1527. this.getListsf();
  1528. },
  1529. };
  1530. </script>
  1531. <style lang="css">
  1532. .mc-style .el-tabs__content {
  1533. display: block !important;
  1534. }
  1535. </style>
  1536. <style scoped lang="scss">
  1537. .el-dropdown-link {
  1538. cursor: pointer;
  1539. color: #409eff;
  1540. }
  1541. .el-icon-arrow-down {
  1542. font-size: 12px;
  1543. }
  1544. .tabbox {
  1545. /*float: left;*/
  1546. /*max-width: 900px;*/
  1547. .pass {
  1548. color: #e4393c;
  1549. }
  1550. .nopass {
  1551. color: #00b83f;
  1552. }
  1553. }
  1554. .tab-long {
  1555. height: 22px;
  1556. float: left;
  1557. overflow: hidden;
  1558. text-overflow: ellipsis;
  1559. display: -webkit-box;
  1560. /* 将对象作为弹性伸缩盒子模型显示 */
  1561. -webkit-line-clamp: 1;
  1562. /* 控制最多显示几行 */
  1563. -webkit-box-orient: vertical;
  1564. /* 设置或检索伸缩盒对象的子元素的排列方式 */
  1565. }
  1566. .checknum {
  1567. font-size: 13px;
  1568. margin-top: 10px;
  1569. color: #b2b2b2;
  1570. .c-188ACF {
  1571. color: #188acf;
  1572. }
  1573. }
  1574. .titbtn-box {
  1575. text-align: right;
  1576. }
  1577. .com-table {
  1578. margin-top: 16px;
  1579. }
  1580. .cell {
  1581. i {
  1582. padding: 0 5px;
  1583. display: inline-block;
  1584. cursor: pointer;
  1585. }
  1586. }
  1587. .pageBox {
  1588. text-align: right;
  1589. margin-top: 10px;
  1590. }
  1591. </style>