index.vue 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997
  1. <template>
  2. <div class="app-container">
  3. <el-form
  4. :model="queryParams"
  5. ref="queryForm"
  6. :inline="true"
  7. v-show="showSearch"
  8. label-width="68px"
  9. >
  10. <el-form-item prop="deptName">
  11. <el-input
  12. placeholder="请输入单位"
  13. v-model="queryParams.deptName"
  14. @input="handleQuery"
  15. />
  16. </el-form-item>
  17. <el-form-item label="" prop="compereId">
  18. <el-select
  19. v-model="queryParams.compereId"
  20. placeholder="请输入主持人"
  21. @change="Renyuan"
  22. >
  23. <el-option
  24. v-for="item in renYuans"
  25. :key="item.id"
  26. :label="item.name"
  27. :value="item.id"
  28. class="input_xiala"
  29. >
  30. </el-option>
  31. </el-select>
  32. </el-form-item>
  33. <el-form-item>
  34. <el-button size="btr" @click="resetQuery">重置</el-button>
  35. </el-form-item>
  36. </el-form>
  37. <el-row :gutter="10" class="mb8">
  38. <el-col :span="1.5">
  39. <el-button
  40. type="primary"
  41. plain
  42. icon="el-icon-plus"
  43. size="mini"
  44. @click="handleAdd"
  45. v-hasPermi="['grassrootsregistration:bdglmeeting:add']"
  46. >新增</el-button
  47. >
  48. </el-col>
  49. <!-- <el-col :span="1.5">
  50. <el-button
  51. type="success"
  52. plain
  53. icon="el-icon-edit"
  54. size="mini"
  55. :disabled="single"
  56. @click="handleUpdate"
  57. v-hasPermi="['grassrootsregistration:bdglmeeting:edit']"
  58. >修改</el-button
  59. >
  60. </el-col>
  61. <el-col :span="1.5">
  62. <el-button
  63. type="danger"
  64. plain
  65. icon="el-icon-delete"
  66. size="mini"
  67. :disabled="multiple"
  68. @click="handleDelete"
  69. v-hasPermi="['grassrootsregistration:bdglmeeting:remove']"
  70. >删除</el-button
  71. >
  72. </el-col>
  73. <el-col :span="1.5">
  74. <el-button
  75. type="warning"
  76. plain
  77. icon="el-icon-download"
  78. size="mini"
  79. :loading="exportLoading"
  80. @click="handleExport"
  81. v-hasPermi="['grassrootsregistration:bdglmeeting:export']"
  82. >导出</el-button
  83. >
  84. </el-col> -->
  85. </el-row>
  86. <el-table
  87. v-loading="loading"
  88. :data="bdglmeetingList"
  89. @selection-change="handleSelectionChange"
  90. :header-cell-style="{ background: '#003C69', color: 'white' }"
  91. >
  92. <el-table-column type="selection" width="55" align="center" />
  93. <el-table-column label="序号" type="index" width="50" align="center">
  94. <template scope="scope">
  95. <span>{{
  96. (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1
  97. }}</span>
  98. </template>
  99. </el-table-column>
  100. <el-table-column label="单位" align="center" prop="deptName" />
  101. <el-table-column
  102. label="召开时间"
  103. align="center"
  104. prop="convokeTime"
  105. width="180"
  106. >
  107. <template slot-scope="scope">
  108. <span>{{ parseTime(scope.row.convokeTime, "{y}-{m}-{d}") }}</span>
  109. </template>
  110. </el-table-column>
  111. <el-table-column label="召开地点" align="center" prop="address" />
  112. <el-table-column label="主持人" align="center" prop="compereRen" />
  113. <el-table-column label="参加人" align="center" prop="joinId" show-overflow-tooltip/>
  114. <el-table-column label="列席人" align="center" prop="peopleIds" show-overflow-tooltip/>
  115. <el-table-column label="缺席人" align="center" prop="absentIds" show-overflow-tooltip/>
  116. <el-table-column label="记录人" align="center" prop="peopleJiLu" />
  117. <!-- <el-table-column
  118. label="会议议题"
  119. align="center"
  120. prop="title"
  121. show-overflow-tooltip
  122. /> -->
  123. <el-table-column label="会议议题" align="center" show-overflow-tooltip>
  124. <template slot-scope="scope">
  125. <span>{{ onEditor(scope.row.title) }}</span>
  126. </template>
  127. </el-table-column>
  128. <el-table-column
  129. label="操作"
  130. align="center"
  131. class-name="small-padding fixed-width"
  132. width="200"
  133. >
  134. <template slot-scope="scope">
  135. <el-button
  136. size="btk"
  137. type="text"
  138. @click="handleChakan(scope.row)"
  139. v-hasPermi="['grassrootsregistration:bdgldiary:edit']"
  140. ><span class="chakan">查看</span></el-button
  141. >
  142. <el-button
  143. size="btu"
  144. type="text"
  145. @click="handleUpdate(scope.row)"
  146. v-hasPermi="['grassrootsregistration:bdglmeeting:edit']"
  147. ><span class="edit">修改</span></el-button
  148. >
  149. <el-button
  150. size="btd"
  151. type="text"
  152. @click="handleDelete(scope.row)"
  153. v-hasPermi="['grassrootsregistration:bdglmeeting:remove']"
  154. ><span class="delete">删除</span></el-button
  155. >
  156. </template>
  157. </el-table-column>
  158. </el-table>
  159. <pagination
  160. v-show="total > 0"
  161. :total="total"
  162. :page.sync="queryParams.pageNum"
  163. :limit.sync="queryParams.pageSize"
  164. @pagination="getList"
  165. />
  166. <!-- 添加或修改团支部会议登记本对话框 -->
  167. <el-dialog
  168. :title="title"
  169. :visible.sync="open"
  170. width="1016px"
  171. append-to-body
  172. :close-on-click-modal="false"
  173. ><div class="userAgree">
  174. <div class="jiben">基本信息</div>
  175. <el-form
  176. ref="form"
  177. :model="form"
  178. :rules="rules"
  179. label-width="80px"
  180. :inline="true"
  181. >
  182. <el-form-item label="单位" prop="unitId">
  183. <treeselect
  184. v-model="form.unitId"
  185. :options="deptOptions"
  186. placeholder="请选择单位"
  187. @select="selectPeo"
  188. @open="blurSelect"
  189. />
  190. </el-form-item>
  191. <el-form-item label="召开时间" prop="convokeTime">
  192. <el-date-picker
  193. clearable
  194. size="small"
  195. v-model="form.convokeTime"
  196. type="date"
  197. value-format="yyyy-MM-dd"
  198. placeholder="选择召开时间"
  199. :editable="false"
  200. >
  201. </el-date-picker>
  202. </el-form-item>
  203. <el-form-item label="召开地点" prop="address" class="address">
  204. <el-input v-model="form.address" placeholder="请输入召开地点" />
  205. </el-form-item>
  206. <el-form-item label="主持人" prop="compereId">
  207. <el-select
  208. v-model="form.compereId"
  209. placeholder="请选择主持人"
  210. ref="headerSearchSelect"
  211. >
  212. <el-option
  213. v-for="(item, i) in renYuan"
  214. :key="i"
  215. :label="item.name"
  216. :value="item.id"
  217. :disabled="item.status == 1"
  218. @click.native="compere(item.name)"
  219. class="input_xiala"
  220. >
  221. </el-option>
  222. </el-select>
  223. </el-form-item>
  224. <el-form-item label="记录人" prop="peopleId">
  225. <el-select v-model="form.peopleId" placeholder="请选择记录人">
  226. <el-option
  227. v-for="(item, i) in renYuan"
  228. :key="i"
  229. :label="item.name"
  230. :value="item.id"
  231. @click.native="people(item.name)"
  232. class="input_xiala"
  233. >
  234. </el-option>
  235. </el-select>
  236. </el-form-item>
  237. <!-- <el-form-item label="会议议题" prop="title">
  238. <el-input v-model="form.title" placeholder="请输入会议议题" />
  239. </el-form-item> -->
  240. <el-form-item label="参加人" prop="joinId" class="joinId">
  241. <el-select
  242. ref="abc"
  243. v-model="form1.joinId"
  244. multiple
  245. placeholder="请选择参加人"
  246. class="input_xiala"
  247. filterable
  248. @remove-tag="removeSelect"
  249. @change="changeSelect"
  250. >
  251. <el-option
  252. v-for="item in renYuan"
  253. :key="item.id"
  254. :label="item.name"
  255. :value="item.name"
  256. class="input_xiala"
  257. :disabled="item.disabled"
  258. :class="item.disabled == true ? 'colors' : ''"
  259. >
  260. </el-option>
  261. </el-select>
  262. </el-form-item>
  263. <el-form-item label="列席人" class="joinId">
  264. <el-select
  265. ref="abcd"
  266. v-model="form1.peopleIds"
  267. multiple
  268. placeholder="请选择列席人"
  269. class="input_xiala"
  270. filterable
  271. @remove-tag="removeSelect"
  272. @change="changeSelect"
  273. >
  274. <el-option
  275. v-for="item in renYuan"
  276. :key="item.id"
  277. :label="item.name"
  278. :disabled="item.disabled"
  279. :value="item.name"
  280. class="input_xiala"
  281. :class="item.disabled == true ? 'colors' : ''"
  282. >
  283. </el-option>
  284. </el-select>
  285. </el-form-item>
  286. <el-form-item label="缺席人" class="joinId">
  287. <el-select
  288. ref="abcde"
  289. v-model="form1.absentIds"
  290. multiple
  291. placeholder="请选择缺席人"
  292. class="input_xiala"
  293. filterable
  294. @remove-tag="removeSelect"
  295. @change="changeSelect"
  296. >
  297. <el-option
  298. v-for="item in renYuan"
  299. :key="item.id"
  300. :label="item.name"
  301. :value="item.name"
  302. :disabled="item.disabled"
  303. class="input_xiala"
  304. :class="item.disabled == true ? 'colors' : ''"
  305. >
  306. </el-option>
  307. </el-select>
  308. </el-form-item>
  309. <div class="jiben">会议议题</div>
  310. <quill-editor
  311. class="quill-editor"
  312. ref="myTextEditor"
  313. v-model="form.title"
  314. style="height: 150px; width: 920px;
  315. margin-bottom: 60px margin-left: 0px; margin-bottom: 55px;"
  316. ></quill-editor>
  317. <div class="jiben">会议内容</div>
  318. <quill-editor
  319. class="quill-editor"
  320. ref="myTextEditor"
  321. v-model="form.contents"
  322. style="height: 150px; width: 920px;
  323. margin-bottom: 60px margin-left: 0px; margin-bottom: 55px;"
  324. ></quill-editor>
  325. </el-form>
  326. </div>
  327. <div slot="footer" class="dialog-footer">
  328. <el-button type="primary" @click="submitForm(1)">确 定</el-button>
  329. <el-button @click="cancel" size="btn">取消</el-button>
  330. </div>
  331. </el-dialog>
  332. <el-dialog
  333. :visible.sync="menuRoleVisible"
  334. :title="title"
  335. append-to-body
  336. id="chakan"
  337. :close-on-click-modal="false"
  338. >
  339. <bdglmeeting
  340. v-if="menuRoleVisible"
  341. ref="menuRole"
  342. :message="wordInfo"
  343. ></bdglmeeting>
  344. </el-dialog>
  345. </div>
  346. </template>
  347. <script>
  348. //引入查看表格
  349. import bdglmeeting from "@/components/look_word/bdglmeeting.vue";
  350. import { getZhuChiRen } from "@/api/grassrootsregistration/bdglparty";
  351. import {
  352. listBdglmeeting,
  353. getBdglmeeting,
  354. delBdglmeeting,
  355. addBdglmeeting,
  356. updateBdglmeeting,
  357. exportBdglmeeting,
  358. getDept,
  359. getShouBu,
  360. getAll,
  361. } from "@/api/grassrootsregistration/bdglmeeting";
  362. // 富文本
  363. import "quill/dist/quill.core.css";
  364. import "quill/dist/quill.snow.css";
  365. import "quill/dist/quill.bubble.css";
  366. import { quillEditor } from "vue-quill-editor";
  367. // 树形
  368. import Treeselect from "@riophae/vue-treeselect";
  369. import "@riophae/vue-treeselect/dist/vue-treeselect.css";
  370. export default {
  371. name: "Bdglmeeting",
  372. components: {
  373. quillEditor,
  374. Treeselect,
  375. bdglmeeting,
  376. },
  377. data() {
  378. return {
  379. //查看页面
  380. menuRoleVisible: false,
  381. wordInfo: {},
  382. //判断关闭
  383. style: "2",
  384. // 遮罩层
  385. loading: true,
  386. // 导出遮罩层
  387. exportLoading: false,
  388. // 选中数组
  389. ids: [],
  390. // 非单个禁用
  391. single: true,
  392. // 非多个禁用
  393. multiple: true,
  394. // 显示搜索条件
  395. showSearch: true,
  396. // 总条数
  397. total: 0,
  398. // 团支部会议登记本表格数据
  399. bdglmeetingList: [],
  400. // 弹出层标题
  401. title: "",
  402. // 是否显示弹出层
  403. open: false,
  404. // 查询参数
  405. queryParams: {
  406. pageNum: 1,
  407. pageSize: 10,
  408. convokeTime: null,
  409. address: null,
  410. compereId: null,
  411. joinId: null,
  412. peopleIds: null,
  413. absentIds: null,
  414. peopleId: null,
  415. title: null,
  416. contents: null,
  417. createtime: null,
  418. updatetime: null,
  419. unitId: null,
  420. },
  421. // 表单参数
  422. form: {},
  423. // 表单校验
  424. rules: {
  425. unitId: [
  426. { required: true, message: "单位名称不能为空", trigger: "blur" },
  427. ],
  428. convokeTime: [
  429. { required: true, message: "召开时间不能为空", trigger: "blur" },
  430. ],
  431. address: [
  432. { required: true, message: "召开地点不能为空", trigger: "blur" },
  433. ],
  434. compereId: [
  435. { required: true, message: "主持人不能为空", trigger: "blur" },
  436. ],
  437. peopleId: [
  438. { required: true, message: "记录人不能为空", trigger: "blur" },
  439. ],
  440. title: [
  441. { required: true, message: "会议议题不能为空", trigger: "blur" },
  442. ],
  443. joinId: [
  444. { required: true, message: "参加人不能为空", trigger: "blur" },
  445. ],
  446. peopleIds: [
  447. { required: true, message: "列席人不能为空", trigger: "blur" },
  448. ],
  449. absentIds: [
  450. { required: true, message: "缺席人不能为空", trigger: "blur" },
  451. ],
  452. },
  453. //下拉菜单
  454. options: [],
  455. // 外面的部门
  456. buMeng: [],
  457. // 主持人 人员
  458. renYuan: [],
  459. // 外面的人员
  460. renYuans: [],
  461. // 单位
  462. unitArr: [],
  463. // 部门列表
  464. deptOptions: [],
  465. // 树形配置对象
  466. defaultProps: {
  467. children: "children",
  468. label: "label",
  469. },
  470. // 修改拿到的数据
  471. result: {},
  472. changeArr: [], //存放选中选项的数组
  473. // 表单参数
  474. form1: {
  475. joinId: "",
  476. peopleIds: "",
  477. absentIds: "",
  478. },
  479. };
  480. },
  481. created() {
  482. this.getList();
  483. this.getBuMen();
  484. this.getSuo();
  485. this.onEditor();
  486. },
  487. methods: {
  488. //change方法
  489. changeSelect() {
  490. for (var key in this.form1) {
  491. this.form1[key].forEach((item) => {
  492. this.changeArr.push(item);
  493. });
  494. }
  495. //有可能会出现重复的元素,所以对changeArr数组进行去重操作
  496. this.changeArr = this.quchong(this.changeArr);
  497. //对changeArr进行遍历,对hobbyList进行遍历,
  498. //changeArr有哪一项,就把hobbyList中该项的disabled属性置为true,禁用
  499. this.changeArr.forEach((item) => {
  500. this.renYuan.forEach((yitem) => {
  501. if (item === yitem.name) {
  502. yitem.disabled = true;
  503. }
  504. });
  505. });
  506. },
  507. //remove-tag方法,移除某一项时触发该方法
  508. removeSelect(val) {
  509. //将移除的那一项,从changeArr数组中找到下标,并移除
  510. var str = this.changeArr.findIndex((item) => item === val);
  511. this.changeArr.splice(str, 1);
  512. //对hobbyList数组遍历,将移除的那项disabled属性置为false,启用
  513. this.renYuan.forEach((item) => {
  514. if (val === item.name) {
  515. item.disabled = false;
  516. }
  517. });
  518. },
  519. //数组去重的方法,避免changeArr出现重复的元素
  520. quchong(arr) {
  521. return arr.filter(function (item, index, arr) {
  522. return arr.indexOf(item, 0) === index;
  523. });
  524. },
  525. // 获取搜索所有人
  526. getSuo() {
  527. getAll().then((res) => {
  528. this.renYuans = res.rows;
  529. });
  530. },
  531. // 转义视图不加标签
  532. onEditor(str) {
  533. if (str != null) {
  534. var str = str.replace(/<\/?[^>]*>/g, "");
  535. str = str.replace(/[ | ]*\n/g, "\n");
  536. str = str.replace(/ /gi, "");
  537. }
  538. return str;
  539. },
  540. // 获取搜索下拉部门
  541. getBuMen() {
  542. getShouBu().then((res) => {
  543. this.buMeng = res.data;
  544. });
  545. },
  546. // 重置表单人员
  547. ChongZhiRen() {
  548. // 主持人
  549. (this.form.compereId = null),
  550. // (this.form.compereRen = null),
  551. // 记录人
  552. (this.form.peopleId = null),
  553. // (this.form.peopleJiLu = null),
  554. // 参加人
  555. (this.form.joinId = null);
  556. // 列席人
  557. (this.form.peopleIds = null),
  558. // 缺席人
  559. (this.form.absentIds = null);
  560. },
  561. // 获取主持人
  562. getZhuChi(id) {
  563. getZhuChiRen(id).then((res) => {
  564. this.renYuan = res.data;
  565. });
  566. },
  567. // 单位选择触发
  568. selectPeo(val) {
  569. this.ChongZhiRen();
  570. this.form.unitId = val.id;
  571. this.getZhuChi(this.form.unitId);
  572. },
  573. /** 查询部门下拉树结构 */
  574. getTreeselect() {
  575. getDept().then((response) => {
  576. this.deptOptions = response.data;
  577. });
  578. },
  579. // 搜索时间选择触发
  580. tiem() {
  581. this.getList();
  582. },
  583. // 搜索主持人选中触发
  584. Renyuan() {
  585. this.getList();
  586. },
  587. // 主持人选中触发
  588. compere(name) {
  589. this.form.compereRen = name;
  590. },
  591. // 记录人选中触发
  592. people(name) {
  593. this.form.peopleJiLu = name;
  594. },
  595. /** 查询团支部会议登记本列表 */
  596. getList() {
  597. this.loading = true;
  598. listBdglmeeting(this.queryParams).then((response) => {
  599. this.bdglmeetingList = response.rows;
  600. this.total = response.total;
  601. this.loading = false;
  602. });
  603. },
  604. // 搜索单位触发
  605. company() {
  606. this.getList();
  607. // 联动人员
  608. getZhuChiRen(this.queryParams.unitId).then((res) => {
  609. this.renYuans = res.data;
  610. });
  611. },
  612. // 取消按钮
  613. cancel() {
  614. this.open = false;
  615. this.reset();
  616. },
  617. // 表单重置
  618. reset() {
  619. this.form = {
  620. id: null,
  621. convokeTime: null,
  622. address: null,
  623. compereId: null,
  624. joinId: null,
  625. peopleIds: null,
  626. absentIds: null,
  627. peopleId: null,
  628. title: null,
  629. contents: null,
  630. createtime: null,
  631. updatetime: null,
  632. unitId: null,
  633. };
  634. this.resetForm("form");
  635. },
  636. /** 搜索按钮操作 */
  637. handleQuery() {
  638. this.queryParams.pageNum = 1;
  639. this.getList();
  640. },
  641. /** 重置按钮操作 */
  642. resetQuery() {
  643. this.getSuo();
  644. this.reset();
  645. this.resetForm("queryForm");
  646. this.handleQuery();
  647. },
  648. /** 对话框重置按钮操作 */
  649. resertwo() {
  650. this.reset();
  651. },
  652. // 让select失去焦点
  653. blurSelect() {
  654. // this.$refs.headerSearchSelect.blur();
  655. // this.$refs.aa.blur();
  656. // this.$refs.bb.blur();
  657. // this.$refs.cc.blur();
  658. },
  659. // 多选框选中数据
  660. handleSelectionChange(selection) {
  661. this.ids = selection.map((item) => item.id);
  662. this.single = selection.length !== 1;
  663. this.multiple = !selection.length;
  664. },
  665. /** 新增按钮操作 */
  666. handleAdd() {
  667. this.form1.absentIds = [];
  668. this.form1.joinId = [];
  669. this.form1.peopleIds = [];
  670. // 主持人 人员
  671. this.renYuan = [];
  672. this.reset();
  673. this.style = 2;
  674. this.getTreeselect();
  675. this.open = true;
  676. this.title = "添加团支部会议登记本";
  677. },
  678. /** 修改按钮操作 */
  679. handleUpdate(row) {
  680. this.reset();
  681. this.getTreeselect();
  682. const id = row.id || this.ids;
  683. getBdglmeeting(id).then((response) => {
  684. this.result = response.data;
  685. for (var k in this.result) {
  686. if (k === "deptName") {
  687. delete this.result[k];
  688. }
  689. }
  690. if (this.result.joinId !== "") {
  691. this.form1.joinId = response.data.joinId.split(",");
  692. }
  693. if (this.result.peopleIds !== "" && this.result.peopleIds != null) {
  694. this.form1.peopleIds = response.data.peopleIds.split(",");
  695. }
  696. if (this.result.absentIds !== "" && this.result.absentIds != null) {
  697. this.form1.absentIds = response.data.absentIds.split(",");
  698. }
  699. this.form = this.result;
  700. this.form.unitId = row.unitId;
  701. this.getZhuChi(this.form.unitId);
  702. this.open = true;
  703. this.title = "修改团支部会议登记本";
  704. });
  705. },
  706. //查看按钮操作
  707. handleChakan(row) {
  708. // 是否隐藏按钮
  709. this.opens = false;
  710. const id = row.id || this.ids;
  711. getBdglmeeting(id).then((response) => {
  712. this.wordInfo = response.data;
  713. this.title = "查看团支部会议登记本";
  714. this.menuRoleVisible = true;
  715. });
  716. },
  717. /** 提交按钮 */
  718. submitForm(style) {
  719. this.style = style;
  720. this.form.joinId = this.form1.joinId;
  721. this.$refs["form"].validate((valid) => {
  722. if (valid) {
  723. if (this.form.id != null) {
  724. if (this.form1.joinId !== undefined) {
  725. this.form.joinId = this.form1.joinId.join(",");
  726. }
  727. if (
  728. this.form1.peopleIds !== undefined &&
  729. this.form1.peopleIds != null &&
  730. this.form1.peopleIds != ""
  731. ) {
  732. this.form.peopleIds = this.form1.peopleIds.join(",");
  733. } else {
  734. this.form.peopleIds = "";
  735. }
  736. if (
  737. this.form1.absentIds !== undefined &&
  738. this.form1.absentIds != null &&
  739. this.form1.absentIds != ""
  740. ) {
  741. this.form.absentIds = this.form1.absentIds.join(",");
  742. } else {
  743. this.form.absentIds = "";
  744. }
  745. updateBdglmeeting(this.form).then((response) => {
  746. this.$modal.msgSuccess("修改成功");
  747. this.open = false;
  748. this.getList();
  749. });
  750. } else {
  751. if (
  752. this.form1.peopleIds != null &&
  753. this.form1.peopleIds.length != 0 &&
  754. this.form1.peopleIds != ""
  755. ) {
  756. this.form.peopleIds = this.form1.peopleIds.join(",");
  757. } else {
  758. this.form.peopleIds = "";
  759. }
  760. if (
  761. this.form1.absentIds != null &&
  762. this.form1.absentIds != "" &&
  763. this.form1.absentIds.length != 0
  764. ) {
  765. this.form.absentIds = this.form1.absentIds.join(",");
  766. } else {
  767. this.form.absentIds = "";
  768. }
  769. this.form.joinId = this.form1.joinId.join(",");
  770. addBdglmeeting(this.form).then((response) => {
  771. this.$modal.msgSuccess("新增成功");
  772. this.open = false;
  773. this.getList();
  774. });
  775. }
  776. }
  777. });
  778. },
  779. /** 删除按钮操作 */
  780. handleDelete(row) {
  781. const ids = row.id || this.ids;
  782. this.$modal
  783. // .confirm('是否确认删除团支部会议登记本编号为"' + ids + '"的数据项?')
  784. .confirm("是否确认删除该数据?")
  785. .then(function () {
  786. return delBdglmeeting(ids);
  787. })
  788. .then(() => {
  789. this.getList();
  790. this.$modal.msgSuccess("删除成功");
  791. })
  792. .catch(() => {});
  793. },
  794. /** 导出按钮操作 */
  795. handleExport() {
  796. const queryParams = this.queryParams;
  797. this.$modal
  798. .confirm("是否确认导出所有团支部会议登记本数据项?")
  799. .then(() => {
  800. this.exportLoading = true;
  801. return exportBdglmeeting(queryParams);
  802. })
  803. .then((response) => {
  804. this.$download.name(response.msg);
  805. this.exportLoading = false;
  806. })
  807. .catch(() => {});
  808. },
  809. },
  810. };
  811. </script>
  812. <style scoped>
  813. /* 对话框背景颜色 */
  814. ::v-deep .el-dialog {
  815. background: #004d86 !important;
  816. }
  817. ::v-deep .el-textarea__inner {
  818. width: 884px;
  819. height: 104px;
  820. }
  821. ::v-deep .el-dialog__header {
  822. border-bottom: 1px solid #718a9d;
  823. }
  824. ::v-deep .el-dialog__title {
  825. color: #fff;
  826. font: 18px;
  827. }
  828. ::v-deep .el-dialog__headerbtn .el-dialog__close {
  829. color: #fff;
  830. }
  831. ::v-deep .el-form-item__label {
  832. font: 16px;
  833. color: #fff;
  834. width: 100px !important;
  835. }
  836. ::v-deep .el-input__inner {
  837. /* width: 200px !important;
  838. height: 36px; */
  839. background: transparent;
  840. color: #fff;
  841. border: 1px solid white !important;
  842. border-color: #fff !important;
  843. }
  844. /* 基本信息背景 */
  845. .jiben {
  846. width: 920px;
  847. height: 32px;
  848. background-image: url(../../../images/小标题底.png);
  849. margin-bottom: 25px;
  850. color: #fff;
  851. padding-left: 16px;
  852. line-height: 32px;
  853. }
  854. ::v-deep .el-dialog__body {
  855. box-sizing: border-box;
  856. padding: 30px 0px 30px 42px;
  857. }
  858. /* 调整表单间距 */
  859. ::v-deep .el-form-item__content {
  860. width: 200px;
  861. }
  862. .contents {
  863. padding: 0px 40px !important;
  864. }
  865. /* 下拉菜单字体/背景颜色 */
  866. .el-select-dropdown__item.hover,
  867. .el-select-dropdown__item:hover {
  868. background-color: #196299;
  869. color: #fff;
  870. }
  871. .el-select-dropdown__item {
  872. color: #fff;
  873. }
  874. /* 刷新图标 */
  875. /* .el-icon-refresh {
  876. width: 76px;
  877. height: 36px;
  878. color: #fff;
  879. background-color: #1d96ff !important;
  880. border-radius: 4px;
  881. border: none;
  882. margin-left: 20px;
  883. font-size: 14px;
  884. } */
  885. /* 时间选择 */
  886. ::v-deep .el-input--small .el-input__inner {
  887. width: 200px;
  888. height: 36px;
  889. line-height: 36px;
  890. }
  891. .el-date-editor.el-input {
  892. width: 200px;
  893. height: 36px;
  894. line-height: 36px;
  895. }
  896. ::v-deep .el-date-editor.el-input .el-input__inner {
  897. height: 36px;
  898. line-height: 36px;
  899. }
  900. /* 富文本 */
  901. ::v-deep .ql-snow .ql-fill,
  902. .ql-snow .ql-stroke.ql-fill {
  903. fill: #fff !important;
  904. }
  905. ::v-deep .ql-snow .ql-stroke {
  906. stroke: #fff !important;
  907. }
  908. ::v-deep .ql-snow .ql-picker {
  909. color: #fff !important;
  910. }
  911. /* 单位框背景颜色 */
  912. ::v-deep .vue-treeselect__control {
  913. background: #004d86 !important;
  914. }
  915. /* 单位下拉菜单选中字体颜色 */
  916. ::v-deep .vue-treeselect__single-value {
  917. color: #fff !important;
  918. }
  919. /* 出席人 */
  920. ::v-deep .joinId {
  921. width: 650px !important;
  922. }
  923. ::v-deep .joinId .el-input__inner {
  924. width: 510px !important;
  925. }
  926. /* 分页按钮 */
  927. ::v-deep .el-pagination.is-background .el-pager li {
  928. background-color: #004d86;
  929. color: #fff;
  930. }
  931. ::v-deep .el-pagination.is-background .btn-next {
  932. background-color: #004d86;
  933. color: #fff;
  934. }
  935. /* 富文本删除功能 */
  936. ::v-deep .ql-blockquote {
  937. display: none !important;
  938. }
  939. ::v-deep .ql-strike {
  940. display: none !important;
  941. }
  942. ::v-deep .ql-script {
  943. display: none !important;
  944. }
  945. ::v-deep .ql-code-block {
  946. display: none !important;
  947. }
  948. ::v-deep .ql-direction {
  949. display: none !important;
  950. }
  951. ::v-deep .el-input__inner {
  952. cursor: pointer !important;
  953. }
  954. ::v-deep .ql-toolbar.ql-snow .ql-formats {
  955. margin-right: 7px;
  956. }
  957. /* 底部确定取消按钮 */
  958. ::v-deep .el-dialog__footer {
  959. padding: 30px 55px;
  960. }
  961. /* 调整输入框提示文字颜色 */
  962. ::v-deep .vue-treeselect__placeholder {
  963. color: #bdbdbd4f !important;
  964. }
  965. ::v-deep input::-webkit-input-placeholder {
  966. color: #bdbdbd4f !important;
  967. }
  968. ::v-deep input:-moz-placeholder {
  969. color: #bdbdbd4f !important;
  970. }
  971. #chakan /deep/ .el-dialog__body {
  972. padding: 30px 0px 30px 0px;
  973. }
  974. ::v-deep .el-select__input {
  975. color: #fff !important;
  976. }
  977. .colors {
  978. color: #ccc !important;
  979. }
  980. </style>