marketDecisionMeeting.vue 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077
  1. <template>
  2. <fullscreen :fullscreen.sync="fullscreen" class="container">
  3. <div class="container-box">
  4. <toolList @iconCli="iconCli" :tooltit="tooltit"></toolList>
  5. <div class="search">
  6. <div class="search-item">
  7. <label>年份</label>
  8. <el-date-picker
  9. v-model="year"
  10. type="year"
  11. placeholder="年份"
  12. value-format="yyyy"
  13. >
  14. </el-date-picker>
  15. </div>
  16. <div class="search-item">
  17. <label>月份</label>
  18. <el-select clearable v-model="month" placeholder="月份">
  19. <el-option
  20. v-for="i in monthOpt"
  21. :key="i"
  22. :label="`${i}月`"
  23. :value="`${i}`"
  24. >
  25. </el-option>
  26. </el-select>
  27. </div>
  28. <el-button
  29. class="btn-check"
  30. size="medium"
  31. type="primary"
  32. plain
  33. icon="el-icon-search"
  34. @click="searchInfo"
  35. >搜索
  36. </el-button>
  37. </div>
  38. <div class="tabbox">
  39. <el-table
  40. height="calc(100% - 40px)"
  41. class="com-table"
  42. ref="multipleTable"
  43. :data="tableData"
  44. tooltip-effect="dark"
  45. size="small"
  46. border
  47. style="width: 100%"
  48. v-loading="loading"
  49. >
  50. <el-table-column label="会议时间" align="center">
  51. <template slot-scope="scope">
  52. <span>{{
  53. $formatDate(scope.row.meetingTime, "YYYY-MM-DD")
  54. }}</span>
  55. </template>
  56. </el-table-column>
  57. <el-table-column prop="meetingName" label="会议名称" align="center">
  58. </el-table-column>
  59. <el-table-column label="操作" width="300px" align="center">
  60. <template slot-scope="scope">
  61. <el-button
  62. size="mini"
  63. type="primary"
  64. @click="jump(2, scope.row)"
  65. >上传</el-button
  66. >
  67. <el-button
  68. size="mini"
  69. type="primary"
  70. @click="jump(1, scope.row)"
  71. >查看及导出</el-button
  72. >
  73. </template>
  74. </el-table-column>
  75. </el-table>
  76. <el-pagination
  77. class="pageBox"
  78. @current-change="currchange"
  79. layout="prev, pager, next"
  80. background
  81. :total="total"
  82. >
  83. </el-pagination>
  84. </div>
  85. </div>
  86. <el-dialog
  87. :title="titname"
  88. :visible.sync="dialogStatus"
  89. width="70%"
  90. :destroy-on-close="true"
  91. :modal-append-to-body="false"
  92. :close-on-click-modal="false"
  93. :before-close="closedia"
  94. :fullscreen="false"
  95. >
  96. <div v-loading="loadinged">
  97. <el-table
  98. :data="infoTableData"
  99. border
  100. size="mini"
  101. style="margin: 20px 0;"
  102. >
  103. <el-table-column prop="serialNumber" label="序号">
  104. </el-table-column>
  105. <el-table-column label="线条">
  106. <template slot-scope="scope">
  107. <span>{{
  108. billOpt[scope.row.topicsType].billName
  109. }}</span>
  110. </template>
  111. </el-table-column>
  112. <el-table-column prop="topicsName" label="议题名称">
  113. </el-table-column>
  114. <el-table-column prop="remark" label="概要">
  115. </el-table-column>
  116. <el-table-column prop="declarantApply" label="需参加部门">
  117. </el-table-column>
  118. <el-table-column prop="dept" label="申报人部门">
  119. </el-table-column>
  120. <el-table-column prop="department" label="申报科室">
  121. </el-table-column>
  122. <el-table-column prop="declarant" label="申报人姓名">
  123. </el-table-column>
  124. <el-table-column prop="reporting" label="汇报时长(小时)">
  125. </el-table-column>
  126. <el-table-column
  127. label="操作"
  128. width="150px"
  129. align="center"
  130. fixed="right"
  131. >
  132. <template slot-scope="scope">
  133. <el-button
  134. size="mini"
  135. type="primary"
  136. @click="jump(3, scope.row)"
  137. >编辑</el-button
  138. >
  139. <el-button
  140. size="mini"
  141. type="primary"
  142. @click="jump(4, scope.row)"
  143. >删除</el-button
  144. >
  145. </template>
  146. </el-table-column>
  147. </el-table>
  148. <div slot="footer" class="dialog-footer myfooter">
  149. <el-button type="primary" @click="dialogCli(1)"
  150. >全量导出</el-button
  151. >
  152. <el-button type="primary" @click="closedia">确定</el-button>
  153. <el-button @click="closedia">取消</el-button>
  154. </div>
  155. </div>
  156. </el-dialog>
  157. <el-dialog
  158. :title="titname"
  159. :visible.sync="uploadDialogStatus"
  160. width="50%"
  161. :destroy-on-close="true"
  162. :modal-append-to-body="false"
  163. :close-on-click-modal="false"
  164. :before-close="closedia"
  165. :fullscreen="false"
  166. >
  167. <div v-loading="loadinged">
  168. <el-form :model="infolist" ref="infolist" :rules="rules">
  169. <div class="info-line">
  170. <el-form-item>
  171. <span>序号</span>
  172. <el-input
  173. v-model="infolist.serialNumber"
  174. disabled
  175. ></el-input>
  176. </el-form-item>
  177. <el-form-item prop="topicsType">
  178. <span>线条</span>
  179. <el-select
  180. clearable
  181. v-model="infolist.topicsType"
  182. placeholder="线条"
  183. >
  184. <el-option
  185. v-for="(items, index) in billOpt"
  186. :key="index"
  187. :label="items.billName"
  188. :value="items.billId"
  189. >
  190. </el-option>
  191. </el-select>
  192. </el-form-item>
  193. <el-form-item prop="topicsName">
  194. <span>议题名称</span>
  195. <el-input v-model="infolist.topicsName"></el-input>
  196. </el-form-item>
  197. <el-form-item prop="department">
  198. <span>申报科室</span>
  199. <el-input v-model="infolist.department"></el-input>
  200. </el-form-item>
  201. <el-form-item prop="dept">
  202. <span>申报部门</span>
  203. <el-input v-model="infolist.dept"></el-input>
  204. </el-form-item>
  205. <el-form-item prop="declarant">
  206. <span>申报姓名</span>
  207. <el-input v-model="infolist.declarant"></el-input>
  208. </el-form-item>
  209. <el-form-item prop="declarantApply">
  210. <span>需参加部门</span>
  211. <el-input
  212. v-model="infolist.declarantApply"
  213. ></el-input>
  214. </el-form-item>
  215. <el-form-item prop="reporting">
  216. <span>汇报时长(小时)</span>
  217. <el-input
  218. v-model="infolist.reporting"
  219. oninput="value=value.replace(/[^0-9.]/g,'')"
  220. ></el-input>
  221. </el-form-item>
  222. </div>
  223. <div class="info-line2">
  224. <el-form-item prop="remark">
  225. <span>概要</span>
  226. <div class="remark-box">
  227. <div style="padding-left: 20px">
  228. <el-input
  229. type="textarea"
  230. v-model="infolist.remark"
  231. maxlength="300"
  232. show-word-limit
  233. ></el-input>
  234. </div>
  235. </div>
  236. </el-form-item>
  237. <el-form-item>
  238. <span>附件</span>
  239. <div class="upload-box">
  240. <div>
  241. <myUpload
  242. @uploadBack="uploadBack"
  243. :fileInfo="fileInfo"
  244. :fileList="fileInfo.fileList"
  245. >
  246. </myUpload>
  247. </div>
  248. </div>
  249. </el-form-item>
  250. </div>
  251. </el-form>
  252. <div slot="footer" class="dialog-footer myfooter">
  253. <el-button type="primary" @click="dialogCli(3)"
  254. >保存</el-button
  255. >
  256. <el-button @click="closedia">取消</el-button>
  257. </div>
  258. </div>
  259. </el-dialog>
  260. <el-dialog
  261. :title="titname"
  262. :visible.sync="editDialogStatus"
  263. width="50%"
  264. :destroy-on-close="true"
  265. :modal-append-to-body="false"
  266. :close-on-click-modal="false"
  267. :before-close="editClosedia"
  268. :fullscreen="false"
  269. >
  270. <div v-loading="loadinged">
  271. <el-form
  272. :model="editInfolist"
  273. ref="editInfolist"
  274. :rules="rules"
  275. >
  276. <div class="info-line">
  277. <el-form-item>
  278. <span>序号</span>
  279. <el-input
  280. v-model="editInfolist.serialNumber"
  281. disabled
  282. ></el-input>
  283. </el-form-item>
  284. <el-form-item prop="topicsType">
  285. <span>线条</span>
  286. <el-select
  287. clearable
  288. v-model="editInfolist.topicsType"
  289. placeholder="线条"
  290. >
  291. <el-option
  292. v-for="(items, index) in billOpt"
  293. :key="index"
  294. :label="items.billName"
  295. :value="items.billId"
  296. >
  297. </el-option>
  298. </el-select>
  299. </el-form-item>
  300. <el-form-item prop="topicsName">
  301. <span>议题名称</span>
  302. <el-input
  303. v-model="editInfolist.topicsName"
  304. ></el-input>
  305. </el-form-item>
  306. <el-form-item prop="department">
  307. <span>申报科室</span>
  308. <el-input
  309. v-model="editInfolist.department"
  310. ></el-input>
  311. </el-form-item>
  312. <el-form-item prop="dept">
  313. <span>申报部门</span>
  314. <el-input v-model="editInfolist.dept"></el-input>
  315. </el-form-item>
  316. <el-form-item prop="declarant">
  317. <span>申报姓名</span>
  318. <el-input
  319. v-model="editInfolist.declarant"
  320. ></el-input>
  321. </el-form-item>
  322. <el-form-item prop="declarantApply">
  323. <span>需参加部门</span>
  324. <el-input
  325. v-model="editInfolist.declarantApply"
  326. ></el-input>
  327. </el-form-item>
  328. <el-form-item prop="reporting">
  329. <span>汇报时长(小时)</span>
  330. <el-input
  331. v-model="editInfolist.reporting"
  332. oninput="value=value.replace(/[^0-9.]/g,'')"
  333. ></el-input>
  334. </el-form-item>
  335. </div>
  336. <div class="info-line2">
  337. <el-form-item prop="remark">
  338. <span>概要</span>
  339. <div class="remark-box">
  340. <div style="padding-left: 20px">
  341. <el-input
  342. type="textarea"
  343. v-model="editInfolist.remark"
  344. maxlength="300"
  345. show-word-limit
  346. ></el-input>
  347. </div>
  348. </div>
  349. </el-form-item>
  350. <el-form-item>
  351. <span>附件</span>
  352. <div class="upload-box">
  353. <div>
  354. <myUpload
  355. @uploadBack="uploadBack"
  356. :fileInfo="fileInfo"
  357. :fileList="fileInfo.fileList"
  358. >
  359. </myUpload>
  360. </div>
  361. </div>
  362. </el-form-item>
  363. </div>
  364. </el-form>
  365. <div slot="footer" class="dialog-footer myfooter">
  366. <el-button type="primary" @click="dialogCli(4)"
  367. >保存</el-button
  368. >
  369. <el-button @click="editClosedia">取消</el-button>
  370. </div>
  371. </div>
  372. </el-dialog>
  373. <myMessage
  374. :messTit="messTit"
  375. @closeMessage="closeMessage"
  376. :centerDialogVisible="centerDialogVisible"
  377. v-if="centerDialogVisible"
  378. ></myMessage>
  379. </fullscreen>
  380. </template>
  381. <script>
  382. // import mySearch from "../../../components/search.vue";
  383. import myMessage from "../../../components/myMessage.vue";
  384. import toolList from "../../../components/toolList";
  385. import myUpload from "../../../components/upload";
  386. export default {
  387. components: {
  388. // mySearch,
  389. myMessage,
  390. toolList,
  391. myUpload
  392. },
  393. data() {
  394. const reporting = (rule, value, callback) => {
  395. if (!value) {
  396. callback(new Error("不能为空"));
  397. } else if (
  398. value.indexOf(".") != -1 &&
  399. value.split(".").length > 2
  400. ) {
  401. callback(new Error("请输入正确格式数字")); //防止输入多个小数点
  402. } else if (
  403. value.indexOf(".") != -1 &&
  404. value.split(".")[1].length > 1
  405. ) {
  406. callback(new Error("小数点后一位")); //小数点后两位
  407. } else {
  408. callback();
  409. }
  410. };
  411. return {
  412. rules: {
  413. topicsType: [
  414. {
  415. required: true,
  416. trigger: "change",
  417. message: "不能为空"
  418. }
  419. ],
  420. topicsName: [
  421. {
  422. required: true,
  423. trigger: "blur",
  424. message: "不能为空"
  425. }
  426. ],
  427. department: [
  428. {
  429. required: true,
  430. trigger: "change",
  431. message: "不能为空"
  432. }
  433. ],
  434. dept: [
  435. {
  436. required: true,
  437. trigger: "change",
  438. message: "不能为空"
  439. }
  440. ],
  441. declarant: [
  442. {
  443. required: true,
  444. trigger: "blur",
  445. message: "不能为空"
  446. }
  447. ],
  448. reporting: [
  449. {
  450. required: true,
  451. trigger: "blur",
  452. validator: reporting
  453. }
  454. ],
  455. declarantApply: [
  456. {
  457. required: true,
  458. trigger: "blur",
  459. message: "不能为空"
  460. }
  461. ],
  462. remark: [
  463. {
  464. required: true,
  465. trigger: "blur",
  466. message: "不能为空"
  467. }
  468. ]
  469. },
  470. tooltit: "",
  471. fullscreen: false,
  472. total: 0,
  473. pageSize: 1,
  474. tableData: [],
  475. //点击查看后,table
  476. infoTableData: [],
  477. dialogStatus: false,
  478. disableStatus: false,
  479. uploadDialogStatus: false,
  480. editDialogStatus: false,
  481. titname: "",
  482. infolist: {},
  483. editInfolist: {},
  484. userInfo: {},
  485. params: {},
  486. centerDialogVisible: false,
  487. messTit: "",
  488. delid: "",
  489. loading: false,
  490. loadinged: false,
  491. fileInfo: {
  492. limit: 50,
  493. url: "/market/cMeetingDeclaration/upload",
  494. fileList: []
  495. },
  496. fileList: [], // 回显附件数据源
  497. attList: [],
  498. //线条下拉
  499. billOpt: [
  500. {
  501. billName: "C",
  502. billId: "0"
  503. },
  504. {
  505. billName: "H",
  506. billId: "1"
  507. },
  508. {
  509. billName: "N+线上",
  510. billId: "2"
  511. },
  512. {
  513. billName: "渠道",
  514. billId: "3"
  515. },
  516. {
  517. billName: "业务综合",
  518. billId: "4"
  519. }
  520. ],
  521. year: this.$formatDate(new Date().getTime(), "YYYY"),
  522. month: "",
  523. mId: "",
  524. personInfo: [],
  525. monthOpt: [
  526. "01",
  527. "02",
  528. "03",
  529. "04",
  530. "05",
  531. "06",
  532. "07",
  533. "08",
  534. "09",
  535. "10",
  536. "11",
  537. "12"
  538. ],
  539. menus: JSON.parse(window.sessionStorage.childrenMenus)
  540. };
  541. },
  542. methods: {
  543. jump(v, n) {
  544. //1 查看 2上传 3编辑修改 4删除一条
  545. if (v === 1) {
  546. this.titname = "查看";
  547. this.dialogStatus = true;
  548. this.getInfo(n.id);
  549. this.mId = n.id;
  550. } else if (v === 2) {
  551. this.titname = "上传";
  552. this.uploadDialogStatus = true;
  553. this.attList = [];
  554. this.fileInfo.fileList = [];
  555. this.infolist.serialNumber = this.$formatDate(
  556. new Date().getTime(),
  557. "YYYYMMDDHHmmss"
  558. );
  559. if (this.personInfo.length === 2) {
  560. this.$set(this.infolist, "dept", this.personInfo[1]);
  561. } else if (this.personInfo.length === 3) {
  562. this.$set(this.infolist, "dept", this.personInfo[1]);
  563. this.$set(this.infolist, "department", this.personInfo[2]);
  564. }
  565. this.$set(this.infolist, "declarant", this.userInfo.loginName);
  566. this.infolist.meetingId = n.id;
  567. } else if (v === 3) {
  568. this.titname = "编辑";
  569. this.editDialogStatus = true;
  570. this.editInfolist = n;
  571. // this.editInfolist.attList = [
  572. // {
  573. // "id": "202202180519593136",
  574. // "fileName": "2021年广告宣传费台账-全省汇总.xlsx",
  575. // "fileCode": "202202180519593136",
  576. // "opName": "admin",
  577. // "opNo": "admin",
  578. // "opTime": "2022-02-18 17:19:59"
  579. // }
  580. // ]
  581. this.attList = [];
  582. this.editInfolist.attList.forEach(item => {
  583. this.fileInfo.fileList.push({
  584. name: item.fileName,
  585. url: "",
  586. id: item.id,
  587. fileName: item.fileName,
  588. fileCode: item.fileCode,
  589. opName: item.opName,
  590. opNo: item.opNo,
  591. opTime: item.opTime,
  592. });
  593. this.attList.push({
  594. name: item.fileName,
  595. url: "",
  596. id: item.id,
  597. fileName: item.fileName,
  598. fileCode: item.fileCode,
  599. opName: item.opName,
  600. opNo: item.opNo,
  601. opTime: item.opTime,
  602. });
  603. });
  604. // console.log(this.editInfolist);
  605. } else if (v === 4) {
  606. this.loadinged = true;
  607. this.$http({
  608. url: "/market/cMeetingDeclaration/delInfo",
  609. method: "post",
  610. headers: {
  611. "Content-Type": "application/json"
  612. },
  613. data: { id: n.id }
  614. }).then(res => {
  615. this.loadinged = false;
  616. if (res.data.result === 0) {
  617. this.getInfo(n.meetingId);
  618. } else {
  619. this.$message({
  620. message: res.data.desc,
  621. type: "error"
  622. });
  623. }
  624. });
  625. }
  626. },
  627. //获取信息,查看
  628. getInfo(n) {
  629. this.$http({
  630. url:
  631. "market/cMeetingDeclaration/queryMkMeetingDeclarationInfoList",
  632. method: "post",
  633. headers: {
  634. "Content-Type": "application/json"
  635. },
  636. data: { meetingId: n }
  637. }).then(res => {
  638. this.infoTableData = res.data;
  639. });
  640. },
  641. closedia() {
  642. this.infolist = {};
  643. this.dialogStatus = false;
  644. this.uploadDialogStatus = false;
  645. },
  646. editClosedia() {
  647. this.editDialogStatus = false;
  648. },
  649. //搜索数据
  650. searchInfo() {
  651. this.params = {};
  652. this.year ? (this.params.creatTime = this.year) : "";
  653. this.month
  654. ? (this.params.creatTime =
  655. (this.year == null
  656. ? (this.year = this.$formatDate(
  657. new Date().getTime(),
  658. "YYYY"
  659. ))
  660. : this.year) +
  661. "-" +
  662. this.month)
  663. : "";
  664. this.getList(this.params, this.pageSize);
  665. },
  666. //获取列表
  667. getList(v, n) {
  668. this.pageSize = n;
  669. // let _this = this;
  670. this.loading = true;
  671. this.tableData = [];
  672. this.$http({
  673. url:
  674. "/market/cMeetingDeclaration/queryMkMeetingDeclarationPageForType2",
  675. method: "post",
  676. headers: {
  677. "Content-Type": "application/json",
  678. page: '{"pageNo":"' + n + '","pageSize":"10"}'
  679. },
  680. data: v
  681. }).then(res => {
  682. this.tableData = res.data.data;
  683. this.total = res.data.totalRecord;
  684. this.loading = false;
  685. });
  686. },
  687. // 分页
  688. currchange(v) {
  689. this.pageSize = v;
  690. this.getList(this.params, this.pageSize);
  691. },
  692. //添加
  693. dialogCli(v) {
  694. //1全量导出 2确定 3上传提交(新增) 4修改提交
  695. if (v === 1) {
  696. this.$http({
  697. url: "/market/cMeetingDeclaration/downfile",
  698. method: "post",
  699. headers: {
  700. "Content-Type": "application/json"
  701. },
  702. responseType: "blob",
  703. data: { meetingId: this.mId }
  704. }).then(res => {
  705. if (window.navigator && window.navigator.msSaveOrOpenBlob) {
  706. let blob = new Blob([res.data], {
  707. type: "application/x-msdownload"
  708. });
  709. window.navigator.msSaveOrOpenBlob(
  710. blob,
  711. // this.wo.bizName + ".xlsx"
  712. "导出" + ".zip"
  713. );
  714. } else {
  715. /* 火狐谷歌的文件下载方式 */
  716. var blob = new Blob([res.data]);
  717. var downloadElement = document.createElement("a");
  718. var href = window.URL.createObjectURL(blob);
  719. downloadElement.href = href;
  720. downloadElement.download = "导出" + ".zip";
  721. document.body.appendChild(downloadElement);
  722. downloadElement.click();
  723. document.body.removeChild(downloadElement);
  724. window.URL.revokeObjectURL(href);
  725. }
  726. });
  727. }
  728. // else if (v === 2) {
  729. // }
  730. else if (v === 3) {
  731. this.$refs.infolist.validate(valid => {
  732. if (valid) {
  733. //上传提交
  734. this.attList.forEach(item => {
  735. this.fileList.push({
  736. id: item.fileCode,
  737. fileCode: item.fileCode,
  738. fileName: item.fileName
  739. });
  740. });
  741. this.infolist.attList = this.fileList;
  742. this.submitInfo(
  743. "market/cMeetingDeclaration/addInfo",
  744. this.infolist
  745. );
  746. }
  747. });
  748. } else if (v === 4) {
  749. this.$refs.editInfolist.validate(valid => {
  750. if (valid) {
  751. this.attList.forEach(item => {
  752. this.fileList.push({
  753. id: item.fileCode,
  754. fileCode: item.fileCode,
  755. fileName: item.fileName
  756. });
  757. });
  758. this.editInfolist.attList = this.fileList;
  759. this.editInfolist.meetingId = this.mId;
  760. this.submitInfo(
  761. "/market/cMeetingDeclaration/updateInfo",
  762. this.editInfolist
  763. );
  764. }
  765. });
  766. }
  767. },
  768. submitInfo(u, param) {
  769. let _this = this;
  770. this.loadinged = true;
  771. this.$http({
  772. url: u,
  773. method: "post",
  774. headers: {
  775. "Content-Type": "application/json"
  776. },
  777. data: param
  778. }).then(res => {
  779. this.loadinged = false;
  780. if (res.data.result === 0) {
  781. _this.$message({
  782. message: "成功",
  783. type: "success"
  784. });
  785. _this.infolist = {};
  786. _this.dialogStatus = false;
  787. _this.getList({}, _this.pageSize);
  788. _this.uploadDialogStatus = false;
  789. _this.editDialogStatus = false;
  790. _this.attList = [];
  791. _this.fileInfo.fileList = [];
  792. _this.fileList = [];
  793. } else {
  794. _this.$message({
  795. message: res.data.desc,
  796. type: "error"
  797. });
  798. }
  799. });
  800. },
  801. closeMessage(v) {
  802. this.centerDialogVisible = false;
  803. let _this = this;
  804. if (v === 1) {
  805. _this
  806. .$http({
  807. url: "/market/cadvBusiMetirialWo/del",
  808. method: "post",
  809. headers: {
  810. "Content-Type": "application/json"
  811. },
  812. data: {
  813. woId: this.delid
  814. }
  815. })
  816. .then(res => {
  817. if (res.data.result === 1) {
  818. _this.$message({
  819. message: res.data.desc,
  820. type: "error"
  821. });
  822. } else {
  823. _this.$message({
  824. message: "删除成功",
  825. type: "success"
  826. });
  827. _this.getList(this.params, this.pageSize);
  828. }
  829. });
  830. }
  831. },
  832. //删除
  833. delLine(v) {
  834. this.centerDialogVisible = true;
  835. this.messTit = "即将删除此条数据, 是否删除?";
  836. this.delid = v.id;
  837. },
  838. //文件返回值
  839. uploadBack(v) {
  840. // this.fileInfo.fileList=v;
  841. this.attList = v;
  842. // console.log(v);
  843. },
  844. //功能栏
  845. iconCli(v) {
  846. if (v === 1) {
  847. this.getList(this.params, this.pageSize);
  848. }
  849. if (v === 2) {
  850. this.fullscreen = !this.fullscreen;
  851. }
  852. },
  853. getUser() {
  854. this.userInfo = JSON.parse(window.sessionStorage.userInfo);
  855. this.loginNoStr = this.userInfo.loginNoStr;
  856. this.personInfo = this.userInfo.groupName.split("/");
  857. }
  858. },
  859. mounted() {
  860. this.getList({}, 1);
  861. this.getUser();
  862. },
  863. created() {}
  864. };
  865. </script>
  866. <style scoped lang="scss">
  867. .onetab {
  868. margin-bottom: 20px;
  869. padding: 0 20px;
  870. }
  871. .titbox {
  872. div {
  873. float: right;
  874. i {
  875. font-size: 22px;
  876. margin-left: 20px;
  877. cursor: pointer;
  878. }
  879. }
  880. }
  881. .tabbox {
  882. margin-top: 15px;
  883. }
  884. .pageBox {
  885. text-align: right;
  886. margin-top: 10px;
  887. }
  888. .info-line {
  889. width: 100%;
  890. display: block;
  891. padding-left: 20px;
  892. div {
  893. width: 50%;
  894. display: inline-block;
  895. }
  896. span {
  897. width: 100px;
  898. display: inline-block;
  899. text-align: left;
  900. i {
  901. color: red;
  902. display: inline-block;
  903. padding-right: 5px;
  904. }
  905. }
  906. .el-select,
  907. .el-input {
  908. width: calc(100% - 120px);
  909. }
  910. }
  911. .info-line2 {
  912. width: 100%;
  913. padding-left: 40px;
  914. .upload-box {
  915. width: calc(100% - 80px);
  916. display: inline-block;
  917. }
  918. span {
  919. width: 60px;
  920. display: inline-block;
  921. text-align: left;
  922. vertical-align: top;
  923. i {
  924. color: red;
  925. display: inline-block;
  926. padding-right: 5px;
  927. }
  928. }
  929. .remark-box::v-deep {
  930. width: calc(100% - 80px);
  931. display: inline-block;
  932. div {
  933. padding-bottom: 10px;
  934. }
  935. .el-textarea__inner {
  936. // resize: none !important;
  937. height: 10vh;
  938. }
  939. .el-textarea .el-input__count {
  940. right: 0px;
  941. bottom: -20px;
  942. background: rgba(0, 0, 0, 0);
  943. }
  944. }
  945. }
  946. .online {
  947. width: 100%;
  948. .el-select {
  949. width: calc(100% - 100px);
  950. }
  951. span {
  952. vertical-align: top;
  953. }
  954. .el-textarea {
  955. width: calc(100% - 100px);
  956. }
  957. }
  958. .adv-type {
  959. margin-top: 20px;
  960. display: flex;
  961. justify-content: space-between;
  962. flex-wrap: wrap;
  963. // border: 1px solid #ddd;
  964. border-radius: 5px;
  965. padding: 20px;
  966. box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
  967. div {
  968. width: 33%;
  969. text-align: center;
  970. height: 80px;
  971. overflow: hidden;
  972. min-width: 100px;
  973. cursor: pointer;
  974. padding-top: 10px;
  975. margin: 10px 0;
  976. }
  977. div:hover {
  978. background: #cfe8fc;
  979. border-radius: 5px;
  980. }
  981. span {
  982. width: 100%;
  983. display: inline-block;
  984. height: 40px;
  985. // line-height: 40px;
  986. i {
  987. color: #0074d9;
  988. font-size: 36px;
  989. }
  990. }
  991. }
  992. .container::v-deep .el-upload-dragger {
  993. width: auto !important;
  994. height: 120px !important;
  995. }
  996. .container::v-deep .el-upload {
  997. padding-left: 20px;
  998. padding-right: 0;
  999. }
  1000. .boximgc {
  1001. display: flex;
  1002. flex-wrap: wrap;
  1003. width: 100% !important;
  1004. margin-top: 20px;
  1005. div {
  1006. display: inline-block;
  1007. width: 18% !important;
  1008. margin-right: 2%;
  1009. margin-bottom: 20px;
  1010. overflow: hidden;
  1011. border: 1px solid #ddd;
  1012. border-radius: 3px;
  1013. background: #fff;
  1014. position: relative;
  1015. height: 100px;
  1016. img {
  1017. width: 100%;
  1018. position: absolute;
  1019. top: 0;
  1020. bottom: 0;
  1021. margin: auto;
  1022. // height: 100%;
  1023. }
  1024. }
  1025. }
  1026. .search {
  1027. margin-top: 20px;
  1028. display: -webkit-box;
  1029. display: -ms-flexbox;
  1030. display: flex;
  1031. -webkit-box-pack: start;
  1032. -ms-flex-pack: start;
  1033. justify-content: flex-start;
  1034. .search-item {
  1035. margin-right: 20px;
  1036. label {
  1037. margin-right: 20px;
  1038. }
  1039. }
  1040. }
  1041. </style>