UploadLink.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915
  1. <template>
  2. <div class="upload_Link">
  3. <!-- <span><b>经销商</b></span> -->
  4. <span>针对论坛及其他平台链接上传</span>
  5. <div class="contentHead">
  6. <span>上传平台</span>
  7. <select name="" id="" v-model="platformVal" @change="choosePlatform">
  8. <!-- <option value="">请选择</option> -->
  9. <option
  10. v-for="(item, index) in platform"
  11. :key="index"
  12. :value="item.platformName"
  13. >
  14. {{ item.platformName }}
  15. </option>
  16. </select>
  17. </div>
  18. <div class="tableBox">
  19. <table class="feedbackTable">
  20. <thead class="theadStyle">
  21. <tr class="tableHeadStyle1">
  22. <td>论坛传播情况汇总</td>
  23. </tr>
  24. <tr class="tableHeadStyle2 tableHeadStyle3">
  25. <td v-for="(item, index) in tableHeader" :key="index">
  26. {{ item }}
  27. </td>
  28. </tr>
  29. </thead>
  30. <tbody class="bodyStyle">
  31. <tr
  32. class="bodyContent tableHeadStyle2"
  33. v-for="(obj, index) in tableData"
  34. :key="index"
  35. :class="{ table_gray: index % 2 === 0 }"
  36. >
  37. <td v-if="flag">{{ index + 1 }}</td>
  38. <td>{{ obj.publishDate }}</td>
  39. <!-- 发布日期 -->
  40. <td>{{ obj.informationName }}</td>
  41. <!-- 资料名称 -->
  42. <td>{{ obj.carTypeName }}</td>
  43. <!-- 车系 -->
  44. <td>{{ obj.carPlatformName }}</td>
  45. <!-- 车型 -->
  46. <td>{{ obj.publishSourceName }}</td>
  47. <!-- 发布版块 -->
  48. <td>{{ obj.projectTypeName }}</td>
  49. <!-- 项目分类 -->
  50. <td>{{ obj.contentTypeName }}</td>
  51. <!-- 内容分类 -->
  52. <td>{{ obj.contentTypeName }}</td>
  53. <!-- 内容分类 -->
  54. <td>{{ obj.mediaTitle }}</td>
  55. <!-- 稿件标题 -->
  56. <td>{{ obj.mediaUrl }}</td>
  57. <!-- 链接 -->
  58. <td class="operationStyle">
  59. <span @click="toggleModal(index)">编辑</span>
  60. <span @click="toggleModal2(index)">删除</span>
  61. <!-- 弹窗: 确定删除? -->
  62. <deleteModal
  63. v-if="showModal2"
  64. @dataDel="toDel"
  65. @hide_modal="closeme2"
  66. :LinkData="modalData"
  67. :showModalFlag="showModal2"
  68. :chooseItemIndex="nowIndex"
  69. ></deleteModal>
  70. </td>
  71. </tr>
  72. </tbody>
  73. </table>
  74. </div>
  75. <!-- 弹窗: 编辑表格内容 -->
  76. <Modal
  77. v-if="showModal"
  78. v-on:closeme="closeme"
  79. :LinkData="modalData"
  80. @update="editTitle"
  81. :selectedPlatform="selectedPlatform"
  82. :releasePlate="releasePlate"
  83. ></Modal>
  84. <div class="timeLimitStyle">
  85. <span>仅可对上传时间为{{ feedbackTimeLimit }}个月内的资料进行反馈</span>
  86. </div>
  87. <div class="pageBottom">
  88. <div class="fileOperation">
  89. <span class="operationStyle xiahuaxian" @click="importTemplate"
  90. >导入模板</span
  91. >
  92. <!-- <button @click="toggleModal3()">导入</button> -->
  93. <!-- <button @click="importDataList">导入</button> -->
  94. <label for="fileInput" @change="getFileInfo($event)"
  95. >导入<input
  96. type="file"
  97. name="fileName"
  98. id="fileInput"
  99. multiple
  100. /></label>
  101. <!-- <button @click="toggleModal4()">导出</button> <input
  102. type="file"
  103. name="fileName"
  104. id="fileOutput"
  105. accept=".xlsx, .xls"
  106. />-->
  107. <label for="fileOutput" @click="onOutputExcel()">导出</label>
  108. </div>
  109. <TablePage
  110. :currentPage="currentPage"
  111. :totalPage="totalPage"
  112. @change_page="changePage"
  113. @jump_page="jumpPage"
  114. class="tablePageStyle"
  115. ></TablePage>
  116. </div>
  117. <!-- 弹窗: 上传链接超过剩余限制数量,请修改后重新导入 -->
  118. <div class="modal-backdrop" v-show="showModal3">
  119. <div class="modal">
  120. <div class="modal-body">
  121. <div class="bodyRow">上传链接超过剩余限制数量,请修改后重新导入</div>
  122. </div>
  123. <div class="modal-footer">
  124. <button type="button" class="btn-confirm" @click="closeme3()">
  125. 确定
  126. </button>
  127. <button type="button" class="btn-close" @click="closeme3">
  128. 取消
  129. </button>
  130. </div>
  131. </div>
  132. </div>
  133. <!-- 弹窗: 资料名称无法匹配,请修改后重新导入 -->
  134. <div class="modal-backdrop" v-show="showModal4">
  135. <div class="modal">
  136. <div class="modal-body">
  137. <div class="bodyRow">资料名称无法匹配,请修改后重新导入</div>
  138. <div class="bodyRow">成功{{ 1 }}条,失败{{ 1 }}条</div>
  139. </div>
  140. <div class="modal-footer" style="position: relative; top: 95px">
  141. <button type="button" class="btn-confirm" @click="closeme4()">
  142. 确定
  143. </button>
  144. <button type="button" class="btn-close" @click="closeme4">
  145. 取消
  146. </button>
  147. </div>
  148. </div>
  149. </div>
  150. </div>
  151. </template>
  152. <script>
  153. import Modal from "../../components/Modal";
  154. import TablePage from "../../components/TablePage";
  155. import deleteModal from "../data/components/UploadLinkModalDelete";
  156. export default {
  157. props: {
  158. isManufacturer: {
  159. type: String,
  160. default: "distributor",
  161. },
  162. },
  163. components: {
  164. Modal,
  165. TablePage,
  166. deleteModal,
  167. },
  168. data() {
  169. return {
  170. publishCount: "",
  171. platform: [],
  172. platformVal: "",
  173. releasePlate: [],
  174. selectedPlatform: "",
  175. selectedPlatformId: "",
  176. nowIndex: 0,
  177. /* modal */
  178. feedbackTimeLimit: 6,
  179. showModal: false,
  180. showModal2: false,
  181. showModal3: false,
  182. showModal4: false,
  183. // 表格配置
  184. sum: 20, // 一共有多少条数据
  185. pageSize: 20, // 每页展示的数据
  186. discolor: false, // false是隔行变色
  187. currentPage: 1,
  188. tableHeader: [
  189. "NO.",
  190. "发布日期",
  191. "资料名称",
  192. "车系",
  193. "车型",
  194. "发布版块",
  195. "项目分类",
  196. "内容分类1",
  197. "内容分类2",
  198. "标题",
  199. "链接",
  200. "操作",
  201. ],
  202. tableData: [
  203. /* {
  204. informationId: "2021/03/04",
  205. publishDate: "雷克萨斯ES上市",
  206. carTypeName: "雷克萨斯ES",
  207. carPlatformName: "ES雷克萨斯",
  208. publishSourceName: "S雷克萨斯",
  209. projectTypeName: "东区1",
  210. contentTypeName: "雷克萨斯ES",
  211. mediaTitle: "ES雷克萨斯",
  212. mediaUrl: "S雷克萨斯",
  213. },
  214. {
  215. informationId: "2021/03/04",
  216. publishDate: "雷克萨斯ES上市",
  217. carTypeName: "雷克萨斯ES",
  218. carPlatformName: "ES雷克萨斯",
  219. publishSourceName: "S雷克萨斯",
  220. projectTypeName: "东区2",
  221. contentTypeName: "雷克萨斯ES",
  222. mediaTitle: "ES雷克萨斯",
  223. mediaUrl: "S雷克萨斯",
  224. },
  225. {
  226. informationId: "",
  227. publishDate: "",
  228. carTypeName: "",
  229. carPlatformName: "",
  230. publishSourceName: "",
  231. projectTypeName: "",
  232. contentTypeName: "",
  233. mediaTitle: "",
  234. mediaUrl: "",
  235. }, */
  236. ],
  237. flag: true,
  238. operation: [
  239. {
  240. name: "编辑",
  241. function: () => {
  242. this.EditForm();
  243. },
  244. },
  245. {
  246. name: "删除",
  247. function: () => {
  248. this.showDetail();
  249. },
  250. },
  251. ],
  252. modalData: {}, //17:44
  253. emptyData: {
  254. accountId: "",
  255. carPlatformName: "",
  256. carTypeName: "",
  257. contentTypeName: "",
  258. endTime: null,
  259. id: "",
  260. informationId: "",
  261. localArea: "",
  262. mediaTitle: null,
  263. mediaTypeName: "",
  264. mediaUrl: "",
  265. projectTypeName: "",
  266. publishDate: "",
  267. publishPlatformName: "",
  268. publishSourceName: "",
  269. queryParams: null,
  270. startTime: null,
  271. },
  272. file: "",
  273. };
  274. },
  275. computed: {
  276. // 表格总页数
  277. totalPage() {
  278. return Math.ceil(this.sum / this.pageSize);
  279. },
  280. },
  281. methods: {
  282. EditForm: () => {
  283. alert("编辑");
  284. },
  285. showDetail: () => {
  286. alert("展示详情");
  287. },
  288. /*toggleModal:点击编辑后弹窗; toggleModal2:点击删除后弹窗; toggleModal3:点击导入后弹窗; */
  289. toggleModal: function (i) {
  290. this.showModal = !this.showModal;
  291. this.modalData = this.tableData[i];
  292. },
  293. closeme: function () {
  294. this.showModal = !this.showModal;
  295. },
  296. //删除
  297. toggleModal2: function (i) {
  298. this.showModal2 = !this.showModal2;
  299. this.nowIndex = i;
  300. this.modalData = this.tableData[i];
  301. console.log("INtoggleModal2", this.modalData, this.nowIndex);
  302. },
  303. closeme2: function () {
  304. this.showModal2 = !this.showModal2;
  305. },
  306. toggleModal3: function () {
  307. this.showModal3 = !this.showModal3;
  308. },
  309. closeme3: function () {
  310. this.showModal3 = !this.showModal3;
  311. },
  312. toggleModal4: function () {
  313. this.showModal4 = !this.showModal4;
  314. },
  315. closeme4: function () {
  316. this.showModal4 = !this.showModal4;
  317. },
  318. /* 编辑内容,,Modal传参 */
  319. editTitle: function (val) {
  320. console.log("editTitle文件:", val);
  321. this.$http({
  322. url: val.url,
  323. method: "post",
  324. data: val.data,
  325. })
  326. .then((res) => {
  327. console.log(res);
  328. })
  329. .catch((err) => {
  330. console.log(err);
  331. });
  332. },
  333. toDel: function (n) {
  334. console.log("inToDel:", n);
  335. //清空数据
  336. /* if (n == -2) {
  337. this.tableData = "";
  338. }
  339. //清空某一项数据
  340. {
  341. let obj = this.tableData[n];
  342. Object.keys(obj).forEach((key) => {
  343. obj[key] = "";
  344. });
  345. } */
  346. this.showModal2 = !this.showModal2;
  347. this.choosePlatform();
  348. },
  349. /* 表格翻页 */
  350. changePage: function (page) {
  351. this.currentPage = page;
  352. console.log(page);
  353. },
  354. // 点击上一页,下一页,首页,尾页
  355. jumpPage: function (item) {
  356. switch (item) {
  357. case 1:
  358. this.currentPage = 1;
  359. break;
  360. case 2:
  361. this.currentPage = this.currentPage - 1;
  362. break;
  363. case 3:
  364. this.currentPage = this.currentPage + 1;
  365. break;
  366. case 4:
  367. this.currentPage = this.totalPage;
  368. break;
  369. }
  370. console.log(this.currentPage);
  371. },
  372. //获取资料列表
  373. getDataList: function (config) {
  374. let date = new Date();
  375. let m = date.getMonth() + 1;
  376. let y = date.getFullYear();
  377. let d = y + "/" + m;
  378. this.$http({
  379. url: "/firmsLinkUpload",
  380. method: "post",
  381. data: {
  382. month: d,
  383. publishPlatformId: config,
  384. },
  385. })
  386. .then((res) => {
  387. if (res.data.code === 200) {
  388. //this.tableData = [];
  389. let data = res.data.data;
  390. //this.tableData.push(data[0]);
  391. //Array.prototype.push.apply(this.tableData, data);
  392. //this.tableData.push(data[0]);
  393. for (
  394. let i = 0, j = 0;
  395. i < this.tableData.length && j < data.length;
  396. i++, j++
  397. ) {
  398. this.tableData.splice(i, 1, data[j]);
  399. }
  400. console.log(data.length, this.tableData.length);
  401. console.log(this.tableData);
  402. }
  403. })
  404. .catch((err) => {
  405. console.log(err);
  406. });
  407. },
  408. //导入经销商反馈信息 经销商反馈服务>导入经销商反馈信息
  409. /* importDataList: function () {
  410. this.file = event.target.files;
  411. this.fileDes = [];
  412. this.file.forEach((item) => {
  413. this.fileDes.push(item.name);
  414. });
  415. this.$http({
  416. url: "/importDealerFeedback",
  417. method: "post",
  418. data: {},
  419. })
  420. .then((res) => {
  421. if (res.data.code === 200) {
  422. this.tableData = res.data.data;
  423. }
  424. })
  425. .catch((err) => {
  426. console.log(err);
  427. });
  428. }, */
  429. //导出excel
  430. onOutputExcel: function () {
  431. this.$http({
  432. url: "/exportNoFactory",
  433. method: "get",
  434. params: {
  435. //id: this.selectedPlatformId //当期平台id
  436. },
  437. })
  438. .then((res) => {
  439. console.log(res);
  440. if (res.data.code === 200) {
  441. console.log(res.data);
  442. }
  443. })
  444. .catch((err) => {
  445. console.log(err);
  446. });
  447. },
  448. //导入excel
  449. /* onImportExcel: function () {
  450. this.$http({
  451. url: "/importDealerFeedback",
  452. method: "get",
  453. params: {},
  454. })
  455. .then((res) => {
  456. console.log(res);
  457. if (res.data.code === 200) {
  458. console.log(res.data);
  459. }
  460. })
  461. .catch((err) => {
  462. console.log(err);
  463. });
  464. }, */
  465. // 获取文件
  466. getFileInfo: function (event) {
  467. this.file = event.target.files;
  468. let fileDes = [];
  469. this.file.forEach((item) => {
  470. fileDes.push(item.name);
  471. });
  472. console.log(fileDes);
  473. this.submitRequest();
  474. },
  475. // 导入接口
  476. submitRequest: function () {
  477. let paramData = new FormData();
  478. //paramData.append("file", this.file);
  479. this.file.forEach((item)=>{
  480. paramData.append("file", item);
  481. })
  482. console.log(this.file);
  483. this.$http
  484. .uploadFile("/importDealerFeedback", paramData)
  485. .then((res) => {
  486. if (res.data && res.data.code === 200) {
  487. console.log("上传成功!");
  488. } else {
  489. alert("上传失败,res.data || res.data.code !== 200");
  490. console.log(res);
  491. }
  492. })
  493. .catch((err) => {
  494. alert("上传失败,请重试");
  495. console.log(err);
  496. });
  497. },
  498. //获取平台列表
  499. getPlatform: function () {
  500. this.$http({
  501. url: "/base/publishPlatformManager/selectPublishPlatformList",
  502. method: "post",
  503. data: {},
  504. })
  505. .then((res) => {
  506. if (res.data.code === 200) {
  507. this.platform = res.data.data;
  508. this.platformVal = this.platform[0].platformName;
  509. this.choosePlatform();
  510. }
  511. })
  512. .catch((err) => {
  513. console.log(err);
  514. });
  515. },
  516. //下拉选择平台
  517. choosePlatform: function () {
  518. let obj = {};
  519. //所选平台名称
  520. let val = this.platformVal;
  521. obj = this.platform.find(function (item) {
  522. return item.platformName === val;
  523. });
  524. this.selectedPlatform = val;
  525. this.selectedPlatformId = obj.id;
  526. //获取可发布数量
  527. this.getReleaseQuantity(obj.id);
  528. //发布平台ID
  529. this.getDataList(obj.id);
  530. //获取发布版块
  531. this.chooseReleasePlate(obj.id);
  532. },
  533. //获取可发布数量
  534. getReleaseQuantity: function (val) {
  535. let date = new Date();
  536. let m = date.getMonth() + 1;
  537. let y = date.getFullYear();
  538. let d = y + "/" + m;
  539. this.$http({
  540. // url: "/base/mediaPublishManager/selectMediaPublishList",
  541. url: "/base/mediaPublishManager/selectMediaPublishListByMonth",
  542. method: "post",
  543. data: {
  544. publishPlatformId: val,
  545. publishMonth: d,
  546. //id: val,
  547. // month: d,
  548. },
  549. })
  550. .then((res) => {
  551. if (res.data.code === 200) {
  552. console.log(res);
  553. this.publishCount = res.data.data[0].publishCount;
  554. let len = this.publishCount;
  555. let l = this.tableData.length;
  556. console.log("获取可发布数量", len, l);
  557. this.tableData = [];
  558. while (len > 0) {
  559. //this.tableData.push([]);
  560. Array.prototype.push.apply(this.tableData, [this.emptyData]);
  561. len--;
  562. }
  563. console.log(this.tableData);
  564. console.log(this.tableData.length);
  565. }
  566. })
  567. .catch((err) => {
  568. console.log(err);
  569. });
  570. },
  571. //发布版块
  572. chooseReleasePlate: function (val) {
  573. this.$http({
  574. url: "/base/publishPlatformManager/selectPublishPlatformList",
  575. method: "post",
  576. data: {
  577. parentId: val,
  578. },
  579. })
  580. .then((res) => {
  581. console.log(res);
  582. if (res.data.code === 200) {
  583. this.releasePlate = res.data.data;
  584. }
  585. })
  586. .catch((err) => {
  587. console.log(err);
  588. });
  589. },
  590. //导入模板
  591. importTemplate: function () {
  592. this.$http({
  593. //url: "/exportNoFactory",
  594. url: "/downloadTemplate",
  595. method: "get",
  596. params: {
  597. templateName: "反馈链接上传导入表模板(经销商).xlsx",
  598. },
  599. })
  600. .then((res) => {
  601. console.log(res);
  602. if (res.data.code === 200) {
  603. console.log(res.data);
  604. }
  605. })
  606. .catch((err) => {
  607. console.log(err);
  608. });
  609. /* return new Promise((resolve, reject) => {
  610. this.$http({
  611. url: "/exportNoFactory",
  612. method: "get",
  613. params: "反馈链接上传导入表模板(经销商).xlsx"
  614. })
  615. .then((res) => {
  616. console.log(res);
  617. resolve(res);
  618. let link = document.createElement("a");
  619. link.href = window.URL.createObjectURL(new Blob([res.data]));
  620. link.target = "_blank";
  621. //文件名和格式
  622. link.download = "文件模板.xlsx";
  623. document.body.appendChild(link);
  624. link.click();
  625. document.body.removeChild(link);
  626. })
  627. .catch((err) => {
  628. reject(err);
  629. });
  630. }); */
  631. },
  632. //导入
  633. /* importFile: function () {
  634. this.$http({
  635. url: "/importDealerFeedback",
  636. method: "get",
  637. params: "反馈链接上传导入表模板(经销商).xlsx",
  638. })
  639. .then((res) => {
  640. console.log(res);
  641. if (res.data.code === 200) {
  642. console.log(res.data);
  643. }
  644. })
  645. .catch((err) => {
  646. console.log(err);
  647. });
  648. }, */
  649. //导出
  650. /* outputFile: function () {
  651. this.$http({
  652. url: "/exportNoFactory",
  653. method: "get",
  654. params: "反馈链接上传导入表模板(经销商).xlsx",
  655. })
  656. .then((res) => {
  657. console.log(res);
  658. if (res.data.code === 200) {
  659. console.log(res.data);
  660. }
  661. })
  662. .catch((err) => {
  663. console.log(err);
  664. });
  665. }, */
  666. },
  667. mounted() {
  668. this.getPlatform();
  669. },
  670. };
  671. </script>
  672. <style scoped lang="less">
  673. .contentHead {
  674. height: 55px;
  675. display: flex;
  676. align-items: center;
  677. }
  678. .contentHead span {
  679. margin-right: 15px;
  680. }
  681. .tableBox {
  682. width: 1030px;
  683. overflow-y: hidden;
  684. }
  685. .tableBox {
  686. text-align: center;
  687. .table {
  688. table-layout: fixed;
  689. background-color: #fff;
  690. border-collapse: collapse;
  691. border: none;
  692. td {
  693. border: 1px solid #ccc;
  694. }
  695. span {
  696. &:hover {
  697. cursor: pointer;
  698. }
  699. }
  700. }
  701. }
  702. .table_gray td {
  703. background-color: #eeeeee;
  704. }
  705. .tableBox table {
  706. border-collapse: collapse;
  707. border: 0px;
  708. }
  709. .tableBox table td {
  710. border: 1px solid #ccc;
  711. border-right: 0px;
  712. border-bottom: 0px;
  713. text-overflow: ellipsis;
  714. overflow: hidden;
  715. white-space: nowrap;
  716. }
  717. // 表头样式
  718. .theadStyle tr td {
  719. color: white;
  720. }
  721. .tableHeadStyle1 {
  722. background: #848484;
  723. height: 30px;
  724. color: #fff;
  725. display: flex;
  726. align-items: center;
  727. }
  728. .tableHeadStyle1 td {
  729. width: 100%;
  730. padding: 7px 5px;
  731. }
  732. .tableHeadStyle2 {
  733. // background: #848484;
  734. height: 30px;
  735. color: #fff;
  736. display: flex;
  737. align-items: center;
  738. }
  739. .tableHeadStyle2 td {
  740. width: 100px;
  741. padding: 7px 5px;
  742. }
  743. .tableHeadStyle3 td {
  744. background: #848484;
  745. }
  746. .tableHeadStyle2 td:nth-child(1) {
  747. width: 60px;
  748. }
  749. .tableHeadStyle2 td:nth-child(10) {
  750. width: 100px;
  751. padding: 7px 5px;
  752. }
  753. .tableHeadStyle2 td:nth-child(11) {
  754. width: 100px;
  755. padding: 7px 5px;
  756. }
  757. .tableHeadStyle2 td:nth-child(12) {
  758. width: 100px;
  759. padding: 7px 5px;
  760. }
  761. .tableHeadStyle2 td:nth-child(2) {
  762. width: 100px;
  763. padding: 7px 5px;
  764. }
  765. .tableHeadStyle2 td:nth-child(3) {
  766. width: 100px;
  767. padding: 7px 5px;
  768. }
  769. .bodyStyle {
  770. display: block;
  771. background-color: #fff;
  772. }
  773. .bodyStyle tr > td:nth-last-child(2) {
  774. color: #0000ff;
  775. }
  776. .bodyContent td {
  777. //background-color: #fff;
  778. height: 20px;
  779. }
  780. .operationStyle {
  781. color: #0000ff;
  782. display: flex;
  783. justify-content: space-around;
  784. }
  785. .xiahuaxian {
  786. text-decoration: underline;
  787. }
  788. .operationStyle span {
  789. color: #0000ff;
  790. }
  791. .fileOperation {
  792. display: flex;
  793. justify-content: flex-start;
  794. margin: 10px;
  795. align-items: center;
  796. }
  797. .fileOperation button {
  798. border-radius: 4px;
  799. }
  800. .fileOperation span {
  801. margin-right: 16px;
  802. }
  803. .fileOperation {
  804. border-radius: 4px;
  805. label {
  806. margin-right: 16px;
  807. height: 30px;
  808. line-height: 30px;
  809. width: 56px;
  810. background-color: #0056a0;
  811. color: #fff;
  812. text-align: center;
  813. font-size: 14px;
  814. input {
  815. display: none;
  816. }
  817. }
  818. }
  819. .timeLimitStyle {
  820. padding: 10px;
  821. }
  822. .modal-backdrop {
  823. position: fixed;
  824. top: 0;
  825. right: 0;
  826. bottom: 0;
  827. left: 0;
  828. background-color: rgba(0, 0, 0, 0.3);
  829. display: flex;
  830. justify-content: center;
  831. align-items: center;
  832. }
  833. .modal {
  834. background-color: #ffffff;
  835. box-shadow: 2px 2px 20px 1px;
  836. overflow-x: auto;
  837. display: flex;
  838. flex-direction: column;
  839. width: 500px;
  840. border-radius: 0px;
  841. height: 230px;
  842. }
  843. .modal-footer {
  844. border-top: 1px solid #eee;
  845. position: relative;
  846. top: 124px;
  847. left: 232px;
  848. width: 208px;
  849. display: flex;
  850. justify-content: space-between;
  851. padding: 0px;
  852. }
  853. .modal-footer button {
  854. border-radius: 4px;
  855. margin-left: 0px;
  856. width: 80px;
  857. font-size: 14px;
  858. }
  859. .modal-footer button:nth-child(1) {
  860. background-color: #0056a0;
  861. }
  862. .modal-footer button:nth-child(2) {
  863. background-color: #eeeeee;
  864. }
  865. .modal-body {
  866. position: relative;
  867. top: 64px;
  868. margin-left: 50px;
  869. padding: 0px;
  870. }
  871. .btn-close,
  872. .btn-confirm {
  873. margin-left: 16px;
  874. width: 56px;
  875. height: 36px;
  876. border: none;
  877. cursor: pointer;
  878. }
  879. .btn-close {
  880. color: #313131;
  881. background-color: gray;
  882. }
  883. .btn-confirm {
  884. color: #fff;
  885. background-color: #2d8cf0;
  886. }
  887. .bodyRow {
  888. font-size: 16px;
  889. font-family: Arial;
  890. }
  891. /* .tablePageStyle{
  892. position: relative;
  893. left: 266px;
  894. } */
  895. .pageBottom {
  896. display: flex;
  897. justify-content: space-between;
  898. align-items: center;
  899. }
  900. </style>