index.vue 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044
  1. <template>
  2. <div class="app-container">
  3. <el-row :gutter="10" class="mb8">
  4. <el-col :span="1.5">
  5. <el-button
  6. type="primary"
  7. plain
  8. icon="el-icon-plus"
  9. size="mini"
  10. @click="handleAdd"
  11. v-hasPermi="['thought:parliament:add']"
  12. >新增</el-button
  13. >
  14. </el-col>
  15. <el-col :span="1.5">
  16. <el-button
  17. type="success"
  18. plain
  19. icon="el-icon-edit"
  20. size="mini"
  21. :disabled="single"
  22. @click="handleUpdate"
  23. v-hasPermi="['thought:parliament:edit']"
  24. >修改</el-button
  25. >
  26. </el-col>
  27. <el-col :span="1.5">
  28. <el-button
  29. type="danger"
  30. plain
  31. icon="el-icon-delete"
  32. size="mini"
  33. :disabled="multiple"
  34. @click="handleDelete"
  35. v-hasPermi="['thought:parliament:remove']"
  36. >删除</el-button
  37. >
  38. </el-col>
  39. <el-col :span="1.5">
  40. <!-- <el-button
  41. type="warning"
  42. plain
  43. icon="el-icon-download"
  44. size="mini"
  45. :loading="exportLoading"
  46. @click="handleExport"
  47. v-hasPermi="['thought:parliament:export']"
  48. >导出</el-button> -->
  49. </el-col>
  50. <right-toolbar
  51. :showSearch.sync="showSearch"
  52. @queryTable="getList"
  53. ></right-toolbar>
  54. </el-row>
  55. <el-table
  56. v-loading="loading"
  57. :data="parliamentList"
  58. @selection-change="handleSelectionChange"
  59. >
  60. <el-table-column type="selection" width="55" align="center" />
  61. <!-- <el-table-column label="主键id" align="center" prop="id" /> -->
  62. <el-table-column label="序号" type="index" width="50" align="center" />
  63. <!-- <el-table-column label="单位名称" align="center" prop="unitName" /> -->
  64. <!-- <el-table-column label="单位id" align="center" prop="unitId" /> -->
  65. <!-- <el-table-column label="创建人姓名" align="center" prop="createName" /> -->
  66. <!-- <el-table-column label="创建人id" align="center" prop="createId" /> -->
  67. <!-- <el-table-column label="文件路径" align="center" prop="filePath" /> -->
  68. <!-- <el-table-column label="文件名称" align="center" prop="fileName" show-overflow-tooltip/> -->
  69. <el-table-column
  70. label="议会主题"
  71. align="center"
  72. prop="talkTheme"
  73. show-overflow-tooltip
  74. />
  75. <el-table-column
  76. label="会议内容"
  77. align="center"
  78. prop="talkContent"
  79. show-overflow-tooltip
  80. >
  81. <template slot-scope="scope">
  82. <span>{{ onEditor(scope.row.talkContent) }}</span>
  83. </template>
  84. </el-table-column>
  85. <el-table-column
  86. label="开始时间"
  87. align="center"
  88. prop="startTime"
  89. width="180"
  90. >
  91. <template slot-scope="scope">
  92. <span>{{ parseTime(scope.row.startTime, "{y}-{m}-{d}") }}</span>
  93. </template>
  94. </el-table-column>
  95. <el-table-column label="组织人" align="center" prop="organizer" />
  96. <el-table-column
  97. label="参加人"
  98. align="center"
  99. prop="participants"
  100. show-overflow-tooltip
  101. :formatter="unit2Format"
  102. />
  103. <!-- <el-table-column label="参加人id" align="center" prop="participantsId" /> -->
  104. <el-table-column
  105. label="记录人"
  106. align="center"
  107. prop="recorder"
  108. show-overflow-tooltip
  109. />
  110. <!-- <el-table-column label="记录人id" align="center" prop="recorderId" /> -->
  111. <!-- <el-table-column label="组织人id" align="center" prop="organizerId" /> -->
  112. <el-table-column
  113. label="结束时间"
  114. align="center"
  115. prop="endTime"
  116. width="180"
  117. >
  118. <template slot-scope="scope">
  119. <span>{{ parseTime(scope.row.endTime, "{y}-{m}-{d}") }}</span>
  120. </template>
  121. </el-table-column>
  122. <el-table-column
  123. label="操作"
  124. align="center"
  125. class-name="small-padding fixed-width"
  126. >
  127. <template slot-scope="scope">
  128. <el-button
  129. size="btk"
  130. type="text"
  131. @click="handlelook(scope.row)"
  132. v-hasPermi="['thought:parliament:query']"
  133. >查看</el-button
  134. >
  135. <el-button
  136. size="btu"
  137. type="text"
  138. @click="handleUpdate(scope.row)"
  139. v-hasPermi="['thought:parliament:edit']"
  140. >修改</el-button
  141. >
  142. <el-button
  143. size="btd"
  144. type="text"
  145. @click="handleDelete(scope.row)"
  146. v-hasPermi="['thought:parliament:remove']"
  147. >删除</el-button
  148. >
  149. </template>
  150. </el-table-column>
  151. </el-table>
  152. <pagination
  153. v-show="total > 0"
  154. :total="total"
  155. :page.sync="queryParams.pageNum"
  156. :limit.sync="queryParams.pageSize"
  157. @pagination="getList"
  158. />
  159. <!-- 添加或修改党委议教会对话框 -->
  160. <el-dialog
  161. :title="title"
  162. :visible.sync="open"
  163. width="1080px"
  164. append-to-body
  165. :close-on-click-modal="false"
  166. >
  167. <el-form
  168. ref="form"
  169. :model="form"
  170. :rules="rules"
  171. label-width="100px"
  172. :inline="true"
  173. >
  174. <!-- <el-form-item label="单位名称" prop="unitName">
  175. <el-select v-model="form.unitName" placeholder="请选择单位名称">
  176. <el-option label="请选择字典生成" value="" />
  177. </el-select>
  178. </el-form-item> -->
  179. <div class="jiben">基本信息</div>
  180. <el-form-item prop="talkTheme" label="议会主题">
  181. <el-input v-model="form.talkTheme" placeholder="请输入内容" />
  182. </el-form-item>
  183. <el-form-item label="开始时间" prop="startTime">
  184. <el-date-picker
  185. clearable
  186. size="small"
  187. editable
  188. v-model="form.startTime"
  189. type="date"
  190. value-format="yyyy-MM-dd"
  191. placeholder="选择开始时间"
  192. >
  193. </el-date-picker>
  194. </el-form-item>
  195. <el-form-item label="结束时间" prop="endTime" label-width="115px">
  196. <el-date-picker
  197. editable
  198. clearable
  199. size="small"
  200. v-model="form.endTime"
  201. type="date"
  202. value-format="yyyy-MM-dd"
  203. placeholder="选择结束时间"
  204. >
  205. </el-date-picker>
  206. </el-form-item>
  207. <!-- <el-form-item prop="unitName" label="单位名称"> -->
  208. <!-- <el-input
  209. v-model="queryParams.unitId"
  210. placeholder="请输入单位"
  211. clearable
  212. size="small"
  213. @keyup.enter.native="handleQuery"
  214. /> -->
  215. <!-- <treeselect
  216. v-model="form.unitName"
  217. :options="users"
  218. placeholder="请选择到访单位"
  219. class="threeselects"
  220. @select="selectPeo1"
  221. />
  222. </el-form-item> -->
  223. <!-- <el-form-item label="单位id" prop="unitId">
  224. <el-input v-model="form.unitId" placeholder="请输入单位id" />
  225. </el-form-item> -->
  226. <!-- <el-form-item label="创建人姓名" prop="createName">
  227. <el-input v-model="form.createName" placeholder="请输入创建人姓名" />
  228. </el-form-item> -->
  229. <!-- <el-form-item label="创建人id" prop="createId">
  230. <el-input v-model="form.createId" placeholder="请输入创建人id" />
  231. </el-form-item> -->
  232. <!-- <el-form-item label="文件路径" prop="filePath">
  233. <el-input v-model="form.filePath" placeholder="请输入文件路径" />
  234. </el-form-item>
  235. <el-form-item label="文件名称" prop="fileName">
  236. <el-input v-model="form.fileName" placeholder="请输入文件名称" />
  237. </el-form-item> -->
  238. <el-form-item label="组 织 人" prop="organizer">
  239. <!-- <el-input v-model="form." placeholder="请输入组织人" /> -->
  240. <el-select
  241. filterable
  242. v-model="form.organizer"
  243. ref="createName"
  244. placeholder="请选择组织人"
  245. >
  246. <el-option
  247. v-for="item in executor"
  248. :key="item.id"
  249. :label="item.name"
  250. :value="item.name"
  251. @click.native="zuzhiPeople(item.id)"
  252. />
  253. </el-select>
  254. </el-form-item>
  255. <el-form-item label="记 录 人" prop="recorder">
  256. <!-- <el-input v-model="form.recorder" placeholder="请输入记录人" /> -->
  257. <el-select
  258. v-model="form.recorder"
  259. ref="recorder"
  260. placeholder="请选择记录人"
  261. filterable
  262. >
  263. <el-option
  264. v-for="item in recodeexecutor"
  265. :key="item.id"
  266. :label="item.name"
  267. :value="item.name"
  268. @click.native="jiluPeople(item.id)"
  269. />
  270. </el-select>
  271. </el-form-item>
  272. <!-- <el-form-item label="记录人id" prop="recorderId">
  273. <el-input v-model="form.recorderId" placeholder="请输入记录人id" />
  274. </el-form-item> -->
  275. <!-- <el-form-item label="参加人" prop="participants">
  276. <el-input v-model="form.participants" placeholder="请输入参加人" />
  277. </el-form-item> -->
  278. <el-form-item label="参 加 人" prop="participants" label-width="100px">
  279. <div>
  280. <!-- <el-select
  281. multiple
  282. v-model="form.participants"
  283. placeholder="请选择参加人"
  284. id="execute"
  285. ref="peoplenames"
  286. class="canjiaren"
  287. >
  288. <el-option
  289. v-for="item in executor"
  290. :key="item.deptId"
  291. :label="item.nickName"
  292. :value="item.userId"
  293. @click.native="returnExecutor(item.deptId, item.nickName)"
  294. />
  295. </el-select> -->
  296. <el-select
  297. v-model="form.participants"
  298. ref="participants"
  299. placeholder="请选择参加人"
  300. class="canjiaren"
  301. multiple
  302. filterable
  303. >
  304. <el-option
  305. v-for="item in executor"
  306. :key="item.id"
  307. :label="item.name"
  308. :value="item.id"
  309. @click.native="returnExecutor(item.id, item.name)"
  310. />
  311. </el-select>
  312. </div>
  313. </el-form-item>
  314. <!-- <el-form-item label="参加人id" prop="participantsId">
  315. <el-input v-model="form.participantsId" placeholder="请输入参加人id" />
  316. </el-form-item> -->
  317. <!-- <el-form-item label="组织人id" prop="organizerId">
  318. <el-input v-model="form.organizerId" placeholder="请输入组织人id" />
  319. </el-form-item> -->
  320. <div class="jiben">会议内容</div>
  321. <el-form-item>
  322. <!-- <editor v-model="form.talkContent" :min-height="192"/> -->
  323. <quill-editor
  324. class="quill-editor"
  325. ref="myTextEditor"
  326. v-model="form.talkContent"
  327. style="
  328. height: 150px;
  329. width: 1010px;
  330. margin-left: 0px;
  331. color: white;
  332. margin-bottom: 60px;
  333. "
  334. ></quill-editor>
  335. </el-form-item>
  336. <div class="jiben">附件</div>
  337. <el-form-item>
  338. <FileUpload v-model="form.fileName" />
  339. </el-form-item>
  340. <!-- <a :href="form.filePath" download class="downloadfile">下载附件</a> -->
  341. </el-form>
  342. <div slot="footer" class="dialog-footer">
  343. <el-button type="primary" @click="submitForm">确 定</el-button>
  344. <el-button @click="cancel" size="btn">取 消</el-button>
  345. </div>
  346. </el-dialog>
  347. <!-- 查看按钮操作 -->
  348. <el-dialog
  349. :title="title1"
  350. :visible.sync="open1"
  351. width="1080px"
  352. append-to-body
  353. :close-on-click-modal="false"
  354. >
  355. <el-form
  356. ref="form"
  357. :model="form1"
  358. :rules="rules"
  359. label-width="100px"
  360. :inline="true"
  361. >
  362. <div class="jiben">基本信息</div>
  363. <el-form-item prop="talkTheme" label="议会主题">
  364. <el-input
  365. v-model="form1.talkTheme"
  366. placeholder="请输入内容"
  367. disabled
  368. />
  369. </el-form-item>
  370. <el-form-item label="开始时间" prop="startTime">
  371. <el-date-picker
  372. clearable
  373. size="small"
  374. disabled
  375. editable
  376. v-model="form1.startTime"
  377. type="date"
  378. value-format="yyyy-MM-dd"
  379. placeholder="选择开始时间"
  380. >
  381. </el-date-picker>
  382. </el-form-item>
  383. <el-form-item label="结束时间" prop="endTime" label-width="115px">
  384. <el-date-picker
  385. editable
  386. clearable
  387. size="small"
  388. disabled
  389. v-model="form1.endTime"
  390. type="date"
  391. value-format="yyyy-MM-dd"
  392. placeholder="选择结束时间"
  393. >
  394. </el-date-picker>
  395. </el-form-item>
  396. <el-form-item label="组 织 人" prop="organizer">
  397. <el-select
  398. disabled
  399. filterable
  400. v-model="form1.organizer"
  401. ref="createName"
  402. placeholder="请选择组织人"
  403. >
  404. <el-option
  405. v-for="item in executor"
  406. :key="item.id"
  407. :label="item.name"
  408. :value="item.name"
  409. @click.native="zuzhiPeople(item.id)"
  410. />
  411. </el-select>
  412. </el-form-item>
  413. <el-form-item label="记 录 人" prop="recorder">
  414. <!-- <el-input v-model="form.recorder" placeholder="请输入记录人" /> -->
  415. <el-select
  416. disabled
  417. v-model="form1.recorder"
  418. ref="recorder"
  419. placeholder="请选择记录人"
  420. filterable
  421. >
  422. <el-option
  423. v-for="item in recodeexecutor"
  424. :key="item.id"
  425. :label="item.name"
  426. :value="item.name"
  427. @click.native="jiluPeople(item.id)"
  428. />
  429. </el-select>
  430. </el-form-item>
  431. <el-form-item label="参 加 人" prop="participants" label-width="100px">
  432. <div>
  433. <el-select
  434. v-model="form1.participants"
  435. ref="participants"
  436. placeholder="请选择参加人"
  437. class="canjiaren"
  438. multiple
  439. filterable
  440. disabled
  441. >
  442. <el-option
  443. v-for="item in executor"
  444. :key="item.id"
  445. :label="item.name"
  446. :value="item.id"
  447. @click.native="returnExecutor(item.id, item.name)"
  448. />
  449. </el-select>
  450. </div>
  451. </el-form-item>
  452. <div class="jiben">会议内容</div>
  453. <el-form-item>
  454. <!-- <div class="thistext">{{onEditor(form1.talkContent)}}</div> -->
  455. <quill-editor
  456. class="quill-editor"
  457. ref="myTextEditor"
  458. v-model="form1.talkContent"
  459. style="
  460. height: 150px;
  461. width: 1010px;
  462. margin-left: 0px;
  463. color: white;
  464. margin-bottom: 60px;
  465. "
  466. ></quill-editor>
  467. </el-form-item>
  468. <div class="jiben">附件</div>
  469. <el-form-item class="fujian">
  470. <span class="filename">{{ form1.fileName }}</span>
  471. <a
  472. :href="form1.filePath"
  473. :download="form1.fileName"
  474. title="下载"
  475. style="color: white; margin-left: 10px"
  476. class="downloadfile"
  477. >下载附件</a
  478. >
  479. <!-- <FileUpload disabled v-model="form1.fileName" /> -->
  480. <!-- <div style="color:white;width:600px;height:30px;border:1px solid white;line-height:30px">{{form1.fileName}}</div> -->
  481. </el-form-item>
  482. </el-form>
  483. <div slot="footer" class="dialog-footer">
  484. <el-button type="primary" @click="open1 = false">关 闭</el-button>
  485. <!-- <el-button @click="open1=false" size="btn">取 消</el-button> -->
  486. </div>
  487. </el-dialog>
  488. </div>
  489. </template>
  490. <script>
  491. import {
  492. listParliament,
  493. getParliament,
  494. delParliament,
  495. addParliament,
  496. updateParliament,
  497. exportParliament,
  498. getAll
  499. } from "@/api/thought/parliament";
  500. // 树形
  501. import Treeselect from "@riophae/vue-treeselect";
  502. import "@riophae/vue-treeselect/dist/vue-treeselect.css";
  503. // 单位
  504. import { getDept2} from "@/api/grassrootsregistration/bdglmeeting";
  505. // import { getDept2, getAll,getWeiShu } from "@/api/grassrootsregistration/bdglmeeting";
  506. export default {
  507. name: "Parliament",
  508. components: {
  509. Treeselect,
  510. },
  511. data() {
  512. return {
  513. // 遮罩层
  514. loading: true,
  515. // 导出遮罩层
  516. exportLoading: false,
  517. // 选中数组
  518. ids: [],
  519. // 非单个禁用
  520. single: true,
  521. // 非多个禁用
  522. multiple: true,
  523. // 显示搜索条件
  524. showSearch: true,
  525. // 总条数
  526. total: 0,
  527. // 党委议教会表格数据
  528. parliamentList: [],
  529. // 弹出层标题
  530. title: "",
  531. // 是否显示弹出层
  532. open: false,
  533. // 查询参数
  534. queryParams: {
  535. pageNum: 1,
  536. pageSize: 10,
  537. unitName: null,
  538. unitId: null,
  539. startTime: null,
  540. endTime: null,
  541. createName: null,
  542. createId: null,
  543. filePath: null,
  544. fileName: null,
  545. talkContent: null,
  546. recorder: null,
  547. recorderId: null,
  548. participants: null,
  549. participantsId: null,
  550. organizer: null,
  551. organizerId: null,
  552. talkTheme: null,
  553. },
  554. // 表单参数
  555. form: {},
  556. // 表单校验
  557. rules: {
  558. talkTheme: [
  559. { required: true, message: "议会主题不能为空", trigger: "blur" },
  560. ],
  561. startTime: [
  562. { required: true, message: "开始时间不能为空", trigger: "blur" },
  563. ],
  564. endTime: [
  565. { required: true, message: "结束时间不能为空", trigger: "blur" },
  566. ],
  567. organizer: [
  568. { required: true, message: "组织人不能为空", trigger: "blur" },
  569. ],
  570. recorder: [
  571. { required: true, message: "记录人不能为空", trigger: "blur" },
  572. ],
  573. participants: [
  574. { required: true, message: "参加人不能为空", trigger: "blur" },
  575. ],
  576. },
  577. // 获取单位列表
  578. users: [],
  579. // 获取单位列表
  580. userss: [],
  581. unitName: "",
  582. // 组织人
  583. executor: [],
  584. // 记录人
  585. recodeexecutor: [],
  586. form1: {},
  587. open1: false,
  588. title1: "",
  589. };
  590. },
  591. created() {
  592. this.getList();
  593. getDept2().then((res) => {
  594. this.userss = res.data;
  595. });
  596. this.getSuoYou();
  597. },
  598. methods: {
  599. // 获取执行人
  600. unit2Format(row) {
  601. var deptName = "";
  602. this.recodeexecutor.map((item) => {
  603. console.log(item.name)
  604. row.participants.split(",").forEach((items, index) => {
  605. if (item.id == items) {
  606. deptName += item.name + " ";
  607. }
  608. });
  609. });
  610. return deptName;
  611. },
  612. zuzhiPeople(id) {
  613. this.form.organizerId = id;
  614. },
  615. jiluPeople(id) {
  616. this.form.recorderId = id;
  617. },
  618. // 获取所有人员
  619. getSuoYou() {
  620. getAll().then((response) => {
  621. this.executors = response.data;
  622. // 添加的人员
  623. this.executor = response.data;
  624. // 记录人
  625. this.recodeexecutor = response.data;
  626. // console.log( this.recodeexecutor)
  627. });
  628. },
  629. // 转义视图不加标签
  630. onEditor(str) {
  631. //可以在这里进行对应的操作 quill为富文本对象,html为富文本对象内内容由html标签组成,text为quill内容里面的所有文本内容
  632. if (str) {
  633. var str = str.replace(/<\/?[^>]*>/g, ""); //去除HTML tag
  634. str = str.replace(/[ | ]*\n/g, "\n"); //去除行尾空白
  635. return str;
  636. }
  637. },
  638. selectPeo(val) {
  639. this.queryParams.unitName = val.label;
  640. this.getList();
  641. },
  642. // 到访单位选中触发
  643. selectPeo1(val) {
  644. this.unitName = val.label;
  645. this.form.unitId = val.id;
  646. // 获取执行单位列表
  647. // getDept2().then((res) => {
  648. // this.users = res.data;
  649. // });
  650. // this.queryParams.unitId = val.id;
  651. // this.queryParams.peopleName = "";
  652. // this.queryParams.unitName = val.label;
  653. // this.getZhuChi(this.queryParams.unitId);
  654. // this.getList();
  655. },
  656. /** 查询党委议教会列表 */
  657. getList() {
  658. this.loading = true;
  659. listParliament(this.queryParams).then((response) => {
  660. this.parliamentList = response.rows;
  661. this.total = response.total;
  662. this.loading = false;
  663. });
  664. },
  665. // 取消按钮
  666. cancel() {
  667. this.open = false;
  668. this.reset();
  669. },
  670. // 表单重置
  671. reset() {
  672. this.form = {
  673. id: null,
  674. unitName: null,
  675. unitId: null,
  676. startTime: null,
  677. endTime: null,
  678. createTime: null,
  679. updateTime: null,
  680. createName: null,
  681. createId: null,
  682. filePath: null,
  683. fileName: null,
  684. talkContent: null,
  685. recorder: null,
  686. recorderId: null,
  687. participants: null,
  688. participantsId: null,
  689. organizer: null,
  690. organizerId: null,
  691. talkTheme: null,
  692. };
  693. this.resetForm("form");
  694. },
  695. /** 搜索按钮操作 */
  696. handleQuery() {
  697. this.queryParams.pageNum = 1;
  698. this.getList();
  699. },
  700. /** 重置按钮操作 */
  701. resetQuery() {
  702. this.queryParams = {};
  703. this.resetForm("queryForm");
  704. this.handleQuery();
  705. this.getList();
  706. },
  707. // 多选框选中数据
  708. handleSelectionChange(selection) {
  709. this.ids = selection.map((item) => item.id);
  710. this.single = selection.length !== 1;
  711. this.multiple = !selection.length;
  712. },
  713. /** 新增按钮操作 */
  714. handleAdd() {
  715. this.reset();
  716. this.open = true;
  717. this.title = "添加党委议教会";
  718. getDept2().then((res) => {
  719. this.users = res.data;
  720. });
  721. },
  722. /** 修改按钮操作 */
  723. handleUpdate(row) {
  724. this.reset();
  725. const id = row.id || this.ids;
  726. getParliament(id).then((response) => {
  727. this.form = response.data;
  728. this.form.participants = this.form.participants.split(",").map(Number);
  729. console.log(this.form.participants)
  730. this.open = true;
  731. this.title = "修改党委议教会";
  732. });
  733. },
  734. // 查看按钮操作
  735. handlelook(row) {
  736. this.reset();
  737. const id = row.id || this.ids;
  738. getParliament(id).then((response) => {
  739. this.form1 = response.data;
  740. this.form1.participants = this.form1.participants
  741. .split(",")
  742. .map(Number);
  743. this.form1.filePath =
  744. process.env.VUE_APP_BASE_API + this.form1.filePath;
  745. this.open1 = true;
  746. this.title1 = "查看党委议教会";
  747. });
  748. },
  749. /** 提交按钮 */
  750. submitForm() {
  751. if (this.form.fileName) {
  752. this.form.filePath = this.form.fileName[0].url;
  753. this.form.fileName = this.form.fileName[0].name;
  754. }
  755. this.form.participants = this.form.participants.join(",");
  756. this.form.participantsId = this.form.participants;
  757. this.form.unitName = this.unitName;
  758. this.$refs["form"].validate((valid) => {
  759. if (valid) {
  760. if (this.form.id != null) {
  761. updateParliament(this.form).then((response) => {
  762. this.$modal.msgSuccess("修改成功");
  763. this.open = false;
  764. this.getList();
  765. });
  766. } else {
  767. addParliament(this.form).then((response) => {
  768. this.$modal.msgSuccess("新增成功");
  769. this.open = false;
  770. this.getList();
  771. });
  772. }
  773. }
  774. });
  775. },
  776. /** 删除按钮操作 */
  777. handleDelete(row) {
  778. const ids = row.id || this.ids;
  779. this.$modal
  780. .confirm("是否确认删除?")
  781. .then(function () {
  782. return delParliament(ids);
  783. })
  784. .then(() => {
  785. this.getList();
  786. this.$modal.msgSuccess("删除成功");
  787. })
  788. .catch(() => {});
  789. },
  790. /** 导出按钮操作 */
  791. handleExport() {
  792. const queryParams = this.queryParams;
  793. this.$modal
  794. .confirm("是否确认导出所有党委议教会数据项?")
  795. .then(() => {
  796. this.exportLoading = true;
  797. return exportParliament(queryParams);
  798. })
  799. .then((response) => {
  800. this.$download.name(response.msg);
  801. this.exportLoading = false;
  802. })
  803. .catch(() => {});
  804. },
  805. },
  806. };
  807. </script>
  808. <style scoped>
  809. ::v-deep .fujian .el-form-item__content{
  810. display: flex;
  811. }
  812. /* 备注 */
  813. .thistext {
  814. color: white;
  815. width: 1010px;
  816. border: 1px solid #fff;
  817. border-radius: 4px;
  818. height: auto;
  819. min-height: 35px;
  820. text-indent: 1em;
  821. padding: 2px;
  822. line-height: 35px;
  823. margin-bottom: 20px;
  824. /* margin: auto; */
  825. }
  826. /* 附件名称样式 */
  827. .filename {
  828. display: inline-block;
  829. color: white;
  830. width: 900px;
  831. height: 30px;
  832. border: 1px solid white;
  833. line-height: 30px;
  834. text-indent: 1em;
  835. }
  836. /* 下载按钮 */
  837. .downloadfile {
  838. border: 1px solid white;
  839. display: inline-block;
  840. width: 100px;
  841. height: 33px;
  842. border-radius: 5px;
  843. line-height: 33px;
  844. text-align: center;
  845. }
  846. ::v-deep .el-pagination__sizes .el-input__suffix {
  847. right: 6px;
  848. }
  849. ::v-deep .ql-snow .ql-picker-options .ql-picker-item:focus {
  850. outline: none !important;
  851. }
  852. ::v-deep .ql-snow .ql-picker:focus {
  853. outline: none !important;
  854. }
  855. ::v-deep .ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label:focus {
  856. outline: none !important;
  857. }
  858. ::v-deep .ql-toolbar.ql-snow .ql-picker-label {
  859. border: none !important;
  860. }
  861. ::v-deep .ql-formats:focus {
  862. outline: none !important;
  863. }
  864. ::v-deep .ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options {
  865. border-color: none !important;
  866. color: black !important;
  867. }
  868. /* normal */
  869. ::v-deep .ql-active {
  870. outline: none !important;
  871. }
  872. ::v-deep .canjiaren .el-input__inner {
  873. width: 560px !important;
  874. }
  875. ::v-deep .el-dialog {
  876. background-color: #004d86 !important;
  877. }
  878. /* 输入框 */
  879. ::v-deep .el-dialog .el-input__inner {
  880. background-color: #004d86 !important;
  881. width: 216px;
  882. color: white;
  883. margin-right: 20px;
  884. border: 1px solid white !important;
  885. }
  886. ::v-deep .el-input__inner {
  887. border: 1px solid white !important;
  888. }
  889. /* 表格样式 */
  890. ::v-deep .el-table .el-table__header-wrapper th {
  891. background-color: #004d86 !important;
  892. color: white;
  893. }
  894. /* 标题弹框 */
  895. ::v-deep .el-dialog__title {
  896. color: white;
  897. /* border-bottom: 1px solid white; */
  898. }
  899. /* 标题下划线 */
  900. ::v-deep .el-dialog__header {
  901. border-bottom: 1px solid white;
  902. }
  903. /* 日历样式 */
  904. ::v-deep .el-date-editor .el-input__inner {
  905. height: 36px !important;
  906. line-height: 36px;
  907. }
  908. ::v-deep .datesend .el-form-item__label {
  909. width: 115px !important;
  910. }
  911. /* 会议文本域样式 */
  912. ::v-deep .el-form-item__content .el-textarea {
  913. width: 1010px;
  914. /* height: 80px !important; */
  915. }
  916. ::v-deep .el-form-item__content .el-textarea .el-textarea__inner {
  917. /* width: 1000px; */
  918. height: 80px !important;
  919. }
  920. ::v-deep .el-dialog__body {
  921. padding-left: 35px !important;
  922. padding-right: 0px !important;
  923. padding-bottom: 0px !important;
  924. }
  925. /* 富文本内容 */
  926. /* ::v-deep .editor{
  927. width: 1010px;
  928. color: white;
  929. } */
  930. /* 富文本 */
  931. ::v-deep .ql-snow .ql-fill,
  932. .ql-snow .ql-stroke.ql-fill {
  933. fill: #fff !important;
  934. }
  935. ::v-deep .ql-snow .ql-stroke {
  936. stroke: #fff !important;
  937. }
  938. ::v-deep .ql-snow .ql-picker {
  939. color: #fff !important;
  940. }
  941. ::v-deep .ql-editor ql-blank {
  942. color: #fff !important;
  943. }
  944. ::v-deep .ql-snow .ql-picker-label {
  945. position: absolute;
  946. bottom: 5px;
  947. }
  948. ::v-deep .ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg {
  949. margin-top: -2px;
  950. }
  951. ::v-deep .ql-toolbar.ql-snow {
  952. display: flex;
  953. justify-content: space-around;
  954. }
  955. /* 富文本删除功能 */
  956. /* 富文本删除功能 */
  957. ::v-deep .ql-blockquote {
  958. display: none !important;
  959. }
  960. ::v-deep .ql-strike {
  961. display: none !important;
  962. }
  963. ::v-deep .ql-script {
  964. display: none !important;
  965. }
  966. ::v-deep .ql-code-block {
  967. display: none !important;
  968. }
  969. ::v-deep .ql-direction {
  970. display: none !important;
  971. }
  972. .ql-toolbar.ql-snow .ql-formats {
  973. margin-right: 7px !important;
  974. }
  975. ::v-deep .el-input__inner {
  976. /* height: 36px !important; */
  977. color: white;
  978. background-color: #00365f !important;
  979. }
  980. /* 文字多余部分省略 */
  981. ::v-deep .el-table__cell .cell {
  982. overflow: hidden;
  983. text-overflow: ellipsis;
  984. white-space: nowrap;
  985. }
  986. ::v-deep .el-input__suffix {
  987. right: 22px;
  988. }
  989. /* 树形样式 */
  990. ::v-deep .vue-treeselect__control {
  991. background-color: #004d86;
  992. width: 216px;
  993. margin-right: 25px;
  994. color: white;
  995. }
  996. .threeselects {
  997. width: 216px;
  998. margin-right: 22px;
  999. /* color: white; */
  1000. }
  1001. ::v-deep .vue-treeselect__single-value {
  1002. color: white;
  1003. }
  1004. /* 所搜到访单位 */
  1005. ::v-deep .waibudaofang .vue-treeselect__control {
  1006. background-color: #00365f !important;
  1007. }
  1008. /* 计划附件 */
  1009. ::v-deep .el-upload__tip {
  1010. color: white;
  1011. position: absolute;
  1012. top: -5px;
  1013. width: 500px;
  1014. left: 90px;
  1015. color: white;
  1016. }
  1017. ::v-deep .el-link.el-link--default {
  1018. color: white;
  1019. text-indent: 0.5em;
  1020. }
  1021. ::v-deep .el-select__input {
  1022. color: white;
  1023. }
  1024. </style>