index.vue 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741
  1. <template>
  2. <div class="app-container">
  3. <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="90px">
  4. <el-form-item label="参会人" prop="usrName">
  5. <el-input
  6. v-model="queryParams.usrName"
  7. placeholder="请输入参会人"
  8. clearable
  9. @keyup.enter.native="handleQuery"
  10. />
  11. </el-form-item>
  12. <el-form-item label="联系电话" prop="tel">
  13. <el-input
  14. v-model="queryParams.tel"
  15. placeholder="请输入联系电话"
  16. clearable
  17. @keyup.enter.native="handleQuery"
  18. />
  19. </el-form-item>
  20. <el-form-item label="参会人单位" prop="orgUnitName">
  21. <el-input
  22. v-model="queryParams.orgUnitName"
  23. placeholder="请输入参会人单位"
  24. clearable
  25. @keyup.enter.native="handleQuery"
  26. />
  27. </el-form-item>
  28. <el-form-item label="参会人职务" prop="uniLevel">
  29. <el-input
  30. v-model="queryParams.uniLevel"
  31. placeholder="请输入参会人职务"
  32. clearable
  33. @keyup.enter.native="handleQuery"
  34. />
  35. </el-form-item>
  36. <el-form-item label="参会人角色" prop="usrType">
  37. <el-select v-model="queryParams.usrType" placeholder="请选择参会人角色" clearable>
  38. <el-option
  39. v-for="dict in dict.type.met_usr_type"
  40. :key="dict.value"
  41. :label="dict.label"
  42. :value="dict.value"
  43. />
  44. </el-select>
  45. </el-form-item>
  46. <el-form-item label="现场调研" prop="conferenceFlag" v-if="this.applyType == 1">
  47. <el-select v-model="queryParams.conferenceFlag" placeholder="请选择现场调研" clearable>
  48. <el-option
  49. v-for="dict in dict.type.conference_flag"
  50. :key="dict.value"
  51. :label="dict.label"
  52. :value="dict.value"
  53. />
  54. </el-select>
  55. </el-form-item>
  56. <el-form-item label="审核状态" prop="reviewState">
  57. <el-select v-model="queryParams.reviewState" placeholder="请选择审核状态" clearable>
  58. <el-option
  59. v-for="dict in dict.type.review_state"
  60. :key="dict.value"
  61. :label="dict.label"
  62. :value="dict.value"
  63. />
  64. </el-select>
  65. </el-form-item>
  66. <el-form-item>
  67. <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
  68. <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
  69. </el-form-item>
  70. </el-form>
  71. <el-row :gutter="10" class="mb8">
  72. <el-col :span="1.5">
  73. <el-button
  74. type="success"
  75. plain
  76. icon="el-icon-edit"
  77. size="mini"
  78. :disabled="single"
  79. @click="handleUpdate"
  80. v-hasPermi="['cp:apply:modify']"
  81. >修改
  82. </el-button>
  83. </el-col>
  84. <el-col :span="1.5">
  85. <el-button
  86. type="danger"
  87. plain
  88. icon="el-icon-delete"
  89. size="mini"
  90. :disabled="multiple"
  91. @click="handleDelete"
  92. v-hasPermi="['cp:apply:del']"
  93. >删除
  94. </el-button>
  95. </el-col>
  96. <el-col :span="2">
  97. <el-button
  98. :disabled="multiple"
  99. type="success"
  100. plain
  101. icon="el-icon-check"
  102. size="mini"
  103. @click="batchPass"
  104. >批量审核通过
  105. </el-button>
  106. </el-col>
  107. <el-col :span="2">
  108. <el-button
  109. type="danger"
  110. :disabled="multiple"
  111. plain
  112. icon="el-icon-check"
  113. size="mini"
  114. @click="batchReject"
  115. >批量审核不通过
  116. </el-button>
  117. </el-col>
  118. <el-col :span="1.5">
  119. <el-button
  120. type="danger"
  121. plain
  122. icon="el-icon-delete"
  123. size="mini"
  124. :disabled="multiple"
  125. @click="handleDelete"
  126. v-hasPermi="['cp:apply:del']"
  127. >删除
  128. </el-button>
  129. </el-col>
  130. <el-col :span="1.5">
  131. <el-button
  132. type="warning"
  133. plain
  134. icon="el-icon-download"
  135. size="mini"
  136. @click="handleExport"
  137. >导出
  138. </el-button>
  139. </el-col>
  140. <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
  141. </el-row>
  142. <el-table v-loading="loading" :data="usrApplyList" @selection-change="handleSelectionChange" style="width: 100%">
  143. <el-table-column type="selection" width="55" align="center">
  144. </el-table-column>
  145. <el-table-column label="编号" align="center" prop="id" width="100" fixed />
  146. <el-table-column label="参会人" align="center" prop="usrName" width="100" fixed />
  147. <el-table-column label="联系电话" align="center" prop="tel" width="120" fixed />
  148. <el-table-column label="参会人单位" align="center" prop="orgUnitName" width="150" fixed show-overflow-tooltip />
  149. <el-table-column label="参会人职务" align="center" prop="uniLevel" width="150" fixed />
  150. <el-table-column label="邮箱信息" align="center" prop="email" width="100" />
  151. <el-table-column label="参会人角色" align="center" prop="usrType" width="100">
  152. <template slot-scope="scope">
  153. <dict-tag :options="dict.type.met_usr_type" :value="scope.row.usrType" />
  154. </template>
  155. </el-table-column>
  156. <el-table-column label="现场调研" align="center" prop="conferenceFlag" width="80" v-if="this.applyType == 1">
  157. <template slot-scope="scope">
  158. <dict-tag :options="dict.type.conference_flag" :value="scope.row.conferenceFlag" />
  159. </template>
  160. </el-table-column>
  161. <el-table-column label="申请类型" align="center" prop="applyType" width="100">
  162. <template slot-scope="scope">
  163. <dict-tag :options="dict.type.apply_type" :value="scope.row.applyType" />
  164. </template>
  165. </el-table-column>
  166. <el-table-column label="审核状态" align="center" prop="reviewState" width="120">
  167. <template slot-scope="scope">
  168. <div style="display: flex;align-items: center; justify-content: center;">
  169. <i
  170. :style="{
  171. color: REVIEW_STATUS[scope.row.reviewState].color,
  172. width: '10px',
  173. height: '10px',
  174. borderRadius: '10px',
  175. background: REVIEW_STATUS[scope.row.reviewState].color,
  176. marginRight: '5px'
  177. }"
  178. />
  179. <dict-tag :options="dict.type.review_state" :value="scope.row.reviewState" />
  180. </div>
  181. </template>
  182. </el-table-column>
  183. <el-table-column label="审核信息" align="center" prop="reviewMsg" width="150" show-overflow-tooltip />
  184. <el-table-column label="与会内容" align="center" prop="contentTitle" width="150" />
  185. <el-table-column label="来程方式" align="center" prop="wayComing" width="100">
  186. <template slot-scope="scope">
  187. <dict-tag :options="dict.type.tfc_type" :value="scope.row.wayComing" />
  188. </template>
  189. </el-table-column>
  190. <el-table-column label="来程信息" align="center" prop="comInfo" width="150" />
  191. <el-table-column label="返程方式" align="center" prop="wayBack" width="150">
  192. <template slot-scope="scope">
  193. <dict-tag :options="dict.type.tfc_type" :value="scope.row.wayBack" />
  194. </template>
  195. </el-table-column>
  196. <el-table-column label="返程信息" align="center" prop="backInfo" width="150" />
  197. <el-table-column label="备注" align="center" prop="remark" width="150" show-overflow-tooltip />
  198. <el-table-column label="创建时间" align="center" prop="updateTime" width="80">
  199. </el-table-column>
  200. <el-table-column label="修改时间" align="center" prop="createTime" width="80">
  201. </el-table-column>
  202. <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200" fixed="right">
  203. <template slot-scope="scope">
  204. <el-button
  205. size="mini"
  206. type="text"
  207. icon="el-icon-s-order"
  208. @click="detail(scope.row)"
  209. >
  210. 详情
  211. </el-button>
  212. <el-button
  213. size="mini"
  214. type="text"
  215. icon="el-icon-edit"
  216. @click="handleUpdate(scope.row)"
  217. v-hasPermi="['cp:apply:modify']"
  218. >修改
  219. </el-button>
  220. <el-button
  221. size="mini"
  222. type="text"
  223. icon="el-icon-delete"
  224. @click="handleDelete(scope.row)"
  225. v-hasPermi="['cp:apply:del']"
  226. >删除
  227. </el-button>
  228. <el-dropdown @command="(comd)=>handleCommand(comd, scope.row)">
  229. <span class="el-dropdown-link">
  230. 审核<i class="el-icon-arrow-down el-icon--right"></i>
  231. </span>
  232. <el-dropdown-menu slot="dropdown">
  233. <el-dropdown-item icon="el-icon-check" command="pass" style="color: green">通过</el-dropdown-item>
  234. <el-dropdown-item icon="el-icon-close" command="reject" style="color: #fa362d">拒绝</el-dropdown-item>
  235. </el-dropdown-menu>
  236. </el-dropdown>
  237. </template>
  238. </el-table-column>
  239. </el-table>
  240. <pagination
  241. v-show="total>0"
  242. :total="total"
  243. :page.sync="queryParams.pageNum"
  244. :limit.sync="queryParams.pageSize"
  245. @pagination="getList"
  246. />
  247. <!-- 添加或修改cps_usr_apply与会申请对话框 -->
  248. <el-dialog :title="title" :visible.sync="open" width="900px" append-to-body>
  249. <el-form ref="form" :model="form" :rules="rules" label-width="160px">
  250. <el-form-item label="参会人" prop="usrName">
  251. <el-input v-model="form.usrName" placeholder="请输入参会人" />
  252. </el-form-item>
  253. <el-form-item label="联系电话" prop="tel">
  254. <el-input v-model="form.tel" placeholder="请输入联系电话" />
  255. </el-form-item>
  256. <el-form-item label="参会人单位" prop="orgUnitName">
  257. <el-input v-model="form.orgUnitName" placeholder="请输入参会人单位" />
  258. </el-form-item>
  259. <el-form-item label="参会人职务" prop="uniLevel">
  260. <el-input v-model="form.uniLevel" placeholder="请输入参会人职务" />
  261. </el-form-item>
  262. <el-form-item label="邮箱信息" prop="email">
  263. <el-input v-model="form.email" placeholder="请输入邮箱信息" />
  264. </el-form-item>
  265. <el-form-item label="参会人角色" prop="usrType">
  266. <el-radio-group v-model="form.usrType">
  267. <el-radio
  268. v-for="dict in dict.type.met_usr_type"
  269. :key="dict.value"
  270. :label="dict.value"
  271. >{{ dict.label }}
  272. </el-radio>
  273. </el-radio-group>
  274. </el-form-item>
  275. <el-form-item label="现场调研" prop="conferenceFlag" v-if="this.applyType == 1">
  276. <el-radio-group v-model="form.conferenceFlag">
  277. <el-radio
  278. v-for="dict in dict.type.conference_flag"
  279. :key="dict.value"
  280. :label="dict.value"
  281. >{{ dict.label }}
  282. </el-radio>
  283. </el-radio-group>
  284. </el-form-item>
  285. <el-form-item label="审核状态" prop="reviewState">
  286. <el-radio-group v-model="form.reviewState">
  287. <el-radio
  288. v-for="dict in dict.type.review_state"
  289. :key="dict.value"
  290. :label="dict.value"
  291. >{{ dict.label }}
  292. </el-radio>
  293. </el-radio-group>
  294. </el-form-item>
  295. <el-form-item label="审核信息" prop="reviewMsg">
  296. <el-input v-model="form.reviewMsg" type="textarea" rows="3" placeholder="请输入审核信息" />
  297. </el-form-item>
  298. <el-form-item label="来程方式" prop="wayComing">
  299. <el-radio-group v-model="form.wayComing">
  300. <el-radio
  301. v-for="dict in dict.type.tfc_type"
  302. :key="dict.value"
  303. :label="dict.value"
  304. >{{ dict.label }}
  305. </el-radio>
  306. </el-radio-group>
  307. </el-form-item>
  308. <el-form-item label="车次/航班/高速公路出入口" prop="comInfo">
  309. <el-input v-model="form.comInfo" placeholder="请输入车次/航班/高速公路出入口" />
  310. </el-form-item>
  311. <el-form-item label="返程方式" prop="wayBack">
  312. <el-radio-group v-model="form.wayBack">
  313. <el-radio
  314. v-for="dict in dict.type.tfc_type"
  315. :key="dict.value"
  316. :label="dict.value"
  317. >{{ dict.label }}
  318. </el-radio>
  319. </el-radio-group>
  320. </el-form-item>
  321. <el-form-item label="车次/航班/高速公路出入口" prop="backInfo">
  322. <el-input v-model="form.backInfo" placeholder="请输入车次/航班/高速公路出入口" />
  323. </el-form-item>
  324. <el-form-item label="备注" prop="remark">
  325. <el-input v-model="form.remark" type="textarea" placeholder="请输入备注" />
  326. </el-form-item>
  327. </el-form>
  328. <div slot="footer" class="dialog-footer">
  329. <el-button type="primary" @click="submitForm">确 定</el-button>
  330. <el-button @click="cancel">取 消</el-button>
  331. </div>
  332. </el-dialog>
  333. <el-dialog :title="title" class="detail-content" :visible.sync="openDetail" width="900px" append-to-body>
  334. <el-descriptions class="margin-top" :column="2" border>
  335. <el-descriptions-item>
  336. <template slot="label">
  337. <i class="el-icon-user"></i>
  338. 参会人
  339. </template>
  340. {{ form.usrName }}
  341. </el-descriptions-item>
  342. <el-descriptions-item>
  343. <template slot="label">
  344. <i class="el-icon-phone"></i>
  345. 联系电话
  346. </template>
  347. {{ form.tel }}
  348. </el-descriptions-item>
  349. <el-descriptions-item>
  350. <template slot="label">
  351. <i class="el-icon-bank-card"></i>
  352. 参会人单位
  353. </template>
  354. {{ form.orgUnitName }}
  355. </el-descriptions-item>
  356. <el-descriptions-item>
  357. <template slot="label">
  358. <i class="el-icon-bank-card"></i>
  359. 参会人职务
  360. </template>
  361. {{ form.uniLevel }}
  362. </el-descriptions-item>
  363. <el-descriptions-item>
  364. <template slot="label">
  365. <i class="el-icon-message"></i>
  366. 邮箱信息
  367. </template>
  368. {{ form.email }}
  369. </el-descriptions-item>
  370. <el-descriptions-item>
  371. <template slot="label">
  372. <i class="el-icon-user"></i>
  373. 参会人角色
  374. </template>
  375. <dict-tag :options="dict.type.met_usr_type" :value="form.usrType" />
  376. </el-descriptions-item>
  377. <template v-if="this.applyType == 1">
  378. <el-descriptions-item>
  379. <template slot="label">
  380. <i class="el-icon-user"></i>
  381. 现场调研
  382. </template>
  383. <dict-tag :options="dict.type.conference_flag" :value="form.conferenceFlag" />
  384. </el-descriptions-item>
  385. <el-descriptions-item>
  386. <template slot="label">
  387. <i class="el-icon-coordinate"></i>
  388. 会场信息
  389. </template>
  390. {{ form.contentTitle }}
  391. </el-descriptions-item>
  392. </template>
  393. <el-descriptions-item>
  394. <template slot="label">
  395. 审核状态
  396. </template>
  397. <dict-tag :options="dict.type.review_state" :value="form.reviewState" />
  398. </el-descriptions-item>
  399. <el-descriptions-item>
  400. <template slot="label">
  401. 审核信息
  402. </template>
  403. {{ form.reviewMsg }}
  404. </el-descriptions-item>
  405. <el-descriptions-item>
  406. <template slot="label">
  407. 来程方式
  408. </template>
  409. <dict-tag :options="dict.type.tfc_type" :value="form.wayComing" />
  410. </el-descriptions-item>
  411. <el-descriptions-item>
  412. <template slot="label">
  413. 车次/航班/高速公路出入口
  414. </template>
  415. {{ form.comInfo }}
  416. </el-descriptions-item>
  417. <el-descriptions-item>
  418. <template slot="label">
  419. 返程方式
  420. </template>
  421. <dict-tag :options="dict.type.tfc_type" :value="form.wayBack" />
  422. </el-descriptions-item>
  423. <el-descriptions-item>
  424. <template slot="label">
  425. 车次/航班/高速公路出入口
  426. </template>
  427. {{ form.backInfo }}
  428. </el-descriptions-item>
  429. <el-descriptions-item>
  430. <template slot="label">
  431. 备注
  432. </template>
  433. {{ form.remark }}
  434. </el-descriptions-item>
  435. </el-descriptions>
  436. </el-dialog>
  437. <el-dialog title="拒绝用户参会申请" :visible.sync="openReject" width="700px" append-to-body>
  438. <el-form ref="rejectForm" :model="form" :rules="rules" label-width="120px">
  439. <el-form-item label="审核状态" prop="reviewState">
  440. <el-radio-group v-model="form.reviewState" :disabled="true">
  441. <el-radio
  442. v-for="dict in dict.type.review_state"
  443. :key="dict.value"
  444. :label="dict.value"
  445. >{{ dict.label }}
  446. </el-radio>
  447. </el-radio-group>
  448. </el-form-item>
  449. <el-form-item label="审核信息" prop="reviewMsg">
  450. <el-input v-model="form.reviewMsg" type="textarea" rows="3" placeholder="审核信息" />
  451. </el-form-item>
  452. </el-form>
  453. <div slot="footer" class="dialog-footer">
  454. <el-button type="primary" @click="rejectSubmitForm">确 定</el-button>
  455. <el-button @click="rejectCancel">取 消</el-button>
  456. </div>
  457. </el-dialog>
  458. <el-dialog title="批量拒绝用户参会申请" :visible.sync="openBatcheReject" width="700px" append-to-body>
  459. <el-form ref="rejectForm" :model="form" :rules="rules" label-width="120px">
  460. <el-form-item label="审核状态" prop="reviewState">
  461. <el-radio-group v-model="form.reviewState" :disabled="true">
  462. <el-radio
  463. v-for="dict in dict.type.review_state"
  464. :key="dict.value"
  465. :label="dict.value"
  466. >{{ dict.label }}
  467. </el-radio>
  468. </el-radio-group>
  469. </el-form-item>
  470. <el-form-item label="审核信息" prop="reviewMsg">
  471. <el-input v-model="form.reviewMsg" type="textarea" rows="3" placeholder="审核信息" />
  472. </el-form-item>
  473. </el-form>
  474. <div slot="footer" class="dialog-footer">
  475. <el-button type="primary" @click="rejectByIds">确 定</el-button>
  476. <el-button @click="rejectCancel">取 消</el-button>
  477. </div>
  478. </el-dialog>
  479. </div>
  480. </template>
  481. <script>
  482. import {
  483. addUsrApply, delUsrApply, getUsrApply, listUsrApply, passByIds, rejectByIds, rejectUsrApply, updateUsrApply,
  484. } from '@/api/cp/usrApply';
  485. import { REVIEW_STATUS } from '@/utils/EnumConst';
  486. export default {
  487. name: 'UsrApply',
  488. computed: {
  489. REVIEW_STATUS() {
  490. return REVIEW_STATUS;
  491. },
  492. },
  493. dicts: ['apply_type', 'conference_flag', 'review_state', 'met_usr_type', 'tfc_type'],
  494. data() {
  495. return {
  496. // 遮罩层
  497. loading: true,
  498. // 选中数组
  499. ids: [],
  500. // 非单个禁用
  501. single: true,
  502. // 非多个禁用
  503. multiple: true,
  504. // 显示搜索条件
  505. showSearch: true,
  506. // 总条数
  507. total: 0,
  508. // cps_usr_apply与会申请表格数据
  509. usrApplyList: [],
  510. // 弹出层标题
  511. title: '',
  512. // 是否显示弹出层
  513. open: false,
  514. openReject: false,
  515. openBatcheReject: false,
  516. openDetail: false,
  517. // 查询参数
  518. queryParams: {
  519. pageNum: 1,
  520. pageSize: 10,
  521. usrName: null,
  522. tel: null,
  523. orgUnitName: null,
  524. uniLevel: null,
  525. usrType: null,
  526. conferenceFlag: null,
  527. applyType: this.$route.query.meetingType,
  528. reviewState: null,
  529. wayComing: null,
  530. comInfo: null,
  531. wayBack: null,
  532. backInfo: null,
  533. remark: null,
  534. },
  535. applyType: '',
  536. // 表单参数
  537. form: {},
  538. // 表单校验
  539. rules: {},
  540. };
  541. },
  542. created() {
  543. this.applyType = this.$route.query.meetingType;
  544. this.getList();
  545. },
  546. methods: {
  547. handleCommand(comd, row) {
  548. switch (comd) {
  549. case 'pass':
  550. this.handlePass(row);
  551. break;
  552. case 'reject':
  553. this.handleReject(row);
  554. break;
  555. default:
  556. break;
  557. }
  558. },
  559. rejectSubmitForm() {
  560. this.$refs.rejectForm.validate(valid => {
  561. if (valid) {
  562. rejectUsrApply(this.form).then(response => {
  563. this.$modal.msgSuccess('审核完成');
  564. this.openReject = false;
  565. this.getList();
  566. });
  567. }
  568. });
  569. },
  570. rejectCancel() {
  571. this.openReject = false;
  572. this.openBatcheReject = false;
  573. this.reset();
  574. },
  575. handlePass(row) {
  576. updateUsrApply({
  577. id: row.id,
  578. reviewState: '0',
  579. reviewMsg: '通过',
  580. }).then(response => {
  581. this.$modal.msgSuccess('审核完成');
  582. this.openReject = false;
  583. this.getList();
  584. });
  585. },
  586. handleReject(row) {
  587. this.reset();
  588. const id = row.id || this.ids;
  589. getUsrApply(id).then(response => {
  590. this.form = response.data;
  591. this.openReject = true;
  592. this.form.reviewState = '1';
  593. });
  594. },
  595. /** 查询cps_usr_apply与会申请列表 */
  596. getList() {
  597. this.loading = true;
  598. listUsrApply(this.queryParams).then(response => {
  599. this.usrApplyList = response.rows;
  600. this.total = response.total;
  601. this.loading = false;
  602. });
  603. },
  604. // 取消按钮
  605. cancel() {
  606. this.open = false;
  607. this.reset();
  608. },
  609. // 表单重置
  610. reset() {
  611. this.form = {
  612. id: null,
  613. usrName: null,
  614. tel: null,
  615. orgUnitName: null,
  616. uniLevel: null,
  617. email: null,
  618. usrType: null,
  619. conferenceFlag: null,
  620. conferenceRel: null,
  621. applyType: this.$route.query.meetingType,
  622. reviewState: null,
  623. reviewMsg: null,
  624. contentId: null,
  625. wayComing: null,
  626. comInfo: null,
  627. wayBack: null,
  628. backInfo: null,
  629. remark: null,
  630. updateTime: null,
  631. createTime: null,
  632. createBy: null,
  633. updateBy: null,
  634. };
  635. this.resetForm('form');
  636. },
  637. /** 搜索按钮操作 */
  638. handleQuery() {
  639. this.queryParams.pageNum = 1;
  640. this.getList();
  641. },
  642. /** 重置按钮操作 */
  643. resetQuery() {
  644. this.resetForm('queryForm');
  645. this.handleQuery();
  646. },
  647. // 多选框选中数据
  648. handleSelectionChange(selection) {
  649. this.ids = selection.map(item => item.id);
  650. this.single = selection.length !== 1;
  651. this.multiple = !selection.length;
  652. },
  653. /** 新增按钮操作 */
  654. handleAdd() {
  655. this.reset();
  656. this.open = true;
  657. this.title = '添加与会申请';
  658. },
  659. /** 修改按钮操作 */
  660. handleUpdate(row) {
  661. this.reset();
  662. const id = row.id || this.ids;
  663. getUsrApply(id).then(response => {
  664. this.form = response.data;
  665. this.open = true;
  666. this.title = '修改与会申请';
  667. });
  668. },
  669. detail(row) {
  670. this.reset();
  671. const id = row.id || this.ids;
  672. getUsrApply(id).then(response => {
  673. this.form = response.data;
  674. this.openDetail = true;
  675. this.title = '与会申请详情';
  676. });
  677. },
  678. /** 提交按钮 */
  679. submitForm() {
  680. this.$refs['form'].validate(valid => {
  681. if (valid) {
  682. if (this.form.id != null) {
  683. updateUsrApply(this.form).then(response => {
  684. this.$modal.msgSuccess('修改成功');
  685. this.open = false;
  686. this.getList();
  687. });
  688. } else {
  689. addUsrApply(this.form).then(response => {
  690. this.$modal.msgSuccess('新增成功');
  691. this.open = false;
  692. this.getList();
  693. });
  694. }
  695. }
  696. });
  697. },
  698. /** 删除按钮操作 */
  699. handleDelete(row) {
  700. const ids = row.id || this.ids;
  701. this.$modal.confirm('是否确认删除与会申请编号为"' + ids + '"的数据项?').then(function () {
  702. return delUsrApply(ids);
  703. }).then(() => {
  704. this.getList();
  705. this.$modal.msgSuccess('删除成功');
  706. }).catch(() => {});
  707. },
  708. batchPass() {
  709. passByIds(this.ids).then(response => {
  710. this.getList();
  711. });
  712. },
  713. batchReject() {
  714. this.openBatcheReject = true;
  715. this.form.reviewState = '1';
  716. },
  717. rejectByIds() {
  718. const ids = this.ids;
  719. rejectByIds(ids, this.form).then(response => {
  720. this.getList();
  721. this.openBatcheReject = false;
  722. });
  723. },
  724. /** 导出按钮操作 */
  725. handleExport() {
  726. this.download('cp/usrApply/export', {
  727. ...this.queryParams,
  728. }, `usrApply_${new Date().getTime()}.xlsx`);
  729. },
  730. },
  731. };
  732. </script>
  733. <style lang="scss" src="./index.scss" />