index.vue 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317
  1. <template>
  2. <div class="common-container">
  3. <TitleBar></TitleBar>
  4. <div class="main-container">
  5. <div class="search-container TableSelectMain">
  6. <el-form class="table-select-main" :model="searchForm" label-position="left">
  7. <el-row :gutter="15">
  8. <el-col :span="4">
  9. <el-form-item>
  10. <el-input placeholder="请输入登录手机号" v-model="searchForm.mobile"></el-input>
  11. </el-form-item>
  12. </el-col>
  13. <el-col :span="4">
  14. <el-form-item>
  15. <el-input placeholder="请输入昵称" v-model="searchForm.name"></el-input>
  16. </el-form-item>
  17. </el-col>
  18. <el-col :span="4">
  19. <el-form-item>
  20. <el-select placeholder="请选择状态" v-model="searchForm.checkFlag">
  21. <el-option label="通过" :value="1"></el-option>
  22. <el-option label="驳回" :value="0"></el-option>
  23. <el-option label="待审核" :value="2"></el-option>
  24. </el-select>
  25. </el-form-item>
  26. </el-col>
  27. <el-col :span="4">
  28. <el-form-item>
  29. <el-button type="primary" round @click="querySearch">查询</el-button>
  30. <el-button type="primary" plain round @click="reset">重置</el-button>
  31. </el-form-item>
  32. </el-col>
  33. <el-col :span="24">
  34. <el-form-item>
  35. <!-- <el-button
  36. type="primary"
  37. round
  38. icon="el-icon-plus"
  39. @click="showAddEditDialog(null)"
  40. >新建</el-button>-->
  41. <!-- <el-button type="primary" plain round @click="deleteData(null)">批量删除</el-button> -->
  42. </el-form-item>
  43. </el-col>
  44. </el-row>
  45. </el-form>
  46. </div>
  47. <div class="SearchTitle">
  48. 已选择
  49. <span class="subject-color">{{ tableSelection.length }}</span> 项
  50. </div>
  51. <div class="MaintenanceTable">
  52. <el-table
  53. ref="multipleTable"
  54. :data="tableData"
  55. style="width: 100%"
  56. tooltip-effect="dark"
  57. @selection-change="selectColumn"
  58. class="OutTable"
  59. border
  60. v-loading="listLoading"
  61. >
  62. <el-table-column type="selection"></el-table-column>
  63. <el-table-column prop="registMobile" label="登录手机号"></el-table-column>
  64. <el-table-column prop="nickname" label="昵称"></el-table-column>
  65. <el-table-column prop="age" label="年龄"></el-table-column>
  66. <el-table-column prop="gender" label="性别">
  67. <template slot-scope="scope">
  68. <span v-if="scope.row.gender ===1">男</span>
  69. <span v-if="scope.row.gender ===2">女</span>
  70. </template>
  71. </el-table-column>
  72. <el-table-column prop="proficiencyBrandName" :show-overflow-tooltip="true" label="擅长品牌"></el-table-column>
  73. <el-table-column prop="job" label="工作岗位"></el-table-column>
  74. <el-table-column prop="company" label="公司"></el-table-column>
  75. <el-table-column prop="workDate" label="从业时长"></el-table-column>
  76. <el-table-column prop="professional" label="专业"></el-table-column>
  77. <el-table-column prop="checkFlag" label="审核状态">
  78. <template slot-scope="scope">
  79. <span class="warn" v-if="scope.row.checkFlag == 2">待审核</span>
  80. <span class="success" v-if="scope.row.checkFlag == 1">审核通过</span>
  81. <span class="warn" v-if="scope.row.checkFlag == 0">已驳回</span>
  82. </template>
  83. </el-table-column>
  84. <el-table-column label="操作" min-width="220px;">
  85. <template slot-scope="scope">
  86. <!-- <el-button
  87. size="mini"
  88. type="primary"
  89. plain
  90. round
  91. @click="deleteData(scope.row)"
  92. >删除</el-button>-->
  93. <!-- <el-button
  94. size="mini"
  95. type="primary"
  96. plain
  97. round
  98. @click="showAddEditDialog(scope.row)"
  99. >编辑</el-button>-->
  100. <el-button
  101. size="mini"
  102. type="primary"
  103. plain
  104. round
  105. :disabled="scope.row.checkFlag === 1 || scope.row.checkFlag === 0 "
  106. @click="approvalHandle(scope.row)"
  107. >审核</el-button>
  108. <el-button
  109. size="mini"
  110. type="primary"
  111. plain
  112. round
  113. :disabled="scope.row.checkFlag === 1 || scope.row.checkFlag === 0 "
  114. @click="rejectHandle(scope.row)"
  115. >驳回</el-button>
  116. <el-button
  117. size="mini"
  118. type="primary"
  119. plain
  120. round
  121. @click="showDetails(scope.row)"
  122. >详情</el-button>
  123. </template>
  124. </el-table-column>
  125. </el-table>
  126. <div class="pagenation">
  127. <PageComponent
  128. :total="total"
  129. @pagination="handlePagination"
  130. :pageSize.sync="page.pageSize"
  131. :pageNum.sync="page.pageNum"
  132. ></PageComponent>
  133. </div>
  134. </div>
  135. </div>
  136. <!-- 添加与编辑弹层 -->
  137. <AddEditDialog ref="addEditDialog" @queryListData="queryListData"></AddEditDialog>
  138. <!-- 详情弹层 -->
  139. <DetailsDialog ref="detailsDialog"></DetailsDialog>
  140. <!-- 审核弹层 -->
  141. <ApprovalDialog ref="approvalDialog" @queryListData="queryListData"></ApprovalDialog>
  142. </div>
  143. </template>
  144. <script>
  145. import TitleBar from '@/apps/mobile/components/common/TitleBar';
  146. import AddEditDialog from './components/addEditDialog';
  147. import DetailsDialog from './components/detailsDialog';
  148. import ApprovalDialog from './components/approvalDialog';
  149. import { queryExpertApplyList, deleteApplyExpertSingle, deleteApplyExpertBatch, expertApproval } from '@/apps/mobile/api/expert/index';
  150. export default {
  151. components: {
  152. TitleBar,
  153. AddEditDialog,
  154. DetailsDialog,
  155. ApprovalDialog,
  156. },
  157. data() {
  158. return {
  159. searchForm: {},
  160. tableData: [],
  161. page: {
  162. pageNum: 1,
  163. pageSize: 5,
  164. },
  165. total: 10,
  166. listLoading: false,
  167. tableSelection: [],
  168. };
  169. },
  170. created() {
  171. this.queryListData();
  172. },
  173. methods: {
  174. queryListData() {
  175. this.listLoading = true;
  176. let obj = {
  177. ...this.page,
  178. ...this.searchForm,
  179. // checkFlag: 2,
  180. sort: {
  181. order: 'desc',
  182. orderBy: 'create_time',
  183. },
  184. };
  185. queryExpertApplyList(obj)
  186. .then(res => {
  187. console.log('res----',res);
  188. this.tableData = res.data.records;
  189. this.total = res.data.total;
  190. this.listLoading = false;
  191. })
  192. .catch(() => {
  193. this.listLoading = false;
  194. });
  195. },
  196. deleteData(data) {
  197. if (data) {
  198. this.$confirm(' 是否删除?', '提示', {
  199. confirmButtonText: '确定',
  200. cancelButtonText: '取消',
  201. type: 'warning',
  202. })
  203. .then(() => {
  204. deleteApplyExpertSingle(data.id)
  205. .then(res => {
  206. this.queryListData();
  207. this.$message({
  208. type: 'success',
  209. message: '删除成功',
  210. });
  211. })
  212. .catch();
  213. })
  214. .catch(() => {});
  215. } else {
  216. if (this.tableSelection.length == 0) {
  217. this.$message({
  218. type: 'warning',
  219. message: '请先选择一个',
  220. });
  221. return false;
  222. }
  223. this.$confirm('是否删除?', '提示', {
  224. confirmButtonText: '确定',
  225. cancelButtonText: '取消',
  226. type: 'warning',
  227. })
  228. .then(() => {
  229. let ids = this.tableSelection.map(item => {
  230. return item.id;
  231. });
  232. deleteApplyExpertBatch(ids)
  233. .then(res => {
  234. this.queryListData();
  235. this.$message({
  236. type: 'success',
  237. message: '删除成功',
  238. });
  239. })
  240. .catch();
  241. })
  242. .catch(() => {});
  243. }
  244. },
  245. approvalHandle(data) {
  246. this.$refs.approvalDialog.open(data);
  247. },
  248. rejectHandle(data) {
  249. this.$confirm('是否驳回?', '提示', {
  250. confirmButtonText: '确定',
  251. cancelButtonText: '取消',
  252. type: 'warning',
  253. })
  254. .then(() => {
  255. let obj = {
  256. checkFlag: 0,
  257. id: data.id,
  258. };
  259. this.approval(obj);
  260. })
  261. .catch(() => {});
  262. },
  263. approval(obj) {
  264. expertApproval(obj)
  265. .then(res => {
  266. console.log(res);
  267. if (res.statusCode === '1') {
  268. this.$message({
  269. type: 'success',
  270. message: res.message,
  271. });
  272. } else {
  273. this.$message({
  274. type: 'warning',
  275. message: res.message,
  276. });
  277. }
  278. this.queryListData();
  279. })
  280. .catch();
  281. },
  282. querySearch() {
  283. this.page.pageNum = 1;
  284. this.queryListData();
  285. },
  286. reset() {
  287. this.searchForm = {};
  288. this.page.pageNum = 1;
  289. this.queryListData();
  290. },
  291. selectColumn(selection) {
  292. this.tableSelection = selection;
  293. },
  294. handSizeChange() {},
  295. // 页码变化时
  296. handlePagination(val) {
  297. this.page = val;
  298. this.queryListData();
  299. },
  300. showAddEditDialog(data) {
  301. if (data) {
  302. this.$refs.addEditDialog.open('edit', data);
  303. } else {
  304. this.$refs.addEditDialog.open('add');
  305. }
  306. },
  307. showDetails(data) {
  308. this.$refs.detailsDialog.open(data);
  309. },
  310. },
  311. };
  312. </script>
  313. <style lang="stylus" scoped>
  314. .TableSelectMain .el-date-editor.el-input.el-input--prefix.el-input--suffix.el-date-editor--date {
  315. width: 95%;
  316. }
  317. </style>